more ices
[ICEs.git] / 264653 / parse_.i.1
1 enum yytokentype {
2 keyword_class = 258,
3 keyword_module = 259,
4 keyword_def = 260,
5 keyword_undef = 261,
6 keyword_begin = 262,
7 keyword_rescue = 263,
8 keyword_ensure = 264,
9 keyword_end = 265,
10 keyword_if = 266,
11 keyword_unless = 267,
12 keyword_then = 268,
13 keyword_elsif = 269,
14 keyword_else = 270,
15 keyword_case = 271,
16 keyword_when = 272,
17 keyword_while = 273,
18 keyword_until = 274,
19 keyword_for = 275,
20 keyword_break = 276,
21 keyword_next = 277,
22 keyword_redo = 278,
23 keyword_retry = 279,
24 keyword_in = 280,
25 keyword_do = 281,
26 keyword_do_cond = 282,
27 keyword_do_block = 283,
28 keyword_do_LAMBDA = 284,
29 keyword_return = 285,
30 keyword_yield = 286,
31 keyword_super = 287,
32 keyword_self = 288,
33 keyword_nil = 289,
34 keyword_true = 290,
35 keyword_false = 291,
36 keyword_and = 292,
37 keyword_or = 293,
38 keyword_not = 294,
39 modifier_if = 295,
40 modifier_unless = 296,
41 modifier_while = 297,
42 modifier_until = 298,
43 modifier_rescue = 299,
44 keyword_alias = 300,
45 keyword_defined = 301,
46 keyword_BEGIN = 302,
47 keyword_END = 303,
48 keyword__LINE__ = 304,
49 keyword__FILE__ = 305,
50 keyword__ENCODING__ = 306,
51 tIDENTIFIER = 307,
52 tFID = 308,
53 tGVAR = 309,
54 tIVAR = 310,
55 tCONSTANT = 311,
56 tCVAR = 312,
57 tLABEL = 313,
58 tINTEGER = 314,
59 tFLOAT = 315,
60 tSTRING_CONTENT = 316,
61 tCHAR = 317,
62 tNTH_REF = 318,
63 tBACK_REF = 319,
64 tREGEXP_END = 320,
65 tUPLUS = 321,
66 tUMINUS = 322,
67 tPOW = 323,
68 tCMP = 324,
69 tEQ = 325,
70 tEQQ = 326,
71 tNEQ = 327,
72 tGEQ = 328,
73 tLEQ = 329,
74 tANDOP = 330,
75 tOROP = 331,
76 tMATCH = 332,
77 tNMATCH = 333,
78 tDOT2 = 334,
79 tDOT3 = 335,
80 tAREF = 336,
81 tASET = 337,
82 tLSHFT = 338,
83 tRSHFT = 339,
84 tCOLON2 = 340,
85 tCOLON3 = 341,
86 tOP_ASGN = 342,
87 tASSOC = 343,
88 tLPAREN = 344,
89 tLPAREN_ARG = 345,
90 tRPAREN = 346,
91 tLBRACK = 347,
92 tLBRACE = 348,
93 tLBRACE_ARG = 349,
94 tSTAR = 350,
95 tAMPER = 351,
96 tLAMBDA = 352,
97 tSYMBEG = 353,
98 tSTRING_BEG = 354,
99 tXSTRING_BEG = 355,
100 tREGEXP_BEG = 356,
101 tWORDS_BEG = 357,
102 tQWORDS_BEG = 358,
103 tSTRING_DBEG = 359,
104 tSTRING_DVAR = 360,
105 tSTRING_END = 361,
106 tLAMBEG = 362,
107 tLOWEST = 363,
108 tUMINUS_NUM = 364,
109 idNULL = 365,
110 idRespond_to = 366,
111 idIFUNC = 367,
112 idCFUNC = 368,
113 idThrowState = 369,
114 id_core_set_method_alias = 370,
115 id_core_set_variable_alias = 371,
116 id_core_undef_method = 372,
117 id_core_define_method = 373,
118 id_core_define_singleton_method = 374,
119 id_core_set_postexe = 375,
120 tLAST_TOKEN = 376
121 };
122 typedef unsigned int size_t;
123 typedef int wchar_t;
124 union wait
125 {
126 int w_status;
127 struct
128 {
129 unsigned int __w_termsig:7;
130 unsigned int __w_coredump:1;
131 unsigned int __w_retcode:8;
132 unsigned int:16;
133 } __wait_terminated;
134 struct
135 {
136 unsigned int __w_stopval:8;
137 unsigned int __w_stopsig:8;
138 unsigned int:16;
139 } __wait_stopped;
140 };
141 typedef union
142 {
143 union wait *__uptr;
144 int *__iptr;
145 } __WAIT_STATUS __attribute__ ((__transparent_union__));
146 typedef struct
147 {
148 int quot;
149 int rem;
150 } div_t;
151 typedef struct
152 {
153 long int quot;
154 long int rem;
155 } ldiv_t;
156 __extension__ typedef struct
157 {
158 long long int quot;
159 long long int rem;
160 } lldiv_t;
161 extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__)) ;
162 extern double atof (__const char *__nptr)
163 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
164 extern int atoi (__const char *__nptr)
165 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
166 extern long int atol (__const char *__nptr)
167 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
168 __extension__ extern long long int atoll (__const char *__nptr)
169 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
170 extern double strtod (__const char *__restrict __nptr,
171 char **__restrict __endptr)
172 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
173 extern float strtof (__const char *__restrict __nptr,
174 char **__restrict __endptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
175 extern long double strtold (__const char *__restrict __nptr,
176 char **__restrict __endptr)
177 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
178 extern long int strtol (__const char *__restrict __nptr,
179 char **__restrict __endptr, int __base)
180 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
181 extern unsigned long int strtoul (__const char *__restrict __nptr,
182 char **__restrict __endptr, int __base)
183 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
184 __extension__
185 extern long long int strtoq (__const char *__restrict __nptr,
186 char **__restrict __endptr, int __base)
187 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
188 __extension__
189 extern unsigned long long int strtouq (__const char *__restrict __nptr,
190 char **__restrict __endptr, int __base)
191 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
192 __extension__
193 extern long long int strtoll (__const char *__restrict __nptr,
194 char **__restrict __endptr, int __base)
195 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
196 __extension__
197 extern unsigned long long int strtoull (__const char *__restrict __nptr,
198 char **__restrict __endptr, int __base)
199 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
200 typedef struct __locale_struct
201 {
202 struct locale_data *__locales[13];
203 const unsigned short int *__ctype_b;
204 const int *__ctype_tolower;
205 const int *__ctype_toupper;
206 const char *__names[13];
207 } *__locale_t;
208 extern long int strtol_l (__const char *__restrict __nptr,
209 char **__restrict __endptr, int __base,
210 __locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) ;
211 extern unsigned long int strtoul_l (__const char *__restrict __nptr,
212 char **__restrict __endptr,
213 int __base, __locale_t __loc)
214 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) ;
215 __extension__
216 extern long long int strtoll_l (__const char *__restrict __nptr,
217 char **__restrict __endptr, int __base,
218 __locale_t __loc)
219 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) ;
220 __extension__
221 extern unsigned long long int strtoull_l (__const char *__restrict __nptr,
222 char **__restrict __endptr,
223 int __base, __locale_t __loc)
224 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) ;
225 extern double strtod_l (__const char *__restrict __nptr,
226 char **__restrict __endptr, __locale_t __loc)
227 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) ;
228 extern float strtof_l (__const char *__restrict __nptr,
229 char **__restrict __endptr, __locale_t __loc)
230 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) ;
231 extern long double strtold_l (__const char *__restrict __nptr,
232 char **__restrict __endptr,
233 __locale_t __loc)
234 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) ;
235 extern __inline double
236 __attribute__ ((__nothrow__)) atof (__const char *__nptr)
237 {
238 return strtod (__nptr, (char **) ((void *)0));
239 }
240 extern __inline int
241 __attribute__ ((__nothrow__)) atoi (__const char *__nptr)
242 {
243 return (int) strtol (__nptr, (char **) ((void *)0), 10);
244 }
245 extern __inline long int
246 __attribute__ ((__nothrow__)) atol (__const char *__nptr)
247 {
248 return strtol (__nptr, (char **) ((void *)0), 10);
249 }
250 __extension__ extern __inline long long int
251 __attribute__ ((__nothrow__)) atoll (__const char *__nptr)
252 {
253 return strtoll (__nptr, (char **) ((void *)0), 10);
254 }
255 extern char *l64a (long int __n) __attribute__ ((__nothrow__)) ;
256 extern long int a64l (__const char *__s)
257 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
258 typedef unsigned char __u_char;
259 typedef unsigned short int __u_short;
260 typedef unsigned int __u_int;
261 typedef unsigned long int __u_long;
262 typedef signed char __int8_t;
263 typedef unsigned char __uint8_t;
264 typedef signed short int __int16_t;
265 typedef unsigned short int __uint16_t;
266 typedef signed int __int32_t;
267 typedef unsigned int __uint32_t;
268 __extension__ typedef signed long long int __int64_t;
269 __extension__ typedef unsigned long long int __uint64_t;
270 __extension__ typedef long long int __quad_t;
271 __extension__ typedef unsigned long long int __u_quad_t;
272 __extension__ typedef __u_quad_t __dev_t;
273 __extension__ typedef unsigned int __uid_t;
274 __extension__ typedef unsigned int __gid_t;
275 __extension__ typedef unsigned long int __ino_t;
276 __extension__ typedef __u_quad_t __ino64_t;
277 __extension__ typedef unsigned int __mode_t;
278 __extension__ typedef unsigned int __nlink_t;
279 __extension__ typedef long int __off_t;
280 __extension__ typedef __quad_t __off64_t;
281 __extension__ typedef int __pid_t;
282 __extension__ typedef struct { int __val[2]; } __fsid_t;
283 __extension__ typedef long int __clock_t;
284 __extension__ typedef unsigned long int __rlim_t;
285 __extension__ typedef __u_quad_t __rlim64_t;
286 __extension__ typedef unsigned int __id_t;
287 __extension__ typedef long int __time_t;
288 __extension__ typedef unsigned int __useconds_t;
289 __extension__ typedef long int __suseconds_t;
290 __extension__ typedef int __daddr_t;
291 __extension__ typedef long int __swblk_t;
292 __extension__ typedef int __key_t;
293 __extension__ typedef int __clockid_t;
294 __extension__ typedef void * __timer_t;
295 __extension__ typedef long int __blksize_t;
296 __extension__ typedef long int __blkcnt_t;
297 __extension__ typedef __quad_t __blkcnt64_t;
298 __extension__ typedef unsigned long int __fsblkcnt_t;
299 __extension__ typedef __u_quad_t __fsblkcnt64_t;
300 __extension__ typedef unsigned long int __fsfilcnt_t;
301 __extension__ typedef __u_quad_t __fsfilcnt64_t;
302 __extension__ typedef int __ssize_t;
303 typedef __off64_t __loff_t;
304 typedef __quad_t *__qaddr_t;
305 typedef char *__caddr_t;
306 __extension__ typedef int __intptr_t;
307 __extension__ typedef unsigned int __socklen_t;
308 typedef __u_char u_char;
309 typedef __u_short u_short;
310 typedef __u_int u_int;
311 typedef __u_long u_long;
312 typedef __quad_t quad_t;
313 typedef __u_quad_t u_quad_t;
314 typedef __fsid_t fsid_t;
315 typedef __loff_t loff_t;
316 typedef __ino64_t ino_t;
317 typedef __ino64_t ino64_t;
318 typedef __dev_t dev_t;
319 typedef __gid_t gid_t;
320 typedef __mode_t mode_t;
321 typedef __nlink_t nlink_t;
322 typedef __uid_t uid_t;
323 typedef __off64_t off_t;
324 typedef __off64_t off64_t;
325 typedef __pid_t pid_t;
326 typedef __id_t id_t;
327 typedef __ssize_t ssize_t;
328 typedef __daddr_t daddr_t;
329 typedef __caddr_t caddr_t;
330 typedef __key_t key_t;
331 typedef __clock_t clock_t;
332 typedef __time_t time_t;
333 typedef __clockid_t clockid_t;
334 typedef __timer_t timer_t;
335 typedef __useconds_t useconds_t;
336 typedef __suseconds_t suseconds_t;
337 typedef unsigned long int ulong;
338 typedef unsigned short int ushort;
339 typedef unsigned int uint;
340 typedef int int8_t __attribute__ ((__mode__ (__QI__)));
341 typedef int int16_t __attribute__ ((__mode__ (__HI__)));
342 typedef int int32_t __attribute__ ((__mode__ (__SI__)));
343 typedef int int64_t __attribute__ ((__mode__ (__DI__)));
344 typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
345 typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
346 typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
347 typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
348 typedef int register_t __attribute__ ((__mode__ (__word__)));
349 typedef int __sig_atomic_t;
350 typedef struct
351 {
352 unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
353 } __sigset_t;
354 typedef __sigset_t sigset_t;
355 struct timespec
356 {
357 __time_t tv_sec;
358 long int tv_nsec;
359 };
360 struct timeval
361 {
362 __time_t tv_sec;
363 __suseconds_t tv_usec;
364 };
365 typedef long int __fd_mask;
366 typedef struct
367 {
368 __fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))];
369 } fd_set;
370 typedef __fd_mask fd_mask;
371 extern int select (int __nfds, fd_set *__restrict __readfds,
372 fd_set *__restrict __writefds,
373 fd_set *__restrict __exceptfds,
374 struct timeval *__restrict __timeout);
375 extern int pselect (int __nfds, fd_set *__restrict __readfds,
376 fd_set *__restrict __writefds,
377 fd_set *__restrict __exceptfds,
378 const struct timespec *__restrict __timeout,
379 const __sigset_t *__restrict __sigmask);
380 __extension__
381 extern unsigned int gnu_dev_major (unsigned long long int __dev)
382 __attribute__ ((__nothrow__));
383 __extension__
384 extern unsigned int gnu_dev_minor (unsigned long long int __dev)
385 __attribute__ ((__nothrow__));
386 __extension__
387 extern unsigned long long int gnu_dev_makedev (unsigned int __major,
388 unsigned int __minor)
389 __attribute__ ((__nothrow__));
390 __extension__ extern __inline unsigned int
391 __attribute__ ((__nothrow__)) gnu_dev_major (unsigned long long int __dev)
392 {
393 return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff);
394 }
395 __extension__ extern __inline unsigned int
396 __attribute__ ((__nothrow__)) gnu_dev_minor (unsigned long long int __dev)
397 {
398 return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff);
399 }
400 __extension__ extern __inline unsigned long long int
401 __attribute__ ((__nothrow__)) gnu_dev_makedev (unsigned int __major, unsigned int __minor)
402 {
403 return ((__minor & 0xff) | ((__major & 0xfff) << 8)
404 | (((unsigned long long int) (__minor & ~0xff)) << 12)
405 | (((unsigned long long int) (__major & ~0xfff)) << 32));
406 }
407 typedef __blksize_t blksize_t;
408 typedef __blkcnt64_t blkcnt_t;
409 typedef __fsblkcnt64_t fsblkcnt_t;
410 typedef __fsfilcnt64_t fsfilcnt_t;
411 typedef __blkcnt64_t blkcnt64_t;
412 typedef __fsblkcnt64_t fsblkcnt64_t;
413 typedef __fsfilcnt64_t fsfilcnt64_t;
414 typedef unsigned long int pthread_t;
415 typedef union
416 {
417 char __size[36];
418 long int __align;
419 } pthread_attr_t;
420 typedef struct __pthread_internal_slist
421 {
422 struct __pthread_internal_slist *__next;
423 } __pthread_slist_t;
424 typedef union
425 {
426 struct __pthread_mutex_s
427 {
428 int __lock;
429 unsigned int __count;
430 int __owner;
431 int __kind;
432 unsigned int __nusers;
433 __extension__ union
434 {
435 int __spins;
436 __pthread_slist_t __list;
437 };
438 } __data;
439 char __size[24];
440 long int __align;
441 } pthread_mutex_t;
442 typedef union
443 {
444 char __size[4];
445 int __align;
446 } pthread_mutexattr_t;
447 typedef union
448 {
449 struct
450 {
451 int __lock;
452 unsigned int __futex;
453 __extension__ unsigned long long int __total_seq;
454 __extension__ unsigned long long int __wakeup_seq;
455 __extension__ unsigned long long int __woken_seq;
456 void *__mutex;
457 unsigned int __nwaiters;
458 unsigned int __broadcast_seq;
459 } __data;
460 char __size[48];
461 __extension__ long long int __align;
462 } pthread_cond_t;
463 typedef union
464 {
465 char __size[4];
466 int __align;
467 } pthread_condattr_t;
468 typedef unsigned int pthread_key_t;
469 typedef int pthread_once_t;
470 typedef union
471 {
472 struct
473 {
474 int __lock;
475 unsigned int __nr_readers;
476 unsigned int __readers_wakeup;
477 unsigned int __writer_wakeup;
478 unsigned int __nr_readers_queued;
479 unsigned int __nr_writers_queued;
480 unsigned char __flags;
481 unsigned char __shared;
482 unsigned char __pad1;
483 unsigned char __pad2;
484 int __writer;
485 } __data;
486 char __size[32];
487 long int __align;
488 } pthread_rwlock_t;
489 typedef union
490 {
491 char __size[8];
492 long int __align;
493 } pthread_rwlockattr_t;
494 typedef volatile int pthread_spinlock_t;
495 typedef union
496 {
497 char __size[20];
498 long int __align;
499 } pthread_barrier_t;
500 typedef union
501 {
502 char __size[4];
503 int __align;
504 } pthread_barrierattr_t;
505 extern long int random (void) __attribute__ ((__nothrow__));
506 extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__));
507 extern char *initstate (unsigned int __seed, char *__statebuf,
508 size_t __statelen) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
509 extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
510 struct random_data
511 {
512 int32_t *fptr;
513 int32_t *rptr;
514 int32_t *state;
515 int rand_type;
516 int rand_deg;
517 int rand_sep;
518 int32_t *end_ptr;
519 };
520 extern int random_r (struct random_data *__restrict __buf,
521 int32_t *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
522 extern int srandom_r (unsigned int __seed, struct random_data *__buf)
523 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
524 extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
525 size_t __statelen,
526 struct random_data *__restrict __buf)
527 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));
528 extern int setstate_r (char *__restrict __statebuf,
529 struct random_data *__restrict __buf)
530 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
531 extern int rand (void) __attribute__ ((__nothrow__));
532 extern void srand (unsigned int __seed) __attribute__ ((__nothrow__));
533 extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__));
534 extern double drand48 (void) __attribute__ ((__nothrow__));
535 extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
536 extern long int lrand48 (void) __attribute__ ((__nothrow__));
537 extern long int nrand48 (unsigned short int __xsubi[3])
538 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
539 extern long int mrand48 (void) __attribute__ ((__nothrow__));
540 extern long int jrand48 (unsigned short int __xsubi[3])
541 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
542 extern void srand48 (long int __seedval) __attribute__ ((__nothrow__));
543 extern unsigned short int *seed48 (unsigned short int __seed16v[3])
544 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
545 extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
546 struct drand48_data
547 {
548 unsigned short int __x[3];
549 unsigned short int __old_x[3];
550 unsigned short int __c;
551 unsigned short int __init;
552 unsigned long long int __a;
553 };
554 extern int drand48_r (struct drand48_data *__restrict __buffer,
555 double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
556 extern int erand48_r (unsigned short int __xsubi[3],
557 struct drand48_data *__restrict __buffer,
558 double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
559 extern int lrand48_r (struct drand48_data *__restrict __buffer,
560 long int *__restrict __result)
561 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
562 extern int nrand48_r (unsigned short int __xsubi[3],
563 struct drand48_data *__restrict __buffer,
564 long int *__restrict __result)
565 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
566 extern int mrand48_r (struct drand48_data *__restrict __buffer,
567 long int *__restrict __result)
568 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
569 extern int jrand48_r (unsigned short int __xsubi[3],
570 struct drand48_data *__restrict __buffer,
571 long int *__restrict __result)
572 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
573 extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
574 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
575 extern int seed48_r (unsigned short int __seed16v[3],
576 struct drand48_data *__buffer) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
577 extern int lcong48_r (unsigned short int __param[7],
578 struct drand48_data *__buffer)
579 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
580 extern void *malloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ;
581 extern void *calloc (size_t __nmemb, size_t __size)
582 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ;
583 extern void *realloc (void *__ptr, size_t __size)
584 __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
585 extern void free (void *__ptr) __attribute__ ((__nothrow__));
586 extern void cfree (void *__ptr) __attribute__ ((__nothrow__));
587 extern void *alloca (size_t __size) __attribute__ ((__nothrow__));
588 extern void *valloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ;
589 extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
590 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
591 extern void abort (void) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
592 extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
593 extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
594 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
595 extern void exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
596 extern void _Exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
597 extern char *getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
598 extern char *__secure_getenv (__const char *__name)
599 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
600 extern int putenv (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
601 extern int setenv (__const char *__name, __const char *__value, int __replace)
602 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
603 extern int unsetenv (__const char *__name) __attribute__ ((__nothrow__));
604 extern int clearenv (void) __attribute__ ((__nothrow__));
605 extern char *mktemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
606 extern int mkstemp (char *__template) __asm__ ("" "mkstemp64")
607 __attribute__ ((__nonnull__ (1))) ;
608 extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ;
609 extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
610 extern int mkostemp (char *__template, int __flags) __asm__ ("" "mkostemp64")
611 __attribute__ ((__nonnull__ (1))) ;
612 extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ;
613 extern int system (__const char *__command) ;
614 extern char *canonicalize_file_name (__const char *__name)
615 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
616 extern char *realpath (__const char *__restrict __name,
617 char *__restrict __resolved) __attribute__ ((__nothrow__)) ;
618 typedef int (*__compar_fn_t) (__const void *, __const void *);
619 typedef __compar_fn_t comparison_fn_t;
620 extern void *bsearch (__const void *__key, __const void *__base,
621 size_t __nmemb, size_t __size, __compar_fn_t __compar)
622 __attribute__ ((__nonnull__ (1, 2, 5))) ;
623 extern void qsort (void *__base, size_t __nmemb, size_t __size,
624 __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
625 extern int abs (int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
626 extern long int labs (long int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
627 __extension__ extern long long int llabs (long long int __x)
628 __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
629 extern div_t div (int __numer, int __denom)
630 __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
631 extern ldiv_t ldiv (long int __numer, long int __denom)
632 __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
633 __extension__ extern lldiv_t lldiv (long long int __numer,
634 long long int __denom)
635 __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
636 extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
637 int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ;
638 extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
639 int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ;
640 extern char *gcvt (double __value, int __ndigit, char *__buf)
641 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) ;
642 extern char *qecvt (long double __value, int __ndigit,
643 int *__restrict __decpt, int *__restrict __sign)
644 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ;
645 extern char *qfcvt (long double __value, int __ndigit,
646 int *__restrict __decpt, int *__restrict __sign)
647 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ;
648 extern char *qgcvt (long double __value, int __ndigit, char *__buf)
649 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) ;
650 extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
651 int *__restrict __sign, char *__restrict __buf,
652 size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
653 extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
654 int *__restrict __sign, char *__restrict __buf,
655 size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
656 extern int qecvt_r (long double __value, int __ndigit,
657 int *__restrict __decpt, int *__restrict __sign,
658 char *__restrict __buf, size_t __len)
659 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
660 extern int qfcvt_r (long double __value, int __ndigit,
661 int *__restrict __decpt, int *__restrict __sign,
662 char *__restrict __buf, size_t __len)
663 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
664 extern int mblen (__const char *__s, size_t __n) __attribute__ ((__nothrow__)) ;
665 extern int mbtowc (wchar_t *__restrict __pwc,
666 __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__)) ;
667 extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__)) ;
668 extern size_t mbstowcs (wchar_t *__restrict __pwcs,
669 __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__));
670 extern size_t wcstombs (char *__restrict __s,
671 __const wchar_t *__restrict __pwcs, size_t __n)
672 __attribute__ ((__nothrow__));
673 extern int rpmatch (__const char *__response) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
674 extern int getsubopt (char **__restrict __optionp,
675 char *__const *__restrict __tokens,
676 char **__restrict __valuep)
677 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3))) ;
678 extern void setkey (__const char *__key) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
679 extern int posix_openpt (int __oflag) ;
680 extern int grantpt (int __fd) __attribute__ ((__nothrow__));
681 extern int unlockpt (int __fd) __attribute__ ((__nothrow__));
682 extern char *ptsname (int __fd) __attribute__ ((__nothrow__)) ;
683 extern int ptsname_r (int __fd, char *__buf, size_t __buflen)
684 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
685 extern int getpt (void);
686 extern int getloadavg (double __loadavg[], int __nelem)
687 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
688 extern void *memcpy (void *__restrict __dest,
689 __const void *__restrict __src, size_t __n)
690 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
691 extern void *memmove (void *__dest, __const void *__src, size_t __n)
692 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
693 extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
694 int __c, size_t __n)
695 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
696 extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
697 extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
698 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
699 extern void *memchr (__const void *__s, int __c, size_t __n)
700 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
701 extern void *rawmemchr (__const void *__s, int __c)
702 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
703 extern void *memrchr (__const void *__s, int __c, size_t __n)
704 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
705 extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
706 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
707 extern char *strncpy (char *__restrict __dest,
708 __const char *__restrict __src, size_t __n)
709 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
710 extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
711 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
712 extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
713 size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
714 extern int strcmp (__const char *__s1, __const char *__s2)
715 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
716 extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
717 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
718 extern int strcoll (__const char *__s1, __const char *__s2)
719 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
720 extern size_t strxfrm (char *__restrict __dest,
721 __const char *__restrict __src, size_t __n)
722 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
723 extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l)
724 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
725 extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n,
726 __locale_t __l) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));
727 extern char *strdup (__const char *__s)
728 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
729 extern char *strndup (__const char *__string, size_t __n)
730 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
731 extern char *strchr (__const char *__s, int __c)
732 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
733 extern char *strrchr (__const char *__s, int __c)
734 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
735 extern char *strchrnul (__const char *__s, int __c)
736 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
737 extern size_t strcspn (__const char *__s, __const char *__reject)
738 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
739 extern size_t strspn (__const char *__s, __const char *__accept)
740 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
741 extern char *strpbrk (__const char *__s, __const char *__accept)
742 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
743 extern char *strstr (__const char *__haystack, __const char *__needle)
744 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
745 extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
746 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
747 extern char *__strtok_r (char *__restrict __s,
748 __const char *__restrict __delim,
749 char **__restrict __save_ptr)
750 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
751 extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
752 char **__restrict __save_ptr)
753 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
754 extern char *strcasestr (__const char *__haystack, __const char *__needle)
755 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
756 extern void *memmem (__const void *__haystack, size_t __haystacklen,
757 __const void *__needle, size_t __needlelen)
758 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3)));
759 extern void *__mempcpy (void *__restrict __dest,
760 __const void *__restrict __src, size_t __n)
761 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
762 extern void *mempcpy (void *__restrict __dest,
763 __const void *__restrict __src, size_t __n)
764 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
765 extern size_t strlen (__const char *__s)
766 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
767 extern size_t strnlen (__const char *__string, size_t __maxlen)
768 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
769 extern char *strerror (int __errnum) __attribute__ ((__nothrow__));
770 extern char *strerror_r (int __errnum, char *__buf, size_t __buflen)
771 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
772 extern char *strerror_l (int __errnum, __locale_t __l) __attribute__ ((__nothrow__));
773 extern void __bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
774 extern void bcopy (__const void *__src, void *__dest, size_t __n)
775 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
776 extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
777 extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
778 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
779 extern char *index (__const char *__s, int __c)
780 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
781 extern char *rindex (__const char *__s, int __c)
782 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
783 extern int ffs (int __i) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
784 extern int ffsl (long int __l) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
785 __extension__ extern int ffsll (long long int __ll)
786 __attribute__ ((__nothrow__)) __attribute__ ((__const__));
787 extern int strcasecmp (__const char *__s1, __const char *__s2)
788 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
789 extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
790 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
791 extern int strcasecmp_l (__const char *__s1, __const char *__s2,
792 __locale_t __loc)
793 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
794 extern int strncasecmp_l (__const char *__s1, __const char *__s2,
795 size_t __n, __locale_t __loc)
796 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4)));
797 extern char *strsep (char **__restrict __stringp,
798 __const char *__restrict __delim)
799 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
800 extern int strverscmp (__const char *__s1, __const char *__s2)
801 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
802 extern char *strsignal (int __sig) __attribute__ ((__nothrow__));
803 extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src)
804 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
805 extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src)
806 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
807 extern char *__stpncpy (char *__restrict __dest,
808 __const char *__restrict __src, size_t __n)
809 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
810 extern char *stpncpy (char *__restrict __dest,
811 __const char *__restrict __src, size_t __n)
812 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
813 extern char *strfry (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
814 extern void *memfrob (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
815 extern char *basename (__const char *__filename) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
816 extern void *__rawmemchr (const void *__s, int __c);
817 extern __inline size_t __strcspn_c1 (__const char *__s, int __reject);
818 extern __inline size_t
819 __strcspn_c1 (__const char *__s, int __reject)
820 {
821 register size_t __result = 0;
822 while (__s[__result] != '\0' && __s[__result] != __reject)
823 ++__result;
824 return __result;
825 }
826 extern __inline size_t __strcspn_c2 (__const char *__s, int __reject1,
827 int __reject2);
828 extern __inline size_t
829 __strcspn_c2 (__const char *__s, int __reject1, int __reject2)
830 {
831 register size_t __result = 0;
832 while (__s[__result] != '\0' && __s[__result] != __reject1
833 && __s[__result] != __reject2)
834 ++__result;
835 return __result;
836 }
837 extern __inline size_t __strcspn_c3 (__const char *__s, int __reject1,
838 int __reject2, int __reject3);
839 extern __inline size_t
840 __strcspn_c3 (__const char *__s, int __reject1, int __reject2,
841 int __reject3)
842 {
843 register size_t __result = 0;
844 while (__s[__result] != '\0' && __s[__result] != __reject1
845 && __s[__result] != __reject2 && __s[__result] != __reject3)
846 ++__result;
847 return __result;
848 }
849 extern __inline size_t __strspn_c1 (__const char *__s, int __accept);
850 extern __inline size_t
851 __strspn_c1 (__const char *__s, int __accept)
852 {
853 register size_t __result = 0;
854 while (__s[__result] == __accept)
855 ++__result;
856 return __result;
857 }
858 extern __inline size_t __strspn_c2 (__const char *__s, int __accept1,
859 int __accept2);
860 extern __inline size_t
861 __strspn_c2 (__const char *__s, int __accept1, int __accept2)
862 {
863 register size_t __result = 0;
864 while (__s[__result] == __accept1 || __s[__result] == __accept2)
865 ++__result;
866 return __result;
867 }
868 extern __inline size_t __strspn_c3 (__const char *__s, int __accept1,
869 int __accept2, int __accept3);
870 extern __inline size_t
871 __strspn_c3 (__const char *__s, int __accept1, int __accept2, int __accept3)
872 {
873 register size_t __result = 0;
874 while (__s[__result] == __accept1 || __s[__result] == __accept2
875 || __s[__result] == __accept3)
876 ++__result;
877 return __result;
878 }
879 extern __inline char *__strpbrk_c2 (__const char *__s, int __accept1,
880 int __accept2);
881 extern __inline char *
882 __strpbrk_c2 (__const char *__s, int __accept1, int __accept2)
883 {
884 while (*__s != '\0' && *__s != __accept1 && *__s != __accept2)
885 ++__s;
886 return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
887 }
888 extern __inline char *__strpbrk_c3 (__const char *__s, int __accept1,
889 int __accept2, int __accept3);
890 extern __inline char *
891 __strpbrk_c3 (__const char *__s, int __accept1, int __accept2,
892 int __accept3)
893 {
894 while (*__s != '\0' && *__s != __accept1 && *__s != __accept2
895 && *__s != __accept3)
896 ++__s;
897 return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
898 }
899 extern __inline char *__strtok_r_1c (char *__s, char __sep, char **__nextp);
900 extern __inline char *
901 __strtok_r_1c (char *__s, char __sep, char **__nextp)
902 {
903 char *__result;
904 if (__s == ((void *)0))
905 __s = *__nextp;
906 while (*__s == __sep)
907 ++__s;
908 __result = ((void *)0);
909 if (*__s != '\0')
910 {
911 __result = __s++;
912 while (*__s != '\0')
913 if (*__s++ == __sep)
914 {
915 __s[-1] = '\0';
916 break;
917 }
918 *__nextp = __s;
919 }
920 return __result;
921 }
922 extern char *__strsep_g (char **__stringp, __const char *__delim);
923 extern __inline char *__strsep_1c (char **__s, char __reject);
924 extern __inline char *
925 __strsep_1c (char **__s, char __reject)
926 {
927 register char *__retval = *__s;
928 if (__retval != ((void *)0) && (*__s = (__extension__ (__builtin_constant_p (__reject) && !__builtin_constant_p (__retval) && (__reject) == '\0' ? (char *) __rawmemchr (__retval, __reject) : __builtin_strchr (__retval, __reject)))) != ((void *)0))
929 *(*__s)++ = '\0';
930 return __retval;
931 }
932 extern __inline char *__strsep_2c (char **__s, char __reject1, char __reject2);
933 extern __inline char *
934 __strsep_2c (char **__s, char __reject1, char __reject2)
935 {
936 register char *__retval = *__s;
937 if (__retval != ((void *)0))
938 {
939 register char *__cp = __retval;
940 while (1)
941 {
942 if (*__cp == '\0')
943 {
944 __cp = ((void *)0);
945 break;
946 }
947 if (*__cp == __reject1 || *__cp == __reject2)
948 {
949 *__cp++ = '\0';
950 break;
951 }
952 ++__cp;
953 }
954 *__s = __cp;
955 }
956 return __retval;
957 }
958 extern __inline char *__strsep_3c (char **__s, char __reject1, char __reject2,
959 char __reject3);
960 extern __inline char *
961 __strsep_3c (char **__s, char __reject1, char __reject2, char __reject3)
962 {
963 register char *__retval = *__s;
964 if (__retval != ((void *)0))
965 {
966 register char *__cp = __retval;
967 while (1)
968 {
969 if (*__cp == '\0')
970 {
971 __cp = ((void *)0);
972 break;
973 }
974 if (*__cp == __reject1 || *__cp == __reject2 || *__cp == __reject3)
975 {
976 *__cp++ = '\0';
977 break;
978 }
979 ++__cp;
980 }
981 *__s = __cp;
982 }
983 return __retval;
984 }
985 extern char *__strdup (__const char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__));
986 extern char *__strndup (__const char *__string, size_t __n)
987 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__));
988 typedef unsigned char uint8_t;
989 typedef unsigned short int uint16_t;
990 typedef unsigned int uint32_t;
991 __extension__
992 typedef unsigned long long int uint64_t;
993 typedef signed char int_least8_t;
994 typedef short int int_least16_t;
995 typedef int int_least32_t;
996 __extension__
997 typedef long long int int_least64_t;
998 typedef unsigned char uint_least8_t;
999 typedef unsigned short int uint_least16_t;
1000 typedef unsigned int uint_least32_t;
1001 __extension__
1002 typedef unsigned long long int uint_least64_t;
1003 typedef signed char int_fast8_t;
1004 typedef int int_fast16_t;
1005 typedef int int_fast32_t;
1006 __extension__
1007 typedef long long int int_fast64_t;
1008 typedef unsigned char uint_fast8_t;
1009 typedef unsigned int uint_fast16_t;
1010 typedef unsigned int uint_fast32_t;
1011 __extension__
1012 typedef unsigned long long int uint_fast64_t;
1013 typedef int intptr_t;
1014 typedef unsigned int uintptr_t;
1015 __extension__
1016 typedef long long int intmax_t;
1017 __extension__
1018 typedef unsigned long long int uintmax_t;
1019 typedef int __gwchar_t;
1020 typedef struct
1021 {
1022 long long int quot;
1023 long long int rem;
1024 } imaxdiv_t;
1025 extern intmax_t imaxabs (intmax_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
1026 extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t __denom)
1027 __attribute__ ((__nothrow__)) __attribute__ ((__const__));
1028 extern intmax_t strtoimax (__const char *__restrict __nptr,
1029 char **__restrict __endptr, int __base) __attribute__ ((__nothrow__));
1030 extern uintmax_t strtoumax (__const char *__restrict __nptr,
1031 char ** __restrict __endptr, int __base) __attribute__ ((__nothrow__));
1032 extern intmax_t wcstoimax (__const __gwchar_t *__restrict __nptr,
1033 __gwchar_t **__restrict __endptr, int __base)
1034 __attribute__ ((__nothrow__));
1035 extern uintmax_t wcstoumax (__const __gwchar_t *__restrict __nptr,
1036 __gwchar_t ** __restrict __endptr, int __base)
1037 __attribute__ ((__nothrow__));
1038 __extension__
1039 extern long long int __strtoll_internal (__const char *__restrict __nptr,
1040 char **__restrict __endptr,
1041 int __base, int __group)
1042 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
1043 extern __inline intmax_t
1044 __attribute__ ((__nothrow__)) strtoimax (__const char *__restrict nptr, char **__restrict endptr, int base)
1045 {
1046 return __strtoll_internal (nptr, endptr, base, 0);
1047 }
1048 __extension__
1049 extern unsigned long long int __strtoull_internal (__const char *
1050 __restrict __nptr,
1051 char **
1052 __restrict __endptr,
1053 int __base,
1054 int __group)
1055 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
1056 extern __inline uintmax_t
1057 __attribute__ ((__nothrow__)) strtoumax (__const char *__restrict nptr, char **__restrict endptr, int base)
1058 {
1059 return __strtoull_internal (nptr, endptr, base, 0);
1060 }
1061 __extension__
1062 extern long long int __wcstoll_internal (__const __gwchar_t *
1063 __restrict __nptr,
1064 __gwchar_t **__restrict __endptr,
1065 int __base, int __group)
1066 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
1067 extern __inline intmax_t
1068 __attribute__ ((__nothrow__)) wcstoimax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base)
1069 {
1070 return __wcstoll_internal (nptr, endptr, base, 0);
1071 }
1072 __extension__
1073 extern unsigned long long int __wcstoull_internal (__const __gwchar_t *
1074 __restrict __nptr,
1075 __gwchar_t **
1076 __restrict __endptr,
1077 int __base,
1078 int __group)
1079 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
1080 extern __inline uintmax_t
1081 __attribute__ ((__nothrow__)) wcstoumax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base)
1082 {
1083 return __wcstoull_internal (nptr, endptr, base, 0);
1084 }
1085 typedef int ptrdiff_t;
1086 struct _IO_FILE;
1087 typedef struct _IO_FILE FILE;
1088 typedef struct _IO_FILE __FILE;
1089 typedef struct
1090 {
1091 int __count;
1092 union
1093 {
1094 unsigned int __wch;
1095 char __wchb[4];
1096 } __value;
1097 } __mbstate_t;
1098 typedef struct
1099 {
1100 __off_t __pos;
1101 __mbstate_t __state;
1102 } _G_fpos_t;
1103 typedef struct
1104 {
1105 __off64_t __pos;
1106 __mbstate_t __state;
1107 } _G_fpos64_t;
1108 typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
1109 typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
1110 typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
1111 typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
1112 typedef __builtin_va_list __gnuc_va_list;
1113 struct _IO_jump_t; struct _IO_FILE;
1114 typedef void _IO_lock_t;
1115 struct _IO_marker {
1116 struct _IO_marker *_next;
1117 struct _IO_FILE *_sbuf;
1118 int _pos;
1119 };
1120 enum __codecvt_result
1121 {
1122 __codecvt_ok,
1123 __codecvt_partial,
1124 __codecvt_error,
1125 __codecvt_noconv
1126 };
1127 struct _IO_FILE {
1128 int _flags;
1129 char* _IO_read_ptr;
1130 char* _IO_read_end;
1131 char* _IO_read_base;
1132 char* _IO_write_base;
1133 char* _IO_write_ptr;
1134 char* _IO_write_end;
1135 char* _IO_buf_base;
1136 char* _IO_buf_end;
1137 char *_IO_save_base;
1138 char *_IO_backup_base;
1139 char *_IO_save_end;
1140 struct _IO_marker *_markers;
1141 struct _IO_FILE *_chain;
1142 int _fileno;
1143 int _flags2;
1144 __off_t _old_offset;
1145 unsigned short _cur_column;
1146 signed char _vtable_offset;
1147 char _shortbuf[1];
1148 _IO_lock_t *_lock;
1149 __off64_t _offset;
1150 void *__pad1;
1151 void *__pad2;
1152 void *__pad3;
1153 void *__pad4;
1154 size_t __pad5;
1155 int _mode;
1156 char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
1157 };
1158 typedef struct _IO_FILE _IO_FILE;
1159 struct _IO_FILE_plus;
1160 extern struct _IO_FILE_plus _IO_2_1_stdin_;
1161 extern struct _IO_FILE_plus _IO_2_1_stdout_;
1162 extern struct _IO_FILE_plus _IO_2_1_stderr_;
1163 typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);
1164 typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf,
1165 size_t __n);
1166 typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);
1167 typedef int __io_close_fn (void *__cookie);
1168 typedef __io_read_fn cookie_read_function_t;
1169 typedef __io_write_fn cookie_write_function_t;
1170 typedef __io_seek_fn cookie_seek_function_t;
1171 typedef __io_close_fn cookie_close_function_t;
1172 typedef struct
1173 {
1174 __io_read_fn *read;
1175 __io_write_fn *write;
1176 __io_seek_fn *seek;
1177 __io_close_fn *close;
1178 } _IO_cookie_io_functions_t;
1179 typedef _IO_cookie_io_functions_t cookie_io_functions_t;
1180 struct _IO_cookie_file;
1181 extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write,
1182 void *__cookie, _IO_cookie_io_functions_t __fns);
1183 extern int __underflow (_IO_FILE *);
1184 extern int __uflow (_IO_FILE *);
1185 extern int __overflow (_IO_FILE *, int);
1186 extern int _IO_getc (_IO_FILE *__fp);
1187 extern int _IO_putc (int __c, _IO_FILE *__fp);
1188 extern int _IO_feof (_IO_FILE *__fp) __attribute__ ((__nothrow__));
1189 extern int _IO_ferror (_IO_FILE *__fp) __attribute__ ((__nothrow__));
1190 extern int _IO_peekc_locked (_IO_FILE *__fp);
1191 extern void _IO_flockfile (_IO_FILE *) __attribute__ ((__nothrow__));
1192 extern void _IO_funlockfile (_IO_FILE *) __attribute__ ((__nothrow__));
1193 extern int _IO_ftrylockfile (_IO_FILE *) __attribute__ ((__nothrow__));
1194 extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
1195 __gnuc_va_list, int *__restrict);
1196 extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
1197 __gnuc_va_list);
1198 extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t);
1199 extern size_t _IO_sgetn (_IO_FILE *, void *, size_t);
1200 extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int);
1201 extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int);
1202 extern void _IO_free_backup_area (_IO_FILE *) __attribute__ ((__nothrow__));
1203 typedef __gnuc_va_list va_list;
1204 typedef _G_fpos64_t fpos_t;
1205 typedef _G_fpos64_t fpos64_t;
1206 extern struct _IO_FILE *stdin;
1207 extern struct _IO_FILE *stdout;
1208 extern struct _IO_FILE *stderr;
1209 extern int remove (__const char *__filename) __attribute__ ((__nothrow__));
1210 extern int rename (__const char *__old, __const char *__new) __attribute__ ((__nothrow__));
1211 extern int renameat (int __oldfd, __const char *__old, int __newfd,
1212 __const char *__new) __attribute__ ((__nothrow__));
1213 extern FILE *tmpfile (void) __asm__ ("" "tmpfile64") ;
1214 extern FILE *tmpfile64 (void) ;
1215 extern char *tmpnam (char *__s) __attribute__ ((__nothrow__)) ;
1216 extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__)) ;
1217 extern char *tempnam (__const char *__dir, __const char *__pfx)
1218 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ;
1219 extern int fclose (FILE *__stream);
1220 extern int fflush (FILE *__stream);
1221 extern int fflush_unlocked (FILE *__stream);
1222 extern int fcloseall (void);
1223 extern FILE *fopen (__const char *__restrict __filename, __const char *__restrict __modes) __asm__ ("" "fopen64")
1224 ;
1225 extern FILE *freopen (__const char *__restrict __filename, __const char *__restrict __modes, FILE *__restrict __stream) __asm__ ("" "freopen64")
1226 ;
1227 extern FILE *fopen64 (__const char *__restrict __filename,
1228 __const char *__restrict __modes) ;
1229 extern FILE *freopen64 (__const char *__restrict __filename,
1230 __const char *__restrict __modes,
1231 FILE *__restrict __stream) ;
1232 extern FILE *fdopen (int __fd, __const char *__modes) __attribute__ ((__nothrow__)) ;
1233 extern FILE *fopencookie (void *__restrict __magic_cookie,
1234 __const char *__restrict __modes,
1235 _IO_cookie_io_functions_t __io_funcs) __attribute__ ((__nothrow__)) ;
1236 extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes)
1237 __attribute__ ((__nothrow__)) ;
1238 extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__)) ;
1239 extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__));
1240 extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
1241 int __modes, size_t __n) __attribute__ ((__nothrow__));
1242 extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
1243 size_t __size) __attribute__ ((__nothrow__));
1244 extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__));
1245 extern int fprintf (FILE *__restrict __stream,
1246 __const char *__restrict __format, ...);
1247 extern int printf (__const char *__restrict __format, ...);
1248 extern int sprintf (char *__restrict __s,
1249 __const char *__restrict __format, ...) __attribute__ ((__nothrow__));
1250 extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
1251 __gnuc_va_list __arg);
1252 extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg);
1253 extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
1254 __gnuc_va_list __arg) __attribute__ ((__nothrow__));
1255 extern int snprintf (char *__restrict __s, size_t __maxlen,
1256 __const char *__restrict __format, ...)
1257 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));
1258 extern int vsnprintf (char *__restrict __s, size_t __maxlen,
1259 __const char *__restrict __format, __gnuc_va_list __arg)
1260 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0)));
1261 extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f,
1262 __gnuc_va_list __arg)
1263 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 0))) ;
1264 extern int __asprintf (char **__restrict __ptr,
1265 __const char *__restrict __fmt, ...)
1266 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))) ;
1267 extern int asprintf (char **__restrict __ptr,
1268 __const char *__restrict __fmt, ...)
1269 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))) ;
1270 extern int vdprintf (int __fd, __const char *__restrict __fmt,
1271 __gnuc_va_list __arg)
1272 __attribute__ ((__format__ (__printf__, 2, 0)));
1273 extern int dprintf (int __fd, __const char *__restrict __fmt, ...)
1274 __attribute__ ((__format__ (__printf__, 2, 3)));
1275 extern int fscanf (FILE *__restrict __stream,
1276 __const char *__restrict __format, ...) ;
1277 extern int scanf (__const char *__restrict __format, ...) ;
1278 extern int sscanf (__const char *__restrict __s,
1279 __const char *__restrict __format, ...) __attribute__ ((__nothrow__));
1280 extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format,
1281 __gnuc_va_list __arg)
1282 __attribute__ ((__format__ (__scanf__, 2, 0))) ;
1283 extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg)
1284 __attribute__ ((__format__ (__scanf__, 1, 0))) ;
1285 extern int vsscanf (__const char *__restrict __s,
1286 __const char *__restrict __format, __gnuc_va_list __arg)
1287 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
1288 extern int fgetc (FILE *__stream);
1289 extern int getc (FILE *__stream);
1290 extern int getchar (void);
1291 extern int getc_unlocked (FILE *__stream);
1292 extern int getchar_unlocked (void);
1293 extern int fgetc_unlocked (FILE *__stream);
1294 extern int fputc (int __c, FILE *__stream);
1295 extern int putc (int __c, FILE *__stream);
1296 extern int putchar (int __c);
1297 extern int fputc_unlocked (int __c, FILE *__stream);
1298 extern int putc_unlocked (int __c, FILE *__stream);
1299 extern int putchar_unlocked (int __c);
1300 extern int getw (FILE *__stream);
1301 extern int putw (int __w, FILE *__stream);
1302 extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
1303 ;
1304 extern char *gets (char *__s) ;
1305 extern char *fgets_unlocked (char *__restrict __s, int __n,
1306 FILE *__restrict __stream) ;
1307 extern __ssize_t __getdelim (char **__restrict __lineptr,
1308 size_t *__restrict __n, int __delimiter,
1309 FILE *__restrict __stream) ;
1310 extern __ssize_t getdelim (char **__restrict __lineptr,
1311 size_t *__restrict __n, int __delimiter,
1312 FILE *__restrict __stream) ;
1313 extern __ssize_t getline (char **__restrict __lineptr,
1314 size_t *__restrict __n,
1315 FILE *__restrict __stream) ;
1316 extern int fputs (__const char *__restrict __s, FILE *__restrict __stream);
1317 extern int puts (__const char *__s);
1318 extern int ungetc (int __c, FILE *__stream);
1319 extern size_t fread (void *__restrict __ptr, size_t __size,
1320 size_t __n, FILE *__restrict __stream) ;
1321 extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
1322 size_t __n, FILE *__restrict __s) ;
1323 extern int fputs_unlocked (__const char *__restrict __s,
1324 FILE *__restrict __stream);
1325 extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
1326 size_t __n, FILE *__restrict __stream) ;
1327 extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size,
1328 size_t __n, FILE *__restrict __stream) ;
1329 extern int fseek (FILE *__stream, long int __off, int __whence);
1330 extern long int ftell (FILE *__stream) ;
1331 extern void rewind (FILE *__stream);
1332 extern int fseeko (FILE *__stream, __off64_t __off, int __whence) __asm__ ("" "fseeko64");
1333 extern __off64_t ftello (FILE *__stream) __asm__ ("" "ftello64");
1334 extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos) __asm__ ("" "fgetpos64");
1335 extern int fsetpos (FILE *__stream, __const fpos_t *__pos) __asm__ ("" "fsetpos64");
1336 extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence);
1337 extern __off64_t ftello64 (FILE *__stream) ;
1338 extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos);
1339 extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos);
1340 extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__));
1341 extern int feof (FILE *__stream) __attribute__ ((__nothrow__)) ;
1342 extern int ferror (FILE *__stream) __attribute__ ((__nothrow__)) ;
1343 extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__));
1344 extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ;
1345 extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ;
1346 extern void perror (__const char *__s);
1347 extern int sys_nerr;
1348 extern __const char *__const sys_errlist[];
1349 extern int _sys_nerr;
1350 extern __const char *__const _sys_errlist[];
1351 extern int fileno (FILE *__stream) __attribute__ ((__nothrow__)) ;
1352 extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ;
1353 extern FILE *popen (__const char *__command, __const char *__modes) ;
1354 extern int pclose (FILE *__stream);
1355 extern char *ctermid (char *__s) __attribute__ ((__nothrow__));
1356 extern char *cuserid (char *__s);
1357 struct obstack;
1358 extern int obstack_printf (struct obstack *__restrict __obstack,
1359 __const char *__restrict __format, ...)
1360 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3)));
1361 extern int obstack_vprintf (struct obstack *__restrict __obstack,
1362 __const char *__restrict __format,
1363 __gnuc_va_list __args)
1364 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 0)));
1365 extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__));
1366 extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__)) ;
1367 extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__));
1368 extern __inline int
1369 vprintf (__const char *__restrict __fmt, __gnuc_va_list __arg)
1370 {
1371 return vfprintf (stdout, __fmt, __arg);
1372 }
1373 extern __inline int
1374 getchar (void)
1375 {
1376 return _IO_getc (stdin);
1377 }
1378 extern __inline int
1379 fgetc_unlocked (FILE *__fp)
1380 {
1381 return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
1382 }
1383 extern __inline int
1384 getc_unlocked (FILE *__fp)
1385 {
1386 return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
1387 }
1388 extern __inline int
1389 getchar_unlocked (void)
1390 {
1391 return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
1392 }
1393 extern __inline int
1394 putchar (int __c)
1395 {
1396 return _IO_putc (__c, stdout);
1397 }
1398 extern __inline int
1399 fputc_unlocked (int __c, FILE *__stream)
1400 {
1401 return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
1402 }
1403 extern __inline int
1404 putc_unlocked (int __c, FILE *__stream)
1405 {
1406 return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
1407 }
1408 extern __inline int
1409 putchar_unlocked (int __c)
1410 {
1411 return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
1412 }
1413 extern __inline __ssize_t
1414 getline (char **__lineptr, size_t *__n, FILE *__stream)
1415 {
1416 return __getdelim (__lineptr, __n, '\n', __stream);
1417 }
1418 extern __inline int
1419 __attribute__ ((__nothrow__)) feof_unlocked (FILE *__stream)
1420 {
1421 return (((__stream)->_flags & 0x10) != 0);
1422 }
1423 extern __inline int
1424 __attribute__ ((__nothrow__)) ferror_unlocked (FILE *__stream)
1425 {
1426 return (((__stream)->_flags & 0x20) != 0);
1427 }
1428 void *ruby_xmalloc(size_t);
1429 void *ruby_xmalloc2(size_t,size_t);
1430 void *ruby_xcalloc(size_t,size_t);
1431 void *ruby_xrealloc(void*,size_t);
1432 void *ruby_xrealloc2(void*,size_t,size_t);
1433 void ruby_xfree(void*);
1434 typedef unsigned long VALUE;
1435 typedef unsigned long ID;
1436 VALUE rb_int2inum(long);
1437 VALUE rb_uint2inum(VALUE);
1438 VALUE rb_ll2inum(long long);
1439 VALUE rb_ull2inum(unsigned long long);
1440 enum ruby_special_consts {
1441 RUBY_Qfalse = 0,
1442 RUBY_Qtrue = 2,
1443 RUBY_Qnil = 4,
1444 RUBY_Qundef = 6,
1445 RUBY_IMMEDIATE_MASK = 0x03,
1446 RUBY_FIXNUM_FLAG = 0x01,
1447 RUBY_SYMBOL_FLAG = 0x0e,
1448 RUBY_SPECIAL_SHIFT = 8
1449 };
1450 enum ruby_value_type {
1451 RUBY_T_NONE = 0x00,
1452 RUBY_T_OBJECT = 0x01,
1453 RUBY_T_CLASS = 0x02,
1454 RUBY_T_MODULE = 0x03,
1455 RUBY_T_FLOAT = 0x04,
1456 RUBY_T_STRING = 0x05,
1457 RUBY_T_REGEXP = 0x06,
1458 RUBY_T_ARRAY = 0x07,
1459 RUBY_T_HASH = 0x08,
1460 RUBY_T_STRUCT = 0x09,
1461 RUBY_T_BIGNUM = 0x0a,
1462 RUBY_T_FILE = 0x0b,
1463 RUBY_T_DATA = 0x0c,
1464 RUBY_T_MATCH = 0x0d,
1465 RUBY_T_COMPLEX = 0x0e,
1466 RUBY_T_RATIONAL = 0x0f,
1467 RUBY_T_NIL = 0x11,
1468 RUBY_T_TRUE = 0x12,
1469 RUBY_T_FALSE = 0x13,
1470 RUBY_T_SYMBOL = 0x14,
1471 RUBY_T_FIXNUM = 0x15,
1472 RUBY_T_UNDEF = 0x1b,
1473 RUBY_T_NODE = 0x1c,
1474 RUBY_T_ICLASS = 0x1d,
1475 RUBY_T_ZOMBIE = 0x1e,
1476 RUBY_T_MASK = 0x1f
1477 };
1478 void rb_check_type(VALUE,int);
1479 VALUE rb_str_to_str(VALUE);
1480 VALUE rb_string_value(volatile VALUE*);
1481 char *rb_string_value_ptr(volatile VALUE*);
1482 char *rb_string_value_cstr(volatile VALUE*);
1483 void rb_check_safe_obj(VALUE);
1484 void rb_check_safe_str(VALUE);
1485 VALUE rb_str_export(VALUE);
1486 VALUE rb_str_export_locale(VALUE);
1487 VALUE rb_get_path(VALUE);
1488 VALUE rb_get_path_no_checksafe(VALUE);
1489 void rb_secure(int);
1490 int rb_safe_level(void);
1491 void rb_set_safe_level(int);
1492 void rb_set_safe_level_force(int);
1493 void rb_secure_update(VALUE);
1494 VALUE rb_errinfo(void);
1495 void rb_set_errinfo(VALUE);
1496 long rb_num2long(VALUE);
1497 VALUE rb_num2ulong(VALUE);
1498 static inline long
1499 NUM2LONG(VALUE x)
1500 {
1501 return (((long)(x))&RUBY_FIXNUM_FLAG) ? (((long)x)>>(int)1) : rb_num2long(x);
1502 }
1503 long long rb_num2ll(VALUE);
1504 unsigned long long rb_num2ull(VALUE);
1505 static inline long long
1506 NUM2LL(VALUE x)
1507 {
1508 return (((long)(x))&RUBY_FIXNUM_FLAG) ? (((long)x)>>(int)1) : rb_num2ll(x);
1509 }
1510 double rb_num2dbl(VALUE);
1511 VALUE rb_uint2big(VALUE);
1512 VALUE rb_int2big(long);
1513 static inline VALUE
1514 INT2NUM(int v)
1515 {
1516 if (!(((v) < (2147483647L>>1)+1) && ((v) >= (((long)(-2147483647L - 1L))>>(int)1))))
1517 return rb_int2big(v);
1518 return ((VALUE)(((long)(v))<<1 | RUBY_FIXNUM_FLAG));
1519 }
1520 static inline VALUE
1521 UINT2NUM(unsigned int v)
1522 {
1523 if (!((v) < (2147483647L>>1)+1))
1524 return rb_uint2big(v);
1525 return ((VALUE)(((long)(v))<<1 | RUBY_FIXNUM_FLAG));
1526 }
1527 static inline VALUE
1528 LONG2NUM(long v)
1529 {
1530 if ((((v) < (2147483647L>>1)+1) && ((v) >= (((long)(-2147483647L - 1L))>>(int)1)))) return ((VALUE)(((long)(v))<<1 | RUBY_FIXNUM_FLAG));
1531 return rb_int2big(v);
1532 }
1533 static inline VALUE
1534 ULONG2NUM(unsigned long v)
1535 {
1536 if (((v) < (2147483647L>>1)+1)) return ((VALUE)(((long)(v))<<1 | RUBY_FIXNUM_FLAG));
1537 return rb_uint2big(v);
1538 }
1539 char *rb_str2cstr(VALUE,long*);
1540 VALUE rb_newobj(void);
1541 struct RBasic {
1542 VALUE flags;
1543 VALUE klass;
1544 };
1545 struct RObject {
1546 struct RBasic basic;
1547 union {
1548 struct {
1549 long numiv;
1550 VALUE *ivptr;
1551 struct st_table *iv_index_tbl;
1552 } heap;
1553 VALUE ary[3];
1554 } as;
1555 };
1556 typedef struct {
1557 VALUE super;
1558 struct st_table *iv_tbl;
1559 } rb_classext_t;
1560 struct RClass {
1561 struct RBasic basic;
1562 rb_classext_t *ptr;
1563 struct st_table *m_tbl;
1564 struct st_table *iv_index_tbl;
1565 };
1566 struct RFloat {
1567 struct RBasic basic;
1568 double float_value;
1569 };
1570 struct RString {
1571 struct RBasic basic;
1572 union {
1573 struct {
1574 long len;
1575 char *ptr;
1576 union {
1577 long capa;
1578 VALUE shared;
1579 } aux;
1580 } heap;
1581 char ary[((sizeof(VALUE)*3)/sizeof(char)-1) + 1];
1582 } as;
1583 };
1584 struct RArray {
1585 struct RBasic basic;
1586 union {
1587 struct {
1588 long len;
1589 union {
1590 long capa;
1591 VALUE shared;
1592 } aux;
1593 VALUE *ptr;
1594 } heap;
1595 VALUE ary[3];
1596 } as;
1597 };
1598 struct RRegexp {
1599 struct RBasic basic;
1600 struct re_pattern_buffer *ptr;
1601 VALUE src;
1602 unsigned long usecnt;
1603 };
1604 struct RHash {
1605 struct RBasic basic;
1606 struct st_table *ntbl;
1607 int iter_lev;
1608 VALUE ifnone;
1609 };
1610 struct RFile {
1611 struct RBasic basic;
1612 struct rb_io_t *fptr;
1613 };
1614 struct RRational {
1615 struct RBasic basic;
1616 VALUE num;
1617 VALUE den;
1618 };
1619 struct RComplex {
1620 struct RBasic basic;
1621 VALUE real;
1622 VALUE imag;
1623 };
1624 struct RData {
1625 struct RBasic basic;
1626 void (*dmark)(void*);
1627 void (*dfree)(void*);
1628 void *data;
1629 };
1630 typedef void (*RUBY_DATA_FUNC)(void*);
1631 VALUE rb_data_object_alloc(VALUE,void*,RUBY_DATA_FUNC,RUBY_DATA_FUNC);
1632 struct RStruct {
1633 struct RBasic basic;
1634 union {
1635 struct {
1636 long len;
1637 VALUE *ptr;
1638 } heap;
1639 VALUE ary[3];
1640 } as;
1641 };
1642 struct RBignum {
1643 struct RBasic basic;
1644 union {
1645 struct {
1646 long len;
1647 unsigned int *digits;
1648 } heap;
1649 unsigned int ary[((sizeof(VALUE)*3)/sizeof(unsigned int))];
1650 } as;
1651 };
1652 void rb_obj_infect(VALUE,VALUE);
1653 typedef int ruby_glob_func(const char*,VALUE, void*);
1654 void rb_glob(const char*,void(*)(const char*,VALUE,void*),VALUE);
1655 int ruby_glob(const char*,int,ruby_glob_func*,VALUE);
1656 int ruby_brace_glob(const char*,int,ruby_glob_func*,VALUE);
1657 VALUE rb_define_class(const char*,VALUE);
1658 VALUE rb_define_module(const char*);
1659 VALUE rb_define_class_under(VALUE, const char*, VALUE);
1660 VALUE rb_define_module_under(VALUE, const char*);
1661 void rb_include_module(VALUE,VALUE);
1662 void rb_extend_object(VALUE,VALUE);
1663 struct rb_global_variable;
1664 typedef VALUE rb_gvar_getter_t(ID id, void *data, struct rb_global_variable *gvar);
1665 typedef void rb_gvar_setter_t(VALUE val, ID id, void *data, struct rb_global_variable *gvar);
1666 typedef void rb_gvar_marker_t(VALUE *var);
1667 VALUE rb_gvar_undef_getter(ID id, void *data, struct rb_global_variable *gvar);
1668 void rb_gvar_undef_setter(VALUE val, ID id, void *data, struct rb_global_variable *gvar);
1669 void rb_gvar_undef_marker(VALUE *var);
1670 VALUE rb_gvar_val_getter(ID id, void *data, struct rb_global_variable *gvar);
1671 void rb_gvar_val_setter(VALUE val, ID id, void *data, struct rb_global_variable *gvar);
1672 void rb_gvar_val_marker(VALUE *var);
1673 VALUE rb_gvar_var_getter(ID id, void *data, struct rb_global_variable *gvar);
1674 void rb_gvar_var_setter(VALUE val, ID id, void *data, struct rb_global_variable *gvar);
1675 void rb_gvar_var_marker(VALUE *var);
1676 void rb_gvar_readonly_setter(VALUE val, ID id, void *data, struct rb_global_variable *gvar);
1677 void rb_define_variable(const char*,VALUE*);
1678 void rb_define_virtual_variable(const char*,VALUE(*)(),void(*)());
1679 void rb_define_hooked_variable(const char*,VALUE*,VALUE(*)(),void(*)());
1680 void rb_define_readonly_variable(const char*,VALUE*);
1681 void rb_define_const(VALUE,const char*,VALUE);
1682 void rb_define_global_const(const char*,VALUE);
1683 void rb_define_method(VALUE,const char*,VALUE(*)(),int);
1684 void rb_define_module_function(VALUE,const char*,VALUE(*)(),int);
1685 void rb_define_global_function(const char*,VALUE(*)(),int);
1686 void rb_undef_method(VALUE,const char*);
1687 void rb_define_alias(VALUE,const char*,const char*);
1688 void rb_define_attr(VALUE,const char*,int,int);
1689 void rb_global_variable(VALUE*);
1690 void rb_gc_register_mark_object(VALUE);
1691 void rb_gc_register_address(VALUE*);
1692 void rb_gc_unregister_address(VALUE*);
1693 ID rb_intern(const char*);
1694 ID rb_intern2(const char*, long);
1695 ID rb_intern_str(VALUE str);
1696 const char *rb_id2name(ID);
1697 ID rb_to_id(VALUE);
1698 VALUE rb_id2str(ID);
1699 const char *rb_class2name(VALUE);
1700 const char *rb_obj_classname(VALUE);
1701 void rb_p(VALUE);
1702 VALUE rb_eval_string(const char*);
1703 VALUE rb_eval_string_protect(const char*, int*);
1704 VALUE rb_eval_string_wrap(const char*, int*);
1705 VALUE rb_funcall(VALUE, ID, int, ...);
1706 VALUE rb_funcall2(VALUE, ID, int, const VALUE*);
1707 VALUE rb_funcall3(VALUE, ID, int, const VALUE*);
1708 int rb_scan_args(int, const VALUE*, const char*, ...);
1709 VALUE rb_call_super(int, const VALUE*);
1710 VALUE rb_gv_set(const char*, VALUE);
1711 VALUE rb_gv_get(const char*);
1712 VALUE rb_iv_get(VALUE, const char*);
1713 VALUE rb_iv_set(VALUE, const char*, VALUE);
1714 VALUE rb_equal(VALUE,VALUE);
1715 VALUE *rb_ruby_verbose_ptr(void);
1716 VALUE *rb_ruby_debug_ptr(void);
1717 __attribute__ ((noreturn)) void rb_raise(VALUE, const char*, ...) __attribute__((format(printf, 2, 3)));
1718 __attribute__ ((noreturn)) void rb_fatal(const char*, ...) __attribute__((format(printf, 1, 2)));
1719 __attribute__ ((noreturn)) void rb_bug(const char*, ...) __attribute__((format(printf, 1, 2)));
1720 __attribute__ ((noreturn)) void rb_sys_fail(const char*);
1721 __attribute__ ((noreturn)) void rb_iter_break(void);
1722 __attribute__ ((noreturn)) void rb_exit(int);
1723 __attribute__ ((noreturn)) void rb_notimplement(void);
1724 void rb_warning(const char*, ...) __attribute__((format(printf, 1, 2)));
1725 void rb_compile_warning(const char *, int, const char*, ...) __attribute__((format(printf, 3, 4)));
1726 void rb_sys_warning(const char*, ...) __attribute__((format(printf, 1, 2)));
1727 void rb_warn(const char*, ...) __attribute__((format(printf, 1, 2)));
1728 void rb_compile_warn(const char *, int, const char*, ...) __attribute__((format(printf, 3, 4)));
1729 typedef VALUE rb_block_call_func(VALUE, VALUE, int, VALUE*);
1730 VALUE rb_each(VALUE);
1731 VALUE rb_yield(VALUE);
1732 VALUE rb_yield_values(int n, ...);
1733 VALUE rb_yield_values2(int n, const VALUE *argv);
1734 VALUE rb_yield_splat(VALUE);
1735 int rb_block_given_p(void);
1736 void rb_need_block(void);
1737 VALUE rb_iterate(VALUE(*)(VALUE),VALUE,VALUE(*)(),VALUE);
1738 VALUE rb_block_call(VALUE,ID,int,VALUE*,VALUE(*)(),VALUE);
1739 VALUE rb_rescue(VALUE(*)(),VALUE,VALUE(*)(),VALUE);
1740 VALUE rb_rescue2(VALUE(*)(),VALUE,VALUE(*)(),VALUE,...);
1741 VALUE rb_ensure(VALUE(*)(),VALUE,VALUE(*)(),VALUE);
1742 VALUE rb_catch(const char*,VALUE(*)(),VALUE);
1743 VALUE rb_catch_obj(VALUE,VALUE(*)(),VALUE);
1744 __attribute__ ((noreturn)) void rb_throw(const char*,VALUE);
1745 __attribute__ ((noreturn)) void rb_throw_obj(VALUE,VALUE);
1746 VALUE rb_require(const char*);
1747 void ruby_init_stack(VALUE*);
1748 void ruby_init(void);
1749 void *ruby_options(int, char**);
1750 int ruby_run_node(void *);
1751 extern VALUE rb_mKernel;
1752 extern VALUE rb_mComparable;
1753 extern VALUE rb_mEnumerable;
1754 extern VALUE rb_mErrno;
1755 extern VALUE rb_mFileTest;
1756 extern VALUE rb_mGC;
1757 extern VALUE rb_mMath;
1758 extern VALUE rb_mProcess;
1759 extern VALUE rb_cBasicObject;
1760 extern VALUE rb_cObject;
1761 extern VALUE rb_cArray;
1762 extern VALUE rb_cBignum;
1763 extern VALUE rb_cBinding;
1764 extern VALUE rb_cClass;
1765 extern VALUE rb_cCont;
1766 extern VALUE rb_cDir;
1767 extern VALUE rb_cData;
1768 extern VALUE rb_cFalseClass;
1769 extern VALUE rb_cEncoding;
1770 extern VALUE rb_cEnumerator;
1771 extern VALUE rb_cFile;
1772 extern VALUE rb_cFixnum;
1773 extern VALUE rb_cFloat;
1774 extern VALUE rb_cHash;
1775 extern VALUE rb_cInteger;
1776 extern VALUE rb_cIO;
1777 extern VALUE rb_cMatch;
1778 extern VALUE rb_cMethod;
1779 extern VALUE rb_cModule;
1780 extern VALUE rb_cNameErrorMesg;
1781 extern VALUE rb_cNilClass;
1782 extern VALUE rb_cNumeric;
1783 extern VALUE rb_cProc;
1784 extern VALUE rb_cRange;
1785 extern VALUE rb_cRational;
1786 extern VALUE rb_cComplex;
1787 extern VALUE rb_cRegexp;
1788 extern VALUE rb_cStat;
1789 extern VALUE rb_cString;
1790 extern VALUE rb_cStruct;
1791 extern VALUE rb_cSymbol;
1792 extern VALUE rb_cThread;
1793 extern VALUE rb_cTime;
1794 extern VALUE rb_cTrueClass;
1795 extern VALUE rb_cUnboundMethod;
1796 extern VALUE rb_eException;
1797 extern VALUE rb_eStandardError;
1798 extern VALUE rb_eSystemExit;
1799 extern VALUE rb_eInterrupt;
1800 extern VALUE rb_eSignal;
1801 extern VALUE rb_eFatal;
1802 extern VALUE rb_eArgError;
1803 extern VALUE rb_eEOFError;
1804 extern VALUE rb_eIndexError;
1805 extern VALUE rb_eStopIteration;
1806 extern VALUE rb_eKeyError;
1807 extern VALUE rb_eRangeError;
1808 extern VALUE rb_eIOError;
1809 extern VALUE rb_eRuntimeError;
1810 extern VALUE rb_eSecurityError;
1811 extern VALUE rb_eSystemCallError;
1812 extern VALUE rb_eThreadError;
1813 extern VALUE rb_eTypeError;
1814 extern VALUE rb_eZeroDivError;
1815 extern VALUE rb_eNotImpError;
1816 extern VALUE rb_eNoMemError;
1817 extern VALUE rb_eNoMethodError;
1818 extern VALUE rb_eFloatDomainError;
1819 extern VALUE rb_eLocalJumpError;
1820 extern VALUE rb_eSysStackError;
1821 extern VALUE rb_eRegexpError;
1822 extern VALUE rb_eEncodingError;
1823 extern VALUE rb_eEncCompatError;
1824 extern VALUE rb_eScriptError;
1825 extern VALUE rb_eNameError;
1826 extern VALUE rb_eSyntaxError;
1827 extern VALUE rb_eLoadError;
1828 extern VALUE rb_stdin, rb_stdout, rb_stderr;
1829 static inline VALUE
1830 rb_class_of(VALUE obj)
1831 {
1832 if (((VALUE)(obj) & RUBY_IMMEDIATE_MASK)) {
1833 if ((((long)(obj))&RUBY_FIXNUM_FLAG)) return rb_cFixnum;
1834 if (obj == ((VALUE)RUBY_Qtrue)) return rb_cTrueClass;
1835 if ((((VALUE)(obj)&~(~(VALUE)0<<RUBY_SPECIAL_SHIFT))==RUBY_SYMBOL_FLAG)) return rb_cSymbol;
1836 }
1837 else if (!(((VALUE)(obj) & ~((VALUE)RUBY_Qnil)) != 0)) {
1838 if (obj == ((VALUE)RUBY_Qnil)) return rb_cNilClass;
1839 if (obj == ((VALUE)RUBY_Qfalse)) return rb_cFalseClass;
1840 }
1841 return ((struct RBasic*)(obj))->klass;
1842 }
1843 static inline int
1844 rb_type(VALUE obj)
1845 {
1846 if (((VALUE)(obj) & RUBY_IMMEDIATE_MASK)) {
1847 if ((((long)(obj))&RUBY_FIXNUM_FLAG)) return RUBY_T_FIXNUM;
1848 if (obj == ((VALUE)RUBY_Qtrue)) return RUBY_T_TRUE;
1849 if ((((VALUE)(obj)&~(~(VALUE)0<<RUBY_SPECIAL_SHIFT))==RUBY_SYMBOL_FLAG)) return RUBY_T_SYMBOL;
1850 if (obj == ((VALUE)RUBY_Qundef)) return RUBY_T_UNDEF;
1851 }
1852 else if (!(((VALUE)(obj) & ~((VALUE)RUBY_Qnil)) != 0)) {
1853 if (obj == ((VALUE)RUBY_Qnil)) return RUBY_T_NIL;
1854 if (obj == ((VALUE)RUBY_Qfalse)) return RUBY_T_FALSE;
1855 }
1856 return (((struct RBasic*)(obj))->flags & RUBY_T_MASK);
1857 }
1858 static inline int
1859 rb_special_const_p(VALUE obj)
1860 {
1861 if ((((VALUE)(obj) & RUBY_IMMEDIATE_MASK) || !(((VALUE)(obj) & ~((VALUE)RUBY_Qnil)) != 0))) return ((VALUE)RUBY_Qtrue);
1862 return ((VALUE)RUBY_Qfalse);
1863 }
1864 struct timezone
1865 {
1866 int tz_minuteswest;
1867 int tz_dsttime;
1868 };
1869 typedef struct timezone *__restrict __timezone_ptr_t;
1870 extern int gettimeofday (struct timeval *__restrict __tv,
1871 __timezone_ptr_t __tz) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1872 extern int settimeofday (__const struct timeval *__tv,
1873 __const struct timezone *__tz)
1874 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1875 extern int adjtime (__const struct timeval *__delta,
1876 struct timeval *__olddelta) __attribute__ ((__nothrow__));
1877 enum __itimer_which
1878 {
1879 ITIMER_REAL = 0,
1880 ITIMER_VIRTUAL = 1,
1881 ITIMER_PROF = 2
1882 };
1883 struct itimerval
1884 {
1885 struct timeval it_interval;
1886 struct timeval it_value;
1887 };
1888 typedef enum __itimer_which __itimer_which_t;
1889 extern int getitimer (__itimer_which_t __which,
1890 struct itimerval *__value) __attribute__ ((__nothrow__));
1891 extern int setitimer (__itimer_which_t __which,
1892 __const struct itimerval *__restrict __new,
1893 struct itimerval *__restrict __old) __attribute__ ((__nothrow__));
1894 extern int utimes (__const char *__file, __const struct timeval __tvp[2])
1895 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1896 extern int lutimes (__const char *__file, __const struct timeval __tvp[2])
1897 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1898 extern int futimes (int __fd, __const struct timeval __tvp[2]) __attribute__ ((__nothrow__));
1899 extern int futimesat (int __fd, __const char *__file,
1900 __const struct timeval __tvp[2]) __attribute__ ((__nothrow__));
1901 extern size_t strlcpy(char *, const char*, size_t);
1902 extern size_t strlcat(char *, const char*, size_t);
1903 typedef unsigned long st_data_t;
1904 typedef struct st_table st_table;
1905 typedef int st_compare_func(st_data_t, st_data_t);
1906 typedef int st_hash_func(st_data_t);
1907 struct st_hash_type {
1908 int (*compare)( );
1909 int (*hash)( );
1910 };
1911 typedef st_data_t st_index_t;
1912 struct st_table {
1913 const struct st_hash_type *type;
1914 st_index_t num_bins;
1915 unsigned int entries_packed : 1;
1916 __extension__
1917 st_index_t num_entries : (sizeof(st_index_t) * 8) - 1;
1918 struct st_table_entry **bins;
1919 struct st_table_entry *head;
1920 };
1921 enum st_retval {ST_CONTINUE, ST_STOP, ST_DELETE, ST_CHECK};
1922 st_table *st_init_table(const struct st_hash_type *);
1923 st_table *st_init_table_with_size(const struct st_hash_type *, int);
1924 st_table *st_init_numtable(void);
1925 st_table *st_init_numtable_with_size(int);
1926 st_table *st_init_strtable(void);
1927 st_table *st_init_strtable_with_size(int);
1928 st_table *st_init_strcasetable(void);
1929 st_table *st_init_strcasetable_with_size(int);
1930 int st_delete(st_table *, st_data_t *, st_data_t *);
1931 int st_delete_safe(st_table *, st_data_t *, st_data_t *, st_data_t);
1932 int st_insert(st_table *, st_data_t, st_data_t);
1933 int st_lookup(st_table *, st_data_t, st_data_t *);
1934 int st_get_key(st_table *, st_data_t, st_data_t *);
1935 int st_foreach(st_table *, int (*)(), st_data_t);
1936 int st_reverse_foreach(st_table *, int (*)(), st_data_t);
1937 void st_add_direct(st_table *, st_data_t, st_data_t);
1938 void st_free_table(st_table *);
1939 void st_cleanup_safe(st_table *, st_data_t);
1940 void st_clear(st_table *);
1941 st_table *st_copy(st_table *);
1942 int st_numcmp(st_data_t, st_data_t);
1943 int st_numhash(st_data_t);
1944 int st_strcasecmp(const char *s1, const char *s2);
1945 int st_strncasecmp(const char *s1, const char *s2, size_t n);
1946 void rb_mem_clear(register VALUE*, register long);
1947 VALUE rb_assoc_new(VALUE, VALUE);
1948 VALUE rb_check_array_type(VALUE);
1949 VALUE rb_ary_new(void);
1950 VALUE rb_ary_new2(long);
1951 VALUE rb_ary_new3(long,...);
1952 VALUE rb_ary_new4(long, const VALUE *);
1953 VALUE rb_ary_tmp_new(long);
1954 void rb_ary_free(VALUE);
1955 VALUE rb_ary_freeze(VALUE);
1956 VALUE rb_ary_aref(int, VALUE*, VALUE);
1957 VALUE rb_ary_subseq(VALUE, long, long);
1958 void rb_ary_store(VALUE, long, VALUE);
1959 VALUE rb_ary_dup(VALUE);
1960 VALUE rb_ary_to_ary(VALUE);
1961 VALUE rb_ary_to_s(VALUE);
1962 VALUE rb_ary_push(VALUE, VALUE);
1963 VALUE rb_ary_pop(VALUE);
1964 VALUE rb_ary_shift(VALUE);
1965 VALUE rb_ary_unshift(VALUE, VALUE);
1966 VALUE rb_ary_entry(VALUE, long);
1967 VALUE rb_ary_each(VALUE);
1968 VALUE rb_ary_join(VALUE, VALUE);
1969 VALUE rb_ary_print_on(VALUE, VALUE);
1970 VALUE rb_ary_reverse(VALUE);
1971 VALUE rb_ary_sort(VALUE);
1972 VALUE rb_ary_sort_bang(VALUE);
1973 VALUE rb_ary_delete(VALUE, VALUE);
1974 VALUE rb_ary_delete_at(VALUE, long);
1975 VALUE rb_ary_clear(VALUE);
1976 VALUE rb_ary_plus(VALUE, VALUE);
1977 VALUE rb_ary_concat(VALUE, VALUE);
1978 VALUE rb_ary_assoc(VALUE, VALUE);
1979 VALUE rb_ary_rassoc(VALUE, VALUE);
1980 VALUE rb_ary_includes(VALUE, VALUE);
1981 VALUE rb_ary_cmp(VALUE, VALUE);
1982 VALUE rb_ary_replace(VALUE copy, VALUE orig);
1983 VALUE rb_get_values_at(VALUE, long, int, VALUE*, VALUE(*)(VALUE,long));
1984 VALUE rb_big_clone(VALUE);
1985 void rb_big_2comp(VALUE);
1986 VALUE rb_big_norm(VALUE);
1987 void rb_big_resize(VALUE big, long len);
1988 VALUE rb_uint2big(VALUE);
1989 VALUE rb_int2big(long);
1990 VALUE rb_uint2inum(VALUE);
1991 VALUE rb_int2inum(long);
1992 VALUE rb_cstr_to_inum(const char*, int, int);
1993 VALUE rb_str_to_inum(VALUE, int, int);
1994 VALUE rb_cstr2inum(const char*, int);
1995 VALUE rb_str2inum(VALUE, int);
1996 VALUE rb_big2str(VALUE, int);
1997 VALUE rb_big2str0(VALUE, int, int);
1998 long rb_big2long(VALUE);
1999 VALUE rb_big2ulong(VALUE);
2000 VALUE rb_ll2inum(long long);
2001 VALUE rb_ull2inum(unsigned long long);
2002 long long rb_big2ll(VALUE);
2003 unsigned long long rb_big2ull(VALUE);
2004 void rb_quad_pack(char*,VALUE);
2005 VALUE rb_quad_unpack(const char*,int);
2006 int rb_uv_to_utf8(char[6],unsigned long);
2007 VALUE rb_dbl2big(double);
2008 double rb_big2dbl(VALUE);
2009 VALUE rb_big_cmp(VALUE, VALUE);
2010 VALUE rb_big_eq(VALUE, VALUE);
2011 VALUE rb_big_plus(VALUE, VALUE);
2012 VALUE rb_big_minus(VALUE, VALUE);
2013 VALUE rb_big_mul(VALUE, VALUE);
2014 VALUE rb_big_div(VALUE, VALUE);
2015 VALUE rb_big_modulo(VALUE, VALUE);
2016 VALUE rb_big_divmod(VALUE, VALUE);
2017 VALUE rb_big_pow(VALUE, VALUE);
2018 VALUE rb_big_and(VALUE, VALUE);
2019 VALUE rb_big_or(VALUE, VALUE);
2020 VALUE rb_big_xor(VALUE, VALUE);
2021 VALUE rb_big_lshift(VALUE, VALUE);
2022 VALUE rb_big_rshift(VALUE, VALUE);
2023 VALUE rb_rational_raw(VALUE, VALUE);
2024 VALUE rb_rational_new(VALUE, VALUE);
2025 VALUE rb_Rational(VALUE, VALUE);
2026 VALUE rb_complex_raw(VALUE, VALUE);
2027 VALUE rb_complex_new(VALUE, VALUE);
2028 VALUE rb_complex_polar(VALUE, VALUE);
2029 VALUE rb_Complex(VALUE, VALUE);
2030 VALUE rb_class_boot(VALUE);
2031 VALUE rb_class_new(VALUE);
2032 VALUE rb_mod_init_copy(VALUE, VALUE);
2033 VALUE rb_class_init_copy(VALUE, VALUE);
2034 VALUE rb_singleton_class_clone(VALUE);
2035 void rb_singleton_class_attached(VALUE,VALUE);
2036 VALUE rb_make_metaclass(VALUE, VALUE);
2037 void rb_check_inheritable(VALUE);
2038 VALUE rb_class_inherited(VALUE, VALUE);
2039 VALUE rb_define_class_id(ID, VALUE);
2040 VALUE rb_module_new(void);
2041 VALUE rb_define_module_id(ID);
2042 VALUE rb_mod_included_modules(VALUE);
2043 VALUE rb_mod_include_p(VALUE, VALUE);
2044 VALUE rb_mod_ancestors(VALUE);
2045 VALUE rb_class_instance_methods(int, VALUE*, VALUE);
2046 VALUE rb_class_public_instance_methods(int, VALUE*, VALUE);
2047 VALUE rb_class_protected_instance_methods(int, VALUE*, VALUE);
2048 VALUE rb_class_private_instance_methods(int, VALUE*, VALUE);
2049 VALUE rb_obj_singleton_methods(int, VALUE*, VALUE);
2050 void rb_define_method_id(VALUE, ID, VALUE (*)(), int);
2051 void rb_frozen_class_p(VALUE);
2052 void rb_undef(VALUE, ID);
2053 void rb_define_protected_method(VALUE, const char*, VALUE (*)(), int);
2054 void rb_define_private_method(VALUE, const char*, VALUE (*)(), int);
2055 void rb_define_singleton_method(VALUE, const char*, VALUE(*)(), int);
2056 VALUE rb_singleton_class(VALUE);
2057 int rb_cmpint(VALUE, VALUE, VALUE);
2058 __attribute__ ((noreturn)) void rb_cmperr(VALUE, VALUE);
2059 VALUE rb_fiber_new(VALUE (*)(), VALUE);
2060 VALUE rb_fiber_resume(VALUE fib, int argc, VALUE *args);
2061 VALUE rb_fiber_yield(int argc, VALUE *args);
2062 VALUE rb_fiber_current(void);
2063 VALUE rb_fiber_alive_p(VALUE);
2064 VALUE rb_enumeratorize(VALUE, VALUE, int, VALUE *);
2065 VALUE rb_exc_new(VALUE, const char*, long);
2066 VALUE rb_exc_new2(VALUE, const char*);
2067 VALUE rb_exc_new3(VALUE, VALUE);
2068 __attribute__ ((noreturn)) void rb_loaderror(const char*, ...) __attribute__((format(printf, 1, 2)));
2069 __attribute__ ((noreturn)) void rb_name_error(ID, const char*, ...) __attribute__((format(printf, 2, 3)));
2070 __attribute__ ((noreturn)) void rb_invalid_str(const char*, const char*);
2071 void rb_compile_error(const char*, int, const char*, ...) __attribute__((format(printf, 3, 4)));
2072 void rb_compile_error_append(const char*, ...) __attribute__((format(printf, 1, 2)));
2073 __attribute__ ((noreturn)) void rb_load_fail(const char*);
2074 __attribute__ ((noreturn)) void rb_error_frozen(const char*);
2075 void rb_check_frozen(VALUE);
2076 int rb_sourceline(void);
2077 const char *rb_sourcefile(void);
2078 typedef struct {
2079 int maxfd;
2080 fd_set *fdset;
2081 } rb_fdset_t;
2082 void rb_fd_init(volatile rb_fdset_t *);
2083 void rb_fd_term(rb_fdset_t *);
2084 void rb_fd_zero(rb_fdset_t *);
2085 void rb_fd_set(int, rb_fdset_t *);
2086 void rb_fd_clr(int, rb_fdset_t *);
2087 int rb_fd_isset(int, const rb_fdset_t *);
2088 void rb_fd_copy(rb_fdset_t *, const fd_set *, int);
2089 int rb_fd_select(int, rb_fdset_t *, rb_fdset_t *, rb_fdset_t *, struct timeval *);
2090 __attribute__ ((noreturn)) void rb_exc_raise(VALUE);
2091 __attribute__ ((noreturn)) void rb_exc_fatal(VALUE);
2092 VALUE rb_f_exit(int,VALUE*);
2093 VALUE rb_f_abort(int,VALUE*);
2094 void rb_remove_method(VALUE, const char*);
2095 typedef VALUE (*rb_alloc_func_t)(VALUE);
2096 void rb_define_alloc_func(VALUE, rb_alloc_func_t);
2097 void rb_undef_alloc_func(VALUE);
2098 rb_alloc_func_t rb_get_alloc_func(VALUE);
2099 void rb_clear_cache(void);
2100 void rb_clear_cache_by_class(VALUE);
2101 void rb_alias(VALUE, ID, ID);
2102 void rb_attr(VALUE,ID,int,int,int);
2103 int rb_method_boundp(VALUE, ID, int);
2104 int rb_method_basic_definition_p(VALUE, ID);
2105 VALUE rb_eval_cmd(VALUE, VALUE, int);
2106 int rb_obj_respond_to(VALUE, ID, int);
2107 int rb_respond_to(VALUE, ID);
2108 void rb_interrupt(void);
2109 VALUE rb_apply(VALUE, ID, VALUE);
2110 void rb_backtrace(void);
2111 ID rb_frame_this_func(void);
2112 VALUE rb_obj_instance_eval(int, VALUE*, VALUE);
2113 VALUE rb_obj_instance_exec(int, VALUE*, VALUE);
2114 VALUE rb_mod_module_eval(int, VALUE*, VALUE);
2115 VALUE rb_mod_module_exec(int, VALUE*, VALUE);
2116 void rb_load(VALUE, int);
2117 void rb_load_protect(VALUE, int, int*);
2118 __attribute__ ((noreturn)) void rb_jump_tag(int);
2119 int rb_provided(const char*);
2120 int rb_feature_provided(const char *, const char **);
2121 void rb_provide(const char*);
2122 VALUE rb_f_require(VALUE, VALUE);
2123 VALUE rb_require_safe(VALUE, int);
2124 void rb_obj_call_init(VALUE, int, VALUE*);
2125 VALUE rb_class_new_instance(int, VALUE*, VALUE);
2126 VALUE rb_block_proc(void);
2127 VALUE rb_f_lambda(void);
2128 VALUE rb_proc_new(VALUE (*)( ), VALUE);
2129 VALUE rb_proc_call(VALUE, VALUE);
2130 VALUE rb_proc_call_with_block(VALUE, int argc, VALUE *argv, VALUE);
2131 int rb_proc_arity(VALUE);
2132 VALUE rb_binding_new(void);
2133 VALUE rb_obj_method(VALUE, VALUE);
2134 VALUE rb_method_call(int, VALUE*, VALUE);
2135 int rb_mod_method_arity(VALUE, ID);
2136 int rb_obj_method_arity(VALUE, ID);
2137 VALUE rb_protect(VALUE (*)(VALUE), VALUE, int*);
2138 void rb_set_end_proc(void (*)(VALUE), VALUE);
2139 void rb_mark_end_proc(void);
2140 void rb_exec_end_proc(void);
2141 void Init_jump(void);
2142 void ruby_finalize(void);
2143 __attribute__ ((noreturn)) void ruby_stop(int);
2144 int ruby_cleanup(int);
2145 void rb_gc_mark_threads(void);
2146 void rb_thread_schedule(void);
2147 void rb_thread_wait_fd(int);
2148 int rb_thread_fd_writable(int);
2149 void rb_thread_fd_close(int);
2150 int rb_thread_alone(void);
2151 void rb_thread_polling(void);
2152 void rb_thread_sleep(int);
2153 void rb_thread_sleep_forever(void);
2154 VALUE rb_thread_stop(void);
2155 VALUE rb_thread_wakeup(VALUE);
2156 VALUE rb_thread_run(VALUE);
2157 VALUE rb_thread_kill(VALUE);
2158 VALUE rb_thread_create(VALUE (*)(), void*);
2159 void rb_thread_signal_raise(void *, int);
2160 void rb_thread_signal_exit(void *);
2161 int rb_thread_select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
2162 void rb_thread_wait_for(struct timeval);
2163 VALUE rb_thread_current(void);
2164 VALUE rb_thread_main(void);
2165 VALUE rb_thread_local_aref(VALUE, ID);
2166 VALUE rb_thread_local_aset(VALUE, ID, VALUE);
2167 void rb_thread_atfork(void);
2168 void rb_thread_atfork_before_exec(void);
2169 VALUE rb_exec_recursive(VALUE(*)(VALUE, VALUE, int),VALUE,VALUE);
2170 VALUE rb_file_s_expand_path(int, VALUE *);
2171 VALUE rb_file_expand_path(VALUE, VALUE);
2172 VALUE rb_file_s_absolute_path(int, VALUE *);
2173 VALUE rb_file_absolute_path(VALUE, VALUE);
2174 void rb_file_const(const char*, VALUE);
2175 int rb_find_file_ext(VALUE*, const char* const*);
2176 VALUE rb_find_file(VALUE);
2177 char *rb_path_next(const char *);
2178 char *rb_path_skip_prefix(const char *);
2179 char *rb_path_last_separator(const char *);
2180 char *rb_path_end(const char *);
2181 VALUE rb_file_directory_p(VALUE,VALUE);
2182 void ruby_set_stack_size(size_t);
2183 __attribute__ ((noreturn)) void rb_memerror(void);
2184 int ruby_stack_check(void);
2185 size_t ruby_stack_length(VALUE**);
2186 int rb_during_gc(void);
2187 void rb_gc_mark_locations(VALUE*, VALUE*);
2188 void rb_mark_tbl(struct st_table*);
2189 void rb_mark_set(struct st_table*);
2190 void rb_mark_hash(struct st_table*);
2191 void rb_gc_mark_maybe(VALUE);
2192 void rb_gc_mark(VALUE);
2193 void rb_gc_force_recycle(VALUE);
2194 void rb_gc(void);
2195 void rb_gc_copy_finalizer(VALUE,VALUE);
2196 void rb_gc_finalize_deferred(void);
2197 void rb_gc_call_finalizer_at_exit(void);
2198 VALUE rb_gc_enable(void);
2199 VALUE rb_gc_disable(void);
2200 VALUE rb_gc_start(void);
2201 void st_foreach_safe(struct st_table *, int (*)(), st_data_t);
2202 void rb_hash_foreach(VALUE, int (*)(), VALUE);
2203 VALUE rb_hash(VALUE);
2204 VALUE rb_hash_new(void);
2205 VALUE rb_hash_dup(VALUE);
2206 VALUE rb_hash_freeze(VALUE);
2207 VALUE rb_hash_aref(VALUE, VALUE);
2208 VALUE rb_hash_lookup(VALUE, VALUE);
2209 VALUE rb_hash_lookup2(VALUE, VALUE, VALUE);
2210 VALUE rb_hash_fetch(VALUE, VALUE);
2211 VALUE rb_hash_aset(VALUE, VALUE, VALUE);
2212 VALUE rb_hash_delete_if(VALUE);
2213 VALUE rb_hash_delete(VALUE,VALUE);
2214 struct st_table *rb_hash_tbl(VALUE);
2215 int rb_path_check(const char*);
2216 int rb_env_path_tainted(void);
2217 VALUE rb_env_clear(void);
2218 extern VALUE rb_fs;
2219 extern VALUE rb_output_fs;
2220 extern VALUE rb_rs;
2221 extern VALUE rb_default_rs;
2222 extern VALUE rb_output_rs;
2223 VALUE rb_io_write(VALUE, VALUE);
2224 VALUE rb_io_gets(VALUE);
2225 VALUE rb_io_getbyte(VALUE);
2226 VALUE rb_io_ungetc(VALUE, VALUE);
2227 VALUE rb_io_ungetbyte(VALUE, VALUE);
2228 VALUE rb_io_close(VALUE);
2229 VALUE rb_io_flush(VALUE);
2230 VALUE rb_io_eof(VALUE);
2231 VALUE rb_io_binmode(VALUE);
2232 VALUE rb_io_ascii8bit_binmode(VALUE);
2233 VALUE rb_io_addstr(VALUE, VALUE);
2234 VALUE rb_io_printf(int, VALUE*, VALUE);
2235 VALUE rb_io_print(int, VALUE*, VALUE);
2236 VALUE rb_io_puts(int, VALUE*, VALUE);
2237 VALUE rb_io_fdopen(int, int, const char*);
2238 VALUE rb_file_open(const char*, const char*);
2239 VALUE rb_file_open_str(VALUE, const char*);
2240 VALUE rb_gets(void);
2241 void rb_write_error(const char*);
2242 void rb_write_error2(const char*, long);
2243 void rb_close_before_exec(int lowfd, int maxhint, VALUE noclose_fds);
2244 int rb_pipe(int *pipes);
2245 VALUE rb_marshal_dump(VALUE, VALUE);
2246 VALUE rb_marshal_load(VALUE);
2247 void rb_marshal_define_compat(VALUE newclass, VALUE oldclass, VALUE (*dumper)(VALUE), VALUE (*loader)(VALUE, VALUE));
2248 void rb_num_zerodiv(void);
2249 VALUE rb_num_coerce_bin(VALUE, VALUE, ID);
2250 VALUE rb_num_coerce_cmp(VALUE, VALUE, ID);
2251 VALUE rb_num_coerce_relop(VALUE, VALUE, ID);
2252 VALUE rb_float_new(double);
2253 VALUE rb_num2fix(VALUE);
2254 VALUE rb_fix2str(VALUE, int);
2255 VALUE rb_dbl_cmp(double, double);
2256 int rb_eql(VALUE, VALUE);
2257 VALUE rb_any_to_s(VALUE);
2258 VALUE rb_inspect(VALUE);
2259 VALUE rb_obj_is_instance_of(VALUE, VALUE);
2260 VALUE rb_obj_is_kind_of(VALUE, VALUE);
2261 VALUE rb_obj_alloc(VALUE);
2262 VALUE rb_obj_clone(VALUE);
2263 VALUE rb_obj_dup(VALUE);
2264 VALUE rb_obj_init_copy(VALUE,VALUE);
2265 VALUE rb_obj_taint(VALUE);
2266 VALUE rb_obj_tainted(VALUE);
2267 VALUE rb_obj_untaint(VALUE);
2268 VALUE rb_obj_freeze(VALUE);
2269 VALUE rb_obj_frozen_p(VALUE);
2270 VALUE rb_obj_id(VALUE);
2271 VALUE rb_obj_class(VALUE);
2272 VALUE rb_class_real(VALUE);
2273 VALUE rb_class_inherited_p(VALUE, VALUE);
2274 VALUE rb_convert_type(VALUE,int,const char*,const char*);
2275 VALUE rb_check_convert_type(VALUE,int,const char*,const char*);
2276 VALUE rb_check_to_integer(VALUE, const char *);
2277 VALUE rb_to_int(VALUE);
2278 VALUE rb_Integer(VALUE);
2279 VALUE rb_Float(VALUE);
2280 VALUE rb_String(VALUE);
2281 VALUE rb_Array(VALUE);
2282 double rb_cstr_to_dbl(const char*, int);
2283 double rb_str_to_dbl(VALUE, int);
2284 extern int ruby_sourceline;
2285 extern char *ruby_sourcefile;
2286 ID rb_id_attrset(ID);
2287 void rb_gc_mark_parser(void);
2288 int rb_is_const_id(ID);
2289 int rb_is_instance_id(ID);
2290 int rb_is_class_id(ID);
2291 int rb_is_local_id(ID);
2292 int rb_is_junk_id(ID);
2293 int rb_symname_p(const char*);
2294 int rb_sym_interned_p(VALUE);
2295 void rb_gc_mark_symbols(void);
2296 VALUE rb_backref_get(void);
2297 void rb_backref_set(VALUE);
2298 VALUE rb_lastline_get(void);
2299 void rb_lastline_set(VALUE);
2300 VALUE rb_sym_all_symbols(void);
2301 void rb_last_status_set(int status, pid_t pid);
2302 VALUE rb_last_status_get(void);
2303 struct rb_exec_arg {
2304 int argc;
2305 VALUE *argv;
2306 const char *prog;
2307 VALUE options;
2308 VALUE redirect_fds;
2309 };
2310 int rb_proc_exec_n(int, VALUE*, const char*);
2311 int rb_proc_exec(const char*);
2312 VALUE rb_exec_arg_init(int argc, VALUE *argv, int accept_shell, struct rb_exec_arg *e);
2313 int rb_exec_arg_addopt(struct rb_exec_arg *e, VALUE key, VALUE val);
2314 void rb_exec_arg_fixup(struct rb_exec_arg *e);
2315 int rb_run_exec_options(const struct rb_exec_arg *e, struct rb_exec_arg *s);
2316 int rb_exec(const struct rb_exec_arg*);
2317 pid_t rb_fork(int*, int (*)(void*), void*, VALUE);
2318 VALUE rb_f_exec(int,VALUE*);
2319 pid_t rb_waitpid(pid_t pid, int *status, int flags);
2320 void rb_syswait(pid_t pid);
2321 pid_t rb_spawn(int, VALUE*);
2322 VALUE rb_proc_times(VALUE);
2323 VALUE rb_detach_process(pid_t pid);
2324 VALUE rb_range_new(VALUE, VALUE, int);
2325 VALUE rb_range_beg_len(VALUE, long*, long*, long, int);
2326 unsigned long rb_genrand_int32(void);
2327 double rb_genrand_real(void);
2328 void rb_reset_random_seed(void);
2329 int rb_memcicmp(const void*,const void*,long);
2330 void rb_match_busy(VALUE);
2331 VALUE rb_reg_nth_defined(int, VALUE);
2332 VALUE rb_reg_nth_match(int, VALUE);
2333 VALUE rb_reg_last_match(VALUE);
2334 VALUE rb_reg_match_pre(VALUE);
2335 VALUE rb_reg_match_post(VALUE);
2336 VALUE rb_reg_match_last(VALUE);
2337 VALUE rb_reg_new_str(VALUE, int);
2338 VALUE rb_reg_new(const char *, long, int);
2339 VALUE rb_reg_match(VALUE, VALUE);
2340 VALUE rb_reg_match2(VALUE);
2341 int rb_reg_options(VALUE);
2342 void rb_set_kcode(const char*);
2343 const char* rb_get_kcode(void);
2344 extern VALUE rb_argv0;
2345 VALUE rb_get_argv(void);
2346 void *rb_load_file(const char*);
2347 void ruby_script(const char*);
2348 void ruby_prog_init(void);
2349 void ruby_set_argv(int, char**);
2350 void *ruby_process_options(int, char**);
2351 void ruby_init_loadpath(void);
2352 void ruby_incpush(const char*);
2353 VALUE rb_f_kill(int, VALUE*);
2354 void rb_gc_mark_trap_list(void);
2355 void (*ruby_posix_signal(int, void (*)(int)))(int);
2356 void ruby_sig_finalize(void);
2357 void rb_trap_exit(void);
2358 void rb_trap_exec(void);
2359 const char *ruby_signal_name(int);
2360 void ruby_default_signal(int);
2361 VALUE rb_f_sprintf(int, const VALUE*);
2362 VALUE rb_sprintf(const char*, ...) __attribute__((format(printf, 1, 2)));
2363 VALUE rb_vsprintf(const char*, va_list);
2364 VALUE rb_str_catf(VALUE, const char*, ...) __attribute__((format(printf, 2, 3)));
2365 VALUE rb_str_vcatf(VALUE, const char*, va_list);
2366 VALUE rb_str_format(int, const VALUE *, VALUE);
2367 VALUE rb_str_new(const char*, long);
2368 VALUE rb_str_new_cstr(const char*);
2369 VALUE rb_str_new2(const char*);
2370 VALUE rb_str_new_shared(VALUE);
2371 VALUE rb_str_new3(VALUE);
2372 VALUE rb_str_new_frozen(VALUE);
2373 VALUE rb_str_new4(VALUE);
2374 VALUE rb_str_new_with_class(VALUE, const char*, long);
2375 VALUE rb_str_new5(VALUE, const char*, long);
2376 VALUE rb_tainted_str_new_cstr(const char*);
2377 VALUE rb_tainted_str_new(const char*, long);
2378 VALUE rb_tainted_str_new2(const char*);
2379 VALUE rb_external_str_new(const char*, long);
2380 VALUE rb_external_str_new_cstr(const char*);
2381 VALUE rb_locale_str_new(const char*, long);
2382 VALUE rb_locale_str_new_cstr(const char*);
2383 VALUE rb_str_buf_new(long);
2384 VALUE rb_str_buf_new_cstr(const char*);
2385 VALUE rb_str_buf_new2(const char*);
2386 VALUE rb_str_tmp_new(long);
2387 VALUE rb_usascii_str_new(const char*, long);
2388 VALUE rb_usascii_str_new_cstr(const char*);
2389 VALUE rb_usascii_str_new2(const char*);
2390 void rb_str_free(VALUE);
2391 void rb_str_shared_replace(VALUE, VALUE);
2392 VALUE rb_str_buf_append(VALUE, VALUE);
2393 VALUE rb_str_buf_cat(VALUE, const char*, long);
2394 VALUE rb_str_buf_cat2(VALUE, const char*);
2395 VALUE rb_str_buf_cat_ascii(VALUE, const char*);
2396 VALUE rb_obj_as_string(VALUE);
2397 VALUE rb_check_string_type(VALUE);
2398 VALUE rb_str_dup(VALUE);
2399 VALUE rb_str_locktmp(VALUE);
2400 VALUE rb_str_unlocktmp(VALUE);
2401 VALUE rb_str_dup_frozen(VALUE);
2402 VALUE rb_str_plus(VALUE, VALUE);
2403 VALUE rb_str_times(VALUE, VALUE);
2404 long rb_str_sublen(VALUE, long);
2405 VALUE rb_str_substr(VALUE, long, long);
2406 VALUE rb_str_subseq(VALUE, long, long);
2407 void rb_str_modify(VALUE);
2408 VALUE rb_str_freeze(VALUE);
2409 void rb_str_set_len(VALUE, long);
2410 VALUE rb_str_resize(VALUE, long);
2411 VALUE rb_str_cat(VALUE, const char*, long);
2412 VALUE rb_str_cat2(VALUE, const char*);
2413 VALUE rb_str_append(VALUE, VALUE);
2414 VALUE rb_str_concat(VALUE, VALUE);
2415 int rb_memhash(const void *ptr, long len);
2416 int rb_str_hash(VALUE);
2417 int rb_str_hash_cmp(VALUE,VALUE);
2418 int rb_str_comparable(VALUE, VALUE);
2419 int rb_str_cmp(VALUE, VALUE);
2420 VALUE rb_str_equal(VALUE str1, VALUE str2);
2421 VALUE rb_str_drop_bytes(VALUE, long);
2422 void rb_str_update(VALUE, long, long, VALUE);
2423 VALUE rb_str_inspect(VALUE);
2424 VALUE rb_str_dump(VALUE);
2425 VALUE rb_str_split(VALUE, const char*);
2426 void rb_str_associate(VALUE, VALUE);
2427 VALUE rb_str_associated(VALUE);
2428 void rb_str_setter(VALUE, ID, VALUE*);
2429 VALUE rb_str_intern(VALUE);
2430 VALUE rb_sym_to_s(VALUE);
2431 VALUE rb_str_length(VALUE);
2432 size_t rb_str_capacity(VALUE);
2433 VALUE rb_struct_new(VALUE, ...);
2434 VALUE rb_struct_define(const char*, ...);
2435 VALUE rb_struct_alloc(VALUE, VALUE);
2436 VALUE rb_struct_initialize(VALUE, VALUE);
2437 VALUE rb_struct_aref(VALUE, VALUE);
2438 VALUE rb_struct_aset(VALUE, VALUE, VALUE);
2439 VALUE rb_struct_getmember(VALUE, ID);
2440 VALUE rb_struct_iv_get(VALUE, const char*);
2441 VALUE rb_struct_s_members(VALUE);
2442 VALUE rb_struct_members(VALUE);
2443 VALUE rb_struct_alloc_noinit(VALUE);
2444 VALUE rb_struct_define_without_accessor(const char *, VALUE, rb_alloc_func_t, ...);
2445 typedef void rb_unblock_function_t(void *);
2446 typedef VALUE rb_blocking_function_t(void *);
2447 void rb_thread_check_ints(void);
2448 int rb_thread_interrupted(VALUE thval);
2449 VALUE rb_thread_blocking_region(rb_blocking_function_t *func, void *data1,
2450 rb_unblock_function_t *ubf, void *data2);
2451 VALUE rb_mutex_new(void);
2452 VALUE rb_mutex_locked_p(VALUE mutex);
2453 VALUE rb_mutex_try_lock(VALUE mutex);
2454 VALUE rb_mutex_lock(VALUE mutex);
2455 VALUE rb_mutex_unlock(VALUE mutex);
2456 VALUE rb_mutex_sleep(VALUE self, VALUE timeout);
2457 VALUE rb_mutex_synchronize(VALUE mutex, VALUE (*func)(VALUE arg), VALUE arg);
2458 VALUE rb_barrier_new(void);
2459 VALUE rb_barrier_wait(VALUE self);
2460 VALUE rb_barrier_release(VALUE self);
2461 VALUE rb_barrier_destroy(VALUE self);
2462 VALUE rb_time_new(time_t, long);
2463 VALUE rb_time_nano_new(time_t, long);
2464 VALUE rb_mod_name(VALUE);
2465 VALUE rb_class_path(VALUE);
2466 void rb_set_class_path(VALUE, VALUE, const char*);
2467 VALUE rb_path2class(const char*);
2468 void rb_name_class(VALUE, ID);
2469 VALUE rb_class_name(VALUE);
2470 void rb_autoload(VALUE, ID, const char*);
2471 VALUE rb_autoload_load(VALUE, ID);
2472 VALUE rb_autoload_p(VALUE, ID);
2473 void rb_gc_mark_global_tbl(void);
2474 VALUE rb_f_trace_var(int, VALUE*);
2475 VALUE rb_f_untrace_var(int, VALUE*);
2476 VALUE rb_f_global_variables(void);
2477 void rb_alias_variable(ID, ID);
2478 struct st_table* rb_generic_ivar_table(VALUE);
2479 void rb_copy_generic_ivar(VALUE,VALUE);
2480 void rb_mark_generic_ivar(VALUE);
2481 void rb_mark_generic_ivar_tbl(void);
2482 void rb_free_generic_ivar(VALUE);
2483 VALUE rb_ivar_get(VALUE, ID);
2484 VALUE rb_ivar_set(VALUE, ID, VALUE);
2485 VALUE rb_ivar_defined(VALUE, ID);
2486 void rb_ivar_foreach(VALUE, int (*)(), st_data_t);
2487 VALUE rb_iv_set(VALUE, const char*, VALUE);
2488 VALUE rb_iv_get(VALUE, const char*);
2489 VALUE rb_attr_get(VALUE, ID);
2490 VALUE rb_obj_instance_variables(VALUE);
2491 VALUE rb_obj_remove_instance_variable(VALUE, VALUE);
2492 void *rb_mod_const_at(VALUE, void*);
2493 void *rb_mod_const_of(VALUE, void*);
2494 VALUE rb_const_list(void*);
2495 VALUE rb_mod_constants(int, VALUE *, VALUE);
2496 VALUE rb_mod_remove_const(VALUE, VALUE);
2497 int rb_const_defined(VALUE, ID);
2498 int rb_const_defined_at(VALUE, ID);
2499 int rb_const_defined_from(VALUE, ID);
2500 VALUE rb_const_get(VALUE, ID);
2501 VALUE rb_const_get_at(VALUE, ID);
2502 VALUE rb_const_get_from(VALUE, ID);
2503 void rb_const_set(VALUE, ID, VALUE);
2504 VALUE rb_mod_const_missing(VALUE,VALUE);
2505 VALUE rb_cvar_defined(VALUE, ID);
2506 void rb_cvar_set(VALUE, ID, VALUE);
2507 VALUE rb_cvar_get(VALUE, ID);
2508 void rb_cv_set(VALUE, const char*, VALUE);
2509 VALUE rb_cv_get(VALUE, const char*);
2510 void rb_define_class_variable(VALUE, const char*, VALUE);
2511 VALUE rb_mod_class_variables(VALUE);
2512 VALUE rb_mod_remove_cvar(VALUE, VALUE);
2513 void ruby_show_version(void);
2514 void ruby_show_copyright(void);
2515 ID rb_frame_callee(void);
2516 VALUE rb_str_succ(VALUE);
2517 VALUE rb_time_succ(VALUE);
2518 void rb_frame_pop(void);
2519 int rb_frame_method_id_and_class(ID *idp, VALUE *klassp);
2520 void ruby_sysinit(int *, char ***);
2521 int ruby_native_thread_p(void);
2522 typedef unsigned int rb_event_flag_t;
2523 typedef void (*rb_event_hook_func_t)(rb_event_flag_t, VALUE data, VALUE, ID, VALUE klass);
2524 typedef struct rb_event_hook_struct {
2525 rb_event_flag_t flag;
2526 rb_event_hook_func_t func;
2527 VALUE data;
2528 struct rb_event_hook_struct *next;
2529 } rb_event_hook_t;
2530 void rb_add_event_hook(rb_event_hook_func_t func, rb_event_flag_t events,
2531 VALUE data);
2532 int rb_remove_event_hook(rb_event_hook_func_t func);
2533 int rb_isalnum(int c);
2534 int rb_isalpha(int c);
2535 int rb_isblank(int c);
2536 int rb_iscntrl(int c);
2537 int rb_isdigit(int c);
2538 int rb_isgraph(int c);
2539 int rb_islower(int c);
2540 int rb_isprint(int c);
2541 int rb_ispunct(int c);
2542 int rb_isspace(int c);
2543 int rb_isupper(int c);
2544 int rb_isxdigit(int c);
2545 int rb_tolower(int c);
2546 int rb_toupper(int c);
2547 int st_strcasecmp(const char *s1, const char *s2);
2548 int st_strncasecmp(const char *s1, const char *s2, size_t n);
2549 unsigned long ruby_strtoul(const char *str, char **endptr, int base);
2550 typedef unsigned char OnigUChar;
2551 typedef unsigned int OnigCodePoint;
2552 typedef unsigned int OnigCtype;
2553 typedef unsigned int OnigDistance;
2554 typedef unsigned int OnigCaseFoldType;
2555 extern OnigCaseFoldType OnigDefaultCaseFoldFlag;
2556 typedef struct {
2557 int byte_len;
2558 int code_len;
2559 OnigCodePoint code[3];
2560 } OnigCaseFoldCodeItem;
2561 typedef struct {
2562 OnigCodePoint esc;
2563 OnigCodePoint anychar;
2564 OnigCodePoint anytime;
2565 OnigCodePoint zero_or_one_time;
2566 OnigCodePoint one_or_more_time;
2567 OnigCodePoint anychar_anytime;
2568 } OnigMetaCharTableType;
2569 typedef int (*OnigApplyAllCaseFoldFunc)(OnigCodePoint from, OnigCodePoint* to, int to_len, void* arg);
2570 typedef struct OnigEncodingTypeST {
2571 int (*precise_mbc_enc_len)(const OnigUChar* p,const OnigUChar* e, struct OnigEncodingTypeST* enc);
2572 const char* name;
2573 int max_enc_len;
2574 int min_enc_len;
2575 int (*is_mbc_newline)(const OnigUChar* p, const OnigUChar* end, struct OnigEncodingTypeST* enc);
2576 OnigCodePoint (*mbc_to_code)(const OnigUChar* p, const OnigUChar* end, struct OnigEncodingTypeST* enc);
2577 int (*code_to_mbclen)(OnigCodePoint code, struct OnigEncodingTypeST* enc);
2578 int (*code_to_mbc)(OnigCodePoint code, OnigUChar *buf, struct OnigEncodingTypeST* enc);
2579 int (*mbc_case_fold)(OnigCaseFoldType flag, const OnigUChar** pp, const OnigUChar* end, OnigUChar* to, struct OnigEncodingTypeST* enc);
2580 int (*apply_all_case_fold)(OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg, struct OnigEncodingTypeST* enc);
2581 int (*get_case_fold_codes_by_str)(OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem acs[], struct OnigEncodingTypeST* enc);
2582 int (*property_name_to_ctype)(struct OnigEncodingTypeST* enc, OnigUChar* p, OnigUChar* end);
2583 int (*is_code_ctype)(OnigCodePoint code, OnigCtype ctype, struct OnigEncodingTypeST* enc);
2584 int (*get_ctype_code_range)(OnigCtype ctype, OnigCodePoint* sb_out, const OnigCodePoint* ranges[], struct OnigEncodingTypeST* enc);
2585 OnigUChar* (*left_adjust_char_head)(const OnigUChar* start, const OnigUChar* p, const OnigUChar* end, struct OnigEncodingTypeST* enc);
2586 int (*is_allowed_reverse_match)(const OnigUChar* p, const OnigUChar* end, struct OnigEncodingTypeST* enc);
2587 int ruby_encoding_index;
2588 } OnigEncodingType;
2589 typedef OnigEncodingType* OnigEncoding;
2590 extern OnigEncodingType OnigEncodingASCII;
2591 extern
2592 int onigenc_mbclen_approximate (const OnigUChar* p,const OnigUChar* e, struct OnigEncodingTypeST* enc);
2593 extern
2594 OnigUChar* onigenc_step_back (OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end, int n);
2595 extern
2596 int onigenc_init (void);
2597 extern
2598 int onigenc_set_default_encoding (OnigEncoding enc);
2599 extern
2600 OnigEncoding onigenc_get_default_encoding (void);
2601 extern
2602 void onigenc_set_default_caseconv_table (const OnigUChar* table);
2603 extern
2604 OnigUChar* onigenc_get_right_adjust_char_head_with_prev (OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end, const OnigUChar** prev);
2605 extern
2606 OnigUChar* onigenc_get_prev_char_head (OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end);
2607 extern
2608 OnigUChar* onigenc_get_left_adjust_char_head (OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end);
2609 extern
2610 OnigUChar* onigenc_get_right_adjust_char_head (OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end);
2611 extern
2612 int onigenc_strlen (OnigEncoding enc, const OnigUChar* p, const OnigUChar* end);
2613 extern
2614 int onigenc_strlen_null (OnigEncoding enc, const OnigUChar* p);
2615 extern
2616 int onigenc_str_bytelen_null (OnigEncoding enc, const OnigUChar* p);
2617 typedef unsigned int OnigOptionType;
2618 typedef struct {
2619 unsigned int op;
2620 unsigned int op2;
2621 unsigned int behavior;
2622 OnigOptionType options;
2623 OnigMetaCharTableType meta_char_table;
2624 } OnigSyntaxType;
2625 extern const OnigSyntaxType OnigSyntaxASIS;
2626 extern const OnigSyntaxType OnigSyntaxPosixBasic;
2627 extern const OnigSyntaxType OnigSyntaxPosixExtended;
2628 extern const OnigSyntaxType OnigSyntaxEmacs;
2629 extern const OnigSyntaxType OnigSyntaxGrep;
2630 extern const OnigSyntaxType OnigSyntaxGnuRegex;
2631 extern const OnigSyntaxType OnigSyntaxJava;
2632 extern const OnigSyntaxType OnigSyntaxPerl;
2633 extern const OnigSyntaxType OnigSyntaxPerl_NG;
2634 extern const OnigSyntaxType OnigSyntaxRuby;
2635 extern const OnigSyntaxType* OnigDefaultSyntax;
2636 typedef struct OnigCaptureTreeNodeStruct {
2637 int group;
2638 int beg;
2639 int end;
2640 int allocated;
2641 int num_childs;
2642 struct OnigCaptureTreeNodeStruct** childs;
2643 } OnigCaptureTreeNode;
2644 struct re_registers {
2645 int allocated;
2646 int num_regs;
2647 int* beg;
2648 int* end;
2649 OnigCaptureTreeNode* history_root;
2650 };
2651 typedef struct re_registers OnigRegion;
2652 typedef struct {
2653 OnigEncoding enc;
2654 OnigUChar* par;
2655 OnigUChar* par_end;
2656 } OnigErrorInfo;
2657 typedef struct {
2658 int lower;
2659 int upper;
2660 } OnigRepeatRange;
2661 typedef void (*OnigWarnFunc) (const char* s);
2662 extern void onig_null_warn (const char* s);
2663 typedef struct re_pattern_buffer {
2664 unsigned char* p;
2665 unsigned int used;
2666 unsigned int alloc;
2667 int state;
2668 int num_mem;
2669 int num_repeat;
2670 int num_null_check;
2671 int num_comb_exp_check;
2672 int num_call;
2673 unsigned int capture_history;
2674 unsigned int bt_mem_start;
2675 unsigned int bt_mem_end;
2676 int stack_pop_level;
2677 int repeat_range_alloc;
2678 OnigRepeatRange* repeat_range;
2679 OnigEncoding enc;
2680 OnigOptionType options;
2681 const OnigSyntaxType* syntax;
2682 OnigCaseFoldType case_fold_flag;
2683 void* name_table;
2684 int optimize;
2685 int threshold_len;
2686 int anchor;
2687 OnigDistance anchor_dmin;
2688 OnigDistance anchor_dmax;
2689 int sub_anchor;
2690 unsigned char *exact;
2691 unsigned char *exact_end;
2692 unsigned char map[256];
2693 int *int_map;
2694 int *int_map_backward;
2695 OnigDistance dmin;
2696 OnigDistance dmax;
2697 struct re_pattern_buffer* chain;
2698 } OnigRegexType;
2699 typedef OnigRegexType* OnigRegex;
2700 typedef OnigRegexType regex_t;
2701 typedef struct {
2702 int num_of_elements;
2703 OnigEncoding pattern_enc;
2704 OnigEncoding target_enc;
2705 OnigSyntaxType* syntax;
2706 OnigOptionType option;
2707 OnigCaseFoldType case_fold_flag;
2708 } OnigCompileInfo;
2709 extern
2710 int onig_init (void);
2711 extern
2712 int onig_error_code_to_str (OnigUChar* s, int err_code, ...);
2713 extern
2714 void onig_set_warn_func (OnigWarnFunc f);
2715 extern
2716 void onig_set_verb_warn_func (OnigWarnFunc f);
2717 extern
2718 int onig_new (OnigRegex*, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigOptionType option, OnigEncoding enc, const OnigSyntaxType* syntax, OnigErrorInfo* einfo);
2719 extern
2720 int onig_new_deluxe (OnigRegex* reg, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigCompileInfo* ci, OnigErrorInfo* einfo);
2721 extern
2722 void onig_free (OnigRegex);
2723 extern
2724 int onig_recompile (OnigRegex, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigOptionType option, OnigEncoding enc, OnigSyntaxType* syntax, OnigErrorInfo* einfo);
2725 extern
2726 int onig_recompile_deluxe (OnigRegex reg, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigCompileInfo* ci, OnigErrorInfo* einfo);
2727 extern
2728 int onig_search (OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* start, const OnigUChar* range, OnigRegion* region, OnigOptionType option);
2729 extern
2730 int onig_match (OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* at, OnigRegion* region, OnigOptionType option);
2731 extern
2732 OnigRegion* onig_region_new (void);
2733 extern
2734 void onig_region_init (OnigRegion* region);
2735 extern
2736 void onig_region_free (OnigRegion* region, int free_self);
2737 extern
2738 void onig_region_copy (OnigRegion* to, OnigRegion* from);
2739 extern
2740 void onig_region_clear (OnigRegion* region);
2741 extern
2742 int onig_region_resize (OnigRegion* region, int n);
2743 extern
2744 int onig_region_set (OnigRegion* region, int at, int beg, int end);
2745 extern
2746 int onig_name_to_group_numbers (OnigRegex reg, const OnigUChar* name, const OnigUChar* name_end, int** nums);
2747 extern
2748 int onig_name_to_backref_number (OnigRegex reg, const OnigUChar* name, const OnigUChar* name_end, OnigRegion *region);
2749 extern
2750 int onig_foreach_name (OnigRegex reg, int (*func)(const OnigUChar*, const OnigUChar*,int,int*,OnigRegex,void*), void* arg);
2751 extern
2752 int onig_number_of_names (OnigRegex reg);
2753 extern
2754 int onig_number_of_captures (OnigRegex reg);
2755 extern
2756 int onig_number_of_capture_histories (OnigRegex reg);
2757 extern
2758 OnigCaptureTreeNode* onig_get_capture_tree (OnigRegion* region);
2759 extern
2760 int onig_capture_tree_traverse (OnigRegion* region, int at, int(*callback_func)(int,int,int,int,int,void*), void* arg);
2761 extern
2762 int onig_noname_group_capture_is_active (OnigRegex reg);
2763 extern
2764 OnigEncoding onig_get_encoding (OnigRegex reg);
2765 extern
2766 OnigOptionType onig_get_options (OnigRegex reg);
2767 extern
2768 OnigCaseFoldType onig_get_case_fold_flag (OnigRegex reg);
2769 extern
2770 const OnigSyntaxType* onig_get_syntax (OnigRegex reg);
2771 extern
2772 int onig_set_default_syntax (const OnigSyntaxType* syntax);
2773 extern
2774 void onig_copy_syntax (OnigSyntaxType* to, const OnigSyntaxType* from);
2775 extern
2776 unsigned int onig_get_syntax_op (OnigSyntaxType* syntax);
2777 extern
2778 unsigned int onig_get_syntax_op2 (OnigSyntaxType* syntax);
2779 extern
2780 unsigned int onig_get_syntax_behavior (OnigSyntaxType* syntax);
2781 extern
2782 OnigOptionType onig_get_syntax_options (OnigSyntaxType* syntax);
2783 extern
2784 void onig_set_syntax_op (OnigSyntaxType* syntax, unsigned int op);
2785 extern
2786 void onig_set_syntax_op2 (OnigSyntaxType* syntax, unsigned int op2);
2787 extern
2788 void onig_set_syntax_behavior (OnigSyntaxType* syntax, unsigned int behavior);
2789 extern
2790 void onig_set_syntax_options (OnigSyntaxType* syntax, OnigOptionType options);
2791 extern
2792 int onig_set_meta_char (OnigSyntaxType* syntax, unsigned int what, OnigCodePoint code);
2793 extern
2794 void onig_copy_encoding (OnigEncoding to, OnigEncoding from);
2795 extern
2796 OnigCaseFoldType onig_get_default_case_fold_flag (void);
2797 extern
2798 int onig_set_default_case_fold_flag (OnigCaseFoldType case_fold_flag);
2799 extern
2800 unsigned int onig_get_match_stack_limit_size (void);
2801 extern
2802 int onig_set_match_stack_limit_size (unsigned int size);
2803 extern
2804 int onig_end (void);
2805 extern
2806 const char* onig_version (void);
2807 extern
2808 const char* onig_copyright (void);
2809 typedef OnigEncodingType rb_encoding;
2810 int rb_enc_replicate(const char *, rb_encoding *);
2811 int rb_define_dummy_encoding(const char *);
2812 int rb_enc_get_index(VALUE obj);
2813 void rb_enc_set_index(VALUE obj, int encindex);
2814 int rb_enc_find_index(const char *name);
2815 int rb_to_encoding_index(VALUE);
2816 rb_encoding* rb_to_encoding(VALUE);
2817 rb_encoding* rb_enc_get(VALUE);
2818 rb_encoding* rb_enc_compatible(VALUE,VALUE);
2819 rb_encoding* rb_enc_check(VALUE,VALUE);
2820 VALUE rb_enc_associate_index(VALUE, int);
2821 VALUE rb_enc_associate(VALUE, rb_encoding*);
2822 void rb_enc_copy(VALUE dst, VALUE src);
2823 VALUE rb_enc_str_new(const char*, long, rb_encoding*);
2824 VALUE rb_enc_reg_new(const char*, long, rb_encoding*, int);
2825 VALUE rb_enc_sprintf(rb_encoding *, const char*, ...) __attribute__((format(printf, 2, 3)));
2826 VALUE rb_enc_vsprintf(rb_encoding *, const char*, va_list);
2827 long rb_enc_strlen(const char*, const char*, rb_encoding*);
2828 char* rb_enc_nth(const char*, const char*, int, rb_encoding*);
2829 VALUE rb_obj_encoding(VALUE);
2830 VALUE rb_enc_str_buf_cat(VALUE str, const char *ptr, long len, rb_encoding *enc);
2831 VALUE rb_external_str_new_with_enc(const char *ptr, long len, rb_encoding *);
2832 VALUE rb_str_export_to_enc(VALUE, rb_encoding *);
2833 VALUE rb_str_conv_enc(VALUE str, rb_encoding *from, rb_encoding *to);
2834 rb_encoding* rb_enc_from_index(int idx);
2835 rb_encoding * rb_enc_find(const char *name);
2836 int rb_enc_mbclen(const char *p, const char *e, rb_encoding *enc);
2837 int rb_enc_precise_mbclen(const char *p, const char *e, rb_encoding *enc);
2838 int rb_enc_ascget(const char *p, const char *e, int *len, rb_encoding *enc);
2839 unsigned int rb_enc_codepoint(const char *p, const char *e, rb_encoding *enc);
2840 int rb_enc_codelen(int code, rb_encoding *enc);
2841 int rb_enc_casefold(char *to, const char *p, const char *e, rb_encoding *enc);
2842 int rb_enc_toupper(int c, rb_encoding *enc);
2843 int rb_enc_tolower(int c, rb_encoding *enc);
2844 ID rb_intern3(const char*, long, rb_encoding*);
2845 ID rb_interned_id_p(const char *, long, rb_encoding *);
2846 int rb_enc_symname_p(const char*, rb_encoding*);
2847 int rb_enc_str_coderange(VALUE);
2848 long rb_str_coderange_scan_restartable(const char*, const char*, rb_encoding*, int*);
2849 int rb_enc_str_asciionly_p(VALUE);
2850 VALUE rb_enc_from_encoding(rb_encoding *enc);
2851 rb_encoding *rb_ascii8bit_encoding(void);
2852 rb_encoding *rb_utf8_encoding(void);
2853 rb_encoding *rb_usascii_encoding(void);
2854 rb_encoding *rb_locale_encoding(void);
2855 rb_encoding *rb_filesystem_encoding(void);
2856 rb_encoding *rb_default_external_encoding(void);
2857 rb_encoding *rb_default_internal_encoding(void);
2858 int rb_ascii8bit_encindex(void);
2859 int rb_utf8_encindex(void);
2860 int rb_usascii_encindex(void);
2861 VALUE rb_enc_default_external(void);
2862 VALUE rb_enc_default_internal(void);
2863 void rb_enc_set_default_external(VALUE encoding);
2864 void rb_enc_set_default_internal(VALUE encoding);
2865 VALUE rb_locale_charmap(VALUE klass);
2866 long rb_memsearch(const void*,long,const void*,long,rb_encoding*);
2867 extern VALUE rb_cEncoding;
2868 static inline int
2869 rb_enc_dummy_p(rb_encoding *enc)
2870 {
2871 return ((enc)->ruby_encoding_index & (1<<24)) != 0;
2872 }
2873 typedef enum {
2874 econv_invalid_byte_sequence,
2875 econv_undefined_conversion,
2876 econv_destination_buffer_full,
2877 econv_source_buffer_empty,
2878 econv_finished,
2879 econv_after_output,
2880 econv_incomplete_input
2881 } rb_econv_result_t;
2882 typedef struct rb_econv_t rb_econv_t;
2883 VALUE rb_str_encode(VALUE str, VALUE to, int ecflags, VALUE ecopts);
2884 int rb_econv_has_convpath_p(const char* from_encoding, const char* to_encoding);
2885 int rb_econv_prepare_opts(VALUE opthash, VALUE *ecopts);
2886 rb_econv_t *rb_econv_open(const char *source_encoding, const char *destination_encoding, int ecflags);
2887 rb_econv_t *rb_econv_open_opts(const char *source_encoding, const char *destination_encoding, int ecflags, VALUE ecopts);
2888 rb_econv_result_t rb_econv_convert(rb_econv_t *ec,
2889 const unsigned char **source_buffer_ptr, const unsigned char *source_buffer_end,
2890 unsigned char **destination_buffer_ptr, unsigned char *destination_buffer_end,
2891 int flags);
2892 void rb_econv_close(rb_econv_t *ec);
2893 int rb_econv_set_replacement(rb_econv_t *ec, const unsigned char *str, size_t len, const char *encname);
2894 int rb_econv_decorate_at_first(rb_econv_t *ec, const char *decorator_name);
2895 int rb_econv_decorate_at_last(rb_econv_t *ec, const char *decorator_name);
2896 VALUE rb_econv_open_exc(const char *senc, const char *denc, int ecflags);
2897 int rb_econv_insert_output(rb_econv_t *ec,
2898 const unsigned char *str, size_t len, const char *str_encoding);
2899 const char *rb_econv_encoding_to_insert_output(rb_econv_t *ec);
2900 void rb_econv_check_error(rb_econv_t *ec);
2901 VALUE rb_econv_make_exception(rb_econv_t *ec);
2902 int rb_econv_putbackable(rb_econv_t *ec);
2903 void rb_econv_putback(rb_econv_t *ec, unsigned char *p, int n);
2904 const char *rb_econv_asciicompat_encoding(const char *encname);
2905 VALUE rb_econv_str_convert(rb_econv_t *ec, VALUE src, int flags);
2906 VALUE rb_econv_substr_convert(rb_econv_t *ec, VALUE src, long byteoff, long bytesize, int flags);
2907 VALUE rb_econv_str_append(rb_econv_t *ec, VALUE src, VALUE dst, int flags);
2908 VALUE rb_econv_substr_append(rb_econv_t *ec, VALUE src, long byteoff, long bytesize, VALUE dst, int flags);
2909 void rb_econv_binmode(rb_econv_t *ec);
2910 enum node_type {
2911 NODE_METHOD,
2912 NODE_FBODY,
2913 NODE_CFUNC,
2914 NODE_SCOPE,
2915 NODE_BLOCK,
2916 NODE_IF,
2917 NODE_CASE,
2918 NODE_WHEN,
2919 NODE_OPT_N,
2920 NODE_WHILE,
2921 NODE_UNTIL,
2922 NODE_ITER,
2923 NODE_FOR,
2924 NODE_BREAK,
2925 NODE_NEXT,
2926 NODE_REDO,
2927 NODE_RETRY,
2928 NODE_BEGIN,
2929 NODE_RESCUE,
2930 NODE_RESBODY,
2931 NODE_ENSURE,
2932 NODE_AND,
2933 NODE_OR,
2934 NODE_MASGN,
2935 NODE_LASGN,
2936 NODE_DASGN,
2937 NODE_DASGN_CURR,
2938 NODE_GASGN,
2939 NODE_IASGN,
2940 NODE_IASGN2,
2941 NODE_CDECL,
2942 NODE_CVASGN,
2943 NODE_CVDECL,
2944 NODE_OP_ASGN1,
2945 NODE_OP_ASGN2,
2946 NODE_OP_ASGN_AND,
2947 NODE_OP_ASGN_OR,
2948 NODE_CALL,
2949 NODE_FCALL,
2950 NODE_VCALL,
2951 NODE_SUPER,
2952 NODE_ZSUPER,
2953 NODE_ARRAY,
2954 NODE_ZARRAY,
2955 NODE_VALUES,
2956 NODE_HASH,
2957 NODE_RETURN,
2958 NODE_YIELD,
2959 NODE_LVAR,
2960 NODE_DVAR,
2961 NODE_GVAR,
2962 NODE_IVAR,
2963 NODE_CONST,
2964 NODE_CVAR,
2965 NODE_NTH_REF,
2966 NODE_BACK_REF,
2967 NODE_MATCH,
2968 NODE_MATCH2,
2969 NODE_MATCH3,
2970 NODE_LIT,
2971 NODE_STR,
2972 NODE_DSTR,
2973 NODE_XSTR,
2974 NODE_DXSTR,
2975 NODE_EVSTR,
2976 NODE_DREGX,
2977 NODE_DREGX_ONCE,
2978 NODE_ARGS,
2979 NODE_ARGS_AUX,
2980 NODE_OPT_ARG,
2981 NODE_POSTARG,
2982 NODE_ARGSCAT,
2983 NODE_ARGSPUSH,
2984 NODE_SPLAT,
2985 NODE_TO_ARY,
2986 NODE_BLOCK_ARG,
2987 NODE_BLOCK_PASS,
2988 NODE_DEFN,
2989 NODE_DEFS,
2990 NODE_ALIAS,
2991 NODE_VALIAS,
2992 NODE_UNDEF,
2993 NODE_CLASS,
2994 NODE_MODULE,
2995 NODE_SCLASS,
2996 NODE_COLON2,
2997 NODE_COLON3,
2998 NODE_DOT2,
2999 NODE_DOT3,
3000 NODE_FLIP2,
3001 NODE_FLIP3,
3002 NODE_ATTRSET,
3003 NODE_SELF,
3004 NODE_NIL,
3005 NODE_TRUE,
3006 NODE_FALSE,
3007 NODE_ERRINFO,
3008 NODE_DEFINED,
3009 NODE_POSTEXE,
3010 NODE_ALLOCA,
3011 NODE_BMETHOD,
3012 NODE_MEMO,
3013 NODE_IFUNC,
3014 NODE_DSYM,
3015 NODE_ATTRASGN,
3016 NODE_PRELUDE,
3017 NODE_LAMBDA,
3018 NODE_OPTBLOCK,
3019 NODE_LAST
3020 };
3021 typedef struct RNode {
3022 unsigned long flags;
3023 char *nd_file;
3024 union {
3025 struct RNode *node;
3026 ID id;
3027 VALUE value;
3028 VALUE (*cfunc)();
3029 ID *tbl;
3030 } u1;
3031 union {
3032 struct RNode *node;
3033 ID id;
3034 long argc;
3035 VALUE value;
3036 } u2;
3037 union {
3038 struct RNode *node;
3039 ID id;
3040 long state;
3041 struct global_entry *entry;
3042 long cnt;
3043 VALUE value;
3044 } u3;
3045 } NODE;
3046 VALUE rb_parser_new(void);
3047 VALUE rb_parser_end_seen_p(VALUE);
3048 VALUE rb_parser_encoding(VALUE);
3049 NODE *rb_parser_compile_cstr(volatile VALUE, const char*, const char*, int, int);
3050 NODE *rb_parser_compile_string(volatile VALUE, const char*, VALUE, int);
3051 NODE *rb_parser_compile_file(volatile VALUE, const char*, VALUE, int);
3052 NODE *rb_compile_cstr(const char*, const char*, int, int);
3053 NODE *rb_compile_string(const char*, VALUE, int);
3054 NODE *rb_compile_file(const char*, VALUE, int);
3055 void rb_add_method(VALUE, ID, NODE *, int);
3056 NODE *rb_node_newnode(enum node_type,VALUE,VALUE,VALUE);
3057 NODE* rb_method_node(VALUE klass, ID id);
3058 int rb_node_arity(NODE* node);
3059 struct global_entry *rb_global_entry(ID);
3060 VALUE rb_gvar_get(struct global_entry *);
3061 VALUE rb_gvar_set(struct global_entry *, VALUE);
3062 VALUE rb_gvar_defined(struct global_entry *);
3063 typedef union YYSTYPE
3064 {
3065 VALUE val;
3066 NODE *node;
3067 ID id;
3068 int num;
3069 }
3070 YYSTYPE;
3071 enum ruby_method_ids {
3072 idPLUS = '+',
3073 idMINUS = '-',
3074 idMULT = '*',
3075 idDIV = '/',
3076 idMOD = '%',
3077 idLT = '<',
3078 idLTLT = 338,
3079 idLE = 329,
3080 idGT = '>',
3081 idGE = 328,
3082 idEq = 325,
3083 idEqq = 326,
3084 idNeq = 327,
3085 idNot = '!',
3086 idBackquote = '`',
3087 idEqTilde = 332,
3088 idAREF = 336,
3089 idASET = 337,
3090 idLAST_TOKEN = 376 >> 3,
3091 tIntern,
3092 tMethodMissing,
3093 tLength,
3094 tGets,
3095 tSucc,
3096 tEach,
3097 tLambda,
3098 tSend,
3099 t__send__,
3100 tInitialize,
3101 tLAST_ID,
3102 idIntern = ((tIntern<<3)|0x00),
3103 idMethodMissing = ((tMethodMissing<<3)|0x00),
3104 idLength = ((tLength<<3)|0x00),
3105 idGets = ((tGets<<3)|0x00),
3106 idSucc = ((tSucc<<3)|0x00),
3107 idEach = ((tEach<<3)|0x00),
3108 idLambda = ((tLambda<<3)|0x00),
3109 idSend = ((tSend<<3)|0x00),
3110 id__send__ = ((t__send__<<3)|0x00),
3111 idInitialize = ((tInitialize<<3)|0x00)
3112 };
3113 struct ruby_method_ids_check {
3114 int checking_for_tUPLUS[321 == 321 ? 1 : -1];
3115 int checking_for_tUMINUS[322 == 322 ? 1 : -1];
3116 int checking_for_tPOW[323 == 323 ? 1 : -1];
3117 int checking_for_tCMP[324 == 324 ? 1 : -1];
3118 int checking_for_tEQ[325 == 325 ? 1 : -1];
3119 int checking_for_tEQQ[326 == 326 ? 1 : -1];
3120 int checking_for_tNEQ[327 == 327 ? 1 : -1];
3121 int checking_for_tGEQ[328 == 328 ? 1 : -1];
3122 int checking_for_tLEQ[329 == 329 ? 1 : -1];
3123 int checking_for_tANDOP[330 == 330 ? 1 : -1];
3124 int checking_for_tOROP[331 == 331 ? 1 : -1];
3125 int checking_for_tMATCH[332 == 332 ? 1 : -1];
3126 int checking_for_tNMATCH[333 == 333 ? 1 : -1];
3127 int checking_for_tDOT2[334 == 334 ? 1 : -1];
3128 int checking_for_tDOT3[335 == 335 ? 1 : -1];
3129 int checking_for_tAREF[336 == 336 ? 1 : -1];
3130 int checking_for_tASET[337 == 337 ? 1 : -1];
3131 int checking_for_tLSHFT[338 == 338 ? 1 : -1];
3132 int checking_for_tRSHFT[339 == 339 ? 1 : -1];
3133 int checking_for_tLAMBDA[352 == 352 ? 1 : -1];
3134 int checking_for_idNULL[365 == 365 ? 1 : -1];
3135 int checking_for_idRespond_to[366 == 366 ? 1 : -1];
3136 int checking_for_idIFUNC[367 == 367 ? 1 : -1];
3137 int checking_for_idCFUNC[368 == 368 ? 1 : -1];
3138 int checking_for_idThrowState[369 == 369 ? 1 : -1];
3139 int checking_for_id_core_set_method_alias[370 == 370 ? 1 : -1];
3140 int checking_for_id_core_set_variable_alias[371 == 371 ? 1 : -1];
3141 int checking_for_id_core_undef_method[372 == 372 ? 1 : -1];
3142 int checking_for_id_core_define_method[373 == 373 ? 1 : -1];
3143 int checking_for_id_core_define_singleton_method[374 == 374 ? 1 : -1];
3144 int checking_for_id_core_set_postexe[375 == 375 ? 1 : -1];
3145 int checking_for_tLAST_TOKEN[376 == 376 ? 1 : -1];
3146 };
3147 typedef struct {
3148 OnigCodePoint from;
3149 OnigCodePoint to;
3150 } OnigPairCaseFoldCodes;
3151 typedef struct {
3152 OnigUChar *name;
3153 int ctype;
3154 short int len;
3155 } PosixBracketEntryType;
3156 extern int onigenc_ascii_apply_all_case_fold (OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg, OnigEncoding enc);
3157 extern int onigenc_ascii_get_case_fold_codes_by_str (OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[], OnigEncoding enc);
3158 extern int onigenc_apply_all_case_fold_with_map (int map_size, const OnigPairCaseFoldCodes map[], int ess_tsett_flag, OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg);
3159 extern int onigenc_get_case_fold_codes_by_str_with_map (int map_size, const OnigPairCaseFoldCodes map[], int ess_tsett_flag, OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[]);
3160 extern int onigenc_not_support_get_ctype_code_range (OnigCtype ctype, OnigCodePoint* sb_out, const OnigCodePoint* ranges[], OnigEncoding enc);
3161 extern int onigenc_is_mbc_newline_0x0a (const OnigUChar* p, const OnigUChar* end, OnigEncoding enc);
3162 extern int onigenc_ascii_mbc_case_fold (OnigCaseFoldType flag, const OnigUChar** p, const OnigUChar* end, OnigUChar* lower, OnigEncoding enc);
3163 extern int onigenc_single_byte_mbc_enc_len (const OnigUChar* p, const OnigUChar* e, OnigEncoding enc);
3164 extern OnigCodePoint onigenc_single_byte_mbc_to_code (const OnigUChar* p, const OnigUChar* end, OnigEncoding enc);
3165 extern int onigenc_single_byte_code_to_mbclen (OnigCodePoint code, OnigEncoding enc);
3166 extern int onigenc_single_byte_code_to_mbc (OnigCodePoint code, OnigUChar *buf, OnigEncoding enc);
3167 extern OnigUChar* onigenc_single_byte_left_adjust_char_head (const OnigUChar* start, const OnigUChar* s, const OnigUChar* end, OnigEncoding enc);
3168 extern int onigenc_always_true_is_allowed_reverse_match (const OnigUChar* s, const OnigUChar* end, OnigEncoding enc);
3169 extern int onigenc_always_false_is_allowed_reverse_match (const OnigUChar* s, const OnigUChar* end, OnigEncoding enc);
3170 extern int onigenc_ascii_is_code_ctype (OnigCodePoint code, unsigned int ctype, OnigEncoding enc);
3171 extern OnigCodePoint onigenc_mbn_mbc_to_code (OnigEncoding enc, const OnigUChar* p, const OnigUChar* end);
3172 extern int onigenc_mbn_mbc_case_fold (OnigEncoding enc, OnigCaseFoldType flag, const OnigUChar** p, const OnigUChar* end, OnigUChar* lower);
3173 extern int onigenc_mb2_code_to_mbclen (OnigCodePoint code, OnigEncoding enc);
3174 extern int onigenc_mb2_code_to_mbc (OnigEncoding enc, OnigCodePoint code, OnigUChar *buf);
3175 extern int onigenc_minimum_property_name_to_ctype (OnigEncoding enc, OnigUChar* p, OnigUChar* end);
3176 extern int onigenc_unicode_property_name_to_ctype (OnigEncoding enc, OnigUChar* p, OnigUChar* end);
3177 extern int onigenc_mb2_is_code_ctype (OnigEncoding enc, OnigCodePoint code, unsigned int ctype);
3178 extern int onigenc_mb4_code_to_mbclen (OnigCodePoint code, OnigEncoding enc);
3179 extern int onigenc_mb4_code_to_mbc (OnigEncoding enc, OnigCodePoint code, OnigUChar *buf);
3180 extern int onigenc_mb4_is_code_ctype (OnigEncoding enc, OnigCodePoint code, unsigned int ctype);
3181 extern int onigenc_unicode_is_code_ctype (OnigCodePoint code, unsigned int ctype, OnigEncoding enc);
3182 extern int onigenc_utf16_32_get_ctype_code_range (OnigCtype ctype, OnigCodePoint *sb_out, const OnigCodePoint* ranges[], OnigEncoding enc);
3183 extern int onigenc_unicode_ctype_code_range (int ctype, const OnigCodePoint* ranges[]);
3184 extern int onigenc_unicode_get_case_fold_codes_by_str (OnigEncoding enc, OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[]);
3185 extern int onigenc_unicode_mbc_case_fold (OnigEncoding enc, OnigCaseFoldType flag, const OnigUChar** pp, const OnigUChar* end, OnigUChar* fold);
3186 extern int onigenc_unicode_apply_all_case_fold (OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg, OnigEncoding enc);
3187 extern const OnigUChar OnigEncISO_8859_1_ToLowerCaseTable[];
3188 extern const OnigUChar OnigEncISO_8859_1_ToUpperCaseTable[];
3189 extern int
3190 onigenc_with_ascii_strncmp (OnigEncoding enc, const OnigUChar* p, const OnigUChar* end, const OnigUChar* sascii , int n);
3191 extern OnigUChar*
3192 onigenc_step (OnigEncoding enc, const OnigUChar* p, const OnigUChar* end, int n);
3193 extern int onig_is_in_code_range (const OnigUChar* p, OnigCodePoint code);
3194 extern OnigEncoding OnigEncDefaultCharEncoding;
3195 extern const OnigUChar OnigEncAsciiToLowerCaseTable[];
3196 extern const OnigUChar OnigEncAsciiToUpperCaseTable[];
3197 extern const unsigned short OnigEncAsciiCtypeTable[];
3198 extern int *__errno_location (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
3199 extern char *program_invocation_name, *program_invocation_short_name;
3200 typedef int error_t;
3201 enum
3202 {
3203 _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
3204 _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
3205 _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
3206 _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
3207 _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
3208 _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
3209 _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
3210 _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
3211 _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
3212 _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
3213 _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
3214 _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
3215 };
3216 extern __const unsigned short int **__ctype_b_loc (void)
3217 __attribute__ ((__const));
3218 extern __const __int32_t **__ctype_tolower_loc (void)
3219 __attribute__ ((__const));
3220 extern __const __int32_t **__ctype_toupper_loc (void)
3221 __attribute__ ((__const));
3222 extern int isalnum (int) __attribute__ ((__nothrow__));
3223 extern int isalpha (int) __attribute__ ((__nothrow__));
3224 extern int iscntrl (int) __attribute__ ((__nothrow__));
3225 extern int isdigit (int) __attribute__ ((__nothrow__));
3226 extern int islower (int) __attribute__ ((__nothrow__));
3227 extern int isgraph (int) __attribute__ ((__nothrow__));
3228 extern int isprint (int) __attribute__ ((__nothrow__));
3229 extern int ispunct (int) __attribute__ ((__nothrow__));
3230 extern int isspace (int) __attribute__ ((__nothrow__));
3231 extern int isupper (int) __attribute__ ((__nothrow__));
3232 extern int isxdigit (int) __attribute__ ((__nothrow__));
3233 extern int tolower (int __c) __attribute__ ((__nothrow__));
3234 extern int toupper (int __c) __attribute__ ((__nothrow__));
3235 extern int isblank (int) __attribute__ ((__nothrow__));
3236 extern int isctype (int __c, int __mask) __attribute__ ((__nothrow__));
3237 extern int isascii (int __c) __attribute__ ((__nothrow__));
3238 extern int toascii (int __c) __attribute__ ((__nothrow__));
3239 extern int _toupper (int) __attribute__ ((__nothrow__));
3240 extern int _tolower (int) __attribute__ ((__nothrow__));
3241 extern __inline int
3242 __attribute__ ((__nothrow__)) tolower (int __c)
3243 {
3244 return __c >= -128 && __c < 256 ? (*__ctype_tolower_loc ())[__c] : __c;
3245 }
3246 extern __inline int
3247 __attribute__ ((__nothrow__)) toupper (int __c)
3248 {
3249 return __c >= -128 && __c < 256 ? (*__ctype_toupper_loc ())[__c] : __c;
3250 }
3251 extern int isalnum_l (int, __locale_t) __attribute__ ((__nothrow__));
3252 extern int isalpha_l (int, __locale_t) __attribute__ ((__nothrow__));
3253 extern int iscntrl_l (int, __locale_t) __attribute__ ((__nothrow__));
3254 extern int isdigit_l (int, __locale_t) __attribute__ ((__nothrow__));
3255 extern int islower_l (int, __locale_t) __attribute__ ((__nothrow__));
3256 extern int isgraph_l (int, __locale_t) __attribute__ ((__nothrow__));
3257 extern int isprint_l (int, __locale_t) __attribute__ ((__nothrow__));
3258 extern int ispunct_l (int, __locale_t) __attribute__ ((__nothrow__));
3259 extern int isspace_l (int, __locale_t) __attribute__ ((__nothrow__));
3260 extern int isupper_l (int, __locale_t) __attribute__ ((__nothrow__));
3261 extern int isxdigit_l (int, __locale_t) __attribute__ ((__nothrow__));
3262 extern int isblank_l (int, __locale_t) __attribute__ ((__nothrow__));
3263 extern int __tolower_l (int __c, __locale_t __l) __attribute__ ((__nothrow__));
3264 extern int tolower_l (int __c, __locale_t __l) __attribute__ ((__nothrow__));
3265 extern int __toupper_l (int __c, __locale_t __l) __attribute__ ((__nothrow__));
3266 extern int toupper_l (int __c, __locale_t __l) __attribute__ ((__nothrow__));
3267 static ID register_symid(ID, const char *, long, rb_encoding *);
3268 static void
3269 Init_id(void)
3270 {
3271 rb_encoding *enc = rb_usascii_encoding();
3272 register_symid(365, "", strlen(""), enc);
3273 register_symid(367, "<IFUNC>", strlen("<IFUNC>"), enc),
3274 register_symid(368, "<CFUNC>", strlen("<CFUNC>"), enc),
3275 register_symid(366, "respond_to?", strlen("respond_to?"), enc),
3276 register_symid(369, "#__ThrowState__", strlen("#__ThrowState__"), enc),
3277 register_symid(370, "core#set_method_alias", strlen("core#set_method_alias"), enc),
3278 register_symid(371, "core#set_variable_alias", strlen("core#set_variable_alias"), enc),
3279 register_symid(372, "core#undef_method", strlen("core#undef_method"), enc),
3280 register_symid(373, "core#define_method", strlen("core#define_method"), enc),
3281 register_symid(374, "core#define_singleton_method", strlen("core#define_singleton_method"), enc),
3282 register_symid(375, "core#set_postexe", strlen("core#set_postexe"), enc),
3283 register_symid(idEach, "each", strlen("each"), enc);
3284 register_symid(idLength, "length", strlen("length"), enc);
3285 register_symid(idLambda, "lambda", strlen("lambda"), enc);
3286 register_symid(idIntern, "intern", strlen("intern"), enc);
3287 register_symid(idGets, "gets", strlen("gets"), enc);
3288 register_symid(idSucc, "succ", strlen("succ"), enc);
3289 register_symid(idMethodMissing, "method_missing", strlen("method_missing"), enc);
3290 register_symid(idSend, "send", strlen("send"), enc);
3291 register_symid(id__send__, "__send__", strlen("__send__"), enc);
3292 register_symid(idInitialize, "initialize", strlen("initialize"), enc);
3293 }
3294 enum lex_state_e {
3295 EXPR_BEG,
3296 EXPR_END,
3297 EXPR_ENDARG,
3298 EXPR_ARG,
3299 EXPR_CMDARG,
3300 EXPR_MID,
3301 EXPR_FNAME,
3302 EXPR_DOT,
3303 EXPR_CLASS,
3304 EXPR_VALUE
3305 };
3306 typedef unsigned long long stack_type;
3307 struct vtable {
3308 ID *tbl;
3309 int pos;
3310 int capa;
3311 struct vtable *prev;
3312 };
3313 struct local_vars {
3314 struct vtable *args;
3315 struct vtable *vars;
3316 struct local_vars *prev;
3317 };
3318 static int
3319 vtable_size(const struct vtable *tbl)
3320 {
3321 if (((VALUE)(tbl) & ~(VALUE)3)) {
3322 return tbl->pos;
3323 }
3324 else {
3325 return 0;
3326 }
3327 }
3328 static struct vtable *
3329 vtable_alloc(struct vtable *prev)
3330 {
3331 struct vtable *tbl = (struct vtable*)ruby_xmalloc(sizeof(struct vtable));
3332 tbl->pos = 0;
3333 tbl->capa = 8;
3334 tbl->tbl = (ID*)ruby_xmalloc2((tbl->capa),sizeof(ID));
3335 tbl->prev = prev;
3336 if (0) printf("vtable_alloc: %p\n", (void *)tbl);
3337 return tbl;
3338 }
3339 static void
3340 vtable_free(struct vtable *tbl)
3341 {
3342 if (0)printf("vtable_free: %p\n", (void *)tbl);
3343 if (((VALUE)(tbl) & ~(VALUE)3)) {
3344 if (tbl->tbl) {
3345 ruby_xfree(tbl->tbl);
3346 }
3347 ruby_xfree(tbl);
3348 }
3349 }
3350 static void
3351 vtable_add(struct vtable *tbl, ID id)
3352 {
3353 if (!((VALUE)(tbl) & ~(VALUE)3)) {
3354 rb_bug("vtable_add: vtable is not allocated (%p)", (void *)tbl);
3355 }
3356 if (0) printf("vtable_add: %p, %s\n", (void *)tbl, rb_id2name(id));
3357 if (tbl->pos == tbl->capa) {
3358 tbl->capa = tbl->capa * 2;
3359 (tbl->tbl)=(ID*)ruby_xrealloc2((char*)(tbl->tbl),(tbl->capa),sizeof(ID));
3360 }
3361 tbl->tbl[tbl->pos++] = id;
3362 }
3363 static int
3364 vtable_included(const struct vtable * tbl, ID id)
3365 {
3366 int i;
3367 if (((VALUE)(tbl) & ~(VALUE)3)) {
3368 for (i = 0; i < tbl->pos; i++) {
3369 if (tbl->tbl[i] == id) {
3370 return 1;
3371 }
3372 }
3373 }
3374 return 0;
3375 }
3376 typedef struct token_info {
3377 const char *token;
3378 int linenum;
3379 int column;
3380 int nonspc;
3381 struct token_info *next;
3382 } token_info;
3383 struct parser_params {
3384 int is_ripper;
3385 NODE *heap;
3386 YYSTYPE *parser_yylval;
3387 VALUE eofp;
3388 NODE *parser_lex_strterm;
3389 enum lex_state_e parser_lex_state;
3390 stack_type parser_cond_stack;
3391 stack_type parser_cmdarg_stack;
3392 int parser_class_nest;
3393 int parser_paren_nest;
3394 int parser_lpar_beg;
3395 int parser_in_single;
3396 int parser_in_def;
3397 int parser_compile_for_eval;
3398 VALUE parser_cur_mid;
3399 int parser_in_defined;
3400 char *parser_tokenbuf;
3401 int parser_tokidx;
3402 int parser_toksiz;
3403 VALUE parser_lex_input;
3404 VALUE parser_lex_lastline;
3405 VALUE parser_lex_nextline;
3406 const char *parser_lex_pbeg;
3407 const char *parser_lex_p;
3408 const char *parser_lex_pend;
3409 int parser_heredoc_end;
3410 int parser_command_start;
3411 NODE *parser_deferred_nodes;
3412 int parser_lex_gets_ptr;
3413 VALUE (*parser_lex_gets)(struct parser_params*,VALUE);
3414 struct local_vars *parser_lvtbl;
3415 int parser_ruby__end__seen;
3416 int line_count;
3417 int has_shebang;
3418 char *parser_ruby_sourcefile;
3419 int parser_ruby_sourceline;
3420 rb_encoding *enc;
3421 rb_encoding *utf8;
3422 int parser_yydebug;
3423 NODE *parser_eval_tree_begin;
3424 NODE *parser_eval_tree;
3425 VALUE debug_lines;
3426 VALUE coverage;
3427 int nerr;
3428 token_info *parser_token_info;
3429 };
3430 void *rb_parser_malloc(struct parser_params *, size_t);
3431 void *rb_parser_realloc(struct parser_params *, void *, size_t);
3432 void *rb_parser_calloc(struct parser_params *, size_t, size_t);
3433 void rb_parser_free(struct parser_params *, void *);
3434 static int parser_yyerror(struct parser_params*, const char*);
3435 static int yylex(void*, void*);
3436 static NODE* node_newnode(struct parser_params *, enum node_type, VALUE, VALUE, VALUE);
3437 static NODE *cond_gen(struct parser_params*,NODE*);
3438 static NODE *logop_gen(struct parser_params*,enum node_type,NODE*,NODE*);
3439 static NODE *newline_node(NODE*);
3440 static void fixpos(NODE*,NODE*);
3441 static int value_expr_gen(struct parser_params*,NODE*);
3442 static void void_expr_gen(struct parser_params*,NODE*);
3443 static NODE *remove_begin(NODE*);
3444 static void void_stmts_gen(struct parser_params*,NODE*);
3445 static void reduce_nodes_gen(struct parser_params*,NODE**);
3446 static void block_dup_check_gen(struct parser_params*,NODE*,NODE*);
3447 static NODE *block_append_gen(struct parser_params*,NODE*,NODE*);
3448 static NODE *list_append_gen(struct parser_params*,NODE*,NODE*);
3449 static NODE *list_concat_gen(struct parser_params*,NODE*,NODE*);
3450 static NODE *arg_append_gen(struct parser_params*,NODE*,NODE*);
3451 static NODE *arg_concat_gen(struct parser_params*,NODE*,NODE*);
3452 static NODE *literal_concat_gen(struct parser_params*,NODE*,NODE*);
3453 static NODE *new_evstr_gen(struct parser_params*,NODE*);
3454 static NODE *evstr2dstr_gen(struct parser_params*,NODE*);
3455 static NODE *splat_array(NODE*);
3456 static NODE *call_bin_op_gen(struct parser_params*,NODE*,ID,NODE*);
3457 static NODE *call_uni_op_gen(struct parser_params*,NODE*,ID);
3458 static NODE *new_args_gen(struct parser_params*,NODE*,NODE*,ID,NODE*,ID);
3459 static void shadowing_lvar_gen(struct parser_params*,ID);
3460 static NODE *negate_lit(NODE*);
3461 static NODE *ret_args_gen(struct parser_params*,NODE*);
3462 static NODE *arg_blk_pass(NODE*,NODE*);
3463 static NODE *new_yield_gen(struct parser_params*,NODE*);
3464 static NODE *gettable_gen(struct parser_params*,ID);
3465 static NODE *assignable_gen(struct parser_params*,ID,NODE*);
3466 static void new_bv_gen(struct parser_params*,ID);
3467 static NODE *aryset_gen(struct parser_params*,NODE*,NODE*);
3468 static NODE *attrset_gen(struct parser_params*,NODE*,ID);
3469 static void rb_backref_error_gen(struct parser_params*,NODE*);
3470 static NODE *node_assign_gen(struct parser_params*,NODE*,NODE*);
3471 static NODE *match_op_gen(struct parser_params*,NODE*,NODE*);
3472 static void local_push_gen(struct parser_params*,int);
3473 static void local_pop_gen(struct parser_params*);
3474 static int local_var_gen(struct parser_params*, ID);
3475 static int arg_var_gen(struct parser_params*, ID);
3476 static int local_id_gen(struct parser_params*, ID);
3477 static ID *local_tbl_gen(struct parser_params*);
3478 static ID internal_id_gen(struct parser_params*);
3479 static void dyna_push_gen(struct parser_params*);
3480 static void dyna_pop_gen(struct parser_params*);
3481 static int dyna_in_block_gen(struct parser_params*);
3482 static int dvar_defined_gen(struct parser_params*,ID);
3483 static int dvar_curr_gen(struct parser_params*,ID);
3484 static void fixup_nodes(NODE **);
3485 extern int rb_dvar_defined(ID);
3486 extern int rb_local_defined(ID);
3487 extern int rb_parse_in_eval(void);
3488 static VALUE reg_compile_gen(struct parser_params*, VALUE, int);
3489 static void reg_fragment_setenc_gen(struct parser_params*, VALUE, int);
3490 static void reg_fragment_check_gen(struct parser_params*, VALUE, int);
3491 static NODE *reg_named_capture_assign_gen(struct parser_params* parser, VALUE regexp, NODE *match);
3492 int rb_enc_symname2_p(const char *, int, rb_encoding *);
3493 static int lvar_defined_gen(struct parser_params*, ID);
3494 static void token_info_push(struct parser_params*, const char *token);
3495 static void token_info_pop(struct parser_params*, const char *token);
3496 typedef unsigned char yytype_uint8;
3497 typedef signed char yytype_int8;
3498 typedef unsigned short int yytype_uint16;
3499 typedef short int yytype_int16;
3500 union yyalloc
3501 {
3502 yytype_int16 yyss;
3503 YYSTYPE yyvs;
3504 };
3505 static const yytype_uint8 yytranslate[] =
3506 {
3507 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3508 148, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3509 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3510 2, 2, 147, 123, 2, 2, 2, 121, 116, 2,
3511 143, 144, 119, 117, 141, 118, 140, 120, 2, 2,
3512 2, 2, 2, 2, 2, 2, 2, 2, 111, 146,
3513 113, 109, 112, 110, 2, 2, 2, 2, 2, 2,
3514 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3515 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3516 2, 139, 2, 145, 115, 2, 142, 2, 2, 2,
3517 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3518 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3519 2, 2, 2, 137, 114, 138, 124, 2, 2, 2,
3520 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3521 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3522 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3523 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3524 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3525 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3526 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3527 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3528 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3529 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3530 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3531 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3532 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
3533 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
3534 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
3535 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
3536 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
3537 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
3538 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
3539 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
3540 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
3541 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
3542 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
3543 105, 106, 107, 108, 122, 125, 126, 127, 128, 129,
3544 130, 131, 132, 133, 134, 135, 136
3545 };
3546 static const yytype_uint16 yyprhs[] =
3547 {
3548 0, 0, 3, 4, 7, 12, 15, 17, 19, 23,
3549 26, 27, 32, 36, 40, 44, 47, 51, 55, 59,
3550 63, 67, 68, 74, 79, 83, 87, 91, 98, 104,
3551 110, 116, 120, 124, 128, 132, 134, 136, 140, 144,
3552 148, 151, 153, 155, 157, 159, 162, 165, 168, 170,
3553 175, 180, 181, 187, 190, 194, 199, 205, 210, 216,
3554 219, 222, 224, 228, 230, 234, 236, 239, 243, 249,
3555 252, 257, 260, 265, 267, 271, 273, 277, 280, 284,
3556 286, 290, 292, 297, 301, 305, 309, 313, 316, 318,
3557 320, 325, 329, 333, 337, 341, 344, 346, 348, 350,
3558 353, 355, 359, 361, 363, 365, 367, 369, 371, 373,
3559 375, 377, 379, 380, 385, 387, 389, 391, 393, 395,
3560 397, 399, 401, 403, 405, 407, 409, 411, 413, 415,
3561 417, 419, 421, 423, 425, 427, 429, 431, 433, 435,
3562 437, 439, 441, 443, 445, 447, 449, 451, 453, 455,
3563 457, 459, 461, 463, 465, 467, 469, 471, 473, 475,
3564 477, 479, 481, 483, 485, 487, 489, 491, 493, 495,
3565 497, 499, 501, 503, 505, 507, 509, 511, 513, 515,
3566 517, 519, 521, 523, 525, 529, 535, 539, 545, 552,
3567 558, 564, 570, 576, 581, 585, 589, 593, 597, 601,
3568 605, 609, 613, 617, 622, 627, 630, 633, 637, 641,
3569 645, 649, 653, 657, 661, 665, 669, 673, 677, 681,
3570 685, 688, 691, 695, 699, 703, 707, 708, 713, 720,
3571 722, 724, 726, 729, 734, 737, 741, 743, 745, 747,
3572 749, 751, 754, 757, 762, 764, 765, 768, 771, 774,
3573 776, 778, 780, 783, 787, 792, 796, 801, 804, 806,
3574 808, 810, 812, 814, 816, 818, 820, 822, 823, 828,
3575 829, 834, 838, 842, 845, 849, 853, 855, 860, 864,
3576 866, 867, 874, 879, 883, 886, 888, 891, 894, 901,
3577 908, 909, 910, 918, 919, 920, 928, 934, 939, 940,
3578 941, 951, 952, 959, 960, 961, 970, 971, 977, 978,
3579 985, 986, 987, 997, 999, 1001, 1003, 1005, 1007, 1009,
3580 1011, 1013, 1015, 1017, 1019, 1021, 1023, 1025, 1027, 1029,
3581 1031, 1033, 1036, 1038, 1040, 1042, 1048, 1050, 1053, 1055,
3582 1057, 1059, 1063, 1065, 1069, 1071, 1076, 1083, 1087, 1093,
3583 1096, 1101, 1103, 1107, 1114, 1123, 1128, 1135, 1140, 1143,
3584 1150, 1153, 1158, 1165, 1168, 1173, 1176, 1181, 1183, 1185,
3585 1187, 1191, 1193, 1198, 1200, 1203, 1205, 1209, 1211, 1213,
3586 1214, 1218, 1223, 1225, 1229, 1233, 1234, 1240, 1243, 1248,
3587 1253, 1256, 1261, 1266, 1270, 1274, 1278, 1281, 1283, 1288,
3588 1289, 1295, 1296, 1302, 1308, 1310, 1312, 1319, 1321, 1323,
3589 1325, 1327, 1330, 1332, 1335, 1337, 1339, 1341, 1343, 1345,
3590 1347, 1349, 1352, 1356, 1360, 1364, 1368, 1372, 1373, 1377,
3591 1379, 1382, 1386, 1390, 1391, 1395, 1396, 1399, 1400, 1403,
3592 1405, 1406, 1410, 1411, 1416, 1418, 1420, 1422, 1424, 1427,
3593 1429, 1431, 1433, 1435, 1439, 1441, 1443, 1446, 1449, 1451,
3594 1453, 1455, 1457, 1459, 1461, 1463, 1465, 1467, 1469, 1471,
3595 1473, 1475, 1477, 1479, 1481, 1483, 1484, 1489, 1492, 1496,
3596 1499, 1506, 1515, 1520, 1527, 1532, 1539, 1542, 1547, 1554,
3597 1557, 1562, 1565, 1570, 1572, 1573, 1575, 1577, 1579, 1581,
3598 1583, 1585, 1587, 1591, 1593, 1597, 1601, 1605, 1607, 1611,
3599 1613, 1617, 1619, 1621, 1624, 1626, 1628, 1630, 1633, 1636,
3600 1638, 1640, 1641, 1646, 1648, 1651, 1653, 1657, 1661, 1664,
3601 1666, 1668, 1670, 1672, 1674, 1676, 1678, 1680, 1682, 1684,
3602 1686, 1688, 1689, 1691, 1692, 1694, 1697, 1700, 1701, 1703,
3603 1705, 1707, 1709, 1711, 1714
3604 };
3605 static const yytype_int16 yyrhs[] =
3606 {
3607 150, 0, -1, -1, 151, 153, -1, 153, 252, 228,
3608 255, -1, 154, 307, -1, 314, -1, 155, -1, 154,
3609 313, 155, -1, 1, 155, -1, -1, 45, 177, 156,
3610 177, -1, 45, 54, 54, -1, 45, 54, 64, -1,
3611 45, 54, 63, -1, 6, 178, -1, 155, 40, 159,
3612 -1, 155, 41, 159, -1, 155, 42, 159, -1, 155,
3613 43, 159, -1, 155, 44, 155, -1, -1, 47, 157,
3614 137, 153, 138, -1, 48, 137, 153, 138, -1, 172,
3615 109, 160, -1, 165, 109, 160, -1, 279, 87, 160,
3616 -1, 213, 139, 188, 310, 87, 160, -1, 213, 140,
3617 52, 87, 160, -1, 213, 140, 56, 87, 160, -1,
3618 213, 85, 52, 87, 160, -1, 280, 87, 160, -1,
3619 172, 109, 195, -1, 165, 109, 184, -1, 165, 109,
3620 195, -1, 158, -1, 160, -1, 158, 37, 158, -1,
3621 158, 38, 158, -1, 39, 308, 158, -1, 123, 160,
3622 -1, 182, -1, 158, -1, 164, -1, 161, -1, 30,
3623 189, -1, 21, 189, -1, 22, 189, -1, 245, -1,
3624 245, 140, 304, 190, -1, 245, 85, 304, 190, -1,
3625 -1, 94, 163, 234, 153, 138, -1, 303, 190, -1,
3626 303, 190, 162, -1, 213, 140, 304, 190, -1, 213,
3627 140, 304, 190, 162, -1, 213, 85, 304, 190, -1,
3628 213, 85, 304, 190, 162, -1, 32, 190, -1, 31,
3629 190, -1, 167, -1, 89, 166, 309, -1, 167, -1,
3630 89, 166, 309, -1, 169, -1, 169, 168, -1, 169,
3631 95, 171, -1, 169, 95, 171, 141, 170, -1, 169,
3632 95, -1, 169, 95, 141, 170, -1, 95, 171, -1,
3633 95, 171, 141, 170, -1, 95, -1, 95, 141, 170,
3634 -1, 171, -1, 89, 166, 309, -1, 168, 141, -1,
3635 169, 168, 141, -1, 168, -1, 170, 141, 168, -1,
3636 277, -1, 213, 139, 188, 310, -1, 213, 140, 52,
3637 -1, 213, 85, 52, -1, 213, 140, 56, -1, 213,
3638 85, 56, -1, 86, 56, -1, 280, -1, 277, -1,
3639 213, 139, 188, 310, -1, 213, 140, 52, -1, 213,
3640 85, 52, -1, 213, 140, 56, -1, 213, 85, 56,
3641 -1, 86, 56, -1, 280, -1, 52, -1, 56, -1,
3642 86, 173, -1, 173, -1, 213, 85, 173, -1, 52,
3643 -1, 56, -1, 53, -1, 180, -1, 181, -1, 175,
3644 -1, 273, -1, 176, -1, 275, -1, 177, -1, -1,
3645 178, 141, 179, 177, -1, 114, -1, 115, -1, 116,
3646 -1, 69, -1, 70, -1, 71, -1, 77, -1, 78,
3647 -1, 112, -1, 73, -1, 113, -1, 74, -1, 72,
3648 -1, 83, -1, 84, -1, 117, -1, 118, -1, 119,
3649 -1, 95, -1, 120, -1, 121, -1, 68, -1, 123,
3650 -1, 124, -1, 66, -1, 67, -1, 81, -1, 82,
3651 -1, 142, -1, 49, -1, 50, -1, 51, -1, 47,
3652 -1, 48, -1, 45, -1, 37, -1, 7, -1, 21,
3653 -1, 16, -1, 3, -1, 5, -1, 46, -1, 26,
3654 -1, 15, -1, 14, -1, 10, -1, 9, -1, 36,
3655 -1, 20, -1, 25, -1, 4, -1, 22, -1, 34,
3656 -1, 39, -1, 38, -1, 23, -1, 8, -1, 24,
3657 -1, 30, -1, 33, -1, 32, -1, 13, -1, 35,
3658 -1, 6, -1, 17, -1, 31, -1, 11, -1, 12,
3659 -1, 18, -1, 19, -1, 172, 109, 182, -1, 172,
3660 109, 182, 44, 182, -1, 279, 87, 182, -1, 279,
3661 87, 182, 44, 182, -1, 213, 139, 188, 310, 87,
3662 182, -1, 213, 140, 52, 87, 182, -1, 213, 140,
3663 56, 87, 182, -1, 213, 85, 52, 87, 182, -1,
3664 213, 85, 56, 87, 182, -1, 86, 56, 87, 182,
3665 -1, 280, 87, 182, -1, 182, 79, 182, -1, 182,
3666 80, 182, -1, 182, 117, 182, -1, 182, 118, 182,
3667 -1, 182, 119, 182, -1, 182, 120, 182, -1, 182,
3668 121, 182, -1, 182, 68, 182, -1, 122, 59, 68,
3669 182, -1, 122, 60, 68, 182, -1, 66, 182, -1,
3670 67, 182, -1, 182, 114, 182, -1, 182, 115, 182,
3671 -1, 182, 116, 182, -1, 182, 69, 182, -1, 182,
3672 112, 182, -1, 182, 73, 182, -1, 182, 113, 182,
3673 -1, 182, 74, 182, -1, 182, 70, 182, -1, 182,
3674 71, 182, -1, 182, 72, 182, -1, 182, 77, 182,
3675 -1, 182, 78, 182, -1, 123, 182, -1, 124, 182,
3676 -1, 182, 83, 182, -1, 182, 84, 182, -1, 182,
3677 75, 182, -1, 182, 76, 182, -1, -1, 46, 308,
3678 183, 182, -1, 182, 110, 182, 308, 111, 182, -1,
3679 196, -1, 182, -1, 314, -1, 194, 311, -1, 194,
3680 141, 301, 311, -1, 301, 311, -1, 143, 188, 309,
3681 -1, 314, -1, 186, -1, 314, -1, 189, -1, 164,
3682 -1, 194, 193, -1, 301, 193, -1, 194, 141, 301,
3683 193, -1, 192, -1, -1, 191, 189, -1, 96, 184,
3684 -1, 141, 192, -1, 141, -1, 314, -1, 184, -1,
3685 95, 184, -1, 194, 141, 184, -1, 194, 141, 95,
3686 184, -1, 194, 141, 184, -1, 194, 141, 95, 184,
3687 -1, 95, 184, -1, 256, -1, 257, -1, 260, -1,
3688 261, -1, 262, -1, 265, -1, 278, -1, 280, -1,
3689 53, -1, -1, 214, 197, 152, 224, -1, -1, 90,
3690 158, 198, 309, -1, 89, 153, 144, -1, 213, 85,
3691 56, -1, 86, 56, -1, 92, 185, 145, -1, 93,
3692 300, 138, -1, 30, -1, 31, 143, 189, 309, -1,
3693 31, 143, 309, -1, 31, -1, -1, 46, 308, 143,
3694 199, 158, 309, -1, 39, 143, 158, 309, -1, 39,
3695 143, 309, -1, 303, 247, -1, 246, -1, 246, 247,
3696 -1, 97, 239, -1, 215, 159, 225, 153, 227, 224,
3697 -1, 216, 159, 225, 153, 228, 224, -1, -1, -1,
3698 217, 200, 159, 226, 201, 153, 224, -1, -1, -1,
3699 218, 202, 159, 226, 203, 153, 224, -1, 219, 159,
3700 307, 250, 224, -1, 219, 307, 250, 224, -1, -1,
3701 -1, 220, 229, 25, 204, 159, 226, 205, 153, 224,
3702 -1, -1, 221, 174, 281, 206, 152, 224, -1, -1,
3703 -1, 221, 83, 158, 207, 312, 208, 152, 224, -1,
3704 -1, 222, 174, 209, 152, 224, -1, -1, 223, 175,
3705 210, 283, 152, 224, -1, -1, -1, 223, 298, 306,
3706 211, 175, 212, 283, 152, 224, -1, 21, -1, 22,
3707 -1, 23, -1, 24, -1, 196, -1, 7, -1, 11,
3708 -1, 12, -1, 18, -1, 19, -1, 16, -1, 20,
3709 -1, 3, -1, 4, -1, 5, -1, 10, -1, 312,
3710 -1, 13, -1, 312, 13, -1, 312, -1, 27, -1,
3711 228, -1, 14, 159, 225, 153, 227, -1, 314, -1,
3712 15, 153, -1, 172, -1, 165, -1, 286, -1, 89,
3713 232, 309, -1, 230, -1, 231, 141, 230, -1, 231,
3714 -1, 231, 141, 95, 286, -1, 231, 141, 95, 286,
3715 141, 231, -1, 231, 141, 95, -1, 231, 141, 95,
3716 141, 231, -1, 95, 286, -1, 95, 286, 141, 231,
3717 -1, 95, -1, 95, 141, 231, -1, 288, 141, 291,
3718 141, 294, 297, -1, 288, 141, 291, 141, 294, 141,
3719 288, 297, -1, 288, 141, 291, 297, -1, 288, 141,
3720 291, 141, 288, 297, -1, 288, 141, 294, 297, -1,
3721 288, 141, -1, 288, 141, 294, 141, 288, 297, -1,
3722 288, 297, -1, 291, 141, 294, 297, -1, 291, 141,
3723 294, 141, 288, 297, -1, 291, 297, -1, 291, 141,
3724 288, 297, -1, 294, 297, -1, 294, 141, 288, 297,
3725 -1, 296, -1, 314, -1, 235, -1, 114, 236, 114,
3726 -1, 76, -1, 114, 233, 236, 114, -1, 314, -1,
3727 146, 237, -1, 238, -1, 237, 141, 238, -1, 52,
3728 -1, 285, -1, -1, 240, 241, 242, -1, 143, 284,
3729 236, 309, -1, 284, -1, 107, 153, 138, -1, 29,
3730 153, 10, -1, -1, 28, 244, 234, 153, 10, -1,
3731 164, 243, -1, 245, 140, 304, 187, -1, 245, 85,
3732 304, 187, -1, 303, 186, -1, 213, 140, 304, 187,
3733 -1, 213, 85, 304, 186, -1, 213, 85, 305, -1,
3734 213, 140, 186, -1, 213, 85, 186, -1, 32, 186,
3735 -1, 32, -1, 213, 139, 188, 310, -1, -1, 137,
3736 248, 234, 153, 138, -1, -1, 26, 249, 234, 153,
3737 10, -1, 17, 194, 225, 153, 251, -1, 228, -1,
3738 250, -1, 8, 253, 254, 225, 153, 252, -1, 314,
3739 -1, 184, -1, 195, -1, 314, -1, 88, 172, -1,
3740 314, -1, 9, 153, -1, 314, -1, 276, -1, 273,
3741 -1, 275, -1, 258, -1, 62, -1, 259, -1, 258,
3742 259, -1, 99, 267, 106, -1, 100, 268, 106, -1,
3743 101, 268, 65, -1, 102, 147, 106, -1, 102, 263,
3744 106, -1, -1, 263, 264, 147, -1, 269, -1, 264,
3745 269, -1, 103, 147, 106, -1, 103, 266, 106, -1,
3746 -1, 266, 61, 147, -1, -1, 267, 269, -1, -1,
3747 268, 269, -1, 61, -1, -1, 105, 270, 272, -1,
3748 -1, 104, 271, 153, 138, -1, 54, -1, 55, -1,
3749 57, -1, 280, -1, 98, 274, -1, 175, -1, 55,
3750 -1, 54, -1, 57, -1, 98, 268, 106, -1, 59,
3751 -1, 60, -1, 122, 59, -1, 122, 60, -1, 52,
3752 -1, 55, -1, 54, -1, 56, -1, 57, -1, 34,
3753 -1, 33, -1, 35, -1, 36, -1, 50, -1, 49,
3754 -1, 51, -1, 277, -1, 277, -1, 63, -1, 64,
3755 -1, 312, -1, -1, 113, 282, 159, 312, -1, 1,
3756 312, -1, 143, 284, 309, -1, 284, 312, -1, 288,
3757 141, 292, 141, 294, 297, -1, 288, 141, 292, 141,
3758 294, 141, 288, 297, -1, 288, 141, 292, 297, -1,
3759 288, 141, 292, 141, 288, 297, -1, 288, 141, 294,
3760 297, -1, 288, 141, 294, 141, 288, 297, -1, 288,
3761 297, -1, 292, 141, 294, 297, -1, 292, 141, 294,
3762 141, 288, 297, -1, 292, 297, -1, 292, 141, 288,
3763 297, -1, 294, 297, -1, 294, 141, 288, 297, -1,
3764 296, -1, -1, 56, -1, 55, -1, 54, -1, 57,
3765 -1, 285, -1, 52, -1, 286, -1, 89, 232, 309,
3766 -1, 287, -1, 288, 141, 287, -1, 52, 109, 184,
3767 -1, 52, 109, 213, -1, 290, -1, 291, 141, 290,
3768 -1, 289, -1, 292, 141, 289, -1, 119, -1, 95,
3769 -1, 293, 52, -1, 293, -1, 116, -1, 96, -1,
3770 295, 52, -1, 141, 296, -1, 314, -1, 278, -1,
3771 -1, 143, 299, 158, 309, -1, 314, -1, 301, 311,
3772 -1, 302, -1, 301, 141, 302, -1, 184, 88, 184,
3773 -1, 58, 184, -1, 52, -1, 56, -1, 53, -1,
3774 52, -1, 56, -1, 53, -1, 180, -1, 52, -1,
3775 53, -1, 180, -1, 140, -1, 85, -1, -1, 313,
3776 -1, -1, 148, -1, 308, 144, -1, 308, 145, -1,
3777 -1, 148, -1, 141, -1, 146, -1, 148, -1, 312,
3778 -1, 313, 146, -1, -1
3779 };
3780 static const yytype_uint16 yyrline[] =
3781 {
3782 0, 763, 763, 763, 793, 826, 837, 846, 854, 862,
3783 868, 868, 876, 884, 895, 905, 913, 922, 931, 944,
3784 957, 967, 966, 988, 1000, 1009, 1019, 1048, 1069, 1086,
3785 1103, 1120, 1130, 1139, 1148, 1157, 1160, 1161, 1169, 1177,
3786 1185, 1193, 1196, 1208, 1209, 1210, 1218, 1226, 1236, 1237,
3787 1246, 1258, 1257, 1279, 1288, 1300, 1309, 1321, 1330, 1342,
3788 1351, 1362, 1363, 1373, 1374, 1384, 1392, 1400, 1408, 1416,
3789 1424, 1432, 1440, 1448, 1456, 1466, 1467, 1477, 1485, 1495,
3790 1503, 1513, 1521, 1529, 1537, 1545, 1553, 1565, 1575, 1587,
3791 1595, 1603, 1611, 1619, 1627, 1640, 1653, 1664, 1672, 1675,
3792 1683, 1691, 1701, 1702, 1703, 1704, 1714, 1726, 1727, 1730,
3793 1738, 1741, 1749, 1749, 1759, 1760, 1761, 1762, 1763, 1764,
3794 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774,
3795 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784,
3796 1785, 1786, 1787, 1790, 1790, 1790, 1791, 1791, 1792, 1792,
3797 1792, 1793, 1793, 1793, 1793, 1794, 1794, 1794, 1794, 1795,
3798 1795, 1795, 1796, 1796, 1796, 1796, 1797, 1797, 1797, 1797,
3799 1798, 1798, 1798, 1798, 1799, 1799, 1799, 1799, 1800, 1800,
3800 1800, 1800, 1801, 1801, 1804, 1813, 1823, 1852, 1883, 1904,
3801 1921, 1938, 1955, 1966, 1977, 1988, 2002, 2016, 2024, 2032,
3802 2040, 2048, 2056, 2064, 2073, 2082, 2090, 2098, 2106, 2114,
3803 2122, 2130, 2138, 2146, 2154, 2162, 2170, 2178, 2186, 2197,
3804 2205, 2213, 2221, 2229, 2237, 2245, 2253, 2253, 2263, 2273,
3805 2279, 2291, 2292, 2296, 2304, 2314, 2324, 2325, 2328, 2329,
3806 2332, 2340, 2348, 2358, 2367, 2376, 2376, 2388, 2398, 2402,
3807 2406, 2412, 2420, 2428, 2442, 2458, 2472, 2487, 2497, 2498,
3808 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2514, 2513, 2538,
3809 2538, 2547, 2555, 2563, 2571, 2584, 2592, 2600, 2608, 2616,
3810 2624, 2624, 2634, 2642, 2650, 2661, 2662, 2673, 2677, 2689,
3811 2701, 2701, 2701, 2712, 2712, 2712, 2723, 2734, 2743, 2745,
3812 2742, 2809, 2808, 2830, 2835, 2829, 2857, 2856, 2878, 2877,
3813 2904, 2905, 2904, 2929, 2937, 2945, 2953, 2963, 2975, 2982,
3814 2989, 2996, 3003, 3010, 3017, 3024, 3031, 3038, 3045, 3052,
3815 3057, 3058, 3065, 3070, 3073, 3074, 3087, 3088, 3098, 3099,
3816 3102, 3110, 3120, 3128, 3138, 3146, 3154, 3162, 3170, 3178,
3817 3186, 3197, 3205, 3215, 3223, 3231, 3239, 3247, 3255, 3264,
3818 3272, 3280, 3288, 3296, 3304, 3312, 3320, 3328, 3338, 3339,
3819 3345, 3354, 3363, 3374, 3375, 3385, 3392, 3401, 3409, 3415,
3820 3415, 3437, 3445, 3455, 3459, 3466, 3465, 3486, 3502, 3511,
3821 3522, 3531, 3541, 3551, 3559, 3570, 3581, 3589, 3597, 3612,
3822 3611, 3633, 3632, 3653, 3665, 3666, 3669, 3688, 3691, 3699,
3823 3707, 3710, 3714, 3717, 3725, 3728, 3729, 3737, 3740, 3757,
3824 3758, 3759, 3769, 3779, 3806, 3848, 3856, 3863, 3870, 3880,
3825 3888, 3898, 3906, 3913, 3920, 3931, 3938, 3949, 3956, 3966,
3826 3968, 3967, 3984, 3983, 4005, 4013, 4021, 4029, 4032, 4044,
3827 4045, 4046, 4047, 4050, 4081, 4082, 4083, 4091, 4101, 4102,
3828 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4112,
3829 4115, 4125, 4135, 4136, 4139, 4148, 4147, 4155, 4167, 4179,
3830 4185, 4193, 4201, 4209, 4217, 4225, 4233, 4241, 4249, 4257,
3831 4265, 4273, 4281, 4289, 4298, 4307, 4316, 4325, 4334, 4345,
3832 4346, 4358, 4366, 4385, 4392, 4405, 4419, 4433, 4441, 4457,
3833 4465, 4481, 4482, 4485, 4497, 4508, 4509, 4512, 4528, 4532,
3834 4542, 4552, 4552, 4581, 4582, 4592, 4599, 4609, 4617, 4627,
3835 4628, 4629, 4632, 4633, 4634, 4635, 4638, 4639, 4640, 4643,
3836 4648, 4655, 4656, 4659, 4660, 4663, 4666, 4669, 4670, 4671,
3837 4674, 4675, 4678, 4679, 4683
3838 };
3839 static const char *const yytname[] =
3840 {
3841 "$end", "error", "$undefined", "keyword_class", "keyword_module",
3842 "keyword_def", "keyword_undef", "keyword_begin", "keyword_rescue",
3843 "keyword_ensure", "keyword_end", "keyword_if", "keyword_unless",
3844 "keyword_then", "keyword_elsif", "keyword_else", "keyword_case",
3845 "keyword_when", "keyword_while", "keyword_until", "keyword_for",
3846 "keyword_break", "keyword_next", "keyword_redo", "keyword_retry",
3847 "keyword_in", "keyword_do", "keyword_do_cond", "keyword_do_block",
3848 "keyword_do_LAMBDA", "keyword_return", "keyword_yield", "keyword_super",
3849 "keyword_self", "keyword_nil", "keyword_true", "keyword_false",
3850 "keyword_and", "keyword_or", "keyword_not", "modifier_if",
3851 "modifier_unless", "modifier_while", "modifier_until", "modifier_rescue",
3852 "keyword_alias", "keyword_defined", "keyword_BEGIN", "keyword_END",
3853 "keyword__LINE__", "keyword__FILE__", "keyword__ENCODING__",
3854 "tIDENTIFIER", "tFID", "tGVAR", "tIVAR", "tCONSTANT", "tCVAR", "tLABEL",
3855 "tINTEGER", "tFLOAT", "tSTRING_CONTENT", "tCHAR", "tNTH_REF",
3856 "tBACK_REF", "tREGEXP_END", "tUPLUS", "tUMINUS", "tPOW", "tCMP", "tEQ",
3857 "tEQQ", "tNEQ", "tGEQ", "tLEQ", "tANDOP", "tOROP", "tMATCH", "tNMATCH",
3858 "tDOT2", "tDOT3", "tAREF", "tASET", "tLSHFT", "tRSHFT", "tCOLON2",
3859 "tCOLON3", "tOP_ASGN", "tASSOC", "tLPAREN", "tLPAREN_ARG", "tRPAREN",
3860 "tLBRACK", "tLBRACE", "tLBRACE_ARG", "tSTAR", "tAMPER", "tLAMBDA",
3861 "tSYMBEG", "tSTRING_BEG", "tXSTRING_BEG", "tREGEXP_BEG", "tWORDS_BEG",
3862 "tQWORDS_BEG", "tSTRING_DBEG", "tSTRING_DVAR", "tSTRING_END", "tLAMBEG",
3863 "tLOWEST", "'='", "'?'", "':'", "'>'", "'<'", "'|'", "'^'", "'&'", "'+'",
3864 "'-'", "'*'", "'/'", "'%'", "tUMINUS_NUM", "'!'", "'~'", "idNULL",
3865 "idRespond_to", "idIFUNC", "idCFUNC", "idThrowState",
3866 "id_core_set_method_alias", "id_core_set_variable_alias",
3867 "id_core_undef_method", "id_core_define_method",
3868 "id_core_define_singleton_method", "id_core_set_postexe", "tLAST_TOKEN",
3869 "'{'", "'}'", "'['", "'.'", "','", "'`'", "'('", "')'", "']'", "';'",
3870 "' '", "'\\n'", "$accept", "program", "@1", "bodystmt", "compstmt",
3871 "stmts", "stmt", "@2", "@3", "expr", "expr_value", "command_call",
3872 "block_command", "cmd_brace_block", "@4", "command", "mlhs",
3873 "mlhs_inner", "mlhs_basic", "mlhs_item", "mlhs_head", "mlhs_post",
3874 "mlhs_node", "lhs", "cname", "cpath", "fname", "fsym", "fitem",
3875 "undef_list", "@5", "op", "reswords", "arg", "@6", "arg_value",
3876 "aref_args", "paren_args", "opt_paren_args", "opt_call_args",
3877 "call_args", "command_args", "@7", "block_arg", "opt_block_arg", "args",
3878 "mrhs", "primary", "@8", "@9", "@10", "@11", "@12", "@13", "@14", "@15",
3879 "@16", "@17", "@18", "@19", "@20", "@21", "@22", "@23", "primary_value",
3880 "k_begin", "k_if", "k_unless", "k_while", "k_until", "k_case", "k_for",
3881 "k_class", "k_module", "k_def", "k_end", "then", "do", "if_tail",
3882 "opt_else", "for_var", "f_marg", "f_marg_list", "f_margs", "block_param",
3883 "opt_block_param", "block_param_def", "opt_bv_decl", "bv_decls", "bvar",
3884 "lambda", "@24", "f_larglist", "lambda_body", "do_block", "@25",
3885 "block_call", "method_call", "brace_block", "@26", "@27", "case_body",
3886 "cases", "opt_rescue", "exc_list", "exc_var", "opt_ensure", "literal",
3887 "strings", "string", "string1", "xstring", "regexp", "words",
3888 "word_list", "word", "qwords", "qword_list", "string_contents",
3889 "xstring_contents", "string_content", "@28", "@29", "string_dvar",
3890 "symbol", "sym", "dsym", "numeric", "variable", "var_ref", "var_lhs",
3891 "backref", "superclass", "@30", "f_arglist", "f_args", "f_bad_arg",
3892 "f_norm_arg", "f_arg_item", "f_arg", "f_opt", "f_block_opt",
3893 "f_block_optarg", "f_optarg", "restarg_mark", "f_rest_arg",
3894 "blkarg_mark", "f_block_arg", "opt_f_block_arg", "singleton", "@31",
3895 "assoc_list", "assocs", "assoc", "operation", "operation2", "operation3",
3896 "dot_or_colon", "opt_terms", "opt_nl", "rparen", "rbracket", "trailer",
3897 "term", "terms", "none", 0
3898 };
3899 static const yytype_uint16 yyr1[] =
3900 {
3901 0, 149, 151, 150, 152, 153, 154, 154, 154, 154,
3902 156, 155, 155, 155, 155, 155, 155, 155, 155, 155,
3903 155, 157, 155, 155, 155, 155, 155, 155, 155, 155,
3904 155, 155, 155, 155, 155, 155, 158, 158, 158, 158,
3905 158, 158, 159, 160, 160, 160, 160, 160, 161, 161,
3906 161, 163, 162, 164, 164, 164, 164, 164, 164, 164,
3907 164, 165, 165, 166, 166, 167, 167, 167, 167, 167,
3908 167, 167, 167, 167, 167, 168, 168, 169, 169, 170,
3909 170, 171, 171, 171, 171, 171, 171, 171, 171, 172,
3910 172, 172, 172, 172, 172, 172, 172, 173, 173, 174,
3911 174, 174, 175, 175, 175, 175, 175, 176, 176, 177,
3912 177, 178, 179, 178, 180, 180, 180, 180, 180, 180,
3913 180, 180, 180, 180, 180, 180, 180, 180, 180, 180,
3914 180, 180, 180, 180, 180, 180, 180, 180, 180, 180,
3915 180, 180, 180, 181, 181, 181, 181, 181, 181, 181,
3916 181, 181, 181, 181, 181, 181, 181, 181, 181, 181,
3917 181, 181, 181, 181, 181, 181, 181, 181, 181, 181,
3918 181, 181, 181, 181, 181, 181, 181, 181, 181, 181,
3919 181, 181, 181, 181, 182, 182, 182, 182, 182, 182,
3920 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
3921 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
3922 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
3923 182, 182, 182, 182, 182, 182, 183, 182, 182, 182,
3924 184, 185, 185, 185, 185, 186, 187, 187, 188, 188,
3925 189, 189, 189, 189, 189, 191, 190, 192, 193, 193,
3926 193, 194, 194, 194, 194, 195, 195, 195, 196, 196,
3927 196, 196, 196, 196, 196, 196, 196, 197, 196, 198,
3928 196, 196, 196, 196, 196, 196, 196, 196, 196, 196,
3929 199, 196, 196, 196, 196, 196, 196, 196, 196, 196,
3930 200, 201, 196, 202, 203, 196, 196, 196, 204, 205,
3931 196, 206, 196, 207, 208, 196, 209, 196, 210, 196,
3932 211, 212, 196, 196, 196, 196, 196, 213, 214, 215,
3933 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
3934 225, 225, 226, 226, 227, 227, 228, 228, 229, 229,
3935 230, 230, 231, 231, 232, 232, 232, 232, 232, 232,
3936 232, 232, 232, 233, 233, 233, 233, 233, 233, 233,
3937 233, 233, 233, 233, 233, 233, 233, 233, 234, 234,
3938 235, 235, 235, 236, 236, 237, 237, 238, 238, 240,
3939 239, 241, 241, 242, 242, 244, 243, 245, 245, 245,
3940 246, 246, 246, 246, 246, 246, 246, 246, 246, 248,
3941 247, 249, 247, 250, 251, 251, 252, 252, 253, 253,
3942 253, 254, 254, 255, 255, 256, 256, 256, 257, 258,
3943 258, 258, 259, 260, 261, 262, 262, 263, 263, 264,
3944 264, 265, 265, 266, 266, 267, 267, 268, 268, 269,
3945 270, 269, 271, 269, 272, 272, 272, 272, 273, 274,
3946 274, 274, 274, 275, 276, 276, 276, 276, 277, 277,
3947 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
3948 278, 279, 280, 280, 281, 282, 281, 281, 283, 283,
3949 284, 284, 284, 284, 284, 284, 284, 284, 284, 284,
3950 284, 284, 284, 284, 284, 285, 285, 285, 285, 286,
3951 286, 287, 287, 288, 288, 289, 290, 291, 291, 292,
3952 292, 293, 293, 294, 294, 295, 295, 296, 297, 297,
3953 298, 299, 298, 300, 300, 301, 301, 302, 302, 303,
3954 303, 303, 304, 304, 304, 304, 305, 305, 305, 306,
3955 306, 307, 307, 308, 308, 309, 310, 311, 311, 311,
3956 312, 312, 313, 313, 314
3957 };
3958 static const yytype_uint8 yyr2[] =
3959 {
3960 0, 2, 0, 2, 4, 2, 1, 1, 3, 2,
3961 0, 4, 3, 3, 3, 2, 3, 3, 3, 3,
3962 3, 0, 5, 4, 3, 3, 3, 6, 5, 5,
3963 5, 3, 3, 3, 3, 1, 1, 3, 3, 3,
3964 2, 1, 1, 1, 1, 2, 2, 2, 1, 4,
3965 4, 0, 5, 2, 3, 4, 5, 4, 5, 2,
3966 2, 1, 3, 1, 3, 1, 2, 3, 5, 2,
3967 4, 2, 4, 1, 3, 1, 3, 2, 3, 1,
3968 3, 1, 4, 3, 3, 3, 3, 2, 1, 1,
3969 4, 3, 3, 3, 3, 2, 1, 1, 1, 2,
3970 1, 3, 1, 1, 1, 1, 1, 1, 1, 1,
3971 1, 1, 0, 4, 1, 1, 1, 1, 1, 1,
3972 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3973 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3974 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3975 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3976 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3977 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3978 1, 1, 1, 1, 3, 5, 3, 5, 6, 5,
3979 5, 5, 5, 4, 3, 3, 3, 3, 3, 3,
3980 3, 3, 3, 4, 4, 2, 2, 3, 3, 3,
3981 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3982 2, 2, 3, 3, 3, 3, 0, 4, 6, 1,
3983 1, 1, 2, 4, 2, 3, 1, 1, 1, 1,
3984 1, 2, 2, 4, 1, 0, 2, 2, 2, 1,
3985 1, 1, 2, 3, 4, 3, 4, 2, 1, 1,
3986 1, 1, 1, 1, 1, 1, 1, 0, 4, 0,
3987 4, 3, 3, 2, 3, 3, 1, 4, 3, 1,
3988 0, 6, 4, 3, 2, 1, 2, 2, 6, 6,
3989 0, 0, 7, 0, 0, 7, 5, 4, 0, 0,
3990 9, 0, 6, 0, 0, 8, 0, 5, 0, 6,
3991 0, 0, 9, 1, 1, 1, 1, 1, 1, 1,
3992 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3993 1, 2, 1, 1, 1, 5, 1, 2, 1, 1,
3994 1, 3, 1, 3, 1, 4, 6, 3, 5, 2,
3995 4, 1, 3, 6, 8, 4, 6, 4, 2, 6,
3996 2, 4, 6, 2, 4, 2, 4, 1, 1, 1,
3997 3, 1, 4, 1, 2, 1, 3, 1, 1, 0,
3998 3, 4, 1, 3, 3, 0, 5, 2, 4, 4,
3999 2, 4, 4, 3, 3, 3, 2, 1, 4, 0,
4000 5, 0, 5, 5, 1, 1, 6, 1, 1, 1,
4001 1, 2, 1, 2, 1, 1, 1, 1, 1, 1,
4002 1, 2, 3, 3, 3, 3, 3, 0, 3, 1,
4003 2, 3, 3, 0, 3, 0, 2, 0, 2, 1,
4004 0, 3, 0, 4, 1, 1, 1, 1, 2, 1,
4005 1, 1, 1, 3, 1, 1, 2, 2, 1, 1,
4006 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4007 1, 1, 1, 1, 1, 0, 4, 2, 3, 2,
4008 6, 8, 4, 6, 4, 6, 2, 4, 6, 2,
4009 4, 2, 4, 1, 0, 1, 1, 1, 1, 1,
4010 1, 1, 3, 1, 3, 3, 3, 1, 3, 1,
4011 3, 1, 1, 2, 1, 1, 1, 2, 2, 1,
4012 1, 0, 4, 1, 2, 1, 3, 3, 2, 1,
4013 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4014 1, 0, 1, 0, 1, 2, 2, 0, 1, 1,
4015 1, 1, 1, 2, 0
4016 };
4017 static const yytype_uint16 yydefact[] =
4018 {
4019 2, 0, 0, 1, 0, 325, 326, 327, 0, 318,
4020 319, 320, 323, 321, 322, 324, 313, 314, 315, 316,
4021 276, 245, 245, 464, 463, 465, 466, 543, 0, 543,
4022 21, 0, 468, 467, 469, 458, 531, 460, 459, 461,
4023 462, 454, 455, 419, 472, 473, 0, 0, 0, 0,
4024 0, 554, 554, 73, 379, 437, 435, 437, 437, 427,
4025 433, 0, 0, 0, 3, 541, 7, 35, 36, 44,
4026 43, 0, 61, 0, 65, 75, 0, 41, 229, 0,
4027 267, 0, 0, 290, 293, 541, 0, 0, 0, 0,
4028 48, 285, 258, 259, 418, 420, 260, 261, 262, 263,
4029 416, 417, 415, 470, 264, 0, 265, 245, 6, 9,
4030 153, 164, 154, 177, 150, 170, 160, 159, 180, 181,
4031 175, 158, 157, 152, 178, 182, 183, 162, 151, 165,
4032 169, 171, 163, 156, 172, 179, 174, 173, 166, 176,
4033 161, 149, 168, 167, 148, 155, 146, 147, 143, 144,
4034 145, 102, 104, 103, 138, 139, 135, 117, 118, 119,
4035 126, 123, 125, 120, 121, 140, 141, 127, 128, 132,
4036 122, 124, 114, 115, 116, 129, 130, 131, 133, 134,
4037 136, 137, 142, 107, 109, 111, 15, 105, 106, 108,
4038 110, 313, 314, 276, 0, 0, 0, 0, 0, 0,
4039 0, 240, 0, 230, 251, 46, 244, 554, 0, 470,
4040 0, 265, 554, 525, 47, 45, 543, 60, 0, 554,
4041 396, 59, 543, 544, 0, 0, 10, 226, 0, 0,
4042 279, 397, 205, 0, 0, 206, 273, 0, 0, 543,
4043 63, 269, 0, 547, 547, 231, 0, 0, 547, 523,
4044 543, 0, 0, 0, 71, 317, 0, 81, 88, 287,
4045 494, 451, 450, 452, 449, 0, 448, 0, 0, 0,
4046 0, 0, 0, 0, 456, 457, 40, 220, 221, 550,
4047 551, 5, 552, 542, 0, 0, 0, 0, 0, 0,
4048 0, 385, 387, 0, 77, 0, 69, 66, 0, 0,
4049 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4050 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4051 0, 0, 0, 0, 0, 0, 554, 0, 0, 42,
4052 0, 0, 0, 0, 541, 0, 542, 0, 339, 338,
4053 0, 0, 470, 265, 97, 98, 0, 0, 100, 0,
4054 0, 470, 265, 306, 173, 166, 176, 161, 143, 144,
4055 145, 102, 103, 521, 308, 520, 0, 0, 0, 401,
4056 399, 286, 421, 0, 0, 390, 53, 284, 112, 528,
4057 273, 252, 247, 0, 0, 249, 241, 250, 0, 554,
4058 0, 0, 0, 249, 242, 543, 0, 278, 246, 543,
4059 239, 238, 543, 283, 39, 12, 14, 13, 0, 280,
4060 0, 0, 0, 0, 0, 0, 543, 271, 62, 543,
4061 274, 549, 548, 232, 549, 234, 275, 524, 0, 87,
4062 456, 457, 79, 74, 0, 0, 554, 0, 500, 497,
4063 496, 495, 498, 0, 512, 516, 515, 511, 494, 0,
4064 382, 499, 501, 503, 554, 509, 554, 514, 554, 0,
4065 493, 439, 442, 440, 453, 438, 422, 436, 423, 424,
4066 425, 426, 0, 429, 431, 0, 432, 0, 0, 553,
4067 8, 16, 17, 18, 19, 20, 37, 38, 554, 0,
4068 25, 33, 0, 34, 543, 0, 67, 78, 24, 184,
4069 251, 32, 202, 210, 215, 216, 217, 212, 214, 224,
4070 225, 218, 219, 195, 196, 222, 223, 543, 211, 213,
4071 207, 208, 209, 197, 198, 199, 200, 201, 532, 537,
4072 533, 538, 395, 245, 393, 543, 532, 534, 533, 535,
4073 394, 245, 0, 554, 330, 0, 329, 0, 0, 0,
4074 0, 0, 0, 273, 0, 554, 0, 298, 303, 97,
4075 98, 99, 0, 475, 301, 474, 0, 554, 0, 0,
4076 0, 494, 540, 539, 310, 532, 533, 245, 245, 554,
4077 554, 26, 186, 31, 194, 51, 54, 0, 184, 527,
4078 0, 253, 248, 554, 536, 533, 543, 532, 533, 526,
4079 277, 545, 235, 282, 11, 0, 227, 0, 23, 0,
4080 554, 193, 64, 270, 547, 0, 72, 84, 86, 543,
4081 532, 533, 0, 500, 0, 351, 342, 344, 543, 340,
4082 554, 0, 0, 380, 0, 486, 519, 0, 489, 513,
4083 0, 491, 517, 0, 0, 428, 430, 434, 203, 204,
4084 371, 554, 0, 369, 368, 257, 0, 76, 70, 0,
4085 0, 0, 0, 0, 392, 57, 0, 398, 0, 0,
4086 237, 391, 55, 236, 328, 268, 554, 554, 407, 554,
4087 331, 554, 333, 291, 332, 294, 0, 0, 297, 536,
4088 272, 543, 532, 533, 0, 0, 477, 0, 0, 97,
4089 98, 101, 543, 0, 543, 494, 0, 0, 0, 389,
4090 50, 388, 49, 0, 0, 0, 554, 113, 254, 243,
4091 0, 398, 0, 0, 543, 22, 233, 80, 82, 505,
4092 543, 0, 349, 0, 502, 0, 543, 373, 0, 0,
4093 504, 554, 554, 518, 554, 510, 554, 554, 0, 444,
4094 445, 446, 441, 447, 500, 554, 0, 554, 507, 554,
4095 554, 367, 0, 0, 255, 68, 185, 0, 30, 191,
4096 192, 58, 546, 0, 28, 189, 29, 190, 56, 408,
4097 409, 554, 410, 0, 554, 336, 0, 0, 334, 0,
4098 0, 0, 296, 0, 0, 398, 0, 304, 0, 0,
4099 398, 307, 522, 543, 0, 479, 311, 0, 0, 187,
4100 0, 0, 281, 341, 352, 0, 347, 343, 377, 374,
4101 375, 378, 381, 384, 383, 0, 482, 0, 484, 0,
4102 490, 0, 487, 492, 443, 0, 0, 370, 358, 360,
4103 0, 363, 0, 365, 386, 256, 228, 27, 188, 0,
4104 0, 412, 337, 0, 4, 414, 0, 288, 289, 0,
4105 0, 253, 554, 299, 0, 476, 302, 478, 309, 494,
4106 402, 400, 0, 0, 350, 0, 345, 0, 554, 554,
4107 554, 554, 0, 506, 372, 554, 554, 554, 508, 554,
4108 554, 0, 411, 0, 89, 96, 0, 413, 0, 292,
4109 295, 404, 405, 403, 0, 0, 0, 52, 348, 0,
4110 376, 483, 0, 480, 485, 488, 273, 0, 0, 355,
4111 0, 357, 364, 0, 361, 366, 95, 0, 554, 0,
4112 554, 554, 0, 305, 0, 346, 554, 536, 272, 554,
4113 554, 554, 554, 536, 94, 543, 532, 533, 406, 335,
4114 300, 312, 481, 356, 0, 353, 359, 362, 398, 554,
4115 354
4116 };
4117 static const yytype_int16 yydefgoto[] =
4118 {
4119 -1, 1, 2, 542, 543, 65, 66, 408, 228, 67,
4120 330, 68, 69, 586, 716, 70, 71, 239, 72, 73,
4121 74, 433, 75, 202, 348, 349, 183, 184, 185, 186,
4122 587, 539, 188, 77, 410, 204, 242, 532, 671, 399,
4123 400, 217, 218, 206, 386, 207, 493, 78, 328, 419,
4124 605, 332, 790, 333, 791, 694, 904, 698, 695, 864,
4125 569, 571, 708, 869, 233, 80, 81, 82, 83, 84,
4126 85, 86, 87, 88, 89, 675, 545, 683, 787, 788,
4127 341, 626, 627, 628, 755, 652, 653, 736, 819, 820,
4128 259, 260, 449, 633, 292, 488, 90, 91, 377, 580,
4129 579, 552, 903, 677, 781, 850, 854, 92, 93, 94,
4130 95, 96, 97, 98, 271, 472, 99, 273, 267, 265,
4131 465, 644, 643, 752, 100, 266, 101, 102, 209, 104,
4132 210, 211, 564, 697, 706, 707, 451, 452, 453, 454,
4133 455, 758, 759, 456, 457, 458, 459, 743, 635, 366,
4134 570, 247, 212, 213, 234, 609, 534, 574, 281, 396,
4135 397, 667, 423, 546, 336, 108
4136 };
4137 static const yytype_int16 yypact[] =
4138 {
4139 -747, 103, 2364, -747, 6711, -747, -747, -747, 6222, -747,
4140 -747, -747, -747, -747, -747, -747, 6820, 6820, -747, -747,
4141 6820, 3057, 2631, -747, -747, -747, -747, 282, 6082, -24,
4142 -747, 64, -747, -747, -747, 5317, 2773, -747, -747, 5445,
4143 -747, -747, -747, -747, -747, -747, 8019, 8019, 74, 4131,
4144 8128, 7038, 7365, 6487, -747, 5942, -747, -747, -747, 142,
4145 154, 84, 8237, 8019, -747, 473, 925, 71, -747, -747,
4146 238, 234, -747, 205, 8346, -747, 268, 2472, 31, 46,
4147 -747, 8128, 8128, -747, -747, 4792, 8451, 8556, 8661, 5189,
4148 14, 70, -747, -747, 290, -747, -747, -747, -747, -747,
4149 -747, -747, -747, 26, -747, 366, 355, 210, -747, 925,
4150 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
4151 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
4152 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
4153 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
4154 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
4155 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
4156 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
4157 -747, -747, -747, -747, -747, -747, 321, -747, -747, -747,
4158 -747, -747, -747, -747, 328, 8019, 433, 4262, 8019, 8019,
4159 8019, -747, 403, 2472, 440, -747, -747, 418, 300, 13,
4160 457, 24, 437, -747, -747, -747, 4670, -747, 6820, 6820,
4161 -747, -747, 4923, -747, 8128, 438, -747, 436, 449, 4393,
4162 452, 463, -747, 346, 210, 546, 451, 4131, 474, -24,
4163 525, 71, 477, 165, 276, -747, 440, 498, 276, -747,
4164 -24, 582, 250, 8766, 501, -747, 374, 384, 394, -747,
4165 933, -747, -747, -747, -747, 595, -747, 659, 673, 76,
4166 552, 721, 553, 43, 584, 596, -747, -747, -747, -747,
4167 -747, -747, -747, 5045, 8128, 8128, 8128, 8128, 6711, 8128,
4168 8128, -747, -747, 7474, -747, 4131, 6599, 524, 7474, 8019,
4169 8019, 8019, 8019, 8019, 8019, 8019, 8019, 8019, 8019, 8019,
4170 8019, 8019, 8019, 8019, 8019, 8019, 8019, 8019, 8019, 8019,
4171 8019, 8019, 8019, 8019, 8019, 9033, 6820, 9111, 3431, 71,
4172 119, 119, 8128, 8128, 473, 652, 528, 614, -747, -747,
4173 424, 654, 56, 92, 335, 344, 8128, 131, -747, 42,
4174 444, -747, -747, -747, 33, 35, 53, 217, 227, 235,
4175 265, 298, 333, -747, -747, -747, 358, 10047, 10047, -747,
4176 -747, -747, -747, 8237, 8237, -747, 587, -747, -747, -747,
4177 305, -747, -747, 8019, 8019, 6929, -747, -747, 9189, 6820,
4178 9267, 8019, 8019, 7147, -747, -24, 540, -747, -747, -24,
4179 -747, -747, 242, -747, -747, -747, -747, -747, 6222, -747,
4180 8019, 4393, 555, 9189, 9267, 8019, -24, -747, 556, -24,
4181 -747, 7256, -747, -747, 7365, -747, -747, -747, 436, 470,
4182 -747, -747, -747, 557, 8766, 9345, 6820, 9423, 585, -747,
4183 -747, -747, -747, 843, -747, -747, -747, -747, 835, 49,
4184 -747, -747, -747, -747, 564, -747, 565, 658, 572, 662,
4185 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
4186 -747, -747, 21, -747, -747, 569, -747, 8019, 8019, -747,
4187 925, -747, -747, -747, -747, -747, -747, -747, 38, 8019,
4188 -747, 577, 578, -747, -24, 8766, 581, -747, -747, 2225,
4189 -747, -747, 546, 2143, 2143, 2143, 2143, 1115, 1115, 2614,
4190 2024, 2143, 2143, 1738, 1738, 718, 718, 1856, 1115, 1115,
4191 619, 619, 692, 274, 274, 546, 546, 546, 3199, 5687,
4192 3285, 5801, -747, 463, -747, -24, 460, -747, 471, -747,
4193 -747, 2915, 715, 734, -747, 3577, 713, 3869, 175, 175,
4194 652, 7583, 715, 96, 9501, 6820, 9579, -747, 71, -747,
4195 470, -747, 473, -747, -747, -747, 9657, 6820, 9735, 3431,
4196 8128, 1108, -747, -747, -747, -747, -747, 996, 996, 38,
4197 38, -747, 2242, -747, 2472, -747, -747, 6222, 10104, -747,
4198 8019, 440, -747, 437, 5573, 2489, -24, 367, 390, -747,
4199 -747, -747, -747, -747, -747, 8128, 2472, 605, -747, 463,
4200 463, 2472, -7, -747, 276, 8766, 557, 500, 267, -24,
4201 48, 50, 8019, -747, 843, 592, -747, 603, -24, -747,
4202 600, 4539, 4393, -747, 835, -747, -747, 835, -747, -747,
4203 634, -747, -747, 4393, 865, -747, -747, -747, 546, 546,
4204 -747, 411, 4539, -747, -747, 607, 7692, -747, 557, 8766,
4205 8019, 644, 8237, 8019, -747, 587, 612, 544, 8237, 8237,
4206 -747, -747, 587, -747, -747, -747, 7801, 744, -747, 413,
4207 -747, 744, -747, -747, -747, -747, 715, 208, -747, 62,
4208 85, -24, 117, 120, 8128, 473, -747, 8128, 3431, 500,
4209 267, -747, -24, 715, 242, 835, 3431, 473, 6362, -747,
4210 -747, -747, -747, 4539, 4393, 8019, 38, -747, -747, -747,
4211 8019, 432, 8019, 8019, 242, -747, -747, -747, 465, -747,
4212 -24, 788, 620, 854, -747, 885, -24, -747, 756, 631,
4213 -747, 629, 633, -747, 639, -747, 642, 639, 657, -747,
4214 -747, -747, -747, -747, 681, 600, 683, 665, -747, 666,
4215 676, -747, 789, 8019, 680, 557, 2472, 8019, -747, 2472,
4216 2472, -747, -747, 8237, -747, 2472, -747, 2472, -747, 577,
4217 -747, 710, -747, 4000, 814, -747, 8128, 715, -747, 715,
4218 4539, 4539, -747, 7910, 3723, 133, 175, -747, 473, 715,
4219 -747, -747, -747, -24, 715, -747, -747, 822, 696, 2472,
4220 4393, 8019, -747, -747, 700, 788, 621, -747, -747, 705,
4221 -747, -747, -747, -747, -747, 835, -747, 634, -747, 634,
4222 -747, 634, -747, -747, -747, 8871, 736, -747, 1125, -747,
4223 1125, -747, 634, -747, -747, 711, 2472, -747, 2472, 8976,
4224 119, -747, -747, 4539, -747, -747, 119, -747, -747, 715,
4225 715, -747, 505, -747, 3431, -747, -747, -747, -747, 1108,
4226 -747, -747, 717, 788, 700, 788, 716, 885, 639, 720,
4227 639, 639, 807, 487, -747, 725, 726, 639, -747, 728,
4228 639, 815, -747, 522, 384, 394, 3431, -747, 3577, -747,
4229 -747, -747, -747, -747, 4539, 715, 3431, -747, 700, 788,
4230 -747, -747, 634, -747, -747, -747, -747, 9813, 1125, -747,
4231 634, -747, -747, 634, -747, -747, 470, 9891, 6820, 9969,
4232 734, 413, 715, -747, 715, 700, 639, 727, 730, 639,
4233 738, 639, 639, 212, 267, -24, 152, 187, -747, -747,
4234 -747, -747, -747, -747, 634, -747, -747, -747, 193, 639,
4235 -747
4236 };
4237 static const yytype_int16 yypgoto[] =
4238 {
4239 -747, -747, -747, -537, 976, -747, 20, -747, -747, -14,
4240 30, -45, -747, -133, -747, 22, 772, -149, 9, -69,
4241 -747, -400, -4, 1540, -303, 793, -54, -747, -12, -747,
4242 -747, 0, -747, 802, -747, -48, -747, -16, -29, -313,
4243 81, 55, -747, -245, -192, -41, -272, -34, -747, -747,
4244 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
4245 -747, -747, -747, -747, -2, -747, -747, -747, -747, -747,
4246 -747, -747, -747, -747, -747, -31, -319, -519, -49, -607,
4247 -747, -664, -641, 260, -747, -487, -747, -532, -747, 8,
4248 -747, -747, -747, -747, -747, -747, -747, -747, 795, -747,
4249 -747, -528, -747, -42, -747, -747, -747, -747, -747, -747,
4250 799, -747, -747, -747, -747, -747, -747, -747, -747, 513,
4251 -208, -747, -747, -747, -5, -747, 29, -747, 1251, 816,
4252 747, 1369, -747, -747, 47, -235, -673, -393, -569, -40,
4253 -576, -746, 69, 278, -747, -474, -747, -249, 959, -747,
4254 -747, -747, -6, -288, 162, -261, -747, -747, -56, -20,
4255 17, -563, -217, -44, 850, 752
4256 };
4257 static const yytype_int16 yytable[] =
4258 {
4259 79, 264, 79, 189, 246, 297, 220, 224, 187, 227,
4260 243, 460, 547, 535, 208, 208, 226, 276, 208, 255,
4261 394, 282, 686, 189, 109, 450, 501, 425, 187, 335,
4262 685, 427, 703, 721, 616, 364, 241, 190, 201, 201,
4263 255, 282, 201, 562, 561, 244, 248, 79, 208, 254,
4264 629, 256, 255, 255, 255, 187, 728, 190, 240, 467,
4265 208, 745, 821, 473, 533, 740, 541, 329, 329, 817,
4266 784, 329, 256, -83, 789, -85, 596, 221, 631, 208,
4267 208, -89, 461, 208, 340, 350, 350, -92, 416, 187,
4268 814, 375, 713, 714, 888, 658, 369, 205, 214, 367,
4269 -471, 215, -62, 3, 475, 599, 577, 578, 289, 290,
4270 -94, 392, 331, -471, 650, 334, -317, -96, -464, 756,
4271 -463, -95, -89, 619, 223, 462, 463, 533, 795, 541,
4272 236, 325, 544, -96, -76, -89, 599, 461, -465, 800,
4273 592, 469, -91, 274, 275, -93, 494, 379, 592, 476,
4274 381, 382, 651, 610, 368, 563, 632, -83, -90, -85,
4275 742, 799, 376, 746, 107, -91, 107, -81, 645, 804,
4276 -317, -317, 888, -464, 874, -463, 610, 760, 107, 107,
4277 462, 463, 107, 559, 432, 326, 327, 560, 279, -83,
4278 280, -85, -83, -465, -85, 79, -83, -81, -85, 460,
4279 -93, 229, 682, -84, 821, -532, -90, 370, 402, 817,
4280 404, 107, 107, 630, 208, 220, 208, 208, 375, 255,
4281 208, 544, 208, 836, 107, -92, -86, 79, -533, 810,
4282 428, 629, 732, -88, 908, 79, 369, -87, 201, 403,
4283 201, 201, 691, 107, 107, 491, 240, 107, 490, 745,
4284 500, 256, 492, 498, 702, 901, 418, 492, -83, 765,
4285 740, -85, 255, 701, 646, 279, 291, 280, 935, 740,
4286 329, 329, 329, 329, -82, 486, 487, 863, 550, 289,
4287 290, 79, 208, 208, 208, 208, 79, 208, 208, 270,
4288 282, 208, 496, 79, 256, 610, 208, 395, -91, 398,
4289 -91, 272, -466, 480, 240, 565, 421, 610, 485, 430,
4290 431, 540, -468, 422, 481, 482, 483, 484, 329, 329,
4291 -467, 279, 460, 280, 208, 531, 79, 905, 581, 583,
4292 208, 208, 558, -93, 902, -93, 589, 591, 629, -90,
4293 629, -90, 299, 293, 208, 246, 294, 370, 201, 793,
4294 -469, 879, -272, 219, 279, -532, 280, -466, -92, 107,
4295 -92, -529, 548, 549, 886, 432, 889, -468, 794, 934,