2 # 1 "/home/hramrach/ruby-1.9.1-rc1//"
32 keyword_do_cond = 282,
33 keyword_do_block = 283,
34 keyword_do_LAMBDA = 284,
46 modifier_unless = 296,
49 modifier_rescue = 299,
51 keyword_defined = 301,
54 keyword__LINE__ = 304,
55 keyword__FILE__ = 305,
56 keyword__ENCODING__ = 306,
66 tSTRING_CONTENT = 316,
120 id_core_set_method_alias = 370,
121 id_core_set_variable_alias = 371,
122 id_core_undef_method = 372,
123 id_core_define_method = 373,
124 id_core_define_singleton_method = 374,
125 id_core_set_postexe = 375,
135 # 1 "./include/ruby/ruby.h" 1
136 # 25 "./include/ruby/ruby.h"
137 # 1 ".ext/include/i686-linux/ruby/config.h" 1
138 # 26 "./include/ruby/ruby.h" 2
139 # 50 "./include/ruby/ruby.h"
140 # 1 "/usr/include/stdlib.h" 1 3 4
141 # 25 "/usr/include/stdlib.h" 3 4
142 # 1 "/usr/include/features.h" 1 3 4
143 # 330 "/usr/include/features.h" 3 4
144 # 1 "/usr/include/sys/cdefs.h" 1 3 4
145 # 348 "/usr/include/sys/cdefs.h" 3 4
146 # 1 "/usr/include/bits/wordsize.h" 1 3 4
147 # 349 "/usr/include/sys/cdefs.h" 2 3 4
148 # 331 "/usr/include/features.h" 2 3 4
149 # 354 "/usr/include/features.h" 3 4
150 # 1 "/usr/include/gnu/stubs.h" 1 3 4
154 # 1 "/usr/include/bits/wordsize.h" 1 3 4
155 # 5 "/usr/include/gnu/stubs.h" 2 3 4
158 # 1 "/usr/include/gnu/stubs-32.h" 1 3 4
159 # 8 "/usr/include/gnu/stubs.h" 2 3 4
160 # 355 "/usr/include/features.h" 2 3 4
161 # 26 "/usr/include/stdlib.h" 2 3 4
169 # 1 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include/stddef.h" 1 3 4
170 # 214 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include/stddef.h" 3 4
171 typedef unsigned int size_t;
172 # 326 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include/stddef.h" 3 4
174 # 34 "/usr/include/stdlib.h" 2 3 4
183 # 1 "/usr/include/bits/waitflags.h" 1 3 4
184 # 43 "/usr/include/stdlib.h" 2 3 4
185 # 1 "/usr/include/bits/waitstatus.h" 1 3 4
186 # 65 "/usr/include/bits/waitstatus.h" 3 4
187 # 1 "/usr/include/endian.h" 1 3 4
188 # 37 "/usr/include/endian.h" 3 4
189 # 1 "/usr/include/bits/endian.h" 1 3 4
190 # 38 "/usr/include/endian.h" 2 3 4
191 # 66 "/usr/include/bits/waitstatus.h" 2 3 4
199 unsigned int __w_termsig:7;
200 unsigned int __w_coredump:1;
201 unsigned int __w_retcode:8;
214 unsigned int __w_stopval:8;
215 unsigned int __w_stopsig:8;
225 # 44 "/usr/include/stdlib.h" 2 3 4
226 # 68 "/usr/include/stdlib.h" 3 4
231 } __WAIT_STATUS __attribute__ ((__transparent_union__));
232 # 96 "/usr/include/stdlib.h" 3 4
255 __extension__ typedef struct
262 # 140 "/usr/include/stdlib.h" 3 4
263 extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__)) ;
268 extern double atof (__const char *__nptr)
269 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
271 extern int atoi (__const char *__nptr)
272 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
274 extern long int atol (__const char *__nptr)
275 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
281 __extension__ extern long long int atoll (__const char *__nptr)
282 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
288 extern double strtod (__const char *__restrict __nptr,
289 char **__restrict __endptr)
290 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
296 extern float strtof (__const char *__restrict __nptr,
297 char **__restrict __endptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
299 extern long double strtold (__const char *__restrict __nptr,
300 char **__restrict __endptr)
301 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
307 extern long int strtol (__const char *__restrict __nptr,
308 char **__restrict __endptr, int __base)
309 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
311 extern unsigned long int strtoul (__const char *__restrict __nptr,
312 char **__restrict __endptr, int __base)
313 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
319 extern long long int strtoq (__const char *__restrict __nptr,
320 char **__restrict __endptr, int __base)
321 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
324 extern unsigned long long int strtouq (__const char *__restrict __nptr,
325 char **__restrict __endptr, int __base)
326 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
333 extern long long int strtoll (__const char *__restrict __nptr,
334 char **__restrict __endptr, int __base)
335 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
338 extern unsigned long long int strtoull (__const char *__restrict __nptr,
339 char **__restrict __endptr, int __base)
340 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
342 # 236 "/usr/include/stdlib.h" 3 4
343 # 1 "/usr/include/xlocale.h" 1 3 4
344 # 28 "/usr/include/xlocale.h" 3 4
345 typedef struct __locale_struct
348 struct locale_data *__locales[13];
351 const unsigned short int *__ctype_b;
352 const int *__ctype_tolower;
353 const int *__ctype_toupper;
356 const char *__names[13];
358 # 237 "/usr/include/stdlib.h" 2 3 4
362 extern long int strtol_l (__const char *__restrict __nptr,
363 char **__restrict __endptr, int __base,
364 __locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) ;
366 extern unsigned long int strtoul_l (__const char *__restrict __nptr,
367 char **__restrict __endptr,
368 int __base, __locale_t __loc)
369 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) ;
372 extern long long int strtoll_l (__const char *__restrict __nptr,
373 char **__restrict __endptr, int __base,
375 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) ;
378 extern unsigned long long int strtoull_l (__const char *__restrict __nptr,
379 char **__restrict __endptr,
380 int __base, __locale_t __loc)
381 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) ;
383 extern double strtod_l (__const char *__restrict __nptr,
384 char **__restrict __endptr, __locale_t __loc)
385 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) ;
387 extern float strtof_l (__const char *__restrict __nptr,
388 char **__restrict __endptr, __locale_t __loc)
389 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) ;
391 extern long double strtold_l (__const char *__restrict __nptr,
392 char **__restrict __endptr,
394 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) ;
400 extern __inline double
401 __attribute__ ((__nothrow__)) atof (__const char *__nptr)
403 return strtod (__nptr, (char **) ((void *)0));
406 __attribute__ ((__nothrow__)) atoi (__const char *__nptr)
408 return (int) strtol (__nptr, (char **) ((void *)0), 10);
410 extern __inline long int
411 __attribute__ ((__nothrow__)) atol (__const char *__nptr)
413 return strtol (__nptr, (char **) ((void *)0), 10);
419 __extension__ extern __inline long long int
420 __attribute__ ((__nothrow__)) atoll (__const char *__nptr)
422 return strtoll (__nptr, (char **) ((void *)0), 10);
425 # 311 "/usr/include/stdlib.h" 3 4
426 extern char *l64a (long int __n) __attribute__ ((__nothrow__)) ;
429 extern long int a64l (__const char *__s)
430 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
435 # 1 "/usr/include/sys/types.h" 1 3 4
436 # 29 "/usr/include/sys/types.h" 3 4
439 # 1 "/usr/include/bits/types.h" 1 3 4
440 # 28 "/usr/include/bits/types.h" 3 4
441 # 1 "/usr/include/bits/wordsize.h" 1 3 4
442 # 29 "/usr/include/bits/types.h" 2 3 4
445 typedef unsigned char __u_char;
446 typedef unsigned short int __u_short;
447 typedef unsigned int __u_int;
448 typedef unsigned long int __u_long;
451 typedef signed char __int8_t;
452 typedef unsigned char __uint8_t;
453 typedef signed short int __int16_t;
454 typedef unsigned short int __uint16_t;
455 typedef signed int __int32_t;
456 typedef unsigned int __uint32_t;
461 __extension__ typedef signed long long int __int64_t;
462 __extension__ typedef unsigned long long int __uint64_t;
470 __extension__ typedef long long int __quad_t;
471 __extension__ typedef unsigned long long int __u_quad_t;
472 # 131 "/usr/include/bits/types.h" 3 4
473 # 1 "/usr/include/bits/typesizes.h" 1 3 4
474 # 132 "/usr/include/bits/types.h" 2 3 4
477 __extension__ typedef __u_quad_t __dev_t;
478 __extension__ typedef unsigned int __uid_t;
479 __extension__ typedef unsigned int __gid_t;
480 __extension__ typedef unsigned long int __ino_t;
481 __extension__ typedef __u_quad_t __ino64_t;
482 __extension__ typedef unsigned int __mode_t;
483 __extension__ typedef unsigned int __nlink_t;
484 __extension__ typedef long int __off_t;
485 __extension__ typedef __quad_t __off64_t;
486 __extension__ typedef int __pid_t;
487 __extension__ typedef struct { int __val[2]; } __fsid_t;
488 __extension__ typedef long int __clock_t;
489 __extension__ typedef unsigned long int __rlim_t;
490 __extension__ typedef __u_quad_t __rlim64_t;
491 __extension__ typedef unsigned int __id_t;
492 __extension__ typedef long int __time_t;
493 __extension__ typedef unsigned int __useconds_t;
494 __extension__ typedef long int __suseconds_t;
496 __extension__ typedef int __daddr_t;
497 __extension__ typedef long int __swblk_t;
498 __extension__ typedef int __key_t;
501 __extension__ typedef int __clockid_t;
504 __extension__ typedef void * __timer_t;
507 __extension__ typedef long int __blksize_t;
512 __extension__ typedef long int __blkcnt_t;
513 __extension__ typedef __quad_t __blkcnt64_t;
516 __extension__ typedef unsigned long int __fsblkcnt_t;
517 __extension__ typedef __u_quad_t __fsblkcnt64_t;
520 __extension__ typedef unsigned long int __fsfilcnt_t;
521 __extension__ typedef __u_quad_t __fsfilcnt64_t;
523 __extension__ typedef int __ssize_t;
527 typedef __off64_t __loff_t;
528 typedef __quad_t *__qaddr_t;
529 typedef char *__caddr_t;
532 __extension__ typedef int __intptr_t;
535 __extension__ typedef unsigned int __socklen_t;
536 # 32 "/usr/include/sys/types.h" 2 3 4
540 typedef __u_char u_char;
541 typedef __u_short u_short;
542 typedef __u_int u_int;
543 typedef __u_long u_long;
544 typedef __quad_t quad_t;
545 typedef __u_quad_t u_quad_t;
546 typedef __fsid_t fsid_t;
551 typedef __loff_t loff_t;
557 typedef __ino64_t ino_t;
562 typedef __ino64_t ino64_t;
567 typedef __dev_t dev_t;
572 typedef __gid_t gid_t;
577 typedef __mode_t mode_t;
582 typedef __nlink_t nlink_t;
587 typedef __uid_t uid_t;
595 typedef __off64_t off_t;
600 typedef __off64_t off64_t;
605 typedef __pid_t pid_t;
615 typedef __ssize_t ssize_t;
621 typedef __daddr_t daddr_t;
622 typedef __caddr_t caddr_t;
628 typedef __key_t key_t;
629 # 133 "/usr/include/sys/types.h" 3 4
630 # 1 "/usr/include/time.h" 1 3 4
631 # 59 "/usr/include/time.h" 3 4
634 typedef __clock_t clock_t;
638 # 75 "/usr/include/time.h" 3 4
641 typedef __time_t time_t;
645 # 93 "/usr/include/time.h" 3 4
646 typedef __clockid_t clockid_t;
647 # 105 "/usr/include/time.h" 3 4
648 typedef __timer_t timer_t;
649 # 134 "/usr/include/sys/types.h" 2 3 4
653 typedef __useconds_t useconds_t;
657 typedef __suseconds_t suseconds_t;
663 # 1 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include/stddef.h" 1 3 4
664 # 148 "/usr/include/sys/types.h" 2 3 4
668 typedef unsigned long int ulong;
669 typedef unsigned short int ushort;
670 typedef unsigned int uint;
671 # 195 "/usr/include/sys/types.h" 3 4
672 typedef int int8_t __attribute__ ((__mode__ (__QI__)));
673 typedef int int16_t __attribute__ ((__mode__ (__HI__)));
674 typedef int int32_t __attribute__ ((__mode__ (__SI__)));
675 typedef int int64_t __attribute__ ((__mode__ (__DI__)));
678 typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
679 typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
680 typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
681 typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
683 typedef int register_t __attribute__ ((__mode__ (__word__)));
684 # 220 "/usr/include/sys/types.h" 3 4
685 # 1 "/usr/include/sys/select.h" 1 3 4
686 # 31 "/usr/include/sys/select.h" 3 4
687 # 1 "/usr/include/bits/select.h" 1 3 4
688 # 32 "/usr/include/sys/select.h" 2 3 4
691 # 1 "/usr/include/bits/sigset.h" 1 3 4
692 # 24 "/usr/include/bits/sigset.h" 3 4
693 typedef int __sig_atomic_t;
700 unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
702 # 35 "/usr/include/sys/select.h" 2 3 4
706 typedef __sigset_t sigset_t;
712 # 1 "/usr/include/time.h" 1 3 4
713 # 121 "/usr/include/time.h" 3 4
719 # 45 "/usr/include/sys/select.h" 2 3 4
721 # 1 "/usr/include/bits/time.h" 1 3 4
722 # 69 "/usr/include/bits/time.h" 3 4
726 __suseconds_t tv_usec;
728 # 47 "/usr/include/sys/select.h" 2 3 4
729 # 55 "/usr/include/sys/select.h" 3 4
730 typedef long int __fd_mask;
731 # 67 "/usr/include/sys/select.h" 3 4
737 __fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))];
750 typedef __fd_mask fd_mask;
751 # 99 "/usr/include/sys/select.h" 3 4
753 # 109 "/usr/include/sys/select.h" 3 4
754 extern int select (int __nfds, fd_set *__restrict __readfds,
755 fd_set *__restrict __writefds,
756 fd_set *__restrict __exceptfds,
757 struct timeval *__restrict __timeout);
758 # 121 "/usr/include/sys/select.h" 3 4
759 extern int pselect (int __nfds, fd_set *__restrict __readfds,
760 fd_set *__restrict __writefds,
761 fd_set *__restrict __exceptfds,
762 const struct timespec *__restrict __timeout,
763 const __sigset_t *__restrict __sigmask);
767 # 221 "/usr/include/sys/types.h" 2 3 4
770 # 1 "/usr/include/sys/sysmacros.h" 1 3 4
771 # 30 "/usr/include/sys/sysmacros.h" 3 4
773 extern unsigned int gnu_dev_major (unsigned long long int __dev)
774 __attribute__ ((__nothrow__));
776 extern unsigned int gnu_dev_minor (unsigned long long int __dev)
777 __attribute__ ((__nothrow__));
779 extern unsigned long long int gnu_dev_makedev (unsigned int __major,
780 unsigned int __minor)
781 __attribute__ ((__nothrow__));
784 __extension__ extern __inline unsigned int
785 __attribute__ ((__nothrow__)) gnu_dev_major (unsigned long long int __dev)
787 return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff);
790 __extension__ extern __inline unsigned int
791 __attribute__ ((__nothrow__)) gnu_dev_minor (unsigned long long int __dev)
793 return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff);
796 __extension__ extern __inline unsigned long long int
797 __attribute__ ((__nothrow__)) gnu_dev_makedev (unsigned int __major, unsigned int __minor)
799 return ((__minor & 0xff) | ((__major & 0xfff) << 8)
800 | (((unsigned long long int) (__minor & ~0xff)) << 12)
801 | (((unsigned long long int) (__major & ~0xfff)) << 32));
803 # 224 "/usr/include/sys/types.h" 2 3 4
808 typedef __blksize_t blksize_t;
809 # 248 "/usr/include/sys/types.h" 3 4
810 typedef __blkcnt64_t blkcnt_t;
814 typedef __fsblkcnt64_t fsblkcnt_t;
818 typedef __fsfilcnt64_t fsfilcnt_t;
824 typedef __blkcnt64_t blkcnt64_t;
825 typedef __fsblkcnt64_t fsblkcnt64_t;
826 typedef __fsfilcnt64_t fsfilcnt64_t;
832 # 1 "/usr/include/bits/pthreadtypes.h" 1 3 4
833 # 23 "/usr/include/bits/pthreadtypes.h" 3 4
834 # 1 "/usr/include/bits/wordsize.h" 1 3 4
835 # 24 "/usr/include/bits/pthreadtypes.h" 2 3 4
836 # 50 "/usr/include/bits/pthreadtypes.h" 3 4
837 typedef unsigned long int pthread_t;
845 # 67 "/usr/include/bits/pthreadtypes.h" 3 4
846 typedef struct __pthread_internal_slist
848 struct __pthread_internal_slist *__next;
857 struct __pthread_mutex_s
860 unsigned int __count;
873 unsigned int __nusers;
877 __pthread_slist_t __list;
889 } pthread_mutexattr_t;
899 unsigned int __futex;
900 __extension__ unsigned long long int __total_seq;
901 __extension__ unsigned long long int __wakeup_seq;
902 __extension__ unsigned long long int __woken_seq;
904 unsigned int __nwaiters;
905 unsigned int __broadcast_seq;
908 __extension__ long long int __align;
915 } pthread_condattr_t;
919 typedef unsigned int pthread_key_t;
923 typedef int pthread_once_t;
931 # 170 "/usr/include/bits/pthreadtypes.h" 3 4
935 unsigned int __nr_readers;
936 unsigned int __readers_wakeup;
937 unsigned int __writer_wakeup;
938 unsigned int __nr_readers_queued;
939 unsigned int __nr_writers_queued;
942 unsigned char __flags;
943 unsigned char __shared;
944 unsigned char __pad1;
945 unsigned char __pad2;
957 } pthread_rwlockattr_t;
963 typedef volatile int pthread_spinlock_t;
978 } pthread_barrierattr_t;
979 # 271 "/usr/include/sys/types.h" 2 3 4
983 # 321 "/usr/include/stdlib.h" 2 3 4
990 extern long int random (void) __attribute__ ((__nothrow__));
993 extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__));
999 extern char *initstate (unsigned int __seed, char *__statebuf,
1000 size_t __statelen) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
1004 extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1023 extern int random_r (struct random_data *__restrict __buf,
1024 int32_t *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1026 extern int srandom_r (unsigned int __seed, struct random_data *__buf)
1027 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
1029 extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
1031 struct random_data *__restrict __buf)
1032 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));
1034 extern int setstate_r (char *__restrict __statebuf,
1035 struct random_data *__restrict __buf)
1036 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1043 extern int rand (void) __attribute__ ((__nothrow__));
1045 extern void srand (unsigned int __seed) __attribute__ ((__nothrow__));
1050 extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__));
1058 extern double drand48 (void) __attribute__ ((__nothrow__));
1059 extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1062 extern long int lrand48 (void) __attribute__ ((__nothrow__));
1063 extern long int nrand48 (unsigned short int __xsubi[3])
1064 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1067 extern long int mrand48 (void) __attribute__ ((__nothrow__));
1068 extern long int jrand48 (unsigned short int __xsubi[3])
1069 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1072 extern void srand48 (long int __seedval) __attribute__ ((__nothrow__));
1073 extern unsigned short int *seed48 (unsigned short int __seed16v[3])
1074 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1075 extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1083 unsigned short int __x[3];
1084 unsigned short int __old_x[3];
1085 unsigned short int __c;
1086 unsigned short int __init;
1087 unsigned long long int __a;
1091 extern int drand48_r (struct drand48_data *__restrict __buffer,
1092 double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1093 extern int erand48_r (unsigned short int __xsubi[3],
1094 struct drand48_data *__restrict __buffer,
1095 double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1098 extern int lrand48_r (struct drand48_data *__restrict __buffer,
1099 long int *__restrict __result)
1100 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1101 extern int nrand48_r (unsigned short int __xsubi[3],
1102 struct drand48_data *__restrict __buffer,
1103 long int *__restrict __result)
1104 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1107 extern int mrand48_r (struct drand48_data *__restrict __buffer,
1108 long int *__restrict __result)
1109 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1110 extern int jrand48_r (unsigned short int __xsubi[3],
1111 struct drand48_data *__restrict __buffer,
1112 long int *__restrict __result)
1113 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1116 extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
1117 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
1119 extern int seed48_r (unsigned short int __seed16v[3],
1120 struct drand48_data *__buffer) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1122 extern int lcong48_r (unsigned short int __param[7],
1123 struct drand48_data *__buffer)
1124 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1134 extern void *malloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ;
1136 extern void *calloc (size_t __nmemb, size_t __size)
1137 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ;
1148 extern void *realloc (void *__ptr, size_t __size)
1149 __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1151 extern void free (void *__ptr) __attribute__ ((__nothrow__));
1156 extern void cfree (void *__ptr) __attribute__ ((__nothrow__));
1160 # 1 "/usr/include/alloca.h" 1 3 4
1161 # 25 "/usr/include/alloca.h" 3 4
1162 # 1 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include/stddef.h" 1 3 4
1163 # 26 "/usr/include/alloca.h" 2 3 4
1171 extern void *alloca (size_t __size) __attribute__ ((__nothrow__));
1178 # 498 "/usr/include/stdlib.h" 2 3 4
1183 extern void *valloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ;
1188 extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
1189 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
1194 extern void abort (void) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
1198 extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1204 extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
1205 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1212 extern void exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
1219 extern void _Exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
1226 extern char *getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
1231 extern char *__secure_getenv (__const char *__name)
1232 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
1238 extern int putenv (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1244 extern int setenv (__const char *__name, __const char *__value, int __replace)
1245 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
1248 extern int unsetenv (__const char *__name) __attribute__ ((__nothrow__));
1255 extern int clearenv (void) __attribute__ ((__nothrow__));
1256 # 583 "/usr/include/stdlib.h" 3 4
1257 extern char *mktemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
1258 # 597 "/usr/include/stdlib.h" 3 4
1259 extern int mkstemp (char *__template) __asm__ ("" "mkstemp64")
1260 __attribute__ ((__nonnull__ (1))) ;
1266 extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ;
1267 # 614 "/usr/include/stdlib.h" 3 4
1268 extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
1269 # 628 "/usr/include/stdlib.h" 3 4
1270 extern int mkostemp (char *__template, int __flags) __asm__ ("" "mkostemp64")
1271 __attribute__ ((__nonnull__ (1))) ;
1277 extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ;
1287 extern int system (__const char *__command) ;
1294 extern char *canonicalize_file_name (__const char *__name)
1295 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
1296 # 662 "/usr/include/stdlib.h" 3 4
1297 extern char *realpath (__const char *__restrict __name,
1298 char *__restrict __resolved) __attribute__ ((__nothrow__)) ;
1305 typedef int (*__compar_fn_t) (__const void *, __const void *);
1308 typedef __compar_fn_t comparison_fn_t;
1315 extern void *bsearch (__const void *__key, __const void *__base,
1316 size_t __nmemb, size_t __size, __compar_fn_t __compar)
1317 __attribute__ ((__nonnull__ (1, 2, 5))) ;
1321 extern void qsort (void *__base, size_t __nmemb, size_t __size,
1322 __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
1326 extern int abs (int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
1327 extern long int labs (long int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
1331 __extension__ extern long long int llabs (long long int __x)
1332 __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
1340 extern div_t div (int __numer, int __denom)
1341 __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
1342 extern ldiv_t ldiv (long int __numer, long int __denom)
1343 __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
1348 __extension__ extern lldiv_t lldiv (long long int __numer,
1349 long long int __denom)
1350 __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
1352 # 727 "/usr/include/stdlib.h" 3 4
1353 extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
1354 int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ;
1359 extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
1360 int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ;
1365 extern char *gcvt (double __value, int __ndigit, char *__buf)
1366 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) ;
1371 extern char *qecvt (long double __value, int __ndigit,
1372 int *__restrict __decpt, int *__restrict __sign)
1373 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ;
1374 extern char *qfcvt (long double __value, int __ndigit,
1375 int *__restrict __decpt, int *__restrict __sign)
1376 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ;
1377 extern char *qgcvt (long double __value, int __ndigit, char *__buf)
1378 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) ;
1383 extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
1384 int *__restrict __sign, char *__restrict __buf,
1385 size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
1386 extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
1387 int *__restrict __sign, char *__restrict __buf,
1388 size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
1390 extern int qecvt_r (long double __value, int __ndigit,
1391 int *__restrict __decpt, int *__restrict __sign,
1392 char *__restrict __buf, size_t __len)
1393 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
1394 extern int qfcvt_r (long double __value, int __ndigit,
1395 int *__restrict __decpt, int *__restrict __sign,
1396 char *__restrict __buf, size_t __len)
1397 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
1405 extern int mblen (__const char *__s, size_t __n) __attribute__ ((__nothrow__)) ;
1408 extern int mbtowc (wchar_t *__restrict __pwc,
1409 __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__)) ;
1412 extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__)) ;
1416 extern size_t mbstowcs (wchar_t *__restrict __pwcs,
1417 __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__));
1419 extern size_t wcstombs (char *__restrict __s,
1420 __const wchar_t *__restrict __pwcs, size_t __n)
1421 __attribute__ ((__nothrow__));
1430 extern int rpmatch (__const char *__response) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
1431 # 815 "/usr/include/stdlib.h" 3 4
1432 extern int getsubopt (char **__restrict __optionp,
1433 char *__const *__restrict __tokens,
1434 char **__restrict __valuep)
1435 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3))) ;
1441 extern void setkey (__const char *__key) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1449 extern int posix_openpt (int __oflag) ;
1457 extern int grantpt (int __fd) __attribute__ ((__nothrow__));
1461 extern int unlockpt (int __fd) __attribute__ ((__nothrow__));
1466 extern char *ptsname (int __fd) __attribute__ ((__nothrow__)) ;
1473 extern int ptsname_r (int __fd, char *__buf, size_t __buflen)
1474 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
1477 extern int getpt (void);
1484 extern int getloadavg (double __loadavg[], int __nelem)
1485 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1486 # 883 "/usr/include/stdlib.h" 3 4
1488 # 51 "./include/ruby/ruby.h" 2
1492 # 1 "/usr/include/string.h" 1 3 4
1493 # 28 "/usr/include/string.h" 3 4
1499 # 1 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include/stddef.h" 1 3 4
1500 # 34 "/usr/include/string.h" 2 3 4
1505 extern void *memcpy (void *__restrict __dest,
1506 __const void *__restrict __src, size_t __n)
1507 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1510 extern void *memmove (void *__dest, __const void *__src, size_t __n)
1511 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1518 extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
1519 int __c, size_t __n)
1520 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1526 extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1529 extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
1530 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1533 extern void *memchr (__const void *__s, int __c, size_t __n)
1534 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1540 extern void *rawmemchr (__const void *__s, int __c)
1541 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1544 extern void *memrchr (__const void *__s, int __c, size_t __n)
1545 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1551 extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
1552 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1554 extern char *strncpy (char *__restrict __dest,
1555 __const char *__restrict __src, size_t __n)
1556 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1559 extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
1560 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1562 extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
1563 size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1566 extern int strcmp (__const char *__s1, __const char *__s2)
1567 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1569 extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
1570 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1573 extern int strcoll (__const char *__s1, __const char *__s2)
1574 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1576 extern size_t strxfrm (char *__restrict __dest,
1577 __const char *__restrict __src, size_t __n)
1578 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
1580 # 121 "/usr/include/string.h" 3 4
1581 extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l)
1582 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
1584 extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n,
1585 __locale_t __l) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));
1590 extern char *strdup (__const char *__s)
1591 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
1598 extern char *strndup (__const char *__string, size_t __n)
1599 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
1600 # 165 "/usr/include/string.h" 3 4
1603 extern char *strchr (__const char *__s, int __c)
1604 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1606 extern char *strrchr (__const char *__s, int __c)
1607 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1613 extern char *strchrnul (__const char *__s, int __c)
1614 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1620 extern size_t strcspn (__const char *__s, __const char *__reject)
1621 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1624 extern size_t strspn (__const char *__s, __const char *__accept)
1625 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1627 extern char *strpbrk (__const char *__s, __const char *__accept)
1628 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1630 extern char *strstr (__const char *__haystack, __const char *__needle)
1631 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1635 extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
1636 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
1641 extern char *__strtok_r (char *__restrict __s,
1642 __const char *__restrict __delim,
1643 char **__restrict __save_ptr)
1644 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
1646 extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
1647 char **__restrict __save_ptr)
1648 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
1653 extern char *strcasestr (__const char *__haystack, __const char *__needle)
1654 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1661 extern void *memmem (__const void *__haystack, size_t __haystacklen,
1662 __const void *__needle, size_t __needlelen)
1663 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3)));
1667 extern void *__mempcpy (void *__restrict __dest,
1668 __const void *__restrict __src, size_t __n)
1669 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1670 extern void *mempcpy (void *__restrict __dest,
1671 __const void *__restrict __src, size_t __n)
1672 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1678 extern size_t strlen (__const char *__s)
1679 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1685 extern size_t strnlen (__const char *__string, size_t __maxlen)
1686 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1692 extern char *strerror (int __errnum) __attribute__ ((__nothrow__));
1694 # 281 "/usr/include/string.h" 3 4
1695 extern char *strerror_r (int __errnum, char *__buf, size_t __buflen)
1696 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
1702 extern char *strerror_l (int __errnum, __locale_t __l) __attribute__ ((__nothrow__));
1708 extern void __bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1712 extern void bcopy (__const void *__src, void *__dest, size_t __n)
1713 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1716 extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1719 extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
1720 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1723 extern char *index (__const char *__s, int __c)
1724 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1727 extern char *rindex (__const char *__s, int __c)
1728 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1732 extern int ffs (int __i) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
1737 extern int ffsl (long int __l) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
1739 __extension__ extern int ffsll (long long int __ll)
1740 __attribute__ ((__nothrow__)) __attribute__ ((__const__));
1745 extern int strcasecmp (__const char *__s1, __const char *__s2)
1746 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1749 extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
1750 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1756 extern int strcasecmp_l (__const char *__s1, __const char *__s2,
1758 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
1760 extern int strncasecmp_l (__const char *__s1, __const char *__s2,
1761 size_t __n, __locale_t __loc)
1762 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4)));
1768 extern char *strsep (char **__restrict __stringp,
1769 __const char *__restrict __delim)
1770 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1775 extern int strverscmp (__const char *__s1, __const char *__s2)
1776 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1779 extern char *strsignal (int __sig) __attribute__ ((__nothrow__));
1782 extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src)
1783 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1784 extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src)
1785 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1789 extern char *__stpncpy (char *__restrict __dest,
1790 __const char *__restrict __src, size_t __n)
1791 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1792 extern char *stpncpy (char *__restrict __dest,
1793 __const char *__restrict __src, size_t __n)
1794 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1797 extern char *strfry (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1800 extern void *memfrob (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1807 extern char *basename (__const char *__filename) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1808 # 420 "/usr/include/string.h" 3 4
1809 # 1 "/usr/include/bits/string.h" 1 3 4
1810 # 421 "/usr/include/string.h" 2 3 4
1813 # 1 "/usr/include/bits/string2.h" 1 3 4
1814 # 394 "/usr/include/bits/string2.h" 3 4
1815 extern void *__rawmemchr (const void *__s, int __c);
1816 # 969 "/usr/include/bits/string2.h" 3 4
1817 extern __inline size_t __strcspn_c1 (__const char *__s, int __reject);
1818 extern __inline size_t
1819 __strcspn_c1 (__const char *__s, int __reject)
1821 register size_t __result = 0;
1822 while (__s[__result] != '\0' && __s[__result] != __reject)
1827 extern __inline size_t __strcspn_c2 (__const char *__s, int __reject1,
1829 extern __inline size_t
1830 __strcspn_c2 (__const char *__s, int __reject1, int __reject2)
1832 register size_t __result = 0;
1833 while (__s[__result] != '\0' && __s[__result] != __reject1
1834 && __s[__result] != __reject2)
1839 extern __inline size_t __strcspn_c3 (__const char *__s, int __reject1,
1840 int __reject2, int __reject3);
1841 extern __inline size_t
1842 __strcspn_c3 (__const char *__s, int __reject1, int __reject2,
1845 register size_t __result = 0;
1846 while (__s[__result] != '\0' && __s[__result] != __reject1
1847 && __s[__result] != __reject2 && __s[__result] != __reject3)
1851 # 1045 "/usr/include/bits/string2.h" 3 4
1852 extern __inline size_t __strspn_c1 (__const char *__s, int __accept);
1853 extern __inline size_t
1854 __strspn_c1 (__const char *__s, int __accept)
1856 register size_t __result = 0;
1858 while (__s[__result] == __accept)
1863 extern __inline size_t __strspn_c2 (__const char *__s, int __accept1,
1865 extern __inline size_t
1866 __strspn_c2 (__const char *__s, int __accept1, int __accept2)
1868 register size_t __result = 0;
1870 while (__s[__result] == __accept1 || __s[__result] == __accept2)
1875 extern __inline size_t __strspn_c3 (__const char *__s, int __accept1,
1876 int __accept2, int __accept3);
1877 extern __inline size_t
1878 __strspn_c3 (__const char *__s, int __accept1, int __accept2, int __accept3)
1880 register size_t __result = 0;
1882 while (__s[__result] == __accept1 || __s[__result] == __accept2
1883 || __s[__result] == __accept3)
1887 # 1121 "/usr/include/bits/string2.h" 3 4
1888 extern __inline char *__strpbrk_c2 (__const char *__s, int __accept1,
1890 extern __inline char *
1891 __strpbrk_c2 (__const char *__s, int __accept1, int __accept2)
1894 while (*__s != '\0' && *__s != __accept1 && *__s != __accept2)
1896 return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
1899 extern __inline char *__strpbrk_c3 (__const char *__s, int __accept1,
1900 int __accept2, int __accept3);
1901 extern __inline char *
1902 __strpbrk_c3 (__const char *__s, int __accept1, int __accept2,
1906 while (*__s != '\0' && *__s != __accept1 && *__s != __accept2
1907 && *__s != __accept3)
1909 return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
1911 # 1173 "/usr/include/bits/string2.h" 3 4
1912 extern __inline char *__strtok_r_1c (char *__s, char __sep, char **__nextp);
1913 extern __inline char *
1914 __strtok_r_1c (char *__s, char __sep, char **__nextp)
1917 if (__s == ((void *)0))
1919 while (*__s == __sep)
1921 __result = ((void *)0);
1925 while (*__s != '\0')
1926 if (*__s++ == __sep)
1935 # 1205 "/usr/include/bits/string2.h" 3 4
1936 extern char *__strsep_g (char **__stringp, __const char *__delim);
1937 # 1223 "/usr/include/bits/string2.h" 3 4
1938 extern __inline char *__strsep_1c (char **__s, char __reject);
1939 extern __inline char *
1940 __strsep_1c (char **__s, char __reject)
1942 register char *__retval = *__s;
1943 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))
1948 extern __inline char *__strsep_2c (char **__s, char __reject1, char __reject2);
1949 extern __inline char *
1950 __strsep_2c (char **__s, char __reject1, char __reject2)
1952 register char *__retval = *__s;
1953 if (__retval != ((void *)0))
1955 register char *__cp = __retval;
1963 if (*__cp == __reject1 || *__cp == __reject2)
1975 extern __inline char *__strsep_3c (char **__s, char __reject1, char __reject2,
1977 extern __inline char *
1978 __strsep_3c (char **__s, char __reject1, char __reject2, char __reject3)
1980 register char *__retval = *__s;
1981 if (__retval != ((void *)0))
1983 register char *__cp = __retval;
1991 if (*__cp == __reject1 || *__cp == __reject2 || *__cp == __reject3)
2002 # 1304 "/usr/include/bits/string2.h" 3 4
2003 extern char *__strdup (__const char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__));
2004 # 1323 "/usr/include/bits/string2.h" 3 4
2005 extern char *__strndup (__const char *__string, size_t __n)
2006 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__));
2007 # 424 "/usr/include/string.h" 2 3 4
2008 # 432 "/usr/include/string.h" 3 4
2010 # 55 "./include/ruby/ruby.h" 2
2011 # 64 "./include/ruby/ruby.h"
2012 # 1 "/usr/include/inttypes.h" 1 3 4
2013 # 28 "/usr/include/inttypes.h" 3 4
2014 # 1 "/usr/include/stdint.h" 1 3 4
2015 # 27 "/usr/include/stdint.h" 3 4
2016 # 1 "/usr/include/bits/wchar.h" 1 3 4
2017 # 28 "/usr/include/stdint.h" 2 3 4
2018 # 1 "/usr/include/bits/wordsize.h" 1 3 4
2019 # 29 "/usr/include/stdint.h" 2 3 4
2020 # 49 "/usr/include/stdint.h" 3 4
2021 typedef unsigned char uint8_t;
2022 typedef unsigned short int uint16_t;
2024 typedef unsigned int uint32_t;
2031 typedef unsigned long long int uint64_t;
2038 typedef signed char int_least8_t;
2039 typedef short int int_least16_t;
2040 typedef int int_least32_t;
2045 typedef long long int int_least64_t;
2049 typedef unsigned char uint_least8_t;
2050 typedef unsigned short int uint_least16_t;
2051 typedef unsigned int uint_least32_t;
2056 typedef unsigned long long int uint_least64_t;
2063 typedef signed char int_fast8_t;
2069 typedef int int_fast16_t;
2070 typedef int int_fast32_t;
2072 typedef long long int int_fast64_t;
2076 typedef unsigned char uint_fast8_t;
2082 typedef unsigned int uint_fast16_t;
2083 typedef unsigned int uint_fast32_t;
2085 typedef unsigned long long int uint_fast64_t;
2086 # 126 "/usr/include/stdint.h" 3 4
2087 typedef int intptr_t;
2090 typedef unsigned int uintptr_t;
2091 # 138 "/usr/include/stdint.h" 3 4
2093 typedef long long int intmax_t;
2095 typedef unsigned long long int uintmax_t;
2096 # 29 "/usr/include/inttypes.h" 2 3 4
2103 typedef int __gwchar_t;
2104 # 274 "/usr/include/inttypes.h" 3 4
2106 # 288 "/usr/include/inttypes.h" 3 4
2117 extern intmax_t imaxabs (intmax_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
2120 extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t __denom)
2121 __attribute__ ((__nothrow__)) __attribute__ ((__const__));
2124 extern intmax_t strtoimax (__const char *__restrict __nptr,
2125 char **__restrict __endptr, int __base) __attribute__ ((__nothrow__));
2128 extern uintmax_t strtoumax (__const char *__restrict __nptr,
2129 char ** __restrict __endptr, int __base) __attribute__ ((__nothrow__));
2132 extern intmax_t wcstoimax (__const __gwchar_t *__restrict __nptr,
2133 __gwchar_t **__restrict __endptr, int __base)
2134 __attribute__ ((__nothrow__));
2137 extern uintmax_t wcstoumax (__const __gwchar_t *__restrict __nptr,
2138 __gwchar_t ** __restrict __endptr, int __base)
2139 __attribute__ ((__nothrow__));
2140 # 379 "/usr/include/inttypes.h" 3 4
2142 extern long long int __strtoll_internal (__const char *__restrict __nptr,
2143 char **__restrict __endptr,
2144 int __base, int __group)
2145 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
2147 extern __inline intmax_t
2148 __attribute__ ((__nothrow__)) strtoimax (__const char *__restrict nptr, char **__restrict endptr, int base)
2151 return __strtoll_internal (nptr, endptr, base, 0);
2155 extern unsigned long long int __strtoull_internal (__const char *
2158 __restrict __endptr,
2161 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
2163 extern __inline uintmax_t
2164 __attribute__ ((__nothrow__)) strtoumax (__const char *__restrict nptr, char **__restrict endptr, int base)
2167 return __strtoull_internal (nptr, endptr, base, 0);
2171 extern long long int __wcstoll_internal (__const __gwchar_t *
2173 __gwchar_t **__restrict __endptr,
2174 int __base, int __group)
2175 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
2177 extern __inline intmax_t
2178 __attribute__ ((__nothrow__)) wcstoimax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base)
2181 return __wcstoll_internal (nptr, endptr, base, 0);
2186 extern unsigned long long int __wcstoull_internal (__const __gwchar_t *
2189 __restrict __endptr,
2192 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
2194 extern __inline uintmax_t
2195 __attribute__ ((__nothrow__)) wcstoumax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base)
2198 return __wcstoull_internal (nptr, endptr, base, 0);
2205 # 65 "./include/ruby/ruby.h" 2
2208 # 1 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include/stddef.h" 1 3 4
2209 # 152 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include/stddef.h" 3 4
2210 typedef int ptrdiff_t;
2211 # 68 "./include/ruby/ruby.h" 2
2212 # 1 "/usr/include/stdio.h" 1 3 4
2213 # 30 "/usr/include/stdio.h" 3 4
2218 # 1 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include/stddef.h" 1 3 4
2219 # 35 "/usr/include/stdio.h" 2 3 4
2220 # 45 "/usr/include/stdio.h" 3 4
2225 typedef struct _IO_FILE FILE;
2231 # 65 "/usr/include/stdio.h" 3 4
2232 typedef struct _IO_FILE __FILE;
2233 # 75 "/usr/include/stdio.h" 3 4
2234 # 1 "/usr/include/libio.h" 1 3 4
2235 # 32 "/usr/include/libio.h" 3 4
2236 # 1 "/usr/include/_G_config.h" 1 3 4
2237 # 15 "/usr/include/_G_config.h" 3 4
2238 # 1 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include/stddef.h" 1 3 4
2239 # 16 "/usr/include/_G_config.h" 2 3 4
2244 # 1 "/usr/include/wchar.h" 1 3 4
2245 # 78 "/usr/include/wchar.h" 3 4
2259 # 21 "/usr/include/_G_config.h" 2 3 4
2264 __mbstate_t __state;
2269 __mbstate_t __state;
2271 # 53 "/usr/include/_G_config.h" 3 4
2272 typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
2273 typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
2274 typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
2275 typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
2276 # 33 "/usr/include/libio.h" 2 3 4
2277 # 53 "/usr/include/libio.h" 3 4
2278 # 1 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include/stdarg.h" 1 3 4
2279 # 43 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include/stdarg.h" 3 4
2280 typedef __builtin_va_list __gnuc_va_list;
2281 # 54 "/usr/include/libio.h" 2 3 4
2282 # 170 "/usr/include/libio.h" 3 4
2283 struct _IO_jump_t; struct _IO_FILE;
2284 # 180 "/usr/include/libio.h" 3 4
2285 typedef void _IO_lock_t;
2292 struct _IO_marker *_next;
2293 struct _IO_FILE *_sbuf;
2298 # 203 "/usr/include/libio.h" 3 4
2302 enum __codecvt_result
2309 # 271 "/usr/include/libio.h" 3 4
2318 char* _IO_read_base;
2319 char* _IO_write_base;
2320 char* _IO_write_ptr;
2321 char* _IO_write_end;
2325 char *_IO_save_base;
2326 char *_IO_backup_base;
2329 struct _IO_marker *_markers;
2331 struct _IO_FILE *_chain;
2339 __off_t _old_offset;
2343 unsigned short _cur_column;
2344 signed char _vtable_offset;
2350 # 319 "/usr/include/libio.h" 3 4
2352 # 328 "/usr/include/libio.h" 3 4
2361 char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
2366 typedef struct _IO_FILE _IO_FILE;
2369 struct _IO_FILE_plus;
2371 extern struct _IO_FILE_plus _IO_2_1_stdin_;
2372 extern struct _IO_FILE_plus _IO_2_1_stdout_;
2373 extern struct _IO_FILE_plus _IO_2_1_stderr_;
2374 # 364 "/usr/include/libio.h" 3 4
2375 typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);
2383 typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf,
2392 typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);
2395 typedef int __io_close_fn (void *__cookie);
2400 typedef __io_read_fn cookie_read_function_t;
2401 typedef __io_write_fn cookie_write_function_t;
2402 typedef __io_seek_fn cookie_seek_function_t;
2403 typedef __io_close_fn cookie_close_function_t;
2409 __io_write_fn *write;
2411 __io_close_fn *close;
2412 } _IO_cookie_io_functions_t;
2413 typedef _IO_cookie_io_functions_t cookie_io_functions_t;
2415 struct _IO_cookie_file;
2418 extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write,
2419 void *__cookie, _IO_cookie_io_functions_t __fns);
2427 extern int __underflow (_IO_FILE *);
2428 extern int __uflow (_IO_FILE *);
2429 extern int __overflow (_IO_FILE *, int);
2430 # 458 "/usr/include/libio.h" 3 4
2431 extern int _IO_getc (_IO_FILE *__fp);
2432 extern int _IO_putc (int __c, _IO_FILE *__fp);
2433 extern int _IO_feof (_IO_FILE *__fp) __attribute__ ((__nothrow__));
2434 extern int _IO_ferror (_IO_FILE *__fp) __attribute__ ((__nothrow__));
2436 extern int _IO_peekc_locked (_IO_FILE *__fp);
2442 extern void _IO_flockfile (_IO_FILE *) __attribute__ ((__nothrow__));
2443 extern void _IO_funlockfile (_IO_FILE *) __attribute__ ((__nothrow__));
2444 extern int _IO_ftrylockfile (_IO_FILE *) __attribute__ ((__nothrow__));
2445 # 488 "/usr/include/libio.h" 3 4
2446 extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
2447 __gnuc_va_list, int *__restrict);
2448 extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
2450 extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t);
2451 extern size_t _IO_sgetn (_IO_FILE *, void *, size_t);
2453 extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int);
2454 extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int);
2456 extern void _IO_free_backup_area (_IO_FILE *) __attribute__ ((__nothrow__));
2457 # 76 "/usr/include/stdio.h" 2 3 4
2462 typedef __gnuc_va_list va_list;
2463 # 89 "/usr/include/stdio.h" 3 4
2468 typedef _G_fpos64_t fpos_t;
2472 typedef _G_fpos64_t fpos64_t;
2473 # 141 "/usr/include/stdio.h" 3 4
2474 # 1 "/usr/include/bits/stdio_lim.h" 1 3 4
2475 # 142 "/usr/include/stdio.h" 2 3 4
2479 extern struct _IO_FILE *stdin;
2480 extern struct _IO_FILE *stdout;
2481 extern struct _IO_FILE *stderr;
2489 extern int remove (__const char *__filename) __attribute__ ((__nothrow__));
2491 extern int rename (__const char *__old, __const char *__new) __attribute__ ((__nothrow__));
2496 extern int renameat (int __oldfd, __const char *__old, int __newfd,
2497 __const char *__new) __attribute__ ((__nothrow__));
2501 # 175 "/usr/include/stdio.h" 3 4
2502 extern FILE *tmpfile (void) __asm__ ("" "tmpfile64") ;
2509 extern FILE *tmpfile64 (void) ;
2513 extern char *tmpnam (char *__s) __attribute__ ((__nothrow__)) ;
2519 extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__)) ;
2520 # 204 "/usr/include/stdio.h" 3 4
2521 extern char *tempnam (__const char *__dir, __const char *__pfx)
2522 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ;
2531 extern int fclose (FILE *__stream);
2536 extern int fflush (FILE *__stream);
2538 # 229 "/usr/include/stdio.h" 3 4
2539 extern int fflush_unlocked (FILE *__stream);
2540 # 239 "/usr/include/stdio.h" 3 4
2541 extern int fcloseall (void);
2546 # 260 "/usr/include/stdio.h" 3 4
2547 extern FILE *fopen (__const char *__restrict __filename, __const char *__restrict __modes) __asm__ ("" "fopen64")
2550 extern FILE *freopen (__const char *__restrict __filename, __const char *__restrict __modes, FILE *__restrict __stream) __asm__ ("" "freopen64")
2561 extern FILE *fopen64 (__const char *__restrict __filename,
2562 __const char *__restrict __modes) ;
2563 extern FILE *freopen64 (__const char *__restrict __filename,
2564 __const char *__restrict __modes,
2565 FILE *__restrict __stream) ;
2570 extern FILE *fdopen (int __fd, __const char *__modes) __attribute__ ((__nothrow__)) ;
2576 extern FILE *fopencookie (void *__restrict __magic_cookie,
2577 __const char *__restrict __modes,
2578 _IO_cookie_io_functions_t __io_funcs) __attribute__ ((__nothrow__)) ;
2581 extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes)
2582 __attribute__ ((__nothrow__)) ;
2587 extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__)) ;
2594 extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__));
2598 extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
2599 int __modes, size_t __n) __attribute__ ((__nothrow__));
2605 extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
2606 size_t __size) __attribute__ ((__nothrow__));
2609 extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__));
2618 extern int fprintf (FILE *__restrict __stream,
2619 __const char *__restrict __format, ...);
2624 extern int printf (__const char *__restrict __format, ...);
2626 extern int sprintf (char *__restrict __s,
2627 __const char *__restrict __format, ...) __attribute__ ((__nothrow__));
2633 extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
2634 __gnuc_va_list __arg);
2639 extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg);
2641 extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
2642 __gnuc_va_list __arg) __attribute__ ((__nothrow__));
2648 extern int snprintf (char *__restrict __s, size_t __maxlen,
2649 __const char *__restrict __format, ...)
2650 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));
2652 extern int vsnprintf (char *__restrict __s, size_t __maxlen,
2653 __const char *__restrict __format, __gnuc_va_list __arg)
2654 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0)));
2661 extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f,
2662 __gnuc_va_list __arg)
2663 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 0))) ;
2664 extern int __asprintf (char **__restrict __ptr,
2665 __const char *__restrict __fmt, ...)
2666 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))) ;
2667 extern int asprintf (char **__restrict __ptr,
2668 __const char *__restrict __fmt, ...)
2669 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))) ;
2677 extern int vdprintf (int __fd, __const char *__restrict __fmt,
2678 __gnuc_va_list __arg)
2679 __attribute__ ((__format__ (__printf__, 2, 0)));
2680 extern int dprintf (int __fd, __const char *__restrict __fmt, ...)
2681 __attribute__ ((__format__ (__printf__, 2, 3)));
2690 extern int fscanf (FILE *__restrict __stream,
2691 __const char *__restrict __format, ...) ;
2696 extern int scanf (__const char *__restrict __format, ...) ;
2698 extern int sscanf (__const char *__restrict __s,
2699 __const char *__restrict __format, ...) __attribute__ ((__nothrow__));
2700 # 441 "/usr/include/stdio.h" 3 4
2709 extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format,
2710 __gnuc_va_list __arg)
2711 __attribute__ ((__format__ (__scanf__, 2, 0))) ;
2717 extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg)
2718 __attribute__ ((__format__ (__scanf__, 1, 0))) ;
2721 extern int vsscanf (__const char *__restrict __s,
2722 __const char *__restrict __format, __gnuc_va_list __arg)
2723 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
2724 # 500 "/usr/include/stdio.h" 3 4
2734 extern int fgetc (FILE *__stream);
2735 extern int getc (FILE *__stream);
2741 extern int getchar (void);
2743 # 528 "/usr/include/stdio.h" 3 4
2744 extern int getc_unlocked (FILE *__stream);
2745 extern int getchar_unlocked (void);
2746 # 539 "/usr/include/stdio.h" 3 4
2747 extern int fgetc_unlocked (FILE *__stream);
2759 extern int fputc (int __c, FILE *__stream);
2760 extern int putc (int __c, FILE *__stream);
2766 extern int putchar (int __c);
2768 # 572 "/usr/include/stdio.h" 3 4
2769 extern int fputc_unlocked (int __c, FILE *__stream);
2777 extern int putc_unlocked (int __c, FILE *__stream);
2778 extern int putchar_unlocked (int __c);
2785 extern int getw (FILE *__stream);
2788 extern int putw (int __w, FILE *__stream);
2797 extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
2805 extern char *gets (char *__s) ;
2807 # 618 "/usr/include/stdio.h" 3 4
2808 extern char *fgets_unlocked (char *__restrict __s, int __n,
2809 FILE *__restrict __stream) ;
2810 # 634 "/usr/include/stdio.h" 3 4
2811 extern __ssize_t __getdelim (char **__restrict __lineptr,
2812 size_t *__restrict __n, int __delimiter,
2813 FILE *__restrict __stream) ;
2814 extern __ssize_t getdelim (char **__restrict __lineptr,
2815 size_t *__restrict __n, int __delimiter,
2816 FILE *__restrict __stream) ;
2824 extern __ssize_t getline (char **__restrict __lineptr,
2825 size_t *__restrict __n,
2826 FILE *__restrict __stream) ;
2835 extern int fputs (__const char *__restrict __s, FILE *__restrict __stream);
2841 extern int puts (__const char *__s);
2848 extern int ungetc (int __c, FILE *__stream);
2855 extern size_t fread (void *__restrict __ptr, size_t __size,
2856 size_t __n, FILE *__restrict __stream) ;
2861 extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
2862 size_t __n, FILE *__restrict __s) ;
2864 # 695 "/usr/include/stdio.h" 3 4
2865 extern int fputs_unlocked (__const char *__restrict __s,
2866 FILE *__restrict __stream);
2867 # 706 "/usr/include/stdio.h" 3 4
2868 extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
2869 size_t __n, FILE *__restrict __stream) ;
2870 extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size,
2871 size_t __n, FILE *__restrict __stream) ;
2880 extern int fseek (FILE *__stream, long int __off, int __whence);
2885 extern long int ftell (FILE *__stream) ;
2890 extern void rewind (FILE *__stream);
2892 # 750 "/usr/include/stdio.h" 3 4
2893 extern int fseeko (FILE *__stream, __off64_t __off, int __whence) __asm__ ("" "fseeko64");
2896 extern __off64_t ftello (FILE *__stream) __asm__ ("" "ftello64");
2905 # 775 "/usr/include/stdio.h" 3 4
2906 extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos) __asm__ ("" "fgetpos64");
2908 extern int fsetpos (FILE *__stream, __const fpos_t *__pos) __asm__ ("" "fsetpos64");
2918 extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence);
2919 extern __off64_t ftello64 (FILE *__stream) ;
2920 extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos);
2921 extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos);
2926 extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__));
2928 extern int feof (FILE *__stream) __attribute__ ((__nothrow__)) ;
2930 extern int ferror (FILE *__stream) __attribute__ ((__nothrow__)) ;
2935 extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__));
2936 extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ;
2937 extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ;
2946 extern void perror (__const char *__s);
2953 # 1 "/usr/include/bits/sys_errlist.h" 1 3 4
2954 # 27 "/usr/include/bits/sys_errlist.h" 3 4
2955 extern int sys_nerr;
2956 extern __const char *__const sys_errlist[];
2959 extern int _sys_nerr;
2960 extern __const char *__const _sys_errlist[];
2961 # 823 "/usr/include/stdio.h" 2 3 4
2966 extern int fileno (FILE *__stream) __attribute__ ((__nothrow__)) ;
2971 extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ;
2972 # 842 "/usr/include/stdio.h" 3 4
2973 extern FILE *popen (__const char *__command, __const char *__modes) ;
2979 extern int pclose (FILE *__stream);
2985 extern char *ctermid (char *__s) __attribute__ ((__nothrow__));
2991 extern char *cuserid (char *__s);
2999 extern int obstack_printf (struct obstack *__restrict __obstack,
3000 __const char *__restrict __format, ...)
3001 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3)));
3002 extern int obstack_vprintf (struct obstack *__restrict __obstack,
3003 __const char *__restrict __format,
3004 __gnuc_va_list __args)
3005 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 0)));
3013 extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__));
3017 extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__)) ;
3020 extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__));
3021 # 903 "/usr/include/stdio.h" 3 4
3022 # 1 "/usr/include/bits/stdio.h" 1 3 4
3023 # 36 "/usr/include/bits/stdio.h" 3 4
3025 vprintf (__const char *__restrict __fmt, __gnuc_va_list __arg)
3027 return vfprintf (stdout, __fmt, __arg);
3035 return _IO_getc (stdin);
3042 fgetc_unlocked (FILE *__fp)
3044 return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
3052 getc_unlocked (FILE *__fp)
3054 return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
3059 getchar_unlocked (void)
3061 return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
3070 return _IO_putc (__c, stdout);
3077 fputc_unlocked (int __c, FILE *__stream)
3079 return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
3087 putc_unlocked (int __c, FILE *__stream)
3089 return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
3094 putchar_unlocked (int __c)
3096 return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
3103 extern __inline __ssize_t
3104 getline (char **__lineptr, size_t *__n, FILE *__stream)
3106 return __getdelim (__lineptr, __n, '\n', __stream);
3114 __attribute__ ((__nothrow__)) feof_unlocked (FILE *__stream)
3116 return (((__stream)->_flags & 0x10) != 0);
3121 __attribute__ ((__nothrow__)) ferror_unlocked (FILE *__stream)
3123 return (((__stream)->_flags & 0x20) != 0);
3125 # 904 "/usr/include/stdio.h" 2 3 4
3126 # 912 "/usr/include/stdio.h" 3 4
3128 # 69 "./include/ruby/ruby.h" 2
3130 # 1 "./include/ruby/defines.h" 1
3131 # 59 "./include/ruby/defines.h"
3132 void *ruby_xmalloc(size_t);
3133 void *ruby_xmalloc2(size_t,size_t);
3134 void *ruby_xcalloc(size_t,size_t);
3135 void *ruby_xrealloc(void*,size_t);
3136 void *ruby_xrealloc2(void*,size_t,size_t);
3137 void ruby_xfree(void*);
3138 # 71 "./include/ruby/ruby.h" 2
3139 # 81 "./include/ruby/ruby.h"
3140 typedef unsigned long VALUE;
3141 typedef unsigned long ID;
3142 # 132 "./include/ruby/ruby.h"
3143 # 1 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include-fixed/limits.h" 1 3 4
3144 # 11 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include-fixed/limits.h" 3 4
3145 # 1 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include-fixed/syslimits.h" 1 3 4
3152 # 1 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include-fixed/limits.h" 1 3 4
3153 # 122 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include-fixed/limits.h" 3 4
3154 # 1 "/usr/include/limits.h" 1 3 4
3155 # 145 "/usr/include/limits.h" 3 4
3156 # 1 "/usr/include/bits/posix1_lim.h" 1 3 4
3157 # 153 "/usr/include/bits/posix1_lim.h" 3 4
3158 # 1 "/usr/include/bits/local_lim.h" 1 3 4
3159 # 36 "/usr/include/bits/local_lim.h" 3 4
3160 # 1 "/usr/include/linux/limits.h" 1 3 4
3161 # 37 "/usr/include/bits/local_lim.h" 2 3 4
3162 # 154 "/usr/include/bits/posix1_lim.h" 2 3 4
3163 # 146 "/usr/include/limits.h" 2 3 4
3167 # 1 "/usr/include/bits/posix2_lim.h" 1 3 4
3168 # 150 "/usr/include/limits.h" 2 3 4
3172 # 1 "/usr/include/bits/xopen_lim.h" 1 3 4
3173 # 34 "/usr/include/bits/xopen_lim.h" 3 4
3174 # 1 "/usr/include/bits/stdio_lim.h" 1 3 4
3175 # 35 "/usr/include/bits/xopen_lim.h" 2 3 4
3176 # 154 "/usr/include/limits.h" 2 3 4
3177 # 123 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include-fixed/limits.h" 2 3 4
3178 # 8 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include-fixed/syslimits.h" 2 3 4
3179 # 12 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include-fixed/limits.h" 2 3 4
3180 # 133 "./include/ruby/ruby.h" 2
3181 # 182 "./include/ruby/ruby.h"
3182 VALUE rb_int2inum(long);
3185 VALUE rb_uint2inum(VALUE);
3190 VALUE rb_ll2inum(long long);
3192 VALUE rb_ull2inum(unsigned long long);
3193 # 264 "./include/ruby/ruby.h"
3194 enum ruby_special_consts {
3200 RUBY_IMMEDIATE_MASK = 0x03,
3201 RUBY_FIXNUM_FLAG = 0x01,
3202 RUBY_SYMBOL_FLAG = 0x0e,
3203 RUBY_SPECIAL_SHIFT = 8
3205 # 289 "./include/ruby/ruby.h"
3206 enum ruby_value_type {
3209 RUBY_T_OBJECT = 0x01,
3210 RUBY_T_CLASS = 0x02,
3211 RUBY_T_MODULE = 0x03,
3212 RUBY_T_FLOAT = 0x04,
3213 RUBY_T_STRING = 0x05,
3214 RUBY_T_REGEXP = 0x06,
3215 RUBY_T_ARRAY = 0x07,
3217 RUBY_T_STRUCT = 0x09,
3218 RUBY_T_BIGNUM = 0x0a,
3221 RUBY_T_MATCH = 0x0d,
3222 RUBY_T_COMPLEX = 0x0e,
3223 RUBY_T_RATIONAL = 0x0f,
3227 RUBY_T_FALSE = 0x13,
3228 RUBY_T_SYMBOL = 0x14,
3229 RUBY_T_FIXNUM = 0x15,
3231 RUBY_T_UNDEF = 0x1b,
3233 RUBY_T_ICLASS = 0x1d,
3234 RUBY_T_ZOMBIE = 0x1e,
3238 # 355 "./include/ruby/ruby.h"
3239 void rb_check_type(VALUE,int);
3242 VALUE rb_str_to_str(VALUE);
3243 VALUE rb_string_value(volatile VALUE*);
3244 char *rb_string_value_ptr(volatile VALUE*);
3245 char *rb_string_value_cstr(volatile VALUE*);
3251 void rb_check_safe_obj(VALUE);
3252 void rb_check_safe_str(VALUE);
3260 VALUE rb_str_export(VALUE);
3265 VALUE rb_str_export_locale(VALUE);
3267 VALUE rb_get_path(VALUE);
3270 VALUE rb_get_path_no_checksafe(VALUE);
3273 void rb_secure(int);
3274 int rb_safe_level(void);
3275 void rb_set_safe_level(int);
3276 void rb_set_safe_level_force(int);
3277 void rb_secure_update(VALUE);
3279 VALUE rb_errinfo(void);
3280 void rb_set_errinfo(VALUE);
3282 long rb_num2long(VALUE);
3283 VALUE rb_num2ulong(VALUE);
3287 return (((long)(x))&RUBY_FIXNUM_FLAG) ? (((long)x)>>(int)1) : rb_num2long(x);
3289 # 427 "./include/ruby/ruby.h"
3290 long long rb_num2ll(VALUE);
3291 unsigned long long rb_num2ull(VALUE);
3292 static inline long long
3295 return (((long)(x))&RUBY_FIXNUM_FLAG) ? (((long)x)>>(int)1) : rb_num2ll(x);
3297 # 451 "./include/ruby/ruby.h"
3298 double rb_num2dbl(VALUE);
3301 VALUE rb_uint2big(VALUE);
3302 VALUE rb_int2big(long);
3311 if (!(((v) < (2147483647L>>1)+1) && ((v) >= (((long)(-2147483647L - 1L))>>(int)1))))
3312 return rb_int2big(v);
3313 return ((VALUE)(((long)(v))<<1 | RUBY_FIXNUM_FLAG));
3317 UINT2NUM(unsigned int v)
3319 if (!((v) < (2147483647L>>1)+1))
3320 return rb_uint2big(v);
3321 return ((VALUE)(((long)(v))<<1 | RUBY_FIXNUM_FLAG));
3328 if ((((v) < (2147483647L>>1)+1) && ((v) >= (((long)(-2147483647L - 1L))>>(int)1)))) return ((VALUE)(((long)(v))<<1 | RUBY_FIXNUM_FLAG));
3329 return rb_int2big(v);
3333 ULONG2NUM(unsigned long v)
3335 if (((v) < (2147483647L>>1)+1)) return ((VALUE)(((long)(v))<<1 | RUBY_FIXNUM_FLAG));
3336 return rb_uint2big(v);
3340 char *rb_str2cstr(VALUE,long*);
3348 VALUE rb_newobj(void);
3349 # 518 "./include/ruby/ruby.h"
3357 struct RBasic basic;
3362 struct st_table *iv_index_tbl;
3367 # 549 "./include/ruby/ruby.h"
3370 struct st_table *iv_tbl;
3374 struct RBasic basic;
3376 struct st_table *m_tbl;
3377 struct st_table *iv_index_tbl;
3379 # 568 "./include/ruby/ruby.h"
3381 struct RBasic basic;
3391 struct RBasic basic;
3401 char ary[((sizeof(VALUE)*3)/sizeof(char)-1) + 1];
3404 # 607 "./include/ruby/ruby.h"
3406 struct RBasic basic;
3419 # 635 "./include/ruby/ruby.h"
3421 struct RBasic basic;
3422 struct re_pattern_buffer *ptr;
3424 unsigned long usecnt;
3431 struct RBasic basic;
3432 struct st_table *ntbl;
3444 struct RBasic basic;
3445 struct rb_io_t *fptr;
3449 struct RBasic basic;
3455 struct RBasic basic;
3461 struct RBasic basic;
3462 void (*dmark)(void*);
3463 void (*dfree)(void*);
3472 typedef void (*RUBY_DATA_FUNC)(void*);
3474 VALUE rb_data_object_alloc(VALUE,void*,RUBY_DATA_FUNC,RUBY_DATA_FUNC);
3475 # 706 "./include/ruby/ruby.h"
3477 struct RBasic basic;
3486 # 729 "./include/ruby/ruby.h"
3488 struct RBasic basic;
3492 unsigned int *digits;
3494 unsigned int ary[((sizeof(VALUE)*3)/sizeof(unsigned int))];
3497 # 841 "./include/ruby/ruby.h"
3498 void rb_obj_infect(VALUE,VALUE);
3500 typedef int ruby_glob_func(const char*,VALUE, void*);
3501 void rb_glob(const char*,void(*)(const char*,VALUE,void*),VALUE);
3502 int ruby_glob(const char*,int,ruby_glob_func*,VALUE);
3503 int ruby_brace_glob(const char*,int,ruby_glob_func*,VALUE);
3505 VALUE rb_define_class(const char*,VALUE);
3506 VALUE rb_define_module(const char*);
3507 VALUE rb_define_class_under(VALUE, const char*, VALUE);
3508 VALUE rb_define_module_under(VALUE, const char*);
3510 void rb_include_module(VALUE,VALUE);
3511 void rb_extend_object(VALUE,VALUE);
3513 struct rb_global_variable;
3515 typedef VALUE rb_gvar_getter_t(ID id, void *data, struct rb_global_variable *gvar);
3516 typedef void rb_gvar_setter_t(VALUE val, ID id, void *data, struct rb_global_variable *gvar);
3517 typedef void rb_gvar_marker_t(VALUE *var);
3519 VALUE rb_gvar_undef_getter(ID id, void *data, struct rb_global_variable *gvar);
3520 void rb_gvar_undef_setter(VALUE val, ID id, void *data, struct rb_global_variable *gvar);
3521 void rb_gvar_undef_marker(VALUE *var);
3523 VALUE rb_gvar_val_getter(ID id, void *data, struct rb_global_variable *gvar);
3524 void rb_gvar_val_setter(VALUE val, ID id, void *data, struct rb_global_variable *gvar);
3525 void rb_gvar_val_marker(VALUE *var);
3527 VALUE rb_gvar_var_getter(ID id, void *data, struct rb_global_variable *gvar);
3528 void rb_gvar_var_setter(VALUE val, ID id, void *data, struct rb_global_variable *gvar);
3529 void rb_gvar_var_marker(VALUE *var);
3531 void rb_gvar_readonly_setter(VALUE val, ID id, void *data, struct rb_global_variable *gvar);
3533 void rb_define_variable(const char*,VALUE*);
3534 void rb_define_virtual_variable(const char*,VALUE(*)(),void(*)());
3535 void rb_define_hooked_variable(const char*,VALUE*,VALUE(*)(),void(*)());
3536 void rb_define_readonly_variable(const char*,VALUE*);
3537 void rb_define_const(VALUE,const char*,VALUE);
3538 void rb_define_global_const(const char*,VALUE);
3541 void rb_define_method(VALUE,const char*,VALUE(*)(),int);
3542 void rb_define_module_function(VALUE,const char*,VALUE(*)(),int);
3543 void rb_define_global_function(const char*,VALUE(*)(),int);
3545 void rb_undef_method(VALUE,const char*);
3546 void rb_define_alias(VALUE,const char*,const char*);
3547 void rb_define_attr(VALUE,const char*,int,int);
3549 void rb_global_variable(VALUE*);
3550 void rb_gc_register_mark_object(VALUE);
3551 void rb_gc_register_address(VALUE*);
3552 void rb_gc_unregister_address(VALUE*);
3554 ID rb_intern(const char*);
3555 ID rb_intern2(const char*, long);
3556 ID rb_intern_str(VALUE str);
3557 const char *rb_id2name(ID);
3559 VALUE rb_id2str(ID);
3560 # 928 "./include/ruby/ruby.h"
3561 const char *rb_class2name(VALUE);
3562 const char *rb_obj_classname(VALUE);
3566 VALUE rb_eval_string(const char*);
3567 VALUE rb_eval_string_protect(const char*, int*);
3568 VALUE rb_eval_string_wrap(const char*, int*);
3569 VALUE rb_funcall(VALUE, ID, int, ...);
3570 VALUE rb_funcall2(VALUE, ID, int, const VALUE*);
3571 VALUE rb_funcall3(VALUE, ID, int, const VALUE*);
3572 int rb_scan_args(int, const VALUE*, const char*, ...);
3573 VALUE rb_call_super(int, const VALUE*);
3575 VALUE rb_gv_set(const char*, VALUE);
3576 VALUE rb_gv_get(const char*);
3577 VALUE rb_iv_get(VALUE, const char*);
3578 VALUE rb_iv_set(VALUE, const char*, VALUE);
3580 VALUE rb_equal(VALUE,VALUE);
3582 VALUE *rb_ruby_verbose_ptr(void);
3583 VALUE *rb_ruby_debug_ptr(void);
3587 __attribute__ ((noreturn)) void rb_raise(VALUE, const char*, ...) __attribute__((format(printf, 2, 3)));
3588 __attribute__ ((noreturn)) void rb_fatal(const char*, ...) __attribute__((format(printf, 1, 2)));
3589 __attribute__ ((noreturn)) void rb_bug(const char*, ...) __attribute__((format(printf, 1, 2)));
3590 __attribute__ ((noreturn)) void rb_sys_fail(const char*);
3591 __attribute__ ((noreturn)) void rb_iter_break(void);
3592 __attribute__ ((noreturn)) void rb_exit(int);
3593 __attribute__ ((noreturn)) void rb_notimplement(void);
3596 void rb_warning(const char*, ...) __attribute__((format(printf, 1, 2)));
3597 void rb_compile_warning(const char *, int, const char*, ...) __attribute__((format(printf, 3, 4)));
3598 void rb_sys_warning(const char*, ...) __attribute__((format(printf, 1, 2)));
3600 void rb_warn(const char*, ...) __attribute__((format(printf, 1, 2)));
3601 void rb_compile_warn(const char *, int, const char*, ...) __attribute__((format(printf, 3, 4)));
3603 typedef VALUE rb_block_call_func(VALUE, VALUE, int, VALUE*);
3605 VALUE rb_each(VALUE);
3606 VALUE rb_yield(VALUE);
3607 VALUE rb_yield_values(int n, ...);
3608 VALUE rb_yield_values2(int n, const VALUE *argv);
3609 VALUE rb_yield_splat(VALUE);
3610 int rb_block_given_p(void);
3611 void rb_need_block(void);
3612 VALUE rb_iterate(VALUE(*)(VALUE),VALUE,VALUE(*)(),VALUE);
3613 VALUE rb_block_call(VALUE,ID,int,VALUE*,VALUE(*)(),VALUE);
3614 VALUE rb_rescue(VALUE(*)(),VALUE,VALUE(*)(),VALUE);
3615 VALUE rb_rescue2(VALUE(*)(),VALUE,VALUE(*)(),VALUE,...);
3616 VALUE rb_ensure(VALUE(*)(),VALUE,VALUE(*)(),VALUE);
3617 VALUE rb_catch(const char*,VALUE(*)(),VALUE);
3618 VALUE rb_catch_obj(VALUE,VALUE(*)(),VALUE);
3619 __attribute__ ((noreturn)) void rb_throw(const char*,VALUE);
3620 __attribute__ ((noreturn)) void rb_throw_obj(VALUE,VALUE);
3622 VALUE rb_require(const char*);
3628 void ruby_init_stack(VALUE*);
3633 void ruby_init(void);
3634 void *ruby_options(int, char**);
3635 int ruby_run_node(void *);
3637 extern VALUE rb_mKernel;
3638 extern VALUE rb_mComparable;
3639 extern VALUE rb_mEnumerable;
3640 extern VALUE rb_mErrno;
3641 extern VALUE rb_mFileTest;
3642 extern VALUE rb_mGC;
3643 extern VALUE rb_mMath;
3644 extern VALUE rb_mProcess;
3646 extern VALUE rb_cBasicObject;
3647 extern VALUE rb_cObject;
3648 extern VALUE rb_cArray;
3649 extern VALUE rb_cBignum;
3650 extern VALUE rb_cBinding;
3651 extern VALUE rb_cClass;
3652 extern VALUE rb_cCont;
3653 extern VALUE rb_cDir;
3654 extern VALUE rb_cData;
3655 extern VALUE rb_cFalseClass;
3656 extern VALUE rb_cEncoding;
3657 extern VALUE rb_cEnumerator;
3658 extern VALUE rb_cFile;
3659 extern VALUE rb_cFixnum;
3660 extern VALUE rb_cFloat;
3661 extern VALUE rb_cHash;
3662 extern VALUE rb_cInteger;
3663 extern VALUE rb_cIO;
3664 extern VALUE rb_cMatch;
3665 extern VALUE rb_cMethod;
3666 extern VALUE rb_cModule;
3667 extern VALUE rb_cNameErrorMesg;
3668 extern VALUE rb_cNilClass;
3669 extern VALUE rb_cNumeric;
3670 extern VALUE rb_cProc;
3671 extern VALUE rb_cRange;
3672 extern VALUE rb_cRational;
3673 extern VALUE rb_cComplex;
3674 extern VALUE rb_cRegexp;
3675 extern VALUE rb_cStat;
3676 extern VALUE rb_cString;
3677 extern VALUE rb_cStruct;
3678 extern VALUE rb_cSymbol;
3679 extern VALUE rb_cThread;
3680 extern VALUE rb_cTime;
3681 extern VALUE rb_cTrueClass;
3682 extern VALUE rb_cUnboundMethod;
3684 extern VALUE rb_eException;
3685 extern VALUE rb_eStandardError;
3686 extern VALUE rb_eSystemExit;
3687 extern VALUE rb_eInterrupt;
3688 extern VALUE rb_eSignal;
3689 extern VALUE rb_eFatal;
3690 extern VALUE rb_eArgError;
3691 extern VALUE rb_eEOFError;
3692 extern VALUE rb_eIndexError;
3693 extern VALUE rb_eStopIteration;
3694 extern VALUE rb_eKeyError;
3695 extern VALUE rb_eRangeError;
3696 extern VALUE rb_eIOError;
3697 extern VALUE rb_eRuntimeError;
3698 extern VALUE rb_eSecurityError;
3699 extern VALUE rb_eSystemCallError;
3700 extern VALUE rb_eThreadError;
3701 extern VALUE rb_eTypeError;
3702 extern VALUE rb_eZeroDivError;
3703 extern VALUE rb_eNotImpError;
3704 extern VALUE rb_eNoMemError;
3705 extern VALUE rb_eNoMethodError;
3706 extern VALUE rb_eFloatDomainError;
3707 extern VALUE rb_eLocalJumpError;
3708 extern VALUE rb_eSysStackError;
3709 extern VALUE rb_eRegexpError;
3710 extern VALUE rb_eEncodingError;
3711 extern VALUE rb_eEncCompatError;
3713 extern VALUE rb_eScriptError;
3714 extern VALUE rb_eNameError;
3715 extern VALUE rb_eSyntaxError;
3716 extern VALUE rb_eLoadError;
3718 extern VALUE rb_stdin, rb_stdout, rb_stderr;
3721 rb_class_of(VALUE obj)
3723 if (((VALUE)(obj) & RUBY_IMMEDIATE_MASK)) {
3724 if ((((long)(obj))&RUBY_FIXNUM_FLAG)) return rb_cFixnum;
3725 if (obj == ((VALUE)RUBY_Qtrue)) return rb_cTrueClass;
3726 if ((((VALUE)(obj)&~(~(VALUE)0<<RUBY_SPECIAL_SHIFT))==RUBY_SYMBOL_FLAG)) return rb_cSymbol;
3728 else if (!(((VALUE)(obj) & ~((VALUE)RUBY_Qnil)) != 0)) {
3729 if (obj == ((VALUE)RUBY_Qnil)) return rb_cNilClass;
3730 if (obj == ((VALUE)RUBY_Qfalse)) return rb_cFalseClass;
3732 return ((struct RBasic*)(obj))->klass;
3738 if (((VALUE)(obj) & RUBY_IMMEDIATE_MASK)) {
3739 if ((((long)(obj))&RUBY_FIXNUM_FLAG)) return RUBY_T_FIXNUM;
3740 if (obj == ((VALUE)RUBY_Qtrue)) return RUBY_T_TRUE;
3741 if ((((VALUE)(obj)&~(~(VALUE)0<<RUBY_SPECIAL_SHIFT))==RUBY_SYMBOL_FLAG)) return RUBY_T_SYMBOL;
3742 if (obj == ((VALUE)RUBY_Qundef)) return RUBY_T_UNDEF;
3744 else if (!(((VALUE)(obj) & ~((VALUE)RUBY_Qnil)) != 0)) {
3745 if (obj == ((VALUE)RUBY_Qnil)) return RUBY_T_NIL;
3746 if (obj == ((VALUE)RUBY_Qfalse)) return RUBY_T_FALSE;
3748 return (((struct RBasic*)(obj))->flags & RUBY_T_MASK);
3752 rb_special_const_p(VALUE obj)
3754 if ((((VALUE)(obj) & RUBY_IMMEDIATE_MASK) || !(((VALUE)(obj) & ~((VALUE)RUBY_Qnil)) != 0))) return ((VALUE)RUBY_Qtrue);
3755 return ((VALUE)RUBY_Qfalse);
3758 # 1 "./include/ruby/missing.h" 1
3759 # 22 "./include/ruby/missing.h"
3760 # 1 "/usr/include/sys/time.h" 1 3 4
3761 # 27 "/usr/include/sys/time.h" 3 4
3762 # 1 "/usr/include/time.h" 1 3 4
3763 # 28 "/usr/include/sys/time.h" 2 3 4
3765 # 1 "/usr/include/bits/time.h" 1 3 4
3766 # 30 "/usr/include/sys/time.h" 2 3 4
3767 # 39 "/usr/include/sys/time.h" 3 4
3769 # 57 "/usr/include/sys/time.h" 3 4
3776 typedef struct timezone *__restrict __timezone_ptr_t;
3777 # 73 "/usr/include/sys/time.h" 3 4
3778 extern int gettimeofday (struct timeval *__restrict __tv,
3779 __timezone_ptr_t __tz) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
3784 extern int settimeofday (__const struct timeval *__tv,
3785 __const struct timezone *__tz)
3786 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
3792 extern int adjtime (__const struct timeval *__delta,
3793 struct timeval *__olddelta) __attribute__ ((__nothrow__));
3817 struct timeval it_interval;
3819 struct timeval it_value;
3825 typedef enum __itimer_which __itimer_which_t;
3832 extern int getitimer (__itimer_which_t __which,
3833 struct itimerval *__value) __attribute__ ((__nothrow__));
3838 extern int setitimer (__itimer_which_t __which,
3839 __const struct itimerval *__restrict __new,
3840 struct itimerval *__restrict __old) __attribute__ ((__nothrow__));
3845 extern int utimes (__const char *__file, __const struct timeval __tvp[2])
3846 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
3850 extern int lutimes (__const char *__file, __const struct timeval __tvp[2])
3851 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
3854 extern int futimes (int __fd, __const struct timeval __tvp[2]) __attribute__ ((__nothrow__));
3861 extern int futimesat (int __fd, __const char *__file,
3862 __const struct timeval __tvp[2]) __attribute__ ((__nothrow__));
3863 # 191 "/usr/include/sys/time.h" 3 4
3865 # 23 "./include/ruby/missing.h" 2
3866 # 148 "./include/ruby/missing.h"
3867 # 1 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include/stdarg.h" 1 3 4
3868 # 149 "./include/ruby/missing.h" 2
3869 # 158 "./include/ruby/missing.h"
3870 extern size_t strlcpy(char *, const char*, size_t);
3874 extern size_t strlcat(char *, const char*, size_t);
3875 # 1126 "./include/ruby/ruby.h" 2
3876 # 1 "./include/ruby/intern.h" 1
3877 # 29 "./include/ruby/intern.h"
3878 # 1 "./include/ruby/st.h" 1
3879 # 24 "./include/ruby/st.h"
3880 # 1 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include/stddef.h" 1 3 4
3881 # 25 "./include/ruby/st.h" 2
3887 typedef unsigned long st_data_t;
3888 # 56 "./include/ruby/st.h"
3889 typedef struct st_table st_table;
3891 typedef int st_compare_func(st_data_t, st_data_t);
3892 typedef int st_hash_func(st_data_t);
3894 struct st_hash_type {
3899 typedef st_data_t st_index_t;
3903 const struct st_hash_type *type;
3904 st_index_t num_bins;
3905 unsigned int entries_packed : 1;
3909 st_index_t num_entries : (sizeof(st_index_t) * 8) - 1;
3910 struct st_table_entry **bins;
3911 struct st_table_entry *head;
3916 enum st_retval {ST_CONTINUE, ST_STOP, ST_DELETE, ST_CHECK};
3918 st_table *st_init_table(const struct st_hash_type *);
3919 st_table *st_init_table_with_size(const struct st_hash_type *, int);
3920 st_table *st_init_numtable(void);
3921 st_table *st_init_numtable_with_size(int);
3922 st_table *st_init_strtable(void);
3923 st_table *st_init_strtable_with_size(int);
3924 st_table *st_init_strcasetable(void);
3925 st_table *st_init_strcasetable_with_size(int);
3926 int st_delete(st_table *, st_data_t *, st_data_t *);
3927 int st_delete_safe(st_table *, st_data_t *, st_data_t *, st_data_t);
3928 int st_insert(st_table *, st_data_t, st_data_t);
3929 int st_lookup(st_table *, st_data_t, st_data_t *);
3930 int st_get_key(st_table *, st_data_t, st_data_t *);
3931 int st_foreach(st_table *, int (*)(), st_data_t);
3932 int st_reverse_foreach(st_table *, int (*)(), st_data_t);
3933 void st_add_direct(st_table *, st_data_t, st_data_t);
3934 void st_free_table(st_table *);
3935 void st_cleanup_safe(st_table *, st_data_t);
3936 void st_clear(st_table *);
3937 st_table *st_copy(st_table *);
3938 int st_numcmp(st_data_t, st_data_t);
3939 int st_numhash(st_data_t);
3940 int st_strcasecmp(const char *s1, const char *s2);
3941 int st_strncasecmp(const char *s1, const char *s2, size_t n);
3942 # 30 "./include/ruby/intern.h" 2
3943 # 39 "./include/ruby/intern.h"
3944 void rb_mem_clear(register VALUE*, register long);
3945 VALUE rb_assoc_new(VALUE, VALUE);
3946 VALUE rb_check_array_type(VALUE);
3947 VALUE rb_ary_new(void);
3948 VALUE rb_ary_new2(long);
3949 VALUE rb_ary_new3(long,...);
3950 VALUE rb_ary_new4(long, const VALUE *);
3951 VALUE rb_ary_tmp_new(long);
3952 void rb_ary_free(VALUE);
3953 VALUE rb_ary_freeze(VALUE);
3954 VALUE rb_ary_aref(int, VALUE*, VALUE);
3955 VALUE rb_ary_subseq(VALUE, long, long);
3956 void rb_ary_store(VALUE, long, VALUE);
3957 VALUE rb_ary_dup(VALUE);
3958 VALUE rb_ary_to_ary(VALUE);
3959 VALUE rb_ary_to_s(VALUE);
3960 VALUE rb_ary_push(VALUE, VALUE);
3961 VALUE rb_ary_pop(VALUE);
3962 VALUE rb_ary_shift(VALUE);
3963 VALUE rb_ary_unshift(VALUE, VALUE);
3964 VALUE rb_ary_entry(VALUE, long);
3965 VALUE rb_ary_each(VALUE);
3966 VALUE rb_ary_join(VALUE, VALUE);
3967 VALUE rb_ary_print_on(VALUE, VALUE);
3968 VALUE rb_ary_reverse(VALUE);
3969 VALUE rb_ary_sort(VALUE);
3970 VALUE rb_ary_sort_bang(VALUE);
3971 VALUE rb_ary_delete(VALUE, VALUE);
3972 VALUE rb_ary_delete_at(VALUE, long);
3973 VALUE rb_ary_clear(VALUE);
3974 VALUE rb_ary_plus(VALUE, VALUE);
3975 VALUE rb_ary_concat(VALUE, VALUE);
3976 VALUE rb_ary_assoc(VALUE, VALUE);
3977 VALUE rb_ary_rassoc(VALUE, VALUE);
3978 VALUE rb_ary_includes(VALUE, VALUE);
3979 VALUE rb_ary_cmp(VALUE, VALUE);
3980 VALUE rb_ary_replace(VALUE copy, VALUE orig);
3981 VALUE rb_get_values_at(VALUE, long, int, VALUE*, VALUE(*)(VALUE,long));
3983 VALUE rb_big_clone(VALUE);
3984 void rb_big_2comp(VALUE);
3985 VALUE rb_big_norm(VALUE);
3986 void rb_big_resize(VALUE big, long len);
3987 VALUE rb_uint2big(VALUE);
3988 VALUE rb_int2big(long);
3989 VALUE rb_uint2inum(VALUE);
3990 VALUE rb_int2inum(long);
3991 VALUE rb_cstr_to_inum(const char*, int, int);
3992 VALUE rb_str_to_inum(VALUE, int, int);
3993 VALUE rb_cstr2inum(const char*, int);
3994 VALUE rb_str2inum(VALUE, int);
3995 VALUE rb_big2str(VALUE, int);
3996 VALUE rb_big2str0(VALUE, int, int);
3997 long rb_big2long(VALUE);
3999 VALUE rb_big2ulong(VALUE);
4002 VALUE rb_ll2inum(long long);
4003 VALUE rb_ull2inum(unsigned long long);
4004 long long rb_big2ll(VALUE);
4005 unsigned long long rb_big2ull(VALUE);
4007 void rb_quad_pack(char*,VALUE);
4008 VALUE rb_quad_unpack(const char*,int);
4009 int rb_uv_to_utf8(char[6],unsigned long);
4010 VALUE rb_dbl2big(double);
4011 double rb_big2dbl(VALUE);
4012 VALUE rb_big_cmp(VALUE, VALUE);
4013 VALUE rb_big_eq(VALUE, VALUE);
4014 VALUE rb_big_plus(VALUE, VALUE);
4015 VALUE rb_big_minus(VALUE, VALUE);
4016 VALUE rb_big_mul(VALUE, VALUE);
4017 VALUE rb_big_div(VALUE, VALUE);
4018 VALUE rb_big_modulo(VALUE, VALUE);
4019 VALUE rb_big_divmod(VALUE, VALUE);
4020 VALUE rb_big_pow(VALUE, VALUE);
4021 VALUE rb_big_and(VALUE, VALUE);
4022 VALUE rb_big_or(VALUE, VALUE);
4023 VALUE rb_big_xor(VALUE, VALUE);
4024 VALUE rb_big_lshift(VALUE, VALUE);
4025 VALUE rb_big_rshift(VALUE, VALUE);
4027 VALUE rb_rational_raw(VALUE, VALUE);
4030 VALUE rb_rational_new(VALUE, VALUE);
4033 VALUE rb_Rational(VALUE, VALUE);
4037 VALUE rb_complex_raw(VALUE, VALUE);
4040 VALUE rb_complex_new(VALUE, VALUE);
4043 VALUE rb_complex_polar(VALUE, VALUE);
4044 VALUE rb_Complex(VALUE, VALUE);
4048 VALUE rb_class_boot(VALUE);
4049 VALUE rb_class_new(VALUE);
4050 VALUE rb_mod_init_copy(VALUE, VALUE);
4051 VALUE rb_class_init_copy(VALUE, VALUE);
4052 VALUE rb_singleton_class_clone(VALUE);
4053 void rb_singleton_class_attached(VALUE,VALUE);
4054 VALUE rb_make_metaclass(VALUE, VALUE);
4055 void rb_check_inheritable(VALUE);
4056 VALUE rb_class_inherited(VALUE, VALUE);
4057 VALUE rb_define_class_id(ID, VALUE);
4058 VALUE rb_module_new(void);
4059 VALUE rb_define_module_id(ID);
4060 VALUE rb_mod_included_modules(VALUE);
4061 VALUE rb_mod_include_p(VALUE, VALUE);
4062 VALUE rb_mod_ancestors(VALUE);
4063 VALUE rb_class_instance_methods(int, VALUE*, VALUE);
4064 VALUE rb_class_public_instance_methods(int, VALUE*, VALUE);
4065 VALUE rb_class_protected_instance_methods(int, VALUE*, VALUE);
4066 VALUE rb_class_private_instance_methods(int, VALUE*, VALUE);
4067 VALUE rb_obj_singleton_methods(int, VALUE*, VALUE);
4068 void rb_define_method_id(VALUE, ID, VALUE (*)(), int);
4069 void rb_frozen_class_p(VALUE);
4070 void rb_undef(VALUE, ID);
4071 void rb_define_protected_method(VALUE, const char*, VALUE (*)(), int);
4072 void rb_define_private_method(VALUE, const char*, VALUE (*)(), int);
4073 void rb_define_singleton_method(VALUE, const char*, VALUE(*)(), int);
4074 VALUE rb_singleton_class(VALUE);
4076 int rb_cmpint(VALUE, VALUE, VALUE);
4077 __attribute__ ((noreturn)) void rb_cmperr(VALUE, VALUE);
4079 VALUE rb_fiber_new(VALUE (*)(), VALUE);
4080 VALUE rb_fiber_resume(VALUE fib, int argc, VALUE *args);
4081 VALUE rb_fiber_yield(int argc, VALUE *args);
4082 VALUE rb_fiber_current(void);
4083 VALUE rb_fiber_alive_p(VALUE);
4086 VALUE rb_enumeratorize(VALUE, VALUE, int, VALUE *);
4093 VALUE rb_exc_new(VALUE, const char*, long);
4094 VALUE rb_exc_new2(VALUE, const char*);
4095 VALUE rb_exc_new3(VALUE, VALUE);
4096 __attribute__ ((noreturn)) void rb_loaderror(const char*, ...) __attribute__((format(printf, 1, 2)));
4097 __attribute__ ((noreturn)) void rb_name_error(ID, const char*, ...) __attribute__((format(printf, 2, 3)));
4098 __attribute__ ((noreturn)) void rb_invalid_str(const char*, const char*);
4099 void rb_compile_error(const char*, int, const char*, ...) __attribute__((format(printf, 3, 4)));
4100 void rb_compile_error_append(const char*, ...) __attribute__((format(printf, 1, 2)));
4101 __attribute__ ((noreturn)) void rb_load_fail(const char*);
4102 __attribute__ ((noreturn)) void rb_error_frozen(const char*);
4103 void rb_check_frozen(VALUE);
4105 int rb_sourceline(void);
4106 const char *rb_sourcefile(void);
4114 void rb_fd_init(volatile rb_fdset_t *);
4115 void rb_fd_term(rb_fdset_t *);
4116 void rb_fd_zero(rb_fdset_t *);
4117 void rb_fd_set(int, rb_fdset_t *);
4118 void rb_fd_clr(int, rb_fdset_t *);
4119 int rb_fd_isset(int, const rb_fdset_t *);
4120 void rb_fd_copy(rb_fdset_t *, const fd_set *, int);
4121 int rb_fd_select(int, rb_fdset_t *, rb_fdset_t *, rb_fdset_t *, struct timeval *);
4122 # 237 "./include/ruby/intern.h"
4123 __attribute__ ((noreturn)) void rb_exc_raise(VALUE);
4124 __attribute__ ((noreturn)) void rb_exc_fatal(VALUE);
4125 VALUE rb_f_exit(int,VALUE*);
4126 VALUE rb_f_abort(int,VALUE*);
4127 void rb_remove_method(VALUE, const char*);
4131 typedef VALUE (*rb_alloc_func_t)(VALUE);
4132 void rb_define_alloc_func(VALUE, rb_alloc_func_t);
4133 void rb_undef_alloc_func(VALUE);
4134 rb_alloc_func_t rb_get_alloc_func(VALUE);
4135 void rb_clear_cache(void);
4136 void rb_clear_cache_by_class(VALUE);
4137 void rb_alias(VALUE, ID, ID);
4138 void rb_attr(VALUE,ID,int,int,int);
4139 int rb_method_boundp(VALUE, ID, int);
4140 int rb_method_basic_definition_p(VALUE, ID);
4141 VALUE rb_eval_cmd(VALUE, VALUE, int);
4142 int rb_obj_respond_to(VALUE, ID, int);
4143 int rb_respond_to(VALUE, ID);
4144 void rb_interrupt(void);
4145 VALUE rb_apply(VALUE, ID, VALUE);
4146 void rb_backtrace(void);
4147 ID rb_frame_this_func(void);
4148 VALUE rb_obj_instance_eval(int, VALUE*, VALUE);
4149 VALUE rb_obj_instance_exec(int, VALUE*, VALUE);
4150 VALUE rb_mod_module_eval(int, VALUE*, VALUE);
4151 VALUE rb_mod_module_exec(int, VALUE*, VALUE);
4152 void rb_load(VALUE, int);
4153 void rb_load_protect(VALUE, int, int*);
4154 __attribute__ ((noreturn)) void rb_jump_tag(int);
4155 int rb_provided(const char*);
4156 int rb_feature_provided(const char *, const char **);
4157 void rb_provide(const char*);
4158 VALUE rb_f_require(VALUE, VALUE);
4159 VALUE rb_require_safe(VALUE, int);
4160 void rb_obj_call_init(VALUE, int, VALUE*);
4161 VALUE rb_class_new_instance(int, VALUE*, VALUE);
4162 VALUE rb_block_proc(void);
4163 VALUE rb_f_lambda(void);
4164 VALUE rb_proc_new(VALUE (*)( ), VALUE);
4165 VALUE rb_proc_call(VALUE, VALUE);
4166 VALUE rb_proc_call_with_block(VALUE, int argc, VALUE *argv, VALUE);
4167 int rb_proc_arity(VALUE);
4168 VALUE rb_binding_new(void);
4169 VALUE rb_obj_method(VALUE, VALUE);
4170 VALUE rb_method_call(int, VALUE*, VALUE);
4171 int rb_mod_method_arity(VALUE, ID);
4172 int rb_obj_method_arity(VALUE, ID);
4173 VALUE rb_protect(VALUE (*)(VALUE), VALUE, int*);
4174 void rb_set_end_proc(void (*)(VALUE), VALUE);
4175 void rb_mark_end_proc(void);
4176 void rb_exec_end_proc(void);
4177 void Init_jump(void);
4178 void ruby_finalize(void);
4179 __attribute__ ((noreturn)) void ruby_stop(int);
4180 int ruby_cleanup(int);
4181 void rb_gc_mark_threads(void);
4182 void rb_thread_schedule(void);
4183 void rb_thread_wait_fd(int);
4184 int rb_thread_fd_writable(int);
4185 void rb_thread_fd_close(int);
4186 int rb_thread_alone(void);
4187 void rb_thread_polling(void);
4188 void rb_thread_sleep(int);
4189 void rb_thread_sleep_forever(void);
4190 VALUE rb_thread_stop(void);
4191 VALUE rb_thread_wakeup(VALUE);
4192 VALUE rb_thread_run(VALUE);
4193 VALUE rb_thread_kill(VALUE);
4194 VALUE rb_thread_create(VALUE (*)(), void*);
4195 void rb_thread_signal_raise(void *, int);
4196 void rb_thread_signal_exit(void *);
4197 int rb_thread_select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
4198 void rb_thread_wait_for(struct timeval);
4199 VALUE rb_thread_current(void);
4200 VALUE rb_thread_main(void);
4201 VALUE rb_thread_local_aref(VALUE, ID);
4202 VALUE rb_thread_local_aset(VALUE, ID, VALUE);
4203 void rb_thread_atfork(void);
4204 void rb_thread_atfork_before_exec(void);
4205 VALUE rb_exec_recursive(VALUE(*)(VALUE, VALUE, int),VALUE,VALUE);
4207 VALUE rb_file_s_expand_path(int, VALUE *);
4208 VALUE rb_file_expand_path(VALUE, VALUE);
4209 VALUE rb_file_s_absolute_path(int, VALUE *);
4210 VALUE rb_file_absolute_path(VALUE, VALUE);
4211 void rb_file_const(const char*, VALUE);
4212 int rb_find_file_ext(VALUE*, const char* const*);
4213 VALUE rb_find_file(VALUE);
4214 char *rb_path_next(const char *);
4215 char *rb_path_skip_prefix(const char *);
4216 char *rb_path_last_separator(const char *);
4217 char *rb_path_end(const char *);
4218 VALUE rb_file_directory_p(VALUE,VALUE);
4220 void ruby_set_stack_size(size_t);
4221 __attribute__ ((noreturn)) void rb_memerror(void);
4222 int ruby_stack_check(void);
4223 size_t ruby_stack_length(VALUE**);
4224 int rb_during_gc(void);
4225 void rb_gc_mark_locations(VALUE*, VALUE*);
4226 void rb_mark_tbl(struct st_table*);
4227 void rb_mark_set(struct st_table*);
4228 void rb_mark_hash(struct st_table*);
4229 void rb_gc_mark_maybe(VALUE);
4230 void rb_gc_mark(VALUE);
4231 void rb_gc_force_recycle(VALUE);
4233 void rb_gc_copy_finalizer(VALUE,VALUE);
4234 void rb_gc_finalize_deferred(void);
4235 void rb_gc_call_finalizer_at_exit(void);
4236 VALUE rb_gc_enable(void);
4237 VALUE rb_gc_disable(void);
4238 VALUE rb_gc_start(void);
4240 void st_foreach_safe(struct st_table *, int (*)(), st_data_t);
4241 void rb_hash_foreach(VALUE, int (*)(), VALUE);
4242 VALUE rb_hash(VALUE);
4243 VALUE rb_hash_new(void);
4244 VALUE rb_hash_dup(VALUE);
4245 VALUE rb_hash_freeze(VALUE);
4246 VALUE rb_hash_aref(VALUE, VALUE);
4247 VALUE rb_hash_lookup(VALUE, VALUE);
4248 VALUE rb_hash_lookup2(VALUE, VALUE, VALUE);
4249 VALUE rb_hash_fetch(VALUE, VALUE);
4250 VALUE rb_hash_aset(VALUE, VALUE, VALUE);
4251 VALUE rb_hash_delete_if(VALUE);
4252 VALUE rb_hash_delete(VALUE,VALUE);
4253 struct st_table *rb_hash_tbl(VALUE);
4254 int rb_path_check(const char*);
4255 int rb_env_path_tainted(void);
4256 VALUE rb_env_clear(void);
4260 extern VALUE rb_output_fs;
4262 extern VALUE rb_default_rs;
4263 extern VALUE rb_output_rs;
4264 VALUE rb_io_write(VALUE, VALUE);
4265 VALUE rb_io_gets(VALUE);
4266 VALUE rb_io_getbyte(VALUE);
4267 VALUE rb_io_ungetc(VALUE, VALUE);
4268 VALUE rb_io_ungetbyte(VALUE, VALUE);
4269 VALUE rb_io_close(VALUE);
4270 VALUE rb_io_flush(VALUE);
4271 VALUE rb_io_eof(VALUE);
4272 VALUE rb_io_binmode(VALUE);
4273 VALUE rb_io_ascii8bit_binmode(VALUE);
4274 VALUE rb_io_addstr(VALUE, VALUE);
4275 VALUE rb_io_printf(int, VALUE*, VALUE);
4276 VALUE rb_io_print(int, VALUE*, VALUE);
4277 VALUE rb_io_puts(int, VALUE*, VALUE);
4278 VALUE rb_io_fdopen(int, int, const char*);
4279 VALUE rb_file_open(const char*, const char*);
4280 VALUE rb_file_open_str(VALUE, const char*);
4281 VALUE rb_gets(void);
4282 void rb_write_error(const char*);
4283 void rb_write_error2(const char*, long);
4284 void rb_close_before_exec(int lowfd, int maxhint, VALUE noclose_fds);
4285 int rb_pipe(int *pipes);
4287 VALUE rb_marshal_dump(VALUE, VALUE);
4288 VALUE rb_marshal_load(VALUE);
4289 void rb_marshal_define_compat(VALUE newclass, VALUE oldclass, VALUE (*dumper)(VALUE), VALUE (*loader)(VALUE, VALUE));
4291 void rb_num_zerodiv(void);
4292 VALUE rb_num_coerce_bin(VALUE, VALUE, ID);
4293 VALUE rb_num_coerce_cmp(VALUE, VALUE, ID);
4294 VALUE rb_num_coerce_relop(VALUE, VALUE, ID);
4295 VALUE rb_float_new(double);
4296 VALUE rb_num2fix(VALUE);
4297 VALUE rb_fix2str(VALUE, int);
4298 VALUE rb_dbl_cmp(double, double);
4300 int rb_eql(VALUE, VALUE);
4301 VALUE rb_any_to_s(VALUE);
4302 VALUE rb_inspect(VALUE);
4303 VALUE rb_obj_is_instance_of(VALUE, VALUE);
4304 VALUE rb_obj_is_kind_of(VALUE, VALUE);
4305 VALUE rb_obj_alloc(VALUE);
4306 VALUE rb_obj_clone(VALUE);
4307 VALUE rb_obj_dup(VALUE);
4308 VALUE rb_obj_init_copy(VALUE,VALUE);
4309 VALUE rb_obj_taint(VALUE);
4310 VALUE rb_obj_tainted(VALUE);
4311 VALUE rb_obj_untaint(VALUE);
4312 VALUE rb_obj_freeze(VALUE);
4313 VALUE rb_obj_frozen_p(VALUE);
4314 VALUE rb_obj_id(VALUE);
4315 VALUE rb_obj_class(VALUE);
4316 VALUE rb_class_real(VALUE);
4317 VALUE rb_class_inherited_p(VALUE, VALUE);
4318 VALUE rb_convert_type(VALUE,int,const char*,const char*);
4319 VALUE rb_check_convert_type(VALUE,int,const char*,const char*);
4320 VALUE rb_check_to_integer(VALUE, const char *);
4321 VALUE rb_to_int(VALUE);
4322 VALUE rb_Integer(VALUE);
4323 VALUE rb_Float(VALUE);
4324 VALUE rb_String(VALUE);
4325 VALUE rb_Array(VALUE);
4326 double rb_cstr_to_dbl(const char*, int);
4327 double rb_str_to_dbl(VALUE, int);
4329 extern int ruby_sourceline;
4330 extern char *ruby_sourcefile;
4331 ID rb_id_attrset(ID);
4332 void rb_gc_mark_parser(void);
4333 int rb_is_const_id(ID);
4334 int rb_is_instance_id(ID);
4335 int rb_is_class_id(ID);
4336 int rb_is_local_id(ID);
4337 int rb_is_junk_id(ID);
4338 int rb_symname_p(const char*);
4339 int rb_sym_interned_p(VALUE);
4340 void rb_gc_mark_symbols(void);
4341 VALUE rb_backref_get(void);
4342 void rb_backref_set(VALUE);
4343 VALUE rb_lastline_get(void);
4344 void rb_lastline_set(VALUE);
4345 VALUE rb_sym_all_symbols(void);
4347 void rb_last_status_set(int status, pid_t pid);
4348 VALUE rb_last_status_get(void);
4349 struct rb_exec_arg {
4356 int rb_proc_exec_n(int, VALUE*, const char*);
4357 int rb_proc_exec(const char*);
4358 VALUE rb_exec_arg_init(int argc, VALUE *argv, int accept_shell, struct rb_exec_arg *e);
4359 int rb_exec_arg_addopt(struct rb_exec_arg *e, VALUE key, VALUE val);
4360 void rb_exec_arg_fixup(struct rb_exec_arg *e);
4361 int rb_run_exec_options(const struct rb_exec_arg *e, struct rb_exec_arg *s);
4362 int rb_exec(const struct rb_exec_arg*);
4363 pid_t rb_fork(int*, int (*)(void*), void*, VALUE);
4364 VALUE rb_f_exec(int,VALUE*);
4365 pid_t rb_waitpid(pid_t pid, int *status, int flags);
4366 void rb_syswait(pid_t pid);
4367 pid_t rb_spawn(int, VALUE*);
4368 VALUE rb_proc_times(VALUE);
4369 VALUE rb_detach_process(pid_t pid);
4371 VALUE rb_range_new(VALUE, VALUE, int);
4372 VALUE rb_range_beg_len(VALUE, long*, long*, long, int);
4374 unsigned long rb_genrand_int32(void);
4375 double rb_genrand_real(void);
4376 void rb_reset_random_seed(void);
4379 int rb_memcicmp(const void*,const void*,long);
4380 void rb_match_busy(VALUE);
4381 VALUE rb_reg_nth_defined(int, VALUE);
4382 VALUE rb_reg_nth_match(int, VALUE);
4383 VALUE rb_reg_last_match(VALUE);
4384 VALUE rb_reg_match_pre(VALUE);
4385 VALUE rb_reg_match_post(VALUE);
4386 VALUE rb_reg_match_last(VALUE);
4388 VALUE rb_reg_new_str(VALUE, int);
4389 VALUE rb_reg_new(const char *, long, int);
4390 VALUE rb_reg_match(VALUE, VALUE);
4391 VALUE rb_reg_match2(VALUE);
4392 int rb_reg_options(VALUE);
4393 void rb_set_kcode(const char*);
4394 const char* rb_get_kcode(void);
4397 extern VALUE rb_argv0;
4398 VALUE rb_get_argv(void);
4399 void *rb_load_file(const char*);
4400 void ruby_script(const char*);
4401 void ruby_prog_init(void);
4402 void ruby_set_argv(int, char**);
4403 void *ruby_process_options(int, char**);
4404 void ruby_init_loadpath(void);
4405 void ruby_incpush(const char*);
4407 VALUE rb_f_kill(int, VALUE*);
4408 void rb_gc_mark_trap_list(void);
4411 void (*ruby_posix_signal(int, void (*)(int)))(int);
4413 void ruby_sig_finalize(void);
4414 void rb_trap_exit(void);
4415 void rb_trap_exec(void);
4416 const char *ruby_signal_name(int);
4417 void ruby_default_signal(int);
4419 VALUE rb_f_sprintf(int, const VALUE*);
4420 VALUE rb_sprintf(const char*, ...) __attribute__((format(printf, 1, 2)));
4421 VALUE rb_vsprintf(const char*, va_list);
4422 VALUE rb_str_catf(VALUE, const char*, ...) __attribute__((format(printf, 2, 3)));
4423 VALUE rb_str_vcatf(VALUE, const char*, va_list);
4424 VALUE rb_str_format(int, const VALUE *, VALUE);
4426 VALUE rb_str_new(const char*, long);
4427 VALUE rb_str_new_cstr(const char*);
4428 VALUE rb_str_new2(const char*);
4429 VALUE rb_str_new_shared(VALUE);
4430 VALUE rb_str_new3(VALUE);
4431 VALUE rb_str_new_frozen(VALUE);
4432 VALUE rb_str_new4(VALUE);
4433 VALUE rb_str_new_with_class(VALUE, const char*, long);
4434 VALUE rb_str_new5(VALUE, const char*, long);
4435 VALUE rb_tainted_str_new_cstr(const char*);
4436 VALUE rb_tainted_str_new(const char*, long);
4437 VALUE rb_tainted_str_new2(const char*);
4438 VALUE rb_external_str_new(const char*, long);
4439 VALUE rb_external_str_new_cstr(const char*);
4440 VALUE rb_locale_str_new(const char*, long);
4441 VALUE rb_locale_str_new_cstr(const char*);
4442 VALUE rb_str_buf_new(long);
4443 VALUE rb_str_buf_new_cstr(const char*);
4444 VALUE rb_str_buf_new2(const char*);
4445 VALUE rb_str_tmp_new(long);
4446 VALUE rb_usascii_str_new(const char*, long);
4447 VALUE rb_usascii_str_new_cstr(const char*);
4448 VALUE rb_usascii_str_new2(const char*);
4449 void rb_str_free(VALUE);
4450 void rb_str_shared_replace(VALUE, VALUE);
4451 VALUE rb_str_buf_append(VALUE, VALUE);
4452 VALUE rb_str_buf_cat(VALUE, const char*, long);
4453 VALUE rb_str_buf_cat2(VALUE, const char*);
4454 VALUE rb_str_buf_cat_ascii(VALUE, const char*);
4455 VALUE rb_obj_as_string(VALUE);
4456 VALUE rb_check_string_type(VALUE);
4457 VALUE rb_str_dup(VALUE);
4458 VALUE rb_str_locktmp(VALUE);
4459 VALUE rb_str_unlocktmp(VALUE);
4460 VALUE rb_str_dup_frozen(VALUE);
4462 VALUE rb_str_plus(VALUE, VALUE);
4463 VALUE rb_str_times(VALUE, VALUE);
4464 long rb_str_sublen(VALUE, long);
4465 VALUE rb_str_substr(VALUE, long, long);
4466 VALUE rb_str_subseq(VALUE, long, long);
4467 void rb_str_modify(VALUE);
4468 VALUE rb_str_freeze(VALUE);
4469 void rb_str_set_len(VALUE, long);
4470 VALUE rb_str_resize(VALUE, long);
4471 VALUE rb_str_cat(VALUE, const char*, long);
4472 VALUE rb_str_cat2(VALUE, const char*);
4473 VALUE rb_str_append(VALUE, VALUE);
4474 VALUE rb_str_concat(VALUE, VALUE);
4475 int rb_memhash(const void *ptr, long len);
4476 int rb_str_hash(VALUE);
4477 int rb_str_hash_cmp(VALUE,VALUE);
4478 int rb_str_comparable(VALUE, VALUE);
4479 int rb_str_cmp(VALUE, VALUE);
4480 VALUE rb_str_equal(VALUE str1, VALUE str2);
4481 VALUE rb_str_drop_bytes(VALUE, long);
4482 void rb_str_update(VALUE, long, long, VALUE);
4483 VALUE rb_str_inspect(VALUE);
4484 VALUE rb_str_dump(VALUE);
4485 VALUE rb_str_split(VALUE, const char*);
4486 void rb_str_associate(VALUE, VALUE);
4487 VALUE rb_str_associated(VALUE);
4488 void rb_str_setter(VALUE, ID, VALUE*);
4489 VALUE rb_str_intern(VALUE);
4490 VALUE rb_sym_to_s(VALUE);
4491 VALUE rb_str_length(VALUE);
4492 size_t rb_str_capacity(VALUE);
4493 # 666 "./include/ruby/intern.h"
4494 VALUE rb_struct_new(VALUE, ...);
4495 VALUE rb_struct_define(const char*, ...);
4496 VALUE rb_struct_alloc(VALUE, VALUE);
4497 VALUE rb_struct_initialize(VALUE, VALUE);
4498 VALUE rb_struct_aref(VALUE, VALUE);
4499 VALUE rb_struct_aset(VALUE, VALUE, VALUE);
4500 VALUE rb_struct_getmember(VALUE, ID);
4501 VALUE rb_struct_iv_get(VALUE, const char*);
4502 VALUE rb_struct_s_members(VALUE);
4503 VALUE rb_struct_members(VALUE);
4504 VALUE rb_struct_alloc_noinit(VALUE);
4505 VALUE rb_struct_define_without_accessor(const char *, VALUE, rb_alloc_func_t, ...);
4507 typedef void rb_unblock_function_t(void *);
4508 typedef VALUE rb_blocking_function_t(void *);
4509 void rb_thread_check_ints(void);
4510 int rb_thread_interrupted(VALUE thval);
4511 VALUE rb_thread_blocking_region(rb_blocking_function_t *func, void *data1,
4512 rb_unblock_function_t *ubf, void *data2);
4515 VALUE rb_mutex_new(void);
4516 VALUE rb_mutex_locked_p(VALUE mutex);
4517 VALUE rb_mutex_try_lock(VALUE mutex);
4518 VALUE rb_mutex_lock(VALUE mutex);
4519 VALUE rb_mutex_unlock(VALUE mutex);
4520 VALUE rb_mutex_sleep(VALUE self, VALUE timeout);
4521 VALUE rb_mutex_synchronize(VALUE mutex, VALUE (*func)(VALUE arg), VALUE arg);
4522 VALUE rb_barrier_new(void);
4523 VALUE rb_barrier_wait(VALUE self);
4524 VALUE rb_barrier_release(VALUE self);
4525 VALUE rb_barrier_destroy(VALUE self);
4527 VALUE rb_time_new(time_t, long);
4528 VALUE rb_time_nano_new(time_t, long);
4530 VALUE rb_mod_name(VALUE);
4531 VALUE rb_class_path(VALUE);
4532 void rb_set_class_path(VALUE, VALUE, const char*);
4533 VALUE rb_path2class(const char*);
4534 void rb_name_class(VALUE, ID);
4535 VALUE rb_class_name(VALUE);
4536 void rb_autoload(VALUE, ID, const char*);
4537 VALUE rb_autoload_load(VALUE, ID);
4538 VALUE rb_autoload_p(VALUE, ID);
4539 void rb_gc_mark_global_tbl(void);
4540 VALUE rb_f_trace_var(int, VALUE*);
4541 VALUE rb_f_untrace_var(int, VALUE*);
4542 VALUE rb_f_global_variables(void);
4543 void rb_alias_variable(ID, ID);
4544 struct st_table* rb_generic_ivar_table(VALUE);
4545 void rb_copy_generic_ivar(VALUE,VALUE);
4546 void rb_mark_generic_ivar(VALUE);
4547 void rb_mark_generic_ivar_tbl(void);
4548 void rb_free_generic_ivar(VALUE);
4549 VALUE rb_ivar_get(VALUE, ID);
4550 VALUE rb_ivar_set(VALUE, ID, VALUE);
4551 VALUE rb_ivar_defined(VALUE, ID);
4552 void rb_ivar_foreach(VALUE, int (*)(), st_data_t);
4553 VALUE rb_iv_set(VALUE, const char*, VALUE);
4554 VALUE rb_iv_get(VALUE, const char*);
4555 VALUE rb_attr_get(VALUE, ID);
4556 VALUE rb_obj_instance_variables(VALUE);
4557 VALUE rb_obj_remove_instance_variable(VALUE, VALUE);
4558 void *rb_mod_const_at(VALUE, void*);
4559 void *rb_mod_const_of(VALUE, void*);
4560 VALUE rb_const_list(void*);
4561 VALUE rb_mod_constants(int, VALUE *, VALUE);
4562 VALUE rb_mod_remove_const(VALUE, VALUE);
4563 int rb_const_defined(VALUE, ID);
4564 int rb_const_defined_at(VALUE, ID);
4565 int rb_const_defined_from(VALUE, ID);
4566 VALUE rb_const_get(VALUE, ID);
4567 VALUE rb_const_get_at(VALUE, ID);
4568 VALUE rb_const_get_from(VALUE, ID);
4569 void rb_const_set(VALUE, ID, VALUE);
4570 VALUE rb_mod_const_missing(VALUE,VALUE);
4571 VALUE rb_cvar_defined(VALUE, ID);
4572 void rb_cvar_set(VALUE, ID, VALUE);
4573 VALUE rb_cvar_get(VALUE, ID);
4574 void rb_cv_set(VALUE, const char*, VALUE);
4575 VALUE rb_cv_get(VALUE, const char*);
4576 void rb_define_class_variable(VALUE, const char*, VALUE);
4577 VALUE rb_mod_class_variables(VALUE);
4578 VALUE rb_mod_remove_cvar(VALUE, VALUE);
4580 void ruby_show_version(void);
4581 void ruby_show_copyright(void);
4583 ID rb_frame_callee(void);
4584 VALUE rb_str_succ(VALUE);
4585 VALUE rb_time_succ(VALUE);
4587 void rb_frame_pop(void);
4588 int rb_frame_method_id_and_class(ID *idp, VALUE *klassp);
4589 # 1127 "./include/ruby/ruby.h" 2
4590 # 1140 "./include/ruby/ruby.h"
4591 void ruby_sysinit(int *, char ***);
4595 int ruby_native_thread_p(void);
4596 # 1160 "./include/ruby/ruby.h"
4597 typedef unsigned int rb_event_flag_t;
4598 typedef void (*rb_event_hook_func_t)(rb_event_flag_t, VALUE data, VALUE, ID, VALUE klass);
4600 typedef struct rb_event_hook_struct {
4601 rb_event_flag_t flag;
4602 rb_event_hook_func_t func;
4604 struct rb_event_hook_struct *next;
4607 void rb_add_event_hook(rb_event_hook_func_t func, rb_event_flag_t events,
4609 int rb_remove_event_hook(rb_event_hook_func_t func);
4614 int rb_isalnum(int c);
4615 int rb_isalpha(int c);
4616 int rb_isblank(int c);
4617 int rb_iscntrl(int c);
4618 int rb_isdigit(int c);
4619 int rb_isgraph(int c);
4620 int rb_islower(int c);
4621 int rb_isprint(int c);
4622 int rb_ispunct(int c);
4623 int rb_isspace(int c);
4624 int rb_isupper(int c);
4625 int rb_isxdigit(int c);
4626 int rb_tolower(int c);
4627 int rb_toupper(int c);
4628 # 1207 "./include/ruby/ruby.h"
4629 int st_strcasecmp(const char *s1, const char *s2);
4630 int st_strncasecmp(const char *s1, const char *s2, size_t n);
4634 unsigned long ruby_strtoul(const char *str, char **endptr, int base);
4637 # 1 "./include/ruby/encoding.h" 1
4638 # 16 "./include/ruby/encoding.h"
4639 # 1 "./include/ruby/oniguruma.h" 1
4640 # 106 "./include/ruby/oniguruma.h"
4641 typedef unsigned char OnigUChar;
4642 typedef unsigned int OnigCodePoint;
4643 typedef unsigned int OnigCtype;
4644 typedef unsigned int OnigDistance;
4648 typedef unsigned int OnigCaseFoldType;
4650 extern OnigCaseFoldType OnigDefaultCaseFoldFlag;
4651 # 135 "./include/ruby/oniguruma.h"
4655 OnigCodePoint code[3];
4656 } OnigCaseFoldCodeItem;
4660 OnigCodePoint anychar;
4661 OnigCodePoint anytime;
4662 OnigCodePoint zero_or_one_time;
4663 OnigCodePoint one_or_more_time;
4664 OnigCodePoint anychar_anytime;
4665 } OnigMetaCharTableType;
4667 typedef int (*OnigApplyAllCaseFoldFunc)(OnigCodePoint from, OnigCodePoint* to, int to_len, void* arg);
4669 typedef struct OnigEncodingTypeST {
4670 int (*precise_mbc_enc_len)(const OnigUChar* p,const OnigUChar* e, struct OnigEncodingTypeST* enc);
4674 int (*is_mbc_newline)(const OnigUChar* p, const OnigUChar* end, struct OnigEncodingTypeST* enc);
4675 OnigCodePoint (*mbc_to_code)(const OnigUChar* p, const OnigUChar* end, struct OnigEncodingTypeST* enc);
4676 int (*code_to_mbclen)(OnigCodePoint code, struct OnigEncodingTypeST* enc);
4677 int (*code_to_mbc)(OnigCodePoint code, OnigUChar *buf, struct OnigEncodingTypeST* enc);
4678 int (*mbc_case_fold)(OnigCaseFoldType flag, const OnigUChar** pp, const OnigUChar* end, OnigUChar* to, struct OnigEncodingTypeST* enc);
4679 int (*apply_all_case_fold)(OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg, struct OnigEncodingTypeST* enc);
4680 int (*get_case_fold_codes_by_str)(OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem acs[], struct OnigEncodingTypeST* enc);
4681 int (*property_name_to_ctype)(struct OnigEncodingTypeST* enc, OnigUChar* p, OnigUChar* end);
4682 int (*is_code_ctype)(OnigCodePoint code, OnigCtype ctype, struct OnigEncodingTypeST* enc);
4683 int (*get_ctype_code_range)(OnigCtype ctype, OnigCodePoint* sb_out, const OnigCodePoint* ranges[], struct OnigEncodingTypeST* enc);
4684 OnigUChar* (*left_adjust_char_head)(const OnigUChar* start, const OnigUChar* p, const OnigUChar* end, struct OnigEncodingTypeST* enc);
4685 int (*is_allowed_reverse_match)(const OnigUChar* p, const OnigUChar* end, struct OnigEncodingTypeST* enc);
4686 int ruby_encoding_index;
4689 typedef OnigEncodingType* OnigEncoding;
4691 extern OnigEncodingType OnigEncodingASCII;
4692 # 244 "./include/ruby/oniguruma.h"
4694 int onigenc_mbclen_approximate (const OnigUChar* p,const OnigUChar* e, struct OnigEncodingTypeST* enc);
4695 # 292 "./include/ruby/oniguruma.h"
4697 OnigUChar* onigenc_step_back (OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end, int n);
4702 int onigenc_init (void);
4704 int onigenc_set_default_encoding (OnigEncoding enc);
4706 OnigEncoding onigenc_get_default_encoding (void);
4708 void onigenc_set_default_caseconv_table (const OnigUChar* table);
4710 OnigUChar* onigenc_get_right_adjust_char_head_with_prev (OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end, const OnigUChar** prev);
4712 OnigUChar* onigenc_get_prev_char_head (OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end);
4714 OnigUChar* onigenc_get_left_adjust_char_head (OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end);
4716 OnigUChar* onigenc_get_right_adjust_char_head (OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end);
4718 int onigenc_strlen (OnigEncoding enc, const OnigUChar* p, const OnigUChar* end);
4720 int onigenc_strlen_null (OnigEncoding enc, const OnigUChar* p);
4722 int onigenc_str_bytelen_null (OnigEncoding enc, const OnigUChar* p);
4723 # 332 "./include/ruby/oniguruma.h"
4724 typedef unsigned int OnigOptionType;
4725 # 358 "./include/ruby/oniguruma.h"
4729 unsigned int behavior;
4730 OnigOptionType options;
4731 OnigMetaCharTableType meta_char_table;
4734 extern const OnigSyntaxType OnigSyntaxASIS;
4735 extern const OnigSyntaxType OnigSyntaxPosixBasic;
4736 extern const OnigSyntaxType OnigSyntaxPosixExtended;
4737 extern const OnigSyntaxType OnigSyntaxEmacs;
4738 extern const OnigSyntaxType OnigSyntaxGrep;
4739 extern const OnigSyntaxType OnigSyntaxGnuRegex;
4740 extern const OnigSyntaxType OnigSyntaxJava;
4741 extern const OnigSyntaxType OnigSyntaxPerl;
4742 extern const OnigSyntaxType OnigSyntaxPerl_NG;
4743 extern const OnigSyntaxType OnigSyntaxRuby;
4744 # 390 "./include/ruby/oniguruma.h"
4745 extern const OnigSyntaxType* OnigDefaultSyntax;
4746 # 559 "./include/ruby/oniguruma.h"
4747 typedef struct OnigCaptureTreeNodeStruct {
4753 struct OnigCaptureTreeNodeStruct** childs;
4754 } OnigCaptureTreeNode;
4757 struct re_registers {
4763 OnigCaptureTreeNode* history_root;
4765 # 587 "./include/ruby/oniguruma.h"
4766 typedef struct re_registers OnigRegion;
4779 typedef void (*OnigWarnFunc) (const char* s);
4780 extern void onig_null_warn (const char* s);
4781 # 615 "./include/ruby/oniguruma.h"
4782 typedef struct re_pattern_buffer {
4792 int num_comb_exp_check;
4794 unsigned int capture_history;
4795 unsigned int bt_mem_start;
4796 unsigned int bt_mem_end;
4797 int stack_pop_level;
4798 int repeat_range_alloc;
4799 OnigRepeatRange* repeat_range;
4802 OnigOptionType options;
4803 const OnigSyntaxType* syntax;
4804 OnigCaseFoldType case_fold_flag;
4811 OnigDistance anchor_dmin;
4812 OnigDistance anchor_dmax;
4814 unsigned char *exact;
4815 unsigned char *exact_end;
4816 unsigned char map[256];
4818 int *int_map_backward;
4823 struct re_pattern_buffer* chain;
4826 typedef OnigRegexType* OnigRegex;
4829 typedef OnigRegexType regex_t;
4834 int num_of_elements;
4835 OnigEncoding pattern_enc;
4836 OnigEncoding target_enc;
4837 OnigSyntaxType* syntax;
4838 OnigOptionType option;
4839 OnigCaseFoldType case_fold_flag;
4844 int onig_init (void);
4846 int onig_error_code_to_str (OnigUChar* s, int err_code, ...);
4848 void onig_set_warn_func (OnigWarnFunc f);
4850 void onig_set_verb_warn_func (OnigWarnFunc f);
4852 int onig_new (OnigRegex*, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigOptionType option, OnigEncoding enc, const OnigSyntaxType* syntax, OnigErrorInfo* einfo);
4854 int onig_new_deluxe (OnigRegex* reg, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigCompileInfo* ci, OnigErrorInfo* einfo);
4856 void onig_free (OnigRegex);
4858 int onig_recompile (OnigRegex, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigOptionType option, OnigEncoding enc, OnigSyntaxType* syntax, OnigErrorInfo* einfo);
4860 int onig_recompile_deluxe (OnigRegex reg, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigCompileInfo* ci, OnigErrorInfo* einfo);
4862 int onig_search (OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* start, const OnigUChar* range, OnigRegion* region, OnigOptionType option);
4864 int onig_match (OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* at, OnigRegion* region, OnigOptionType option);
4866 OnigRegion* onig_region_new (void);
4868 void onig_region_init (OnigRegion* region);
4870 void onig_region_free (OnigRegion* region, int free_self);
4872 void onig_region_copy (OnigRegion* to, OnigRegion* from);
4874 void onig_region_clear (OnigRegion* region);
4876 int onig_region_resize (OnigRegion* region, int n);
4878 int onig_region_set (OnigRegion* region, int at, int beg, int end);
4880 int onig_name_to_group_numbers (OnigRegex reg, const OnigUChar* name, const OnigUChar* name_end, int** nums);
4882 int onig_name_to_backref_number (OnigRegex reg, const OnigUChar* name, const OnigUChar* name_end, OnigRegion *region);
4884 int onig_foreach_name (OnigRegex reg, int (*func)(const OnigUChar*, const OnigUChar*,int,int*,OnigRegex,void*), void* arg);
4886 int onig_number_of_names (OnigRegex reg);
4888 int onig_number_of_captures (OnigRegex reg);
4890 int onig_number_of_capture_histories (OnigRegex reg);
4892 OnigCaptureTreeNode* onig_get_capture_tree (OnigRegion* region);
4894 int onig_capture_tree_traverse (OnigRegion* region, int at, int(*callback_func)(int,int,int,int,int,void*), void* arg);
4896 int onig_noname_group_capture_is_active (OnigRegex reg);
4898 OnigEncoding onig_get_encoding (OnigRegex reg);
4900 OnigOptionType onig_get_options (OnigRegex reg);
4902 OnigCaseFoldType onig_get_case_fold_flag (OnigRegex reg);
4904 const OnigSyntaxType* onig_get_syntax (OnigRegex reg);
4906 int onig_set_default_syntax (const OnigSyntaxType* syntax);
4908 void onig_copy_syntax (OnigSyntaxType* to, const OnigSyntaxType* from);
4910 unsigned int onig_get_syntax_op (OnigSyntaxType* syntax);
4912 unsigned int onig_get_syntax_op2 (OnigSyntaxType* syntax);
4914 unsigned int onig_get_syntax_behavior (OnigSyntaxType* syntax);
4916 OnigOptionType onig_get_syntax_options (OnigSyntaxType* syntax);
4918 void onig_set_syntax_op (OnigSyntaxType* syntax, unsigned int op);
4920 void onig_set_syntax_op2 (OnigSyntaxType* syntax, unsigned int op2);
4922 void onig_set_syntax_behavior (OnigSyntaxType* syntax, unsigned int behavior);
4924 void onig_set_syntax_options (OnigSyntaxType* syntax, OnigOptionType options);
4926 int onig_set_meta_char (OnigSyntaxType* syntax, unsigned int what, OnigCodePoint code);
4928 void onig_copy_encoding (OnigEncoding to, OnigEncoding from);
4930 OnigCaseFoldType onig_get_default_case_fold_flag (void);
4932 int onig_set_default_case_fold_flag (OnigCaseFoldType case_fold_flag);
4934 unsigned int onig_get_match_stack_limit_size (void);
4936 int onig_set_match_stack_limit_size (unsigned int size);
4938 int onig_end (void);
4940 const char* onig_version (void);
4942 const char* onig_copyright (void);
4943 # 17 "./include/ruby/encoding.h" 2
4944 # 69 "./include/ruby/encoding.h"
4945 typedef OnigEncodingType rb_encoding;
4947 int rb_enc_replicate(const char *, rb_encoding *);
4948 int rb_define_dummy_encoding(const char *);
4950 int rb_enc_get_index(VALUE obj);
4951 void rb_enc_set_index(VALUE obj, int encindex);
4952 int rb_enc_find_index(const char *name);
4953 int rb_to_encoding_index(VALUE);
4954 rb_encoding* rb_to_encoding(VALUE);
4955 rb_encoding* rb_enc_get(VALUE);
4956 rb_encoding* rb_enc_compatible(VALUE,VALUE);
4957 rb_encoding* rb_enc_check(VALUE,VALUE);
4958 VALUE rb_enc_associate_index(VALUE, int);
4959 VALUE rb_enc_associate(VALUE, rb_encoding*);
4960 void rb_enc_copy(VALUE dst, VALUE src);
4962 VALUE rb_enc_str_new(const char*, long, rb_encoding*);
4963 VALUE rb_enc_reg_new(const char*, long, rb_encoding*, int);
4964 VALUE rb_enc_sprintf(rb_encoding *, const char*, ...) __attribute__((format(printf, 2, 3)));
4965 VALUE rb_enc_vsprintf(rb_encoding *, const char*, va_list);
4966 long rb_enc_strlen(const char*, const char*, rb_encoding*);
4967 char* rb_enc_nth(const char*, const char*, int, rb_encoding*);
4968 VALUE rb_obj_encoding(VALUE);
4969 VALUE rb_enc_str_buf_cat(VALUE str, const char *ptr, long len, rb_encoding *enc);
4971 VALUE rb_external_str_new_with_enc(const char *ptr, long len, rb_encoding *);
4972 VALUE rb_str_export_to_enc(VALUE, rb_encoding *);
4973 VALUE rb_str_conv_enc(VALUE str, rb_encoding *from, rb_encoding *to);
4976 rb_encoding* rb_enc_from_index(int idx);
4979 rb_encoding * rb_enc_find(const char *name);
4980 # 113 "./include/ruby/encoding.h"
4981 int rb_enc_mbclen(const char *p, const char *e, rb_encoding *enc);
4984 int rb_enc_precise_mbclen(const char *p, const char *e, rb_encoding *enc);
4992 int rb_enc_ascget(const char *p, const char *e, int *len, rb_encoding *enc);
4995 unsigned int rb_enc_codepoint(const char *p, const char *e, rb_encoding *enc);
4999 int rb_enc_codelen(int code, rb_encoding *enc);
5000 # 158 "./include/ruby/encoding.h"
5001 int rb_enc_casefold(char *to, const char *p, const char *e, rb_encoding *enc);
5002 int rb_enc_toupper(int c, rb_encoding *enc);
5003 int rb_enc_tolower(int c, rb_encoding *enc);
5004 ID rb_intern3(const char*, long, rb_encoding*);
5005 ID rb_interned_id_p(const char *, long, rb_encoding *);
5006 int rb_enc_symname_p(const char*, rb_encoding*);
5007 int rb_enc_str_coderange(VALUE);
5008 long rb_str_coderange_scan_restartable(const char*, const char*, rb_encoding*, int*);
5009 int rb_enc_str_asciionly_p(VALUE);
5011 VALUE rb_enc_from_encoding(rb_encoding *enc);
5012 rb_encoding *rb_ascii8bit_encoding(void);
5013 rb_encoding *rb_utf8_encoding(void);
5014 rb_encoding *rb_usascii_encoding(void);
5015 rb_encoding *rb_locale_encoding(void);
5016 rb_encoding *rb_filesystem_encoding(void);
5017 rb_encoding *rb_default_external_encoding(void);
5018 rb_encoding *rb_default_internal_encoding(void);
5019 int rb_ascii8bit_encindex(void);
5020 int rb_utf8_encindex(void);
5021 int rb_usascii_encindex(void);
5022 VALUE rb_enc_default_external(void);
5023 VALUE rb_enc_default_internal(void);
5024 void rb_enc_set_default_external(VALUE encoding);
5025 void rb_enc_set_default_internal(VALUE encoding);
5026 VALUE rb_locale_charmap(VALUE klass);
5027 long rb_memsearch(const void*,long,const void*,long,rb_encoding*);
5029 extern VALUE rb_cEncoding;
5030 # 198 "./include/ruby/encoding.h"
5032 rb_enc_dummy_p(rb_encoding *enc)
5034 return ((enc)->ruby_encoding_index & (1<<24)) != 0;
5040 econv_invalid_byte_sequence,
5041 econv_undefined_conversion,
5042 econv_destination_buffer_full,
5043 econv_source_buffer_empty,
5046 econv_incomplete_input
5047 } rb_econv_result_t;
5049 typedef struct rb_econv_t rb_econv_t;
5051 VALUE rb_str_encode(VALUE str, VALUE to, int ecflags, VALUE ecopts);
5052 int rb_econv_has_convpath_p(const char* from_encoding, const char* to_encoding);
5054 int rb_econv_prepare_opts(VALUE opthash, VALUE *ecopts);
5056 rb_econv_t *rb_econv_open(const char *source_encoding, const char *destination_encoding, int ecflags);
5057 rb_econv_t *rb_econv_open_opts(const char *source_encoding, const char *destination_encoding, int ecflags, VALUE ecopts);
5059 rb_econv_result_t rb_econv_convert(rb_econv_t *ec,
5060 const unsigned char **source_buffer_ptr, const unsigned char *source_buffer_end,
5061 unsigned char **destination_buffer_ptr, unsigned char *destination_buffer_end,
5063 void rb_econv_close(rb_econv_t *ec);
5066 int rb_econv_set_replacement(rb_econv_t *ec, const unsigned char *str, size_t len, const char *encname);
5069 int rb_econv_decorate_at_first(rb_econv_t *ec, const char *decorator_name);
5070 int rb_econv_decorate_at_last(rb_econv_t *ec, const char *decorator_name);
5072 VALUE rb_econv_open_exc(const char *senc, const char *denc, int ecflags);
5075 int rb_econv_insert_output(rb_econv_t *ec,
5076 const unsigned char *str, size_t len, const char *str_encoding);
5079 const char *rb_econv_encoding_to_insert_output(rb_econv_t *ec);
5082 void rb_econv_check_error(rb_econv_t *ec);
5085 VALUE rb_econv_make_exception(rb_econv_t *ec);
5087 int rb_econv_putbackable(rb_econv_t *ec);
5088 void rb_econv_putback(rb_econv_t *ec, unsigned char *p, int n);
5092 const char *rb_econv_asciicompat_encoding(const char *encname);
5094 VALUE rb_econv_str_convert(rb_econv_t *ec, VALUE src, int flags);
5095 VALUE rb_econv_substr_convert(rb_econv_t *ec, VALUE src, long byteoff, long bytesize, int flags);
5096 VALUE rb_econv_str_append(rb_econv_t *ec, VALUE src, VALUE dst, int flags);
5097 VALUE rb_econv_substr_append(rb_econv_t *ec, VALUE src, long byteoff, long bytesize, VALUE dst, int flags);
5099 void rb_econv_binmode(rb_econv_t *ec);
5324 typedef struct RNode {
5325 unsigned long flags;
5344 struct global_entry *entry;
5350 VALUE rb_parser_new(void);
5351 VALUE rb_parser_end_seen_p(VALUE);
5352 VALUE rb_parser_encoding(VALUE);
5354 NODE *rb_parser_compile_cstr(volatile VALUE, const char*, const char*, int, int);
5355 NODE *rb_parser_compile_string(volatile VALUE, const char*, VALUE, int);
5356 NODE *rb_parser_compile_file(volatile VALUE, const char*, VALUE, int);
5358 NODE *rb_compile_cstr(const char*, const char*, int, int);
5359 NODE *rb_compile_string(const char*, VALUE, int);
5360 NODE *rb_compile_file(const char*, VALUE, int);
5362 void rb_add_method(VALUE, ID, NODE *, int);
5363 NODE *rb_node_newnode(enum node_type,VALUE,VALUE,VALUE);
5365 NODE* rb_method_node(VALUE klass, ID id);
5366 int rb_node_arity(NODE* node);
5368 struct global_entry *rb_global_entry(ID);
5369 VALUE rb_gvar_get(struct global_entry *);
5370 VALUE rb_gvar_set(struct global_entry *, VALUE);
5371 VALUE rb_gvar_defined(struct global_entry *);
5375 typedef union YYSTYPE
5387 enum ruby_method_ids {
5407 idLAST_TOKEN = 376 >> 3,
5428 idIntern = ((tIntern<<3)|0x00),
5429 idMethodMissing = ((tMethodMissing<<3)|0x00),
5430 idLength = ((tLength<<3)|0x00),
5431 idGets = ((tGets<<3)|0x00),
5432 idSucc = ((tSucc<<3)|0x00),
5433 idEach = ((tEach<<3)|0x00),
5434 idLambda = ((tLambda<<3)|0x00),
5435 idSend = ((tSend<<3)|0x00),
5436 id__send__ = ((t__send__<<3)|0x00),
5437 idInitialize = ((tInitialize<<3)|0x00)
5441 struct ruby_method_ids_check {
5444 int checking_for_tUPLUS[321 == 321 ? 1 : -1];
5445 int checking_for_tUMINUS[322 == 322 ? 1 : -1];
5446 int checking_for_tPOW[323 == 323 ? 1 : -1];
5447 int checking_for_tCMP[324 == 324 ? 1 : -1];
5448 int checking_for_tEQ[325 == 325 ? 1 : -1];
5449 int checking_for_tEQQ[326 == 326 ? 1 : -1];
5450 int checking_for_tNEQ[327 == 327 ? 1 : -1];
5451 int checking_for_tGEQ[328 == 328 ? 1 : -1];
5452 int checking_for_tLEQ[329 == 329 ? 1 : -1];
5453 int checking_for_tANDOP[330 == 330 ? 1 : -1];
5454 int checking_for_tOROP[331 == 331 ? 1 : -1];
5455 int checking_for_tMATCH[332 == 332 ? 1 : -1];
5456 int checking_for_tNMATCH[333 == 333 ? 1 : -1];
5457 int checking_for_tDOT2[334 == 334 ? 1 : -1];
5458 int checking_for_tDOT3[335 == 335 ? 1 : -1];
5459 int checking_for_tAREF[336 == 336 ? 1 : -1];
5460 int checking_for_tASET[337 == 337 ? 1 : -1];
5461 int checking_for_tLSHFT[338 == 338 ? 1 : -1];
5462 int checking_for_tRSHFT[339 == 339 ? 1 : -1];
5463 int checking_for_tLAMBDA[352 == 352 ? 1 : -1];
5464 int checking_for_idNULL[365 == 365 ? 1 : -1];
5465 int checking_for_idRespond_to[366 == 366 ? 1 : -1];
5466 int checking_for_idIFUNC[367 == 367 ? 1 : -1];
5467 int checking_for_idCFUNC[368 == 368 ? 1 : -1];
5468 int checking_for_idThrowState[369 == 369 ? 1 : -1];
5469 int checking_for_id_core_set_method_alias[370 == 370 ? 1 : -1];
5470 int checking_for_id_core_set_variable_alias[371 == 371 ? 1 : -1];
5471 int checking_for_id_core_undef_method[372 == 372 ? 1 : -1];
5472 int checking_for_id_core_define_method[373 == 373 ? 1 : -1];
5473 int checking_for_id_core_define_singleton_method[374 == 374 ? 1 : -1];
5474 int checking_for_id_core_set_postexe[375 == 375 ? 1 : -1];
5475 int checking_for_tLAST_TOKEN[376 == 376 ? 1 : -1];
5483 } OnigPairCaseFoldCodes;
5489 } PosixBracketEntryType;
5491 extern int onigenc_ascii_apply_all_case_fold (OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg, OnigEncoding enc);
5492 extern int onigenc_ascii_get_case_fold_codes_by_str (OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[], OnigEncoding enc);
5493 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);
5494 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[]);
5495 extern int onigenc_not_support_get_ctype_code_range (OnigCtype ctype, OnigCodePoint* sb_out, const OnigCodePoint* ranges[], OnigEncoding enc);
5496 extern int onigenc_is_mbc_newline_0x0a (const OnigUChar* p, const OnigUChar* end, OnigEncoding enc);
5500 extern int onigenc_ascii_mbc_case_fold (OnigCaseFoldType flag, const OnigUChar** p, const OnigUChar* end, OnigUChar* lower, OnigEncoding enc);
5501 extern int onigenc_single_byte_mbc_enc_len (const OnigUChar* p, const OnigUChar* e, OnigEncoding enc);
5502 extern OnigCodePoint onigenc_single_byte_mbc_to_code (const OnigUChar* p, const OnigUChar* end, OnigEncoding enc);
5503 extern int onigenc_single_byte_code_to_mbclen (OnigCodePoint code, OnigEncoding enc);
5504 extern int onigenc_single_byte_code_to_mbc (OnigCodePoint code, OnigUChar *buf, OnigEncoding enc);
5505 extern OnigUChar* onigenc_single_byte_left_adjust_char_head (const OnigUChar* start, const OnigUChar* s, const OnigUChar* end, OnigEncoding enc);
5506 extern int onigenc_always_true_is_allowed_reverse_match (const OnigUChar* s, const OnigUChar* end, OnigEncoding enc);
5507 extern int onigenc_always_false_is_allowed_reverse_match (const OnigUChar* s, const OnigUChar* end, OnigEncoding enc);
5508 extern int onigenc_ascii_is_code_ctype (OnigCodePoint code, unsigned int ctype, OnigEncoding enc);
5511 extern OnigCodePoint onigenc_mbn_mbc_to_code (OnigEncoding enc, const OnigUChar* p, const OnigUChar* end);
5512 extern int onigenc_mbn_mbc_case_fold (OnigEncoding enc, OnigCaseFoldType flag, const OnigUChar** p, const OnigUChar* end, OnigUChar* lower);
5513 extern int onigenc_mb2_code_to_mbclen (OnigCodePoint code, OnigEncoding enc);
5514 extern int onigenc_mb2_code_to_mbc (OnigEncoding enc, OnigCodePoint code, OnigUChar *buf);
5515 extern int onigenc_minimum_property_name_to_ctype (OnigEncoding enc, OnigUChar* p, OnigUChar* end);
5516 extern int onigenc_unicode_property_name_to_ctype (OnigEncoding enc, OnigUChar* p, OnigUChar* end);
5517 extern int onigenc_mb2_is_code_ctype (OnigEncoding enc, OnigCodePoint code, unsigned int ctype);
5518 extern int onigenc_mb4_code_to_mbclen (OnigCodePoint code, OnigEncoding enc);
5519 extern int onigenc_mb4_code_to_mbc (OnigEncoding enc, OnigCodePoint code, OnigUChar *buf);
5520 extern int onigenc_mb4_is_code_ctype (OnigEncoding enc, OnigCodePoint code, unsigned int ctype);
5524 extern int onigenc_unicode_is_code_ctype (OnigCodePoint code, unsigned int ctype, OnigEncoding enc);
5525 extern int onigenc_utf16_32_get_ctype_code_range (OnigCtype ctype, OnigCodePoint *sb_out, const OnigCodePoint* ranges[], OnigEncoding enc);
5526 extern int onigenc_unicode_ctype_code_range (int ctype, const OnigCodePoint* ranges[]);
5527 extern int onigenc_unicode_get_case_fold_codes_by_str (OnigEncoding enc, OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[]);
5528 extern int onigenc_unicode_mbc_case_fold (OnigEncoding enc, OnigCaseFoldType flag, const OnigUChar** pp, const OnigUChar* end, OnigUChar* fold);
5529 extern int onigenc_unicode_apply_all_case_fold (OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg, OnigEncoding enc);
5537 extern const OnigUChar OnigEncISO_8859_1_ToLowerCaseTable[];
5538 extern const OnigUChar OnigEncISO_8859_1_ToUpperCaseTable[];
5541 onigenc_with_ascii_strncmp (OnigEncoding enc, const OnigUChar* p, const OnigUChar* end, const OnigUChar* sascii , int n);
5543 onigenc_step (OnigEncoding enc, const OnigUChar* p, const OnigUChar* end, int n);
5546 extern int onig_is_in_code_range (const OnigUChar* p, OnigCodePoint code);
5548 extern OnigEncoding OnigEncDefaultCharEncoding;
5549 extern const OnigUChar OnigEncAsciiToLowerCaseTable[];
5550 extern const OnigUChar OnigEncAsciiToUpperCaseTable[];
5551 extern const unsigned short OnigEncAsciiCtypeTable[];
5554 # 1 "/usr/include/errno.h" 1 3 4
5555 # 32 "/usr/include/errno.h" 3 4
5560 # 1 "/usr/include/bits/errno.h" 1 3 4
5561 # 25 "/usr/include/bits/errno.h" 3 4
5562 # 1 "/usr/include/linux/errno.h" 1 3 4
5566 # 1 "/usr/include/asm/errno.h" 1 3 4
5567 # 1 "/usr/include/asm-generic/errno.h" 1 3 4
5571 # 1 "/usr/include/asm-generic/errno-base.h" 1 3 4
5572 # 5 "/usr/include/asm-generic/errno.h" 2 3 4
5573 # 1 "/usr/include/asm/errno.h" 2 3 4
5574 # 5 "/usr/include/linux/errno.h" 2 3 4
5575 # 26 "/usr/include/bits/errno.h" 2 3 4
5576 # 43 "/usr/include/bits/errno.h" 3 4
5577 extern int *__errno_location (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
5578 # 37 "/usr/include/errno.h" 2 3 4
5579 # 55 "/usr/include/errno.h" 3 4
5580 extern char *program_invocation_name, *program_invocation_short_name;
5585 # 69 "/usr/include/errno.h" 3 4
5586 typedef int error_t;
5588 # 1 "/usr/include/ctype.h" 1 3 4
5589 # 30 "/usr/include/ctype.h" 3 4
5591 # 48 "/usr/include/ctype.h" 3 4
5594 _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
5595 _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
5596 _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
5597 _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
5598 _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
5599 _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
5600 _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
5601 _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
5602 _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
5603 _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
5604 _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
5605 _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
5607 # 81 "/usr/include/ctype.h" 3 4
5608 extern __const unsigned short int **__ctype_b_loc (void)
5609 __attribute__ ((__const));
5610 extern __const __int32_t **__ctype_tolower_loc (void)
5611 __attribute__ ((__const));
5612 extern __const __int32_t **__ctype_toupper_loc (void)
5613 __attribute__ ((__const));
5614 # 96 "/usr/include/ctype.h" 3 4
5621 extern int isalnum (int) __attribute__ ((__nothrow__));
5622 extern int isalpha (int) __attribute__ ((__nothrow__));
5623 extern int iscntrl (int) __attribute__ ((__nothrow__));
5624 extern int isdigit (int) __attribute__ ((__nothrow__));
5625 extern int islower (int) __attribute__ ((__nothrow__));
5626 extern int isgraph (int) __attribute__ ((__nothrow__));
5627 extern int isprint (int) __attribute__ ((__nothrow__));
5628 extern int ispunct (int) __attribute__ ((__nothrow__));
5629 extern int isspace (int) __attribute__ ((__nothrow__));
5630 extern int isupper (int) __attribute__ ((__nothrow__));
5631 extern int isxdigit (int) __attribute__ ((__nothrow__));
5635 extern int tolower (int __c) __attribute__ ((__nothrow__));
5638 extern int toupper (int __c) __attribute__ ((__nothrow__));
5647 extern int isblank (int) __attribute__ ((__nothrow__));
5654 extern int isctype (int __c, int __mask) __attribute__ ((__nothrow__));
5661 extern int isascii (int __c) __attribute__ ((__nothrow__));
5665 extern int toascii (int __c) __attribute__ ((__nothrow__));
5669 extern int _toupper (int) __attribute__ ((__nothrow__));
5670 extern int _tolower (int) __attribute__ ((__nothrow__));
5671 # 190 "/usr/include/ctype.h" 3 4
5673 __attribute__ ((__nothrow__)) tolower (int __c)
5675 return __c >= -128 && __c < 256 ? (*__ctype_tolower_loc ())[__c] : __c;
5679 __attribute__ ((__nothrow__)) toupper (int __c)
5681 return __c >= -128 && __c < 256 ? (*__ctype_toupper_loc ())[__c] : __c;
5683 # 247 "/usr/include/ctype.h" 3 4
5684 extern int isalnum_l (int, __locale_t) __attribute__ ((__nothrow__));
5685 extern int isalpha_l (int, __locale_t) __attribute__ ((__nothrow__));
5686 extern int iscntrl_l (int, __locale_t) __attribute__ ((__nothrow__));
5687 extern int isdigit_l (int, __locale_t) __attribute__ ((__nothrow__));
5688 extern int islower_l (int, __locale_t) __attribute__ ((__nothrow__));
5689 extern int isgraph_l (int, __locale_t) __attribute__ ((__nothrow__));
5690 extern int isprint_l (int, __locale_t) __attribute__ ((__nothrow__));
5691 extern int ispunct_l (int, __locale_t) __attribute__ ((__nothrow__));
5692 extern int isspace_l (int, __locale_t) __attribute__ ((__nothrow__));
5693 extern int isupper_l (int, __locale_t) __attribute__ ((__nothrow__));
5694 extern int isxdigit_l (int, __locale_t) __attribute__ ((__nothrow__));
5696 extern int isblank_l (int, __locale_t) __attribute__ ((__nothrow__));
5700 extern int __tolower_l (int __c, __locale_t __l) __attribute__ ((__nothrow__));
5701 extern int tolower_l (int __c, __locale_t __l) __attribute__ ((__nothrow__));
5704 extern int __toupper_l (int __c, __locale_t __l) __attribute__ ((__nothrow__));
5705 extern int toupper_l (int __c, __locale_t __l) __attribute__ ((__nothrow__));
5706 # 323 "/usr/include/ctype.h" 3 4
5710 static ID register_symid(ID, const char *, long, rb_encoding *);
5719 rb_encoding *enc = rb_usascii_encoding();
5721 register_symid(365, "", strlen(""), enc);
5722 register_symid(367, "<IFUNC>", strlen("<IFUNC>"), enc),
5723 register_symid(368, "<CFUNC>", strlen("<CFUNC>"), enc),
5724 register_symid(366, "respond_to?", strlen("respond_to?"), enc),
5725 register_symid(369, "#__ThrowState__", strlen("#__ThrowState__"), enc),
5727 register_symid(370, "core#set_method_alias", strlen("core#set_method_alias"), enc),
5728 register_symid(371, "core#set_variable_alias", strlen("core#set_variable_alias"), enc),
5729 register_symid(372, "core#undef_method", strlen("core#undef_method"), enc),
5730 register_symid(373, "core#define_method", strlen("core#define_method"), enc),
5731 register_symid(374, "core#define_singleton_method", strlen("core#define_singleton_method"), enc),
5732 register_symid(375, "core#set_postexe", strlen("core#set_postexe"), enc),
5734 register_symid(idEach, "each", strlen("each"), enc);
5735 register_symid(idLength, "length", strlen("length"), enc);
5736 register_symid(idLambda, "lambda", strlen("lambda"), enc);
5737 register_symid(idIntern, "intern", strlen("intern"), enc);
5738 register_symid(idGets, "gets", strlen("gets"), enc);
5739 register_symid(idSucc, "succ", strlen("succ"), enc);
5740 register_symid(idMethodMissing, "method_missing", strlen("method_missing"), enc);
5745 register_symid(idSend, "send", strlen("send"), enc);
5746 register_symid(id__send__, "__send__", strlen("__send__"), enc);
5747 register_symid(idInitialize, "initialize", strlen("initialize"), enc);
5765 typedef unsigned long long stack_type;
5771 struct vtable *prev;
5775 struct vtable *args;
5776 struct vtable *vars;
5777 struct local_vars *prev;
5787 vtable_size(const struct vtable *tbl)
5789 if (((VALUE)(tbl) & ~(VALUE)3)) {
5799 static struct vtable *
5800 vtable_alloc(struct vtable *prev)
5802 struct vtable *tbl = (struct vtable*)ruby_xmalloc(sizeof(struct vtable));
5805 tbl->tbl = (ID*)ruby_xmalloc2((tbl->capa),sizeof(ID));
5807 if (0) printf("vtable_alloc: %p\n", (void *)tbl);
5812 vtable_free(struct vtable *tbl)
5814 if (0)printf("vtable_free: %p\n", (void *)tbl);
5815 if (((VALUE)(tbl) & ~(VALUE)3)) {
5817 ruby_xfree(tbl->tbl);
5824 vtable_add(struct vtable *tbl, ID id)
5826 if (!((VALUE)(tbl) & ~(VALUE)3)) {
5827 rb_bug("vtable_add: vtable is not allocated (%p)", (void *)tbl);
5829 if (0) printf("vtable_add: %p, %s\n", (void *)tbl, rb_id2name(id));
5831 if (tbl->pos == tbl->capa) {
5832 tbl->capa = tbl->capa * 2;
5833 (tbl->tbl)=(ID*)ruby_xrealloc2((char*)(tbl->tbl),(tbl->capa),sizeof(ID));
5835 tbl->tbl[tbl->pos++] = id;
5839 vtable_included(const struct vtable * tbl, ID id)
5843 if (((VALUE)(tbl) & ~(VALUE)3)) {
5844 for (i = 0; i < tbl->pos; i++) {
5845 if (tbl->tbl[i] == id) {
5854 typedef struct token_info {
5859 struct token_info *next;
5862 struct parser_params {
5866 YYSTYPE *parser_yylval;
5869 NODE *parser_lex_strterm;
5870 enum lex_state_e parser_lex_state;
5871 stack_type parser_cond_stack;
5872 stack_type parser_cmdarg_stack;
5873 int parser_class_nest;
5874 int parser_paren_nest;
5875 int parser_lpar_beg;
5876 int parser_in_single;
5878 int parser_compile_for_eval;
5879 VALUE parser_cur_mid;
5880 int parser_in_defined;
5881 char *parser_tokenbuf;
5884 VALUE parser_lex_input;
5885 VALUE parser_lex_lastline;
5886 VALUE parser_lex_nextline;
5887 const char *parser_lex_pbeg;
5888 const char *parser_lex_p;
5889 const char *parser_lex_pend;
5890 int parser_heredoc_end;
5891 int parser_command_start;
5892 NODE *parser_deferred_nodes;
5893 int parser_lex_gets_ptr;
5894 VALUE (*parser_lex_gets)(struct parser_params*,VALUE);
5895 struct local_vars *parser_lvtbl;
5896 int parser_ruby__end__seen;
5899 char *parser_ruby_sourcefile;
5900 int parser_ruby_sourceline;
5908 NODE *parser_eval_tree_begin;
5909 NODE *parser_eval_tree;
5914 token_info *parser_token_info;
5918 void *rb_parser_malloc(struct parser_params *, size_t);
5919 void *rb_parser_realloc(struct parser_params *, void *, size_t);
5920 void *rb_parser_calloc(struct parser_params *, size_t, size_t);
5921 void rb_parser_free(struct parser_params *, void *);
5924 static int parser_yyerror(struct parser_params*, const char*);
5926 static int yylex(void*, void*);
5931 static NODE* node_newnode(struct parser_params *, enum node_type, VALUE, VALUE, VALUE);
5934 static NODE *cond_gen(struct parser_params*,NODE*);
5936 static NODE *logop_gen(struct parser_params*,enum node_type,NODE*,NODE*);
5939 static NODE *newline_node(NODE*);
5940 static void fixpos(NODE*,NODE*);
5942 static int value_expr_gen(struct parser_params*,NODE*);
5943 static void void_expr_gen(struct parser_params*,NODE*);
5944 static NODE *remove_begin(NODE*);
5948 static void void_stmts_gen(struct parser_params*,NODE*);
5950 static void reduce_nodes_gen(struct parser_params*,NODE**);
5952 static void block_dup_check_gen(struct parser_params*,NODE*,NODE*);
5955 static NODE *block_append_gen(struct parser_params*,NODE*,NODE*);
5957 static NODE *list_append_gen(struct parser_params*,NODE*,NODE*);
5959 static NODE *list_concat_gen(struct parser_params*,NODE*,NODE*);
5961 static NODE *arg_append_gen(struct parser_params*,NODE*,NODE*);
5963 static NODE *arg_concat_gen(struct parser_params*,NODE*,NODE*);
5965 static NODE *literal_concat_gen(struct parser_params*,NODE*,NODE*);
5967 static NODE *new_evstr_gen(struct parser_params*,NODE*);
5969 static NODE *evstr2dstr_gen(struct parser_params*,NODE*);
5971 static NODE *splat_array(NODE*);
5973 static NODE *call_bin_op_gen(struct parser_params*,NODE*,ID,NODE*);
5975 static NODE *call_uni_op_gen(struct parser_params*,NODE*,ID);
5978 static NODE *new_args_gen(struct parser_params*,NODE*,NODE*,ID,NODE*,ID);
5980 static void shadowing_lvar_gen(struct parser_params*,ID);
5983 static NODE *negate_lit(NODE*);
5984 static NODE *ret_args_gen(struct parser_params*,NODE*);
5986 static NODE *arg_blk_pass(NODE*,NODE*);
5987 static NODE *new_yield_gen(struct parser_params*,NODE*);
5990 static NODE *gettable_gen(struct parser_params*,ID);
5992 static NODE *assignable_gen(struct parser_params*,ID,NODE*);
5994 static void new_bv_gen(struct parser_params*,ID);
5996 static NODE *aryset_gen(struct parser_params*,NODE*,NODE*);
5998 static NODE *attrset_gen(struct parser_params*,NODE*,ID);
6001 static void rb_backref_error_gen(struct parser_params*,NODE*);
6003 static NODE *node_assign_gen(struct parser_params*,NODE*,NODE*);
6006 static NODE *match_op_gen(struct parser_params*,NODE*,NODE*);
6009 static void local_push_gen(struct parser_params*,int);
6011 static void local_pop_gen(struct parser_params*);
6013 static int local_var_gen(struct parser_params*, ID);
6015 static int arg_var_gen(struct parser_params*, ID);
6017 static int local_id_gen(struct parser_params*, ID);
6019 static ID *local_tbl_gen(struct parser_params*);
6021 static ID internal_id_gen(struct parser_params*);
6024 static void dyna_push_gen(struct parser_params*);
6026 static void dyna_pop_gen(struct parser_params*);
6028 static int dyna_in_block_gen(struct parser_params*);
6031 static int dvar_defined_gen(struct parser_params*,ID);
6033 static int dvar_curr_gen(struct parser_params*,ID);
6036 static void fixup_nodes(NODE **);
6038 extern int rb_dvar_defined(ID);
6039 extern int rb_local_defined(ID);
6040 extern int rb_parse_in_eval(void);
6042 static VALUE reg_compile_gen(struct parser_params*, VALUE, int);
6044 static void reg_fragment_setenc_gen(struct parser_params*, VALUE, int);
6046 static void reg_fragment_check_gen(struct parser_params*, VALUE, int);
6048 static NODE *reg_named_capture_assign_gen(struct parser_params* parser, VALUE regexp, NODE *match);
6050 int rb_enc_symname2_p(const char *, int, rb_encoding *);
6054 static int lvar_defined_gen(struct parser_params*, ID);
6056 static void token_info_push(struct parser_params*, const char *token);
6057 static void token_info_pop(struct parser_params*, const char *token);
6060 typedef unsigned char yytype_uint8;
6067 typedef signed char yytype_int8;
6075 typedef unsigned short int yytype_uint16;
6081 typedef short int yytype_int16;
6089 static const yytype_uint8 yytranslate[] =
6091 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
6092 148, 2, 2, 2, 2, 2, 2, 2, 2, 2,
6093 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
6094 2, 2, 147, 123, 2, 2, 2, 121, 116, 2,
6095 143, 144, 119, 117, 141, 118, 140, 120, 2, 2,
6096 2, 2, 2, 2, 2, 2, 2, 2, 111, 146,
6097 113, 109, 112, 110, 2, 2, 2, 2, 2, 2,
6098 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
6099 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
6100 2, 139, 2, 145, 115, 2, 142, 2, 2, 2,
6101 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
6102 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
6103 2, 2, 2, 137, 114, 138, 124, 2, 2, 2,
6104 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
6105 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
6106 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
6107 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
6108 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
6109 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
6110 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
6111 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
6112 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
6113 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
6114 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
6115 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
6116 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
6117 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
6118 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
6119 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
6120 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
6121 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
6122 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
6123 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
6124 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
6125 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
6126 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
6127 105, 106, 107, 108, 122, 125, 126, 127, 128, 129,
6128 130, 131, 132, 133, 134, 135, 136
6134 static const yytype_uint16 yyprhs[] =
6136 0, 0, 3, 4, 7, 12, 15, 17, 19, 23,
6137 26, 27, 32, 36, 40, 44, 47, 51, 55, 59,
6138 63, 67, 68, 74, 79, 83, 87, 91, 98, 104,
6139 110, 116, 120, 124, 128, 132, 134, 136, 140, 144,
6140 148, 151, 153, 155, 157, 159, 162, 165, 168, 170,
6141 175, 180, 181, 187, 190, 194, 199, 205, 210, 216,
6142 219, 222, 224, 228, 230, 234, 236, 239, 243, 249,
6143 252, 257, 260, 265, 267, 271, 273, 277, 280, 284,
6144 286, 290, 292, 297, 301, 305, 309, 313, 316, 318,
6145 320, 325, 329, 333, 337, 341, 344, 346, 348, 350,
6146 353, 355, 359, 361, 363, 365, 367, 369, 371, 373,
6147 375, 377, 379, 380, 385, 387, 389, 391, 393, 395,
6148 397, 399, 401, 403, 405, 407, 409, 411, 413, 415,
6149 417, 419, 421, 423, 425, 427, 429, 431, 433, 435,
6150 437, 439, 441, 443, 445, 447, 449, 451, 453, 455,
6151 457, 459, 461, 463, 465, 467, 469, 471, 473, 475,
6152 477, 479, 481, 483, 485, 487, 489, 491, 493, 495,
6153 497, 499, 501, 503, 505, 507, 509, 511, 513, 515,
6154 517, 519, 521, 523, 525, 529, 535, 539, 545, 552,
6155 558, 564, 570, 576, 581, 585, 589, 593, 597, 601,
6156 605, 609, 613, 617, 622, 627, 630, 633, 637, 641,
6157 645, 649, 653, 657, 661, 665, 669, 673, 677, 681,
6158 685, 688, 691, 695, 699, 703, 707, 708, 713, 720,
6159 722, 724, 726, 729, 734, 737, 741, 743, 745, 747,
6160 749, 751, 754, 757, 762, 764, 765, 768, 771, 774,
6161 776, 778, 780, 783, 787, 792, 796, 801, 804, 806,
6162 808, 810, 812, 814, 816, 818, 820, 822, 823, 828,
6163 829, 834, 838, 842, 845, 849, 853, 855, 860, 864,
6164 866, 867, 874, 879, 883, 886, 888, 891, 894, 901,
6165 908, 909, 910, 918, 919, 920, 928, 934, 939, 940,
6166 941, 951, 952, 959, 960, 961, 970, 971, 977, 978,
6167 985, 986, 987, 997, 999, 1001, 1003, 1005, 1007, 1009,
6168 1011, 1013, 1015, 1017, 1019, 1021, 1023, 1025, 1027, 1029,
6169 1031, 1033, 1036, 1038, 1040, 1042, 1048, 1050, 1053, 1055,
6170 1057, 1059, 1063, 1065, 1069, 1071, 1076, 1083, 1087, 1093,
6171 1096, 1101, 1103, 1107, 1114, 1123, 1128, 1135, 1140, 1143,
6172 1150, 1153, 1158, 1165, 1168, 1173, 1176, 1181, 1183, 1185,
6173 1187, 1191, 1193, 1198, 1200, 1203, 1205, 1209, 1211, 1213,
6174 1214, 1218, 1223, 1225, 1229, 1233, 1234, 1240, 1243, 1248,
6175 1253, 1256, 1261, 1266, 1270, 1274, 1278, 1281, 1283, 1288,
6176 1289, 1295, 1296, 1302, 1308, 1310, 1312, 1319, 1321, 1323,
6177 1325, 1327, 1330, 1332, 1335, 1337, 1339, 1341, 1343, 1345,
6178 1347, 1349, 1352, 1356, 1360, 1364, 1368, 1372, 1373, 1377,
6179 1379, 1382, 1386, 1390, 1391, 1395, 1396, 1399, 1400, 1403,
6180 1405, 1406, 1410, 1411, 1416, 1418, 1420, 1422, 1424, 1427,
6181 1429, 1431, 1433, 1435, 1439, 1441, 1443, 1446, 1449, 1451,
6182 1453, 1455, 1457, 1459, 1461, 1463, 1465, 1467, 1469, 1471,
6183 1473, 1475, 1477, 1479, 1481, 1483, 1484, 1489, 1492, 1496,
6184 1499, 1506, 1515, 1520, 1527, 1532, 1539, 1542, 1547, 1554,
6185 1557, 1562, 1565, 1570, 1572, 1573, 1575, 1577, 1579, 1581,
6186 1583, 1585, 1587, 1591, 1593, 1597, 1601, 1605, 1607, 1611,
6187 1613, 1617, 1619, 1621, 1624, 1626, 1628, 1630, 1633, 1636,
6188 1638, 1640, 1641, 1646, 1648, 1651, 1653, 1657, 1661, 1664,
6189 1666, 1668, 1670, 1672, 1674, 1676, 1678, 1680, 1682, 1684,
6190 1686, 1688, 1689, 1691, 1692, 1694, 1697, 1700, 1701, 1703,
6191 1705, 1707, 1709, 1711, 1714
6195 static const yytype_int16 yyrhs[] =
6197 150, 0, -1, -1, 151, 153, -1, 153, 252, 228,
6198 255, -1, 154, 307, -1, 314, -1, 155, -1, 154,
6199 313, 155, -1, 1, 155, -1, -1, 45, 177, 156,
6200 177, -1, 45, 54, 54, -1, 45, 54, 64, -1,
6201 45, 54, 63, -1, 6, 178, -1, 155, 40, 159,
6202 -1, 155, 41, 159, -1, 155, 42, 159, -1, 155,
6203 43, 159, -1, 155, 44, 155, -1, -1, 47, 157,
6204 137, 153, 138, -1, 48, 137, 153, 138, -1, 172,
6205 109, 160, -1, 165, 109, 160, -1, 279, 87, 160,
6206 -1, 213, 139, 188, 310, 87, 160, -1, 213, 140,
6207 52, 87, 160, -1, 213, 140, 56, 87, 160, -1,
6208 213, 85, 52, 87, 160, -1, 280, 87, 160, -1,
6209 172, 109, 195, -1, 165, 109, 184, -1, 165, 109,
6210 195, -1, 158, -1, 160, -1, 158, 37, 158, -1,
6211 158, 38, 158, -1, 39, 308, 158, -1, 123, 160,
6212 -1, 182, -1, 158, -1, 164, -1, 161, -1, 30,
6213 189, -1, 21, 189, -1, 22, 189, -1, 245, -1,
6214 245, 140, 304, 190, -1, 245, 85, 304, 190, -1,
6215 -1, 94, 163, 234, 153, 138, -1, 303, 190, -1,
6216 303, 190, 162, -1, 213, 140, 304, 190, -1, 213,
6217 140, 304, 190, 162, -1, 213, 85, 304, 190, -1,
6218 213, 85, 304, 190, 162, -1, 32, 190, -1, 31,
6219 190, -1, 167, -1, 89, 166, 309, -1, 167, -1,
6220 89, 166, 309, -1, 169, -1, 169, 168, -1, 169,
6221 95, 171, -1, 169, 95, 171, 141, 170, -1, 169,
6222 95, -1, 169, 95, 141, 170, -1, 95, 171, -1,
6223 95, 171, 141, 170, -1, 95, -1, 95, 141, 170,
6224 -1, 171, -1, 89, 166, 309, -1, 168, 141, -1,
6225 169, 168, 141, -1, 168, -1, 170, 141, 168, -1,
6226 277, -1, 213, 139, 188, 310, -1, 213, 140, 52,
6227 -1, 213, 85, 52, -1, 213, 140, 56, -1, 213,
6228 85, 56, -1, 86, 56, -1, 280, -1, 277, -1,
6229 213, 139, 188, 310, -1, 213, 140, 52, -1, 213,
6230 85, 52, -1, 213, 140, 56, -1, 213, 85, 56,
6231 -1, 86, 56, -1, 280, -1, 52, -1, 56, -1,
6232 86, 173, -1, 173, -1, 213, 85, 173, -1, 52,
6233 -1, 56, -1, 53, -1, 180, -1, 181, -1, 175,
6234 -1, 273, -1, 176, -1, 275, -1, 177, -1, -1,
6235 178, 141, 179, 177, -1, 114, -1, 115, -1, 116,
6236 -1, 69, -1, 70, -1, 71, -1, 77, -1, 78,
6237 -1, 112, -1, 73, -1, 113, -1, 74, -1, 72,
6238 -1, 83, -1, 84, -1, 117, -1, 118, -1, 119,
6239 -1, 95, -1, 120, -1, 121, -1, 68, -1, 123,
6240 -1, 124, -1, 66, -1, 67, -1, 81, -1, 82,
6241 -1, 142, -1, 49, -1, 50, -1, 51, -1, 47,
6242 -1, 48, -1, 45, -1, 37, -1, 7, -1, 21,
6243 -1, 16, -1, 3, -1, 5, -1, 46, -1, 26,
6244 -1, 15, -1, 14, -1, 10, -1, 9, -1, 36,
6245 -1, 20, -1, 25, -1, 4, -1, 22, -1, 34,
6246 -1, 39, -1, 38, -1, 23, -1, 8, -1, 24,
6247 -1, 30, -1, 33, -1, 32, -1, 13, -1, 35,
6248 -1, 6, -1, 17, -1, 31, -1, 11, -1, 12,
6249 -1, 18, -1, 19, -1, 172, 109, 182, -1, 172,
6250 109, 182, 44, 182, -1, 279, 87, 182, -1, 279,
6251 87, 182, 44, 182, -1, 213, 139, 188, 310, 87,
6252 182, -1, 213, 140, 52, 87, 182, -1, 213, 140,
6253 56, 87, 182, -1, 213, 85, 52, 87, 182, -1,
6254 213, 85, 56, 87, 182, -1, 86, 56, 87, 182,
6255 -1, 280, 87, 182, -1, 182, 79, 182, -1, 182,
6256 80, 182, -1, 182, 117, 182, -1, 182, 118, 182,
6257 -1, 182, 119, 182, -1, 182, 120, 182, -1, 182,
6258 121, 182, -1, 182, 68, 182, -1, 122, 59, 68,
6259 182, -1, 122, 60, 68, 182, -1, 66, 182, -1,
6260 67, 182, -1, 182, 114, 182, -1, 182, 115, 182,
6261 -1, 182, 116, 182, -1, 182, 69, 182, -1, 182,
6262 112, 182, -1, 182, 73, 182, -1, 182, 113, 182,
6263 -1, 182, 74, 182, -1, 182, 70, 182, -1, 182,
6264 71, 182, -1, 182, 72, 182, -1, 182, 77, 182,
6265 -1, 182, 78, 182, -1, 123, 182, -1, 124, 182,
6266 -1, 182, 83, 182, -1, 182, 84, 182, -1, 182,
6267 75, 182, -1, 182, 76, 182, -1, -1, 46, 308,
6268 183, 182, -1, 182, 110, 182, 308, 111, 182, -1,
6269 196, -1, 182, -1, 314, -1, 194, 311, -1, 194,
6270 141, 301, 311, -1, 301, 311, -1, 143, 188, 309,
6271 -1, 314, -1, 186, -1, 314, -1, 189, -1, 164,
6272 -1, 194, 193, -1, 301, 193, -1, 194, 141, 301,
6273 193, -1, 192, -1, -1, 191, 189, -1, 96, 184,
6274 -1, 141, 192, -1, 141, -1, 314, -1, 184, -1,
6275 95, 184, -1, 194, 141, 184, -1, 194, 141, 95,
6276 184, -1, 194, 141, 184, -1, 194, 141, 95, 184,
6277 -1, 95, 184, -1, 256, -1, 257, -1, 260, -1,
6278 261, -1, 262, -1, 265, -1, 278, -1, 280, -1,
6279 53, -1, -1, 214, 197, 152, 224, -1, -1, 90,
6280 158, 198, 309, -1, 89, 153, 144, -1, 213, 85,
6281 56, -1, 86, 56, -1, 92, 185, 145, -1, 93,
6282 300, 138, -1, 30, -1, 31, 143, 189, 309, -1,
6283 31, 143, 309, -1, 31, -1, -1, 46, 308, 143,
6284 199, 158, 309, -1, 39, 143, 158, 309, -1, 39,
6285 143, 309, -1, 303, 247, -1, 246, -1, 246, 247,
6286 -1, 97, 239, -1, 215, 159, 225, 153, 227, 224,
6287 -1, 216, 159, 225, 153, 228, 224, -1, -1, -1,
6288 217, 200, 159, 226, 201, 153, 224, -1, -1, -1,
6289 218, 202, 159, 226, 203, 153, 224, -1, 219, 159,
6290 307, 250, 224, -1, 219, 307, 250, 224, -1, -1,
6291 -1, 220, 229, 25, 204, 159, 226, 205, 153, 224,
6292 -1, -1, 221, 174, 281, 206, 152, 224, -1, -1,
6293 -1, 221, 83, 158, 207, 312, 208, 152, 224, -1,
6294 -1, 222, 174, 209, 152, 224, -1, -1, 223, 175,
6295 210, 283, 152, 224, -1, -1, -1, 223, 298, 306,
6296 211, 175, 212, 283, 152, 224, -1, 21, -1, 22,
6297 -1, 23, -1, 24, -1, 196, -1, 7, -1, 11,
6298 -1, 12, -1, 18, -1, 19, -1, 16, -1, 20,
6299 -1, 3, -1, 4, -1, 5, -1, 10, -1, 312,
6300 -1, 13, -1, 312, 13, -1, 312, -1, 27, -1,
6301 228, -1, 14, 159, 225, 153, 227, -1, 314, -1,
6302 15, 153, -1, 172, -1, 165, -1, 286, -1, 89,
6303 232, 309, -1, 230, -1, 231, 141, 230, -1, 231,
6304 -1, 231, 141, 95, 286, -1, 231, 141, 95, 286,
6305 141, 231, -1, 231, 141, 95, -1, 231, 141, 95,
6306 141, 231, -1, 95, 286, -1, 95, 286, 141, 231,
6307 -1, 95, -1, 95, 141, 231, -1, 288, 141, 291,
6308 141, 294, 297, -1, 288, 141, 291, 141, 294, 141,
6309 288, 297, -1, 288, 141, 291, 297, -1, 288, 141,
6310 291, 141, 288, 297, -1, 288, 141, 294, 297, -1,
6311 288, 141, -1, 288, 141, 294, 141, 288, 297, -1,
6312 288, 297, -1, 291, 141, 294, 297, -1, 291, 141,
6313 294, 141, 288, 297, -1, 291, 297, -1, 291, 141,
6314 288, 297, -1, 294, 297, -1, 294, 141, 288, 297,
6315 -1, 296, -1, 314, -1, 235, -1, 114, 236, 114,
6316 -1, 76, -1, 114, 233, 236, 114, -1, 314, -1,
6317 146, 237, -1, 238, -1, 237, 141, 238, -1, 52,
6318 -1, 285, -1, -1, 240, 241, 242, -1, 143, 284,
6319 236, 309, -1, 284, -1, 107, 153, 138, -1, 29,
6320 153, 10, -1, -1, 28, 244, 234, 153, 10, -1,
6321 164, 243, -1, 245, 140, 304, 187, -1, 245, 85,
6322 304, 187, -1, 303, 186, -1, 213, 140, 304, 187,
6323 -1, 213, 85, 304, 186, -1, 213, 85, 305, -1,
6324 213, 140, 186, -1, 213, 85, 186, -1, 32, 186,
6325 -1, 32, -1, 213, 139, 188, 310, -1, -1, 137,
6326 248, 234, 153, 138, -1, -1, 26, 249, 234, 153,
6327 10, -1, 17, 194, 225, 153, 251, -1, 228, -1,
6328 250, -1, 8, 253, 254, 225, 153, 252, -1, 314,
6329 -1, 184, -1, 195, -1, 314, -1, 88, 172, -1,
6330 314, -1, 9, 153, -1, 314, -1, 276, -1, 273,
6331 -1, 275, -1, 258, -1, 62, -1, 259, -1, 258,
6332 259, -1, 99, 267, 106, -1, 100, 268, 106, -1,
6333 101, 268, 65, -1, 102, 147, 106, -1, 102, 263,
6334 106, -1, -1, 263, 264, 147, -1, 269, -1, 264,
6335 269, -1, 103, 147, 106, -1, 103, 266, 106, -1,
6336 -1, 266, 61, 147, -1, -1, 267, 269, -1, -1,
6337 268, 269, -1, 61, -1, -1, 105, 270, 272, -1,
6338 -1, 104, 271, 153, 138, -1, 54, -1, 55, -1,
6339 57, -1, 280, -1, 98, 274, -1, 175, -1, 55,
6340 -1, 54, -1, 57, -1, 98, 268, 106, -1, 59,
6341 -1, 60, -1, 122, 59, -1, 122, 60, -1, 52,
6342 -1, 55, -1, 54, -1, 56, -1, 57, -1, 34,
6343 -1, 33, -1, 35, -1, 36, -1, 50, -1, 49,
6344 -1, 51, -1, 277, -1, 277, -1, 63, -1, 64,
6345 -1, 312, -1, -1, 113, 282, 159, 312, -1, 1,
6346 312, -1, 143, 284, 309, -1, 284, 312, -1, 288,
6347 141, 292, 141, 294, 297, -1, 288, 141, 292, 141,
6348 294, 141, 288, 297, -1, 288, 141, 292, 297, -1,
6349 288, 141, 292, 141, 288, 297, -1, 288, 141, 294,
6350 297, -1, 288, 141, 294, 141, 288, 297, -1, 288,
6351 297, -1, 292, 141, 294, 297, -1, 292, 141, 294,
6352 141, 288, 297, -1, 292, 297, -1, 292, 141, 288,
6353 297, -1, 294, 297, -1, 294, 141, 288, 297, -1,
6354 296, -1, -1, 56, -1, 55, -1, 54, -1, 57,
6355 -1, 285, -1, 52, -1, 286, -1, 89, 232, 309,
6356 -1, 287, -1, 288, 141, 287, -1, 52, 109, 184,
6357 -1, 52, 109, 213, -1, 290, -1, 291, 141, 290,
6358 -1, 289, -1, 292, 141, 289, -1, 119, -1, 95,
6359 -1, 293, 52, -1, 293, -1, 116, -1, 96, -1,
6360 295, 52, -1, 141, 296, -1, 314, -1, 278, -1,
6361 -1, 143, 299, 158, 309, -1, 314, -1, 301, 311,
6362 -1, 302, -1, 301, 141, 302, -1, 184, 88, 184,
6363 -1, 58, 184, -1, 52, -1, 56, -1, 53, -1,
6364 52, -1, 56, -1, 53, -1, 180, -1, 52, -1,
6365 53, -1, 180, -1, 140, -1, 85, -1, -1, 313,
6366 -1, -1, 148, -1, 308, 144, -1, 308, 145, -1,
6367 -1, 148, -1, 141, -1, 146, -1, 148, -1, 312,
6368 -1, 313, 146, -1, -1
6372 static const yytype_uint16 yyrline[] =
6374 0, 763, 763, 763, 793, 826, 837, 846, 854, 862,
6375 868, 868, 876, 884, 895, 905, 913, 922, 931, 944,
6376 957, 967, 966, 988, 1000, 1009, 1019, 1048, 1069, 1086,
6377 1103, 1120, 1130, 1139, 1148, 1157, 1160, 1161, 1169, 1177,
6378 1185, 1193, 1196, 1208, 1209, 1210, 1218, 1226, 1236, 1237,
6379 1246, 1258, 1257, 1279, 1288, 1300, 1309, 1321, 1330, 1342,
6380 1351, 1362, 1363, 1373, 1374, 1384, 1392, 1400, 1408, 1416,
6381 1424, 1432, 1440, 1448, 1456, 1466, 1467, 1477, 1485, 1495,
6382 1503, 1513, 1521, 1529, 1537, 1545, 1553, 1565, 1575, 1587,
6383 1595, 1603, 1611, 1619, 1627, 1640, 1653, 1664, 1672, 1675,
6384 1683, 1691, 1701, 1702, 1703, 1704, 1714, 1726, 1727, 1730,
6385 1738, 1741, 1749, 1749, 1759, 1760, 1761, 1762, 1763, 1764,
6386 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774,
6387 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784,
6388 1785, 1786, 1787, 1790, 1790, 1790, 1791, 1791, 1792, 1792,
6389 1792, 1793, 1793, 1793, 1793, 1794, 1794, 1794, 1794, 1795,
6390 1795, 1795, 1796, 1796, 1796, 1796, 1797, 1797, 1797, 1797,
6391 1798, 1798, 1798, 1798, 1799, 1799, 1799, 1799, 1800, 1800,
6392 1800, 1800, 1801, 1801, 1804, 1813, 1823, 1852, 1883, 1904,
6393 1921, 1938, 1955, 1966, 1977, 1988, 2002, 2016, 2024, 2032,
6394 2040, 2048, 2056, 2064, 2073, 2082, 2090, 2098, 2106, 2114,
6395 2122, 2130, 2138, 2146, 2154, 2162, 2170, 2178, 2186, 2197,
6396 2205, 2213, 2221, 2229, 2237, 2245, 2253, 2253, 2263, 2273,
6397 2279, 2291, 2292, 2296, 2304, 2314, 2324, 2325, 2328, 2329,
6398 2332, 2340, 2348, 2358, 2367, 2376, 2376, 2388, 2398, 2402,
6399 2406, 2412, 2420, 2428, 2442, 2458, 2472, 2487, 2497, 2498,
6400 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2514, 2513, 2538,
6401 2538, 2547, 2555, 2563, 2571, 2584, 2592, 2600, 2608, 2616,
6402 2624, 2624, 2634, 2642, 2650, 2661, 2662, 2673, 2677, 2689,
6403 2701, 2701, 2701, 2712, 2712, 2712, 2723, 2734, 2743, 2745,
6404 2742, 2809, 2808, 2830, 2835, 2829, 2857, 2856, 2878, 2877,
6405 2904, 2905, 2904, 2929, 2937, 2945, 2953, 2963, 2975, 2982,
6406 2989, 2996, 3003, 3010, 3017, 3024, 3031, 3038, 3045, 3052,
6407 3057, 3058, 3065, 3070, 3073, 3074, 3087, 3088, 3098, 3099,
6408 3102, 3110, 3120, 3128, 3138, 3146, 3154, 3162, 3170, 3178,
6409 3186, 3197, 3205, 3215, 3223, 3231, 3239, 3247, 3255, 3264,
6410 3272, 3280, 3288, 3296, 3304, 3312, 3320, 3328, 3338, 3339,
6411 3345, 3354, 3363, 3374, 3375, 3385, 3392, 3401, 3409, 3415,
6412 3415, 3437, 3445, 3455, 3459, 3466, 3465, 3486, 3502, 3511,
6413 3522, 3531, 3541, 3551, 3559, 3570, 3581, 3589, 3597, 3612,
6414 3611, 3633, 3632, 3653, 3665, 3666, 3669, 3688, 3691, 3699,
6415 3707, 3710, 3714, 3717, 3725, 3728, 3729, 3737, 3740, 3757,
6416 3758, 3759, 3769, 3779, 3806, 3848, 3856, 3863, 3870, 3880,
6417 3888, 3898, 3906, 3913, 3920, 3931, 3938, 3949, 3956, 3966,
6418 3968, 3967, 3984, 3983, 4005, 4013, 4021, 4029, 4032, 4044,
6419 4045, 4046, 4047, 4050, 4081, 4082, 4083, 4091, 4101, 4102,
6420 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4112,
6421 4115, 4125, 4135, 4136, 4139, 4148, 4147, 4155, 4167, 4179,
6422 4185, 4193, 4201, 4209, 4217, 4225, 4233, 4241, 4249, 4257,
6423 4265, 4273, 4281, 4289, 4298, 4307, 4316, 4325, 4334, 4345,
6424 4346, 4358, 4366, 4385, 4392, 4405, 4419, 4433, 4441, 4457,
6425 4465, 4481, 4482, 4485, 4497, 4508, 4509, 4512, 4528, 4532,
6426 4542, 4552, 4552, 4581, 4582, 4592, 4599, 4609, 4617, 4627,
6427 4628, 4629, 4632, 4633, 4634, 4635, 4638, 4639, 4640, 4643,
6428 4648, 4655, 4656, 4659, 4660, 4663, 4666, 4669, 4670, 4671,
6429 4674, 4675, 4678, 4679, 4683
6436 static const char *const yytname[] =
6438 "$end", "error", "$undefined", "keyword_class", "keyword_module",
6439 "keyword_def", "keyword_undef", "keyword_begin", "keyword_rescue",
6440 "keyword_ensure", "keyword_end", "keyword_if", "keyword_unless",
6441 "keyword_then", "keyword_elsif", "keyword_else", "keyword_case",
6442 "keyword_when", "keyword_while", "keyword_until", "keyword_for",
6443 "keyword_break", "keyword_next", "keyword_redo", "keyword_retry",
6444 "keyword_in", "keyword_do", "keyword_do_cond", "keyword_do_block",
6445 "keyword_do_LAMBDA", "keyword_return", "keyword_yield", "keyword_super",
6446 "keyword_self", "keyword_nil", "keyword_true", "keyword_false",
6447 "keyword_and", "keyword_or", "keyword_not", "modifier_if",
6448 "modifier_unless", "modifier_while", "modifier_until", "modifier_rescue",
6449 "keyword_alias", "keyword_defined", "keyword_BEGIN", "keyword_END",
6450 "keyword__LINE__", "keyword__FILE__", "keyword__ENCODING__",
6451 "tIDENTIFIER", "tFID", "tGVAR", "tIVAR", "tCONSTANT", "tCVAR", "tLABEL",
6452 "tINTEGER", "tFLOAT", "tSTRING_CONTENT", "tCHAR", "tNTH_REF",
6453 "tBACK_REF", "tREGEXP_END", "tUPLUS", "tUMINUS", "tPOW", "tCMP", "tEQ",
6454 "tEQQ", "tNEQ", "tGEQ", "tLEQ", "tANDOP", "tOROP", "tMATCH", "tNMATCH",
6455 "tDOT2", "tDOT3", "tAREF", "tASET", "tLSHFT", "tRSHFT", "tCOLON2",
6456 "tCOLON3", "tOP_ASGN", "tASSOC", "tLPAREN", "tLPAREN_ARG", "tRPAREN",
6457 "tLBRACK", "tLBRACE", "tLBRACE_ARG", "tSTAR", "tAMPER", "tLAMBDA",
6458 "tSYMBEG", "tSTRING_BEG", "tXSTRING_BEG", "tREGEXP_BEG", "tWORDS_BEG",
6459 "tQWORDS_BEG", "tSTRING_DBEG", "tSTRING_DVAR", "tSTRING_END", "tLAMBEG",
6460 "tLOWEST", "'='", "'?'", "':'", "'>'", "'<'", "'|'", "'^'", "'&'", "'+'",
6461 "'-'", "'*'", "'/'", "'%'", "tUMINUS_NUM", "'!'", "'~'", "idNULL",
6462 "idRespond_to", "idIFUNC", "idCFUNC", "idThrowState",
6463 "id_core_set_method_alias", "id_core_set_variable_alias",
6464 "id_core_undef_method", "id_core_define_method",
6465 "id_core_define_singleton_method", "id_core_set_postexe", "tLAST_TOKEN",
6466 "'{'", "'}'", "'['", "'.'", "','", "'`'", "'('", "')'", "']'", "';'",
6467 "' '", "'\\n'", "$accept", "program", "@1", "bodystmt", "compstmt",
6468 "stmts", "stmt", "@2", "@3", "expr", "expr_value", "command_call",
6469 "block_command", "cmd_brace_block", "@4", "command", "mlhs",
6470 "mlhs_inner", "mlhs_basic", "mlhs_item", "mlhs_head", "mlhs_post",
6471 "mlhs_node", "lhs", "cname", "cpath", "fname", "fsym", "fitem",
6472 "undef_list", "@5", "op", "reswords", "arg", "@6", "arg_value",
6473 "aref_args", "paren_args", "opt_paren_args", "opt_call_args",
6474 "call_args", "command_args", "@7", "block_arg", "opt_block_arg", "args",
6475 "mrhs", "primary", "@8", "@9", "@10", "@11", "@12", "@13", "@14", "@15",
6476 "@16", "@17", "@18", "@19", "@20", "@21", "@22", "@23", "primary_value",
6477 "k_begin", "k_if", "k_unless", "k_while", "k_until", "k_case", "k_for",
6478 "k_class", "k_module", "k_def", "k_end", "then", "do", "if_tail",
6479 "opt_else", "for_var", "f_marg", "f_marg_list", "f_margs", "block_param",
6480 "opt_block_param", "block_param_def", "opt_bv_decl", "bv_decls", "bvar",
6481 "lambda", "@24", "f_larglist", "lambda_body", "do_block", "@25",
6482 "block_call", "method_call", "brace_block", "@26", "@27", "case_body",
6483 "cases", "opt_rescue", "exc_list", "exc_var", "opt_ensure", "literal",
6484 "strings", "string", "string1", "xstring", "regexp", "words",
6485 "word_list", "word", "qwords", "qword_list", "string_contents",
6486 "xstring_contents", "string_content", "@28", "@29", "string_dvar",
6487 "symbol", "sym", "dsym", "numeric", "variable", "var_ref", "var_lhs",
6488 "backref", "superclass", "@30", "f_arglist", "f_args", "f_bad_arg",
6489 "f_norm_arg", "f_arg_item", "f_arg", "f_opt", "f_block_opt",
6490 "f_block_optarg", "f_optarg", "restarg_mark", "f_rest_arg",
6491 "blkarg_mark", "f_block_arg", "opt_f_block_arg", "singleton", "@31",
6492 "assoc_list", "assocs", "assoc", "operation", "operation2", "operation3",
6493 "dot_or_colon", "opt_terms", "opt_nl", "rparen", "rbracket", "trailer",
6494 "term", "terms", "none", 0
6497 static const yytype_uint16 yyr1[] =
6499 0, 149, 151, 150, 152, 153, 154, 154, 154, 154,
6500 156, 155, 155, 155, 155, 155, 155, 155, 155, 155,
6501 155, 157, 155, 155, 155, 155, 155, 155, 155, 155,
6502 155, 155, 155, 155, 155, 155, 158, 158, 158, 158,
6503 158, 158, 159, 160, 160, 160, 160, 160, 161, 161,
6504 161, 163, 162, 164, 164, 164, 164, 164, 164, 164,
6505 164, 165, 165, 166, 166, 167, 167, 167, 167, 167,
6506 167, 167, 167, 167, 167, 168, 168, 169, 169, 170,
6507 170, 171, 171, 171, 171, 171, 171, 171, 171, 172,
6508 172, 172, 172, 172, 172, 172, 172, 173, 173, 174,
6509 174, 174, 175, 175, 175, 175, 175, 176, 176, 177,
6510 177, 178, 179, 178, 180, 180, 180, 180, 180, 180,
6511 180, 180, 180, 180, 180, 180, 180, 180, 180, 180,
6512 180, 180, 180, 180, 180, 180, 180, 180, 180, 180,
6513 180, 180, 180, 181, 181, 181, 181, 181, 181, 181,
6514 181, 181, 181, 181, 181, 181, 181, 181, 181, 181,
6515 181, 181, 181, 181, 181, 181, 181, 181, 181, 181,
6516 181, 181, 181, 181, 181, 181, 181, 181, 181, 181,
6517 181, 181, 181, 181, 182, 182, 182, 182, 182, 182,
6518 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
6519 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
6520 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
6521 182, 182, 182, 182, 182, 182, 183, 182, 182, 182,
6522 184, 185, 185, 185, 185, 186, 187, 187, 188, 188,
6523 189, 189, 189, 189, 189, 191, 190, 192, 193, 193,
6524 193, 194, 194, 194, 194, 195, 195, 195, 196, 196,
6525 196, 196, 196, 196, 196, 196, 196, 197, 196, 198,
6526 196, 196, 196, 196, 196, 196, 196, 196, 196, 196,
6527 199, 196, 196, 196, 196, 196, 196, 196, 196, 196,
6528 200, 201, 196, 202, 203, 196, 196, 196, 204, 205,
6529 196, 206, 196, 207, 208, 196, 209, 196, 210, 196,
6530 211, 212, 196, 196, 196, 196, 196, 213, 214, 215,
6531 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
6532 225, 225, 226, 226, 227, 227, 228, 228, 229, 229,
6533 230, 230, 231, 231, 232, 232, 232, 232, 232, 232,
6534 232, 232, 232, 233, 233, 233, 233, 233, 233, 233,
6535 233, 233, 233, 233, 233, 233, 233, 233, 234, 234,
6536 235, 235, 235, 236, 236, 237, 237, 238, 238, 240,
6537 239, 241, 241, 242, 242, 244, 243, 245, 245, 245,
6538 246, 246, 246, 246, 246, 246, 246, 246, 246, 248,
6539 247, 249, 247, 250, 251, 251, 252, 252, 253, 253,
6540 253, 254, 254, 255, 255, 256, 256, 256, 257, 258,
6541 258, 258, 259, 260, 261, 262, 262, 263, 263, 264,
6542 264, 265, 265, 266, 266, 267, 267, 268, 268, 269,
6543 270, 269, 271, 269, 272, 272, 272, 272, 273, 274,
6544 274, 274, 274, 275, 276, 276, 276, 276, 277, 277,
6545 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
6546 278, 279, 280, 280, 281, 282, 281, 281, 283, 283,
6547 284, 284, 284, 284, 284, 284, 284, 284, 284, 284,
6548 284, 284, 284, 284, 284, 285, 285, 285, 285, 286,
6549 286, 287, 287, 288, 288, 289, 290, 291, 291, 292,
6550 292, 293, 293, 294, 294, 295, 295, 296, 297, 297,
6551 298, 299, 298, 300, 300, 301, 301, 302, 302, 303,
6552 303, 303, 304, 304, 304, 304, 305, 305, 305, 306,
6553 306, 307, 307, 308, 308, 309, 310, 311, 311, 311,
6554 312, 312, 313, 313, 314
6558 static const yytype_uint8 yyr2[] =
6560 0, 2, 0, 2, 4, 2, 1, 1, 3, 2,
6561 0, 4, 3, 3, 3, 2, 3, 3, 3, 3,
6562 3, 0, 5, 4, 3, 3, 3, 6, 5, 5,
6563 5, 3, 3, 3, 3, 1, 1, 3, 3, 3,
6564 2, 1, 1, 1, 1, 2, 2, 2, 1, 4,
6565 4, 0, 5, 2, 3, 4, 5, 4, 5, 2,
6566 2, 1, 3, 1, 3, 1, 2, 3, 5, 2,
6567 4, 2, 4, 1, 3, 1, 3, 2, 3, 1,
6568 3, 1, 4, 3, 3, 3, 3, 2, 1, 1,
6569 4, 3, 3, 3, 3, 2, 1, 1, 1, 2,
6570 1, 3, 1, 1, 1, 1, 1, 1, 1, 1,
6571 1, 1, 0, 4, 1, 1, 1, 1, 1, 1,
6572 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6573 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6574 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6575 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6576 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6577 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6578 1, 1, 1, 1, 3, 5, 3, 5, 6, 5,
6579 5, 5, 5, 4, 3, 3, 3, 3, 3, 3,
6580 3, 3, 3, 4, 4, 2, 2, 3, 3, 3,
6581 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
6582 2, 2, 3, 3, 3, 3, 0, 4, 6, 1,
6583 1, 1, 2, 4, 2, 3, 1, 1, 1, 1,
6584 1, 2, 2, 4, 1, 0, 2, 2, 2, 1,
6585 1, 1, 2, 3, 4, 3, 4, 2, 1, 1,
6586 1, 1, 1, 1, 1, 1, 1, 0, 4, 0,
6587 4, 3, 3, 2, 3, 3, 1, 4, 3, 1,
6588 0, 6, 4, 3, 2, 1, 2, 2, 6, 6,
6589 0, 0, 7, 0, 0, 7, 5, 4, 0, 0,
6590 9, 0, 6, 0, 0, 8, 0, 5, 0, 6,
6591 0, 0, 9, 1, 1, 1, 1, 1, 1, 1,
6592 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6593 1, 2, 1, 1, 1, 5, 1, 2, 1, 1,
6594 1, 3, 1, 3, 1, 4, 6, 3, 5, 2,
6595 4, 1, 3, 6, 8, 4, 6, 4, 2, 6,
6596 2, 4, 6, 2, 4, 2, 4, 1, 1, 1,
6597 3, 1, 4, 1, 2, 1, 3, 1, 1, 0,
6598 3, 4, 1, 3, 3, 0, 5, 2, 4, 4,
6599 2, 4, 4, 3, 3, 3, 2, 1, 4, 0,
6600 5, 0, 5, 5, 1, 1, 6, 1, 1, 1,
6601 1, 2, 1, 2, 1, 1, 1, 1, 1, 1,
6602 1, 2, 3, 3, 3, 3, 3, 0, 3, 1,
6603 2, 3, 3, 0, 3, 0, 2, 0, 2, 1,
6604 0, 3, 0, 4, 1, 1, 1, 1, 2, 1,
6605 1, 1, 1, 3, 1, 1, 2, 2, 1, 1,
6606 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6607 1, 1, 1, 1, 1, 0, 4, 2, 3, 2,
6608 6, 8, 4, 6, 4, 6, 2, 4, 6, 2,
6609 4, 2, 4, 1, 0, 1, 1, 1, 1, 1,
6610 1, 1, 3, 1, 3, 3, 3, 1, 3, 1,
6611 3, 1, 1, 2, 1, 1, 1, 2, 2, 1,
6612 1, 0, 4, 1, 2, 1, 3, 3, 2, 1,
6613 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6614 1, 0, 1, 0, 1, 2, 2, 0, 1, 1,
6621 static const yytype_uint16 yydefact[] =
6623 2, 0, 0, 1, 0, 325, 326, 327, 0, 318,
6624 319, 320, 323, 321, 322, 324, 313, 314, 315, 316,
6625 276, 245, 245, 464, 463, 465, 466, 543, 0, 543,
6626 21, 0, 468, 467, 469, 458, 531, 460, 459, 461,
6627 462, 454, 455, 419, 472, 473, 0, 0, 0, 0,
6628 0, 554, 554, 73, 379, 437, 435, 437, 437, 427,
6629 433, 0, 0, 0, 3, 541, 7, 35, 36, 44,
6630 43, 0, 61, 0, 65, 75, 0, 41, 229, 0,
6631 267, 0, 0, 290, 293, 541, 0, 0, 0, 0,
6632 48, 285, 258, 259, 418, 420, 260, 261, 262, 263,
6633 416, 417, 415, 470, 264, 0, 265, 245, 6, 9,
6634 153, 164, 154, 177, 150, 170, 160, 159, 180, 181,
6635 175, 158, 157, 152, 178, 182, 183, 162, 151, 165,
6636 169, 171, 163, 156, 172, 179, 174, 173, 166, 176,
6637 161, 149, 168, 167, 148, 155, 146, 147, 143, 144,
6638 145, 102, 104, 103, 138, 139, 135, 117, 118, 119,
6639 126, 123, 125, 120, 121, 140, 141, 127, 128, 132,
6640 122, 124, 114, 115, 116, 129, 130, 131, 133, 134,
6641 136, 137, 142, 107, 109, 111, 15, 105, 106, 108,
6642 110, 313, 314, 276, 0, 0, 0, 0, 0, 0,
6643 0, 240, 0, 230, 251, 46, 244, 554, 0, 470,
6644 0, 265, 554, 525, 47, 45, 543, 60, 0, 554,
6645 396, 59, 543, 544, 0, 0, 10, 226, 0, 0,
6646 279, 397, 205, 0, 0, 206, 273, 0, 0, 543,
6647 63, 269, 0, 547, 547, 231, 0, 0, 547, 523,
6648 543, 0, 0, 0, 71, 317, 0, 81, 88, 287,
6649 494, 451, 450, 452, 449, 0, 448, 0, 0, 0,
6650 0, 0, 0, 0, 456, 457, 40, 220, 221, 550,
6651 551, 5, 552, 542, 0, 0, 0, 0, 0, 0,
6652 0, 385, 387, 0, 77, 0, 69, 66, 0, 0,
6653 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6654 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6655 0, 0, 0, 0, 0, 0, 554, 0, 0, 42,
6656 0, 0, 0, 0, 541, 0, 542, 0, 339, 338,
6657 0, 0, 470, 265, 97, 98, 0, 0, 100, 0,
6658 0, 470, 265, 306, 173, 166, 176, 161, 143, 144,
6659 145, 102, 103, 521, 308, 520, 0, 0, 0, 401,
6660 399, 286, 421, 0, 0, 390, 53, 284, 112, 528,
6661 273, 252, 247, 0, 0, 249, 241, 250, 0, 554,
6662 0, 0, 0, 249, 242, 543, 0, 278, 246, 543,
6663 239, 238, 543, 283, 39, 12, 14, 13, 0, 280,
6664 0, 0, 0, 0, 0, 0, 543, 271, 62, 543,
6665 274, 549, 548, 232, 549, 234, 275, 524, 0, 87,
6666 456, 457, 79, 74, 0, 0, 554, 0, 500, 497,
6667 496, 495, 498, 0, 512, 516, 515, 511, 494, 0,
6668 382, 499, 501, 503, 554, 509, 554, 514, 554, 0,
6669 493, 439, 442, 440, 453, 438, 422, 436, 423, 424,
6670 425, 426, 0, 429, 431, 0, 432, 0, 0, 553,
6671 8, 16, 17, 18, 19, 20, 37, 38, 554, 0,
6672 25, 33, 0, 34, 543, 0, 67, 78, 24, 184,
6673 251, 32, 202, 210, 215, 216, 217, 212, 214, 224,
6674 225, 218, 219, 195, 196, 222, 223, 543, 211, 213,
6675 207, 208, 209, 197, 198, 199, 200, 201, 532, 537,
6676 533, 538, 395, 245, 393, 543, 532, 534, 533, 535,
6677 394, 245, 0, 554, 330, 0, 329, 0, 0, 0,
6678 0, 0, 0, 273, 0, 554, 0, 298, 303, 97,
6679 98, 99, 0, 475, 301, 474, 0, 554, 0, 0,
6680 0, 494, 540, 539, 310, 532, 533, 245, 245, 554,
6681 554, 26, 186, 31, 194, 51, 54, 0, 184, 527,
6682 0, 253, 248, 554, 536, 533, 543, 532, 533, 526,
6683 277, 545, 235, 282, 11, 0, 227, 0, 23, 0,
6684 554, 193, 64, 270, 547, 0, 72, 84, 86, 543,
6685 532, 533, 0, 500, 0, 351, 342, 344, 543, 340,
6686 554, 0, 0, 380, 0, 486, 519, 0, 489, 513,
6687 0, 491, 517, 0, 0, 428, 430, 434, 203, 204,
6688 371, 554, 0, 369, 368, 257, 0, 76, 70, 0,
6689 0, 0, 0, 0, 392, 57, 0, 398, 0, 0,
6690 237, 391, 55, 236, 328, 268, 554, 554, 407, 554,
6691 331, 554, 333, 291, 332, 294, 0, 0, 297, 536,
6692 272, 543, 532, 533, 0, 0, 477, 0, 0, 97,
6693 98, 101, 543, 0, 543, 494, 0, 0, 0, 389,
6694 50, 388, 49, 0, 0, 0, 554, 113, 254, 243,
6695 0, 398, 0, 0, 543, 22, 233, 80, 82, 505,
6696 543, 0, 349, 0, 502, 0, 543, 373, 0, 0,
6697 504, 554, 554, 518, 554, 510, 554, 554, 0, 444,
6698 445, 446, 441, 447, 500, 554, 0, 554, 507, 554,
6699 554, 367, 0, 0, 255, 68, 185, 0, 30, 191,
6700 192, 58, 546, 0, 28, 189, 29, 190, 56, 408,
6701 409, 554, 410, 0, 554, 336, 0, 0, 334, 0,
6702 0, 0, 296, 0, 0, 398, 0, 304, 0, 0,
6703 398, 307, 522, 543, 0, 479, 311, 0, 0, 187,
6704 0, 0, 281, 341, 352, 0, 347, 343, 377, 374,
6705 375, 378, 381, 384, 383, 0, 482, 0, 484, 0,
6706 490, 0, 487, 492, 443, 0, 0, 370, 358, 360,
6707 0, 363, 0, 365, 386, 256, 228, 27, 188, 0,
6708 0, 412, 337, 0, 4, 414, 0, 288, 289, 0,
6709 0, 253, 554, 299, 0, 476, 302, 478, 309, 494,
6710 402, 400, 0, 0, 350, 0, 345, 0, 554, 554,
6711 554, 554, 0, 506, 372, 554, 554, 554, 508, 554,
6712 554, 0, 411, 0, 89, 96, 0, 413, 0, 292,
6713 295, 404, 405, 403, 0, 0, 0, 52, 348, 0,
6714 376, 483, 0, 480, 485, 488, 273, 0, 0, 355,
6715 0, 357, 364, 0, 361, 366, 95, 0, 554, 0,
6716 554, 554, 0, 305, 0, 346, 554, 536, 272, 554,
6717 554, 554, 554, 536, 94, 543, 532, 533, 406, 335,
6718 300, 312, 481, 356, 0, 353, 359, 362, 398, 554,
6723 static const yytype_int16 yydefgoto[] =
6725 -1, 1, 2, 542, 543, 65, 66, 408, 228, 67,
6726 330, 68, 69, 586, 716, 70, 71, 239, 72, 73,
6727 74, 433, 75, 202, 348, 349, 183, 184, 185, 186,
6728 587, 539, 188, 77, 410, 204, 242, 532, 671, 399,
6729 400, 217, 218, 206, 386, 207, 493, 78, 328, 419,
6730 605, 332, 790, 333, 791, 694, 904, 698, 695, 864,
6731 569, 571, 708, 869, 233, 80, 81, 82, 83, 84,
6732 85, 86, 87, 88, 89, 675, 545, 683, 787, 788,
6733 341, 626, 627, 628, 755, 652, 653, 736, 819, 820,
6734 259, 260, 449, 633, 292, 488, 90, 91, 377, 580,
6735 579, 552, 903, 677, 781, 850, 854, 92, 93, 94,
6736 95, 96, 97, 98, 271, 472, 99, 273, 267, 265,
6737 465, 644, 643, 752, 100, 266, 101, 102, 209, 104,
6738 210, 211, 564, 697, 706, 707, 451, 452, 453, 454,
6739 455, 758, 759, 456, 457, 458, 459, 743, 635, 366,
6740 570, 247, 212, 213, 234, 609, 534, 574, 281, 396,
6741 397, 667, 423, 546, 336, 108
6747 static const yytype_int16 yypact[] =
6749 -747, 103, 2364, -747, 6711, -747, -747, -747, 6222, -747,
6750 -747, -747, -747, -747, -747, -747, 6820, 6820, -747, -747,
6751 6820, 3057, 2631, -747, -747, -747, -747, 282, 6082, -24,
6752 -747, 64, -747, -747, -747, 5317, 2773, -747, -747, 5445,
6753 -747, -747, -747, -747, -747, -747, 8019, 8019, 74, 4131,
6754 8128, 7038, 7365, 6487, -747, 5942, -747, -747, -747, 142,
6755 154, 84, 8237, 8019, -747, 473, 925, 71, -747, -747,
6756 238, 234, -747, 205, 8346, -747, 268, 2472, 31, 46,
6757 -747, 8128, 8128, -747, -747, 4792, 8451, 8556, 8661, 5189,
6758 14, 70, -747, -747, 290, -747, -747, -747, -747, -747,
6759 -747, -747, -747, 26, -747, 366, 355, 210, -747, 925,
6760 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
6761 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
6762 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
6763 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
6764 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
6765 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
6766 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
6767 -747, -747, -747, -747, -747, -747, 321, -747, -747, -747,
6768 -747, -747, -747, -747, 328, 8019, 433, 4262, 8019, 8019,
6769 8019, -747, 403, 2472, 440, -747, -747, 418, 300, 13,
6770 457, 24, 437, -747, -747, -747, 4670, -747, 6820, 6820,
6771 -747, -747, 4923, -747, 8128, 438, -747, 436, 449, 4393,
6772 452, 463, -747, 346, 210, 546, 451, 4131, 474, -24,
6773 525, 71, 477, 165, 276, -747, 440, 498, 276, -747,
6774 -24, 582, 250, 8766, 501, -747, 374, 384, 394, -747,
6775 933, -747, -747, -747, -747, 595, -747, 659, 673, 76,
6776 552, 721, 553, 43, 584, 596, -747, -747, -747, -747,
6777 -747, -747, -747, 5045, 8128, 8128, 8128, 8128, 6711, 8128,
6778 8128, -747, -747, 7474, -747, 4131, 6599, 524, 7474, 8019,
6779 8019, 8019, 8019, 8019, 8019, 8019, 8019, 8019, 8019, 8019,
6780 8019, 8019, 8019, 8019, 8019, 8019, 8019, 8019, 8019, 8019,
6781 8019, 8019, 8019, 8019, 8019, 9033, 6820, 9111, 3431, 71,
6782 119, 119, 8128, 8128, 473, 652, 528, 614, -747, -747,
6783 424, 654, 56, 92, 335, 344, 8128, 131, -747, 42,
6784 444, -747, -747, -747, 33, 35, 53, 217, 227, 235,
6785 265, 298, 333, -747, -747, -747, 358, 10047, 10047, -747,
6786 -747, -747, -747, 8237, 8237, -747, 587, -747, -747, -747,
6787 305, -747, -747, 8019, 8019, 6929, -747, -747, 9189, 6820,
6788 9267, 8019, 8019, 7147, -747, -24, 540, -747, -747, -24,
6789 -747, -747, 242, -747, -747, -747, -747, -747, 6222, -747,
6790 8019, 4393, 555, 9189, 9267, 8019, -24, -747, 556, -24,
6791 -747, 7256, -747, -747, 7365, -747, -747, -747, 436, 470,
6792 -747, -747, -747, 557, 8766, 9345, 6820, 9423, 585, -747,
6793 -747, -747, -747, 843, -747, -747, -747, -747, 835, 49,
6794 -747, -747, -747, -747, 564, -747, 565, 658, 572, 662,
6795 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
6796 -747, -747, 21, -747, -747, 569, -747, 8019, 8019, -747,
6797 925, -747, -747, -747, -747, -747, -747, -747, 38, 8019,
6798 -747, 577, 578, -747, -24, 8766, 581, -747, -747, 2225,
6799 -747, -747, 546, 2143, 2143, 2143, 2143, 1115, 1115, 2614,
6800 2024, 2143, 2143, 1738, 1738, 718, 718, 1856, 1115, 1115,
6801 619, 619, 692, 274, 274, 546, 546, 546, 3199, 5687,
6802 3285, 5801, -747, 463, -747, -24, 460, -747, 471, -747,
6803 -747, 2915, 715, 734, -747, 3577, 713, 3869, 175, 175,
6804 652, 7583, 715, 96, 9501, 6820, 9579, -747, 71, -747,
6805 470, -747, 473, -747, -747, -747, 9657, 6820, 9735, 3431,
6806 8128, 1108, -747, -747, -747, -747, -747, 996, 996, 38,
6807 38, -747, 2242, -747, 2472, -747, -747, 6222, 10104, -747,
6808 8019, 440, -747, 437, 5573, 2489, -24, 367, 390, -747,
6809 -747, -747, -747, -747, -747, 8128, 2472, 605, -747, 463,
6810 463, 2472, -7, -747, 276, 8766, 557, 500, 267, -24,
6811 48, 50, 8019, -747, 843, 592, -747, 603, -24, -747,
6812 600, 4539, 4393, -747, 835, -747, -747, 835, -747, -747,
6813 634, -747, -747, 4393, 865, -747, -747, -747, 546, 546,
6814 -747, 411, 4539, -747, -747, 607, 7692, -747, 557, 8766,
6815 8019, 644, 8237, 8019, -747, 587, 612, 544, 8237, 8237,
6816 -747, -747, 587, -747, -747, -747, 7801, 744, -747, 413,
6817 -747, 744, -747, -747, -747, -747, 715, 208, -747, 62,
6818 85, -24, 117, 120, 8128, 473, -747, 8128, 3431, 500,
6819 267, -747, -24, 715, 242, 835, 3431, 473, 6362, -747,
6820 -747, -747, -747, 4539, 4393, 8019, 38, -747, -747, -747,
6821 8019, 432, 8019, 8019, 242, -747, -747, -747, 465, -747,
6822 -24, 788, 620, 854, -747, 885, -24, -747, 756, 631,
6823 -747, 629, 633, -747, 639, -747, 642, 639, 657, -747,
6824 -747, -747, -747, -747, 681, 600, 683, 665, -747, 666,
6825 676, -747, 789, 8019, 680, 557, 2472, 8019, -747, 2472,
6826 2472, -747, -747, 8237, -747, 2472, -747, 2472, -747, 577,
6827 -747, 710, -747, 4000, 814, -747, 8128, 715, -747, 715,
6828 4539, 4539, -747, 7910, 3723, 133, 175, -747, 473, 715,
6829 -747, -747, -747, -24, 715, -747, -747, 822, 696, 2472,
6830 4393, 8019, -747, -747, 700, 788, 621, -747, -747, 705,
6831 -747, -747, -747, -747, -747, 835, -747, 634, -747, 634,
6832 -747, 634, -747, -747, -747, 8871, 736, -747, 1125, -747,
6833 1125, -747, 634, -747, -747, 711, 2472, -747, 2472, 8976,
6834 119, -747, -747, 4539, -747, -747, 119, -747, -747, 715,
6835 715, -747, 505, -747, 3431, -747, -747, -747, -747, 1108,
6836 -747, -747, 717, 788, 700, 788, 716, 885, 639, 720,
6837 639, 639, 807, 487, -747, 725, 726, 639, -747, 728,
6838 639, 815, -747, 522, 384, 394, 3431, -747, 3577, -747,
6839 -747, -747, -747, -747, 4539, 715, 3431, -747, 700, 788,
6840 -747, -747, 634, -747, -747, -747, -747, 9813, 1125, -747,
6841 634, -747, -747, 634, -747, -747, 470, 9891, 6820, 9969,
6842 734, 413, 715, -747, 715, 700, 639, 727, 730, 639,
6843 738, 639, 639, 212, 267, -24, 152, 187, -747, -747,
6844 -747, -747, -747, -747, 634, -747, -747, -747, 193, 639,
6849 static const yytype_int16 yypgoto[] =
6851 -747, -747, -747, -537, 976, -747, 20, -747, -747, -14,
6852 30, -45, -747, -133, -747, 22, 772, -149, 9, -69,
6853 -747, -400, -4, 1540, -303, 793, -54, -747, -12, -747,
6854 -747, 0, -747, 802, -747, -48, -747, -16, -29, -313,
6855 81, 55, -747, -245, -192, -41, -272, -34, -747, -747,
6856 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
6857 -747, -747, -747, -747, -2, -747, -747, -747, -747, -747,
6858 -747, -747, -747, -747, -747, -31, -319, -519, -49, -607,
6859 -747, -664, -641, 260, -747, -487, -747, -532, -747, 8,
6860 -747, -747, -747, -747, -747, -747, -747, -747, 795, -747,
6861 -747, -528, -747, -42, -747, -747, -747, -747, -747, -747,
6862 799, -747, -747, -747, -747, -747, -747, -747, -747, 513,
6863 -208, -747, -747, -747, -5, -747, 29, -747, 1251, 816,
6864 747, 1369, -747, -747, 47, -235, -673, -393, -569, -40,
6865 -576, -746, 69, 278, -747, -474, -747, -249, 959, -747,
6866 -747, -747, -6, -288, 162, -261, -747, -747, -56, -20,
6867 17, -563, -217, -44, 850, 752
6875 static const yytype_int16 yytable[] =
6877 79, 264, 79, 189, 246, 297, 220, 224, 187, 227,
6878 243, 460, 547, 535, 208, 208, 226, 276, 208, 255,
6879 394, 282, 686, 189, 109, 450, 501, 425, 187, 335,
6880 685, 427, 703, 721, 616, 364, 241, 190, 201, 201,
6881 255, 282, 201, 562, 561, 244, 248, 79, 208, 254,
6882 629, 256, 255, 255, 255, 187, 728, 190, 240, 467,
6883 208, 745, 821, 473, 533, 740, 541, 329, 329, 817,
6884 784, 329, 256, -83, 789, -85, 596, 221, 631, 208,
6885 208, -89, 461, 208, 340, 350, 350, -92, 416, 187,
6886 814, 375, 713, 714, 888, 658, 369, 205, 214, 367,
6887 -471, 215, -62, 3, 475, 599, 577, 578, 289, 290,
6888 -94, 392, 331, -471, 650, 334, -317, -96, -464, 756,
6889 -463, -95, -89, 619, 223, 462, 463, 533, 795, 541,
6890 236, 325, 544, -96, -76, -89, 599, 461, -465, 800,
6891 592, 469, -91, 274, 275, -93, 494, 379, 592, 476,
6892 381, 382, 651, 610, 368, 563, 632, -83, -90, -85,
6893 742, 799, 376, 746, 107, -91, 107, -81, 645, 804,
6894 -317, -317, 888, -464, 874, -463, 610, 760, 107, 107,
6895 462, 463, 107, 559, 432, 326, 327, 560, 279, -83,
6896 280, -85, -83, -465, -85, 79, -83, -81, -85, 460,
6897 -93, 229, 682, -84, 821, -532, -90, 370, 402, 817,
6898 404, 107, 107, 630, 208, 220, 208, 208, 375, 255,
6899 208, 544, 208, 836, 107, -92, -86, 79, -533, 810,
6900 428, 629, 732, -88, 908, 79, 369, -87, 201, 403,
6901 201, 201, 691, 107, 107, 491, 240, 107, 490, 745,
6902 500, 256, 492, 498, 702, 901, 418, 492, -83, 765,
6903 740, -85, 255, 701, 646, 279, 291, 280, 935, 740,
6904 329, 329, 329, 329, -82, 486, 487, 863, 550, 289,
6905 290, 79, 208, 208, 208, 208, 79, 208, 208, 270,
6906 282, 208, 496, 79, 256, 610, 208, 395, -91, 398,
6907 -91, 272, -466, 480, 240, 565, 421, 610, 485, 430,
6908 431, 540, -468, 422, 481, 482, 483, 484, 329, 329,
6909 -467, 279, 460, 280, 208, 531, 79, 905, 581, 583,
6910 208, 208, 558, -93, 902, -93, 589, 591, 629, -90,
6911 629, -90, 299, 293, 208, 246, 294, 370, 201, 793,
6912 -469, 879, -272, 219, 279, -532, 280, -466, -92, 107,
6913 -92, -529, 548, 549, 886, 432, 889, -468, 794, 934,
6914 -530, 208, 208, 591, 540, -467, 246, 298, 107, 593,
6915 107, 107, 958, -458, 107, 388, 107, 208, 531, 56,
6916 223, 107, 415, 322, 323, 324, 604, 726, 540, 107,
6917 255, 719, 761, 189, 780, -469, -272, -272, 187, 79,
6918 -533, 201, 600, 531, -95, 614, 602, 424, -461, 603,
6919 -458, 540, 629, 876, 422, 222, 432, 786, 783, -461,
6920 223, 413, 256, 612, 208, 531, 613, 190, -458, 389,
6921 390, 655, 374, 572, 940, 107, 107, 107, 107, 107,
6922 107, 107, 107, 373, 722, 107, 460, 107, 201, 435,
6923 107, 255, 378, 754, -96, 439, 440, 441, 442, -470,
6924 803, 222, -529, -461, -458, -458, -91, 723, -529, -265,
6925 629, -530, 629, -461, -461, 389, 414, -530, 107, 380,
6926 107, -398, 405, 256, 107, 107, -88, 661, 573, -93,
6927 443, 406, 407, 500, 684, 684, 444, 445, 107, 554,
6928 687, 657, 383, 436, 437, 666, 629, 664, 696, 811,
6929 783, 688, 551, -470, -470, 670, -536, 446, 384, 566,
6930 447, 896, 771, -265, -265, 107, 107, 898, 415, 778,
6931 540, -90, 718, 79, 391, 79, 727, 668, 709, 711,
6932 -398, 107, 540, 208, 531, -273, 704, 735, 669, 385,
6933 -95, 670, 670, 555, 556, 208, 531, 79, 208, -91,
6934 268, 269, 917, 107, 729, 717, 666, 201, 393, 409,
6935 -93, 255, 189, 567, 568, -536, 411, 187, 665, 201,
6936 432, 724, -87, 664, 670, 216, 672, 744, 107, 666,
6937 747, -83, -398, 208, -398, -398, 219, 927, 764, -273,
6938 -273, 757, -85, 256, 299, 945, 190, 768, 417, 279,
6939 460, 280, 420, 774, 776, 255, 567, 568, 779, 79,
6940 79, 773, 710, 712, -61, 492, 426, -536, 429, -536,
6941 -536, 79, 434, -532, 623, 734, 439, 440, 441, 442,
6942 79, 797, 477, -90, 806, 792, 461, 256, 470, 474,
6943 208, 928, 929, 805, 478, 497, 208, 208, 610, 551,
6944 553, 666, 801, 623, 479, 439, 440, 441, 442, 557,
6945 329, 585, 666, 329, 601, -82, 623, 299, 439, 440,
6946 441, 442, 208, 608, 622, 208, 79, -76, 615, 462,
6947 463, 464, 312, 313, 79, 634, 637, 107, 187, 107,
6948 639, 79, 79, 640, 642, 845, 647, 107, -251, 656,
6949 461, 802, 659, 443, 796, 674, 680, 798, 847, 107,
6950 445, 107, 107, 731, 461, 319, 320, 321, 322, 323,
6951 324, 812, 676, 725, 733, 861, 735, 813, -252, 105,
6952 446, 105, 684, 822, 865, 767, 857, 772, 858, 783,
6953 299, 815, 875, 462, 463, 466, 823, 107, 866, 824,
6954 825, 208, 329, 868, 827, 312, 313, 462, 463, 468,
6955 829, 79, 461, 831, 208, 878, 299, 880, 79, 79,
6956 835, 881, 79, 107, 107, 834, 105, 837, 849, 844,
6957 887, 255, 890, 245, 249, 107, 838, 840, 79, 320,
6958 321, 322, 323, 324, 107, 255, 856, 842, 203, 203,
6959 867, -253, 203, 853, 107, 462, 463, 471, 899, 900,
6960 107, 107, 870, 883, 871, 320, 321, 322, 323, 324,
6961 623, 873, 439, 440, 441, 442, 877, 893, 232, 235,
6962 884, 79, -254, 203, 203, 907, 107, 909, 338, 107,
6963 107, 912, 79, 916, 277, 278, 918, 920, 107, 923,
6964 -532, 926, 936, -533, 933, 107, 107, 624, 939, 954,
6965 941, 353, 949, 942, 730, 910, 371, 438, 948, 439,
6966 440, 441, 442, 372, 79, 623, 79, 439, 440, 441,
6967 442, 950, 79, 951, 79, 365, 623, 885, 439, 440,
6968 441, 442, 741, 540, 959, 283, 906, 531, 0, 749,
6969 750, 0, 751, 0, 443, 666, 208, 531, 44, 45,
6970 444, 445, 624, 0, 0, 107, 0, 818, 625, 439,
6971 440, 441, 442, 624, 105, 107, 0, 0, 107, 816,
6972 201, 446, 107, 107, 447, 0, 107, 0, 0, 387,
6973 0, 0, 0, 0, 387, 284, 285, 286, 287, 288,
6974 0, 401, 107, 0, 0, 0, 105, 0, 64, 0,
6975 0, 0, 0, 0, 105, 438, 0, 439, 440, 441,
6976 442, 0, 0, 0, 0, 0, -554, 203, 0, 0,
6977 203, 203, 277, 0, -554, -554, -554, 0, 0, -554,
6978 -554, -554, 0, -554, 0, 107, 0, 0, 203, 0,
6979 203, 203, 443, -554, 0, 238, 107, 0, 444, 445,
6980 105, 0, 0, -554, -554, 105, -554, -554, -554, -554,
6981 -554, 0, 105, 0, 0, 0, 0, 0, 0, 446,
6982 0, 0, 447, 0, 0, 0, 0, 0, 107, 0,
6983 107, 0, 0, 0, 0, 0, 107, 0, 107, 0,
6984 0, 0, 0, 0, 0, 105, 448, 0, 401, 0,
6985 0, -554, 0, 0, 0, 0, 0, 0, 0, 0,
6986 107, 0, 0, 0, 0, 203, 0, 0, 0, 0,
6987 499, 502, 503, 504, 505, 506, 507, 508, 509, 510,
6988 511, 512, 513, 514, 515, 516, 517, 518, 519, 520,
6989 521, 522, 523, 524, 525, 526, 527, 0, 203, 0,
6990 0, 0, 0, 0, -554, 0, -554, 0, 0, 219,
6991 -554, 401, -554, 0, -554, 0, 0, 0, 0, 0,
6992 0, 0, 0, 0, 0, 0, 0, 0, 105, 0,
6993 438, 0, 439, 440, 441, 442, 0, 0, 0, 0,
6994 0, 0, 0, 238, 0, 582, 584, 754, 0, 439,
6995 440, 441, 442, 299, 0, 588, 203, 203, 401, 0,
6996 0, 203, 0, 582, 584, 203, 0, 443, 312, 313,
6997 0, 0, 0, 444, 445, 412, 636, 0, 636, 0,
6998 636, 0, 606, 238, 443, 0, 0, 611, 0, 0,
6999 444, 445, 0, 203, 446, 0, 203, 447, 0, 317,
7000 318, 319, 320, 321, 322, 323, 324, 0, 203, 0,
7001 654, 446, 0, 0, 447, 0, 0, 0, 0, 0,
7002 0, 705, 0, 103, 0, 103, 0, 0, 0, 0,
7003 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7004 0, 238, 0, 0, 0, 0, 0, 0, 0, 648,
7005 649, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7006 0, 203, 105, 673, 105, 678, 0, 0, 0, 0,
7007 103, 0, 0, 0, 257, 0, 0, 401, 0, 0,
7008 0, 0, 0, 0, 0, 0, 105, 0, 0, 401,
7009 0, 0, 0, 0, 0, 257, 0, 0, 0, 673,
7010 673, 654, 654, 0, 0, 0, 0, 342, 351, 351,
7011 351, 0, 0, 0, 0, 387, 0, 0, 0, 0,
7012 0, 0, 0, 203, 0, 0, 0, 203, 0, 0,
7013 0, 0, 673, 0, 0, 0, 0, 0, 0, 203,
7014 0, 106, 0, 106, 0, 0, 0, 0, 105, 105,
7015 0, 0, 737, 0, 0, 0, 0, 607, 0, 0,
7016 105, 0, 203, 0, 0, 0, 0, 0, 0, 105,
7017 0, 0, 0, 737, 0, 0, 0, 0, 0, 0,
7018 0, 0, 0, 0, 0, 638, 0, 641, 106, 0,
7019 0, 0, 258, 0, 203, 0, 0, 0, 782, 785,
7020 0, 785, 0, 785, 0, 0, 0, 0, 0, 0,
7021 0, 0, 0, 258, 0, 105, 0, 0, 103, 0,
7022 0, 0, 0, 105, 0, 343, 352, 352, 203, 0,
7023 105, 105, 766, 0, 769, 770, 0, 0, 654, 0,
7024 775, 777, 0, 0, 0, 0, 0, 0, 203, 0,
7025 103, 0, 0, 0, 0, 0, 0, 0, 103, 0,
7026 0, 0, 0, 636, 636, 0, 636, 0, 636, 636,
7027 0, 0, 0, 0, 257, 0, 0, 737, 0, 636,
7028 0, 636, 636, 0, 0, 0, 0, 809, 0, 0,
7029 0, 679, 769, 681, 775, 777, 0, 0, 0, 0,
7030 105, 0, 0, 851, 103, 0, 855, 105, 105, 103,
7031 0, 105, 76, 0, 76, 0, 103, 257, 0, 0,
7032 0, 0, 0, 0, 0, 0, 0, 105, 0, 0,
7033 0, 0, 0, 0, 0, 203, 106, 0, 0, 846,
7034 0, 0, 0, 0, 0, 848, 0, 0, 0, 103,
7035 0, 0, 0, 0, 0, 0, 0, 0, 0, 76,
7036 0, 0, 0, 0, 0, 203, 0, 0, 106, 0,
7037 105, 0, 0, 0, 0, 0, 106, 738, 739, 0,
7038 0, 105, 0, 848, 785, 0, 0, 0, 0, 748,
7039 0, 0, 258, 0, 0, 0, 339, 0, 762, 0,
7040 636, 636, 636, 636, 0, 0, 0, 636, 636, 636,
7041 0, 636, 636, 105, 0, 105, 0, 0, 0, 0,
7042 0, 105, 106, 105, 0, 0, 0, 106, 0, 0,
7043 0, 0, 103, 0, 106, 258, 0, 0, 0, 0,
7044 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7045 401, 0, 678, 785, 0, 257, 0, 0, 636, 807,
7046 808, 636, 636, 636, 636, 0, 0, 106, 0, 0,
7047 826, 828, 0, 830, 0, 832, 833, 0, 0, 0,
7048 0, 636, 0, 0, 0, 0, 839, 0, 841, 843,
7049 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7050 203, 0, 0, 0, 0, 0, 0, 76, 0, 0,
7051 0, 0, 0, 0, 0, 0, 257, 0, 0, 0,
7052 0, 0, 0, 0, 0, 0, 0, 0, 0, 852,
7053 0, 0, 0, 0, 0, 0, 859, 860, 0, 76,
7054 862, 0, 0, 0, 0, 0, 0, 76, 0, 0,
7055 106, 0, 0, 0, 0, 0, 872, 0, 0, 0,
7056 0, 0, 0, 0, 0, 0, 103, 0, 103, 0,
7057 0, 0, 0, 258, 0, 0, 299, 300, 301, 302,
7058 303, 304, 305, 306, 307, 308, 309, -555, -555, 0,
7059 103, 312, 313, 76, 0, 0, 0, 0, 76, 897,
7060 0, 0, 0, 0, 0, 76, 0, 911, 913, 914,
7061 915, 0, 0, 0, 919, 921, 922, 0, 924, 925,
7062 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
7063 0, 0, 0, 0, 258, 0, 257, 0, 76, 0,
7064 0, 0, 930, 0, 931, 0, 0, 0, 0, 0,
7065 932, 0, 103, 103, 0, 0, 0, 0, 0, 0,
7066 0, 0, 0, 0, 103, 952, 0, 0, 953, 955,
7067 956, 957, 0, 103, 0, 0, 0, 0, 0, 0,
7068 257, 0, 0, 0, 106, 0, 106, 0, 960, 0,
7069 0, 0, 0, 0, 299, 300, 301, 302, 303, 304,
7070 305, 306, 307, 308, 309, 310, 311, 0, 106, 312,
7071 313, 0, 0, 0, 0, 0, 0, 0, 0, 103,
7072 0, 76, 0, 0, 0, 0, 0, 103, 0, 0,
7073 0, 0, 0, 0, 103, 103, 314, 0, 315, 316,
7074 317, 318, 319, 320, 321, 322, 323, 324, 0, 0,
7075 0, 0, 0, 0, 258, 0, 0, 0, 0, 0,
7076 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7077 106, 106, 0, 0, 223, 0, 0, 0, 0, 0,
7078 0, 0, 106, 753, 0, 0, 0, 0, 0, 0,
7079 0, 106, 0, 0, 0, 0, 0, 0, 258, 0,
7080 0, 0, 0, 0, 103, 0, 0, 0, 0, 0,
7081 0, 103, 103, 0, 0, 103, 0, 0, 0, 0,
7082 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7083 0, 103, 0, 0, 0, 0, 0, 106, 0, 0,
7084 0, 0, 0, 0, 0, 106, 0, 0, 0, 0,
7085 0, 0, 106, 106, 0, 76, 351, 76, 0, 0,
7086 0, 0, 299, 300, 301, 302, 303, 304, 305, 306,
7087 894, 308, 309, 0, 103, 0, 0, 312, 313, 76,
7088 0, 0, 0, 0, 0, 103, 0, 0, 0, 0,
7089 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7090 0, 0, 0, 0, 0, 0, 315, 316, 317, 318,
7091 319, 320, 321, 322, 323, 324, 0, 103, 0, 103,
7092 0, 0, 106, 0, 0, 103, 0, 103, 0, 106,
7093 106, 0, 0, 106, 0, 0, 0, 0, 0, 0,
7094 0, 76, 76, 0, 0, 0, 0, 0, 0, 106,
7095 0, 0, 0, 76, 0, 0, 0, 0, 0, 0,
7096 0, 0, 76, 0, 0, 0, 0, 0, 0, 0,
7097 0, 0, 0, 0, 352, 0, 0, 0, 0, 0,
7098 0, 299, -555, -555, -555, -555, 304, 305, 895, 0,
7099 -555, -555, 106, 0, 0, 0, 312, 313, 0, 0,
7100 0, 0, 0, 106, 0, 0, 0, 0, 76, 0,
7101 0, 0, 0, 0, 0, 0, 76, 0, 0, 0,
7102 0, 0, 0, 76, 76, 315, 316, 317, 318, 319,
7103 320, 321, 322, 323, 324, 106, 0, 106, 0, 660,
7104 0, 0, 0, 106, 0, 106, 0, 0, 0, 0,
7105 0, 0, 0, 0, 0, 0, 715, 0, 0, 0,
7106 0, 0, 0, 299, 300, 301, 302, 303, 304, 305,
7107 306, 307, 308, 309, 310, 311, 0, 0, 312, 313,
7108 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
7109 309, 310, 311, 76, 0, 312, 313, 0, 0, 0,
7110 76, 76, 0, 0, 76, 314, 0, 315, 316, 317,
7111 318, 319, 320, 321, 322, 323, 324, 0, 0, 0,
7112 76, 0, 314, 0, 315, 316, 317, 318, 319, 320,
7113 321, 322, 323, 324, -554, 4, -230, 5, 6, 7,
7114 8, 9, 0, 0, 0, 10, 11, 0, 0, 0,
7115 12, 0, 13, 14, 15, 16, 17, 18, 19, 892,
7116 0, 0, 0, 76, 20, 21, 22, 23, 24, 25,
7117 26, 0, 0, 27, 76, 0, 0, 0, 0, 28,
7118 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
7119 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
7120 46, 47, 0, 0, 0, 0, 76, 0, 76, 0,
7121 0, 0, 0, 0, 76, 0, 76, 0, 0, 0,
7122 48, 0, 0, 49, 50, 0, 51, 52, 0, 53,
7123 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
7124 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7125 0, 0, 0, 0, 0, 0, 61, 62, 63, -272,
7126 0, 0, 0, 0, 0, 0, 0, -272, -272, -272,
7127 0, 0, -272, -272, -272, 0, -272, 0, 0, 0,
7128 -554, 0, -554, 0, 0, 0, -272, -272, -272, 0,
7129 0, 0, 0, 0, 0, 0, -272, -272, 0, -272,
7130 -272, -272, -272, -272, 0, 0, 0, 0, 0, 0,
7131 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
7132 309, 310, 311, 0, 0, 312, 313, -272, -272, -272,
7133 -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
7134 0, 0, -272, -272, -272, 0, 663, -272, 0, 0,
7135 0, 0, 314, -272, 315, 316, 317, 318, 319, 320,
7136 321, 322, 323, 324, 0, 0, -272, 0, -94, -272,
7137 -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
7138 -272, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7139 0, 0, 0, 0, 0, 0, 0, -272, -272, -272,
7140 -272, -397, 0, -272, -272, -272, 0, -272, 0, -397,
7141 -397, -397, 0, 0, -397, -397, -397, 0, -397, 0,
7142 0, 0, 0, 0, 0, 0, 0, -397, -397, -397,
7143 0, 0, 0, 0, 0, 0, 0, 0, -397, -397,
7144 0, -397, -397, -397, -397, -397, 0, 0, 0, 0,
7145 0, 0, 299, 300, 301, 302, 303, 304, 305, 0,
7146 0, 308, 309, 0, 0, 0, 0, 312, 313, -397,
7147 -397, -397, -397, -397, -397, -397, -397, -397, -397, -397,
7148 -397, -397, 0, 0, -397, -397, -397, 0, 0, -397,
7149 0, 0, 0, 0, 0, -397, 315, 316, 317, 318,
7150 319, 320, 321, 322, 323, 324, 0, 0, 0, 0,
7151 0, -397, 0, -397, -397, -397, -397, -397, -397, -397,
7152 -397, -397, -397, 0, 0, 0, 0, 0, 0, 0,
7153 0, 0, 0, 0, 0, 0, 0, 0, -397, -397,
7154 -397, -397, -397, -266, 219, -397, -397, -397, 0, -397,
7155 0, -266, -266, -266, 0, 0, -266, -266, -266, 0,
7156 -266, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7157 -266, -266, -266, 0, 0, 0, 0, 0, 0, 0,
7158 -266, -266, 0, -266, -266, -266, -266, -266, 0, 0,
7159 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7160 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7161 0, -266, -266, -266, -266, -266, -266, -266, -266, -266,
7162 -266, -266, -266, -266, 0, 0, -266, -266, -266, 0,
7163 0, -266, 0, 0, 0, 0, 0, -266, 0, 0,
7164 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7165 -266, 0, 0, -266, -266, -266, -266, -266, -266, -266,
7166 -266, -266, -266, -266, -266, 0, 0, 0, 0, 0,
7167 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7168 0, -266, -266, -266, -266, -554, 0, -266, -266, -266,
7169 0, -266, 0, -554, -554, -554, 0, 0, -554, -554,
7170 -554, 0, -554, 0, 0, 0, 0, 0, 0, 0,
7171 0, -554, -554, -554, 0, 0, 0, 0, 0, 0,
7172 0, 0, -554, -554, 0, -554, -554, -554, -554, -554,
7173 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7174 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7175 0, 0, 0, -554, -554, -554, -554, -554, -554, -554,
7176 -554, -554, -554, -554, -554, -554, 0, 0, -554, -554,
7177 -554, 0, 0, -554, 0, 0, 0, 0, 0, -554,
7178 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7179 0, 0, 0, 0, 0, -554, 0, -554, -554, -554,
7180 -554, -554, -554, -554, -554, -554, -554, 0, 0, 0,
7181 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7182 0, 0, -554, -554, -554, -554, -554, -279, 219, -554,
7183 -554, -554, 0, -554, 0, -279, -279, -279, 0, 0,
7184 -279, -279, -279, 0, -279, 0, 0, 0, 0, 0,
7185 0, 0, 0, 0, -279, -279, 0, 0, 0, 0,
7186 0, 0, 0, 0, -279, -279, 0, -279, -279, -279,
7187 -279, -279, 0, 0, 0, 0, 0, 0, 0, 0,
7188 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7189 0, 0, 0, 0, 0, -279, -279, -279, -279, -279,
7190 -279, -279, -279, -279, -279, -279, -279, -279, 0, 0,
7191 -279, -279, -279, 0, 0, -279, 0, 0, 0, 0,
7192 0, -279, 0, 0, 0, 0, 0, 0, 0, 0,
7193 0, 0, 0, 0, 0, 0, 0, -279, 0, -279,
7194 -279, -279, -279, -279, -279, -279, -279, -279, -279, 0,
7195 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7196 0, 0, 0, 0, 0, -279, -279, -279, -279, -536,
7197 216, -279, -279, -279, 0, -279, 0, -536, -536, -536,
7198 0, 0, 0, -536, -536, 0, -536, 0, 0, 0,
7199 0, 0, 0, 0, 0, -536, 0, 0, 0, 0,
7200 0, 0, 0, 0, 0, 0, -536, -536, 0, -536,
7201 -536, -536, -536, -536, 0, 0, 0, 0, 0, 0,
7202 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7203 0, 0, 0, 0, 0, 0, 0, -536, -536, -536,
7204 -536, -536, -536, -536, -536, -536, -536, -536, -536, -536,
7205 0, 0, -536, -536, -536, -272, 662, 0, 0, 0,
7206 0, 0, 0, -272, -272, -272, 0, 0, 0, -272,
7207 -272, 0, -272, 0, 0, 0, 0, 0, -92, -536,
7208 0, -536, -536, -536, -536, -536, -536, -536, -536, -536,
7209 -536, 0, -272, -272, 0, -272, -272, -272, -272, -272,
7210 0, 0, 0, 0, 0, 0, -536, -536, -536, -536,
7211 -84, 0, 0, -536, 0, -536, 0, -536, 0, 0,
7212 0, 0, 0, -272, -272, -272, -272, -272, -272, -272,
7213 -272, -272, -272, -272, -272, -272, 0, 0, -272, -272,
7214 -272, 0, 663, 0, 0, 0, 0, 0, 0, 0,
7215 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7216 0, 0, 0, 0, -94, -272, 0, -272, -272, -272,
7217 -272, -272, -272, -272, -272, -272, -272, 0, 0, 0,
7218 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7219 0, 0, 0, -272, -272, -272, -86, 0, 0, -272,
7220 0, -272, 4, -272, 5, 6, 7, 8, 9, -554,
7221 -554, -554, 10, 11, 0, 0, -554, 12, 0, 13,
7222 14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
7223 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
7224 27, 0, 0, 0, 0, 0, 28, 29, 30, 31,
7225 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
7226 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
7227 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7228 0, 0, 0, 0, 0, 0, 0, 48, 0, 0,
7229 49, 50, 0, 51, 52, 0, 53, 0, 54, 55,
7230 56, 57, 58, 59, 60, 0, 0, 0, 0, 0,
7231 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7232 0, 0, 0, 61, 62, 63, 0, 0, 0, 0,
7233 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7234 0, 0, 0, 0, 0, 0, 0, -554, 4, -554,
7235 5, 6, 7, 8, 9, 0, 0, -554, 10, 11,
7236 0, -554, -554, 12, 0, 13, 14, 15, 16, 17,
7237 18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
7238 23, 24, 25, 26, 0, 0, 27, 0, 0, 0,
7239 0, 0, 28, 29, 30, 31, 32, 33, 34, 35,
7240 36, 37, 38, 39, 40, 0, 41, 42, 0, 43,
7241 44, 45, 0, 46, 47, 0, 0, 0, 0, 0,
7242 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7243 0, 0, 0, 48, 0, 0, 49, 50, 0, 51,
7244 52, 0, 53, 0, 54, 55, 56, 57, 58, 59,
7245 60, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7246 0, 0, 0, 0, 0, 0, 0, 0, 0, 61,
7247 62, 63, 0, 0, 0, 0, 0, 0, 0, 0,
7248 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7249 0, 0, 0, -554, 4, -554, 5, 6, 7, 8,
7250 9, 0, 0, -554, 10, 11, 0, 0, -554, 12,
7251 -554, 13, 14, 15, 16, 17, 18, 19, 0, 0,
7252 0, 0, 0, 20, 21, 22, 23, 24, 25, 26,
7253 0, 0, 27, 0, 0, 0, 0, 0, 28, 29,
7254 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
7255 40, 0, 41, 42, 0, 43, 44, 45, 0, 46,
7256 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7257 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,
7258 0, 0, 49, 50, 0, 51, 52, 0, 53, 0,
7259 54, 55, 56, 57, 58, 59, 60, 0, 0, 0,
7260 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7261 0, 0, 0, 0, 0, 61, 62, 63, 0, 0,
7262 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7263 0, 0, 0, 0, 0, 0, 0, 0, 0, -554,
7264 4, -554, 5, 6, 7, 8, 9, 0, 0, -554,
7265 10, 11, 0, 0, -554, 12, 0, 13, 14, 15,
7266 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
7267 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
7268 0, 0, 0, 0, 28, 29, 30, 31, 32, 33,
7269 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
7270 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
7271 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7272 0, 0, 0, 0, 0, 48, 0, 0, 49, 50,
7273 0, 51, 52, 0, 53, 0, 54, 55, 56, 57,
7274 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
7275 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7276 0, 61, 62, 63, 0, 0, 0, 0, 0, 0,
7277 0, 4, 0, 5, 6, 7, 8, 9, 0, -554,
7278 -554, 10, 11, 0, 0, -554, 12, -554, 13, 14,
7279 15, 16, 17, 18, 19, 0, 0, 0, 0, 0,
7280 20, 21, 22, 23, 24, 25, 26, 0, 0, 27,
7281 0, 0, 0, 0, 0, 28, 29, 30, 31, 32,
7282 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
7283 42, 0, 43, 44, 45, 0, 46, 47, 0, 0,
7284 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7285 0, 0, 0, 0, 0, 0, 48, 0, 0, 49,
7286 50, 0, 51, 52, 0, 53, 0, 54, 55, 56,
7287 57, 58, 59, 60, 0, 0, 0, 0, 0, 0,
7288 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7289 0, 0, 61, 62, 63, 0, 0, 0, 0, 0,
7290 0, 0, 4, 0, 5, 6, 7, 8, 9, 0,
7291 0, 0, 10, 11, 0, 0, -554, 12, -554, 13,
7292 14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
7293 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
7294 27, 0, 0, 0, 0, 0, 28, 29, 30, 31,
7295 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
7296 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
7297 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7298 0, 0, 0, 0, 0, 0, 0, 48, 0, 0,
7299 237, 50, 0, 51, 52, 0, 53, 0, 54, 55,
7300 56, 57, 58, 59, 60, 0, 0, 0, 0, 0,
7301 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7302 0, 0, 0, 61, 62, 63, 0, 0, 0, 0,
7303 0, 0, 0, 4, 0, 5, 6, 7, 8, 9,
7304 0, 0, 0, 10, 11, -554, 0, -554, 12, -554,
7305 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
7306 0, 0, 20, 21, 22, 23, 24, 25, 26, 0,
7307 0, 27, 0, 0, 0, 0, 0, 28, 29, 30,
7308 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
7309 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
7310 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7311 0, 0, 0, 0, 0, 0, 0, 0, 48, 0,
7312 0, 49, 50, 0, 51, 52, 0, 53, 0, 54,
7313 55, 56, 57, 58, 59, 60, 0, 0, 0, 0,
7314 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7315 0, 0, 0, 0, 61, 62, 63, 0, 0, 0,
7316 0, 0, 0, 0, 4, 0, 5, 6, 7, 8,
7317 9, 0, 0, 0, 10, 11, -554, 0, -554, 12,
7318 -554, 13, 14, 15, 16, 17, 18, 19, 0, 0,
7319 0, 0, 0, 20, 21, 22, 23, 24, 25, 26,
7320 0, 0, 27, 0, 0, 0, 0, 0, 28, 29,
7321 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
7322 40, 0, 41, 42, 0, 43, 44, 45, 0, 46,
7323 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7324 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,
7325 0, 0, 49, 50, 0, 51, 52, 0, 53, 0,
7326 54, 55, 56, 57, 58, 59, 60, 0, 0, 0,
7327 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7328 0, 0, 0, 0, 0, 61, 62, 63, 0, 0,
7329 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7330 0, -554, 0, 0, 0, 0, 0, 0, 0, -554,
7331 4, -554, 5, 6, 7, 8, 9, 0, 0, -554,
7332 10, 11, 0, 0, 0, 12, 0, 13, 14, 15,
7333 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
7334 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
7335 0, 0, 0, 0, 28, 29, 30, 31, 32, 33,
7336 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
7337 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
7338 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7339 0, 0, 0, 0, 0, 48, 0, 0, 49, 50,
7340 0, 51, 52, 0, 53, 0, 54, 55, 56, 57,
7341 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
7342 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7343 0, 61, 62, 63, 0, 0, 0, 0, 0, 0,
7344 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
7345 0, 10, 11, 0, 0, -554, 12, -554, 13, 14,
7346 15, 191, 192, 18, 19, 0, 0, 0, 0, 0,
7347 193, 21, 22, 23, 24, 25, 26, 0, 0, 194,
7348 0, 0, 0, 0, 0, 0, 29, 0, 0, 32,
7349 33, 34, 35, 36, 37, 38, 39, 40, 195, 41,
7350 42, 0, 43, 44, 45, 0, 46, 47, 0, 0,
7351 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7352 0, 0, 0, 0, 0, 0, 196, 0, 0, 197,
7353 50, 0, 51, 52, 0, 198, 199, 54, 55, 56,
7354 57, 58, 59, 60, 0, 0, 0, 0, 0, 0,
7355 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7356 0, 0, 61, 200, 63, 5, 6, 7, 0, 9,
7357 0, 0, 0, 10, 11, 0, 0, 0, 12, 0,
7358 13, 14, 15, 16, 17, 18, 19, 0, 223, 0,
7359 0, 0, 20, 21, 22, 23, 24, 25, 26, 0,
7360 0, 27, 0, 0, 0, 0, 0, 0, 29, 0,
7361 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
7362 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
7363 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7364 0, 0, 0, 0, 0, 0, 0, 0, 196, 0,
7365 0, 197, 50, 0, 51, 52, 0, 0, 0, 54,
7366 55, 56, 57, 58, 59, 60, 0, 0, 0, 0,
7367 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7368 0, 0, 0, 0, 61, 62, 63, 0, 0, 0,
7369 0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
7370 9, 0, 0, 0, 10, 11, 0, 0, 279, 12,
7371 280, 13, 14, 15, 16, 17, 18, 19, 0, 0,
7372 0, 0, 0, 20, 21, 22, 23, 24, 25, 26,
7373 0, 0, 27, 0, 0, 0, 0, 0, 0, 29,
7374 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
7375 40, 0, 41, 42, 0, 43, 44, 45, 0, 46,
7376 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7377 0, 0, 0, 0, 0, 0, 0, 0, 0, 196,
7378 0, 0, 197, 50, 0, 51, 52, 0, 0, 0,
7379 54, 55, 56, 57, 58, 59, 60, 0, 0, 0,
7380 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7381 0, 0, 0, 0, 0, 61, 62, 63, 5, 6,
7382 7, 8, 9, 0, 0, 0, 10, 11, 0, 0,
7383 0, 12, 0, 13, 14, 15, 16, 17, 18, 19,
7384 0, 223, 0, 0, 0, 20, 21, 22, 23, 24,
7385 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
7386 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
7387 38, 39, 40, 0, 41, 42, 0, 43, 44, 45,
7388 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
7389 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7390 0, 48, 0, 0, 49, 50, 0, 51, 52, 0,
7391 53, 0, 54, 55, 56, 57, 58, 59, 60, 0,
7392 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7393 0, 0, 0, 0, 0, 0, 0, 61, 62, 63,
7394 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7395 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7396 0, 479, 110, 111, 112, 113, 114, 115, 116, 117,
7397 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
7398 128, 129, 130, 131, 132, 133, 0, 0, 0, 134,
7399 135, 136, 354, 355, 356, 357, 141, 142, 143, 0,
7400 0, 0, 0, 0, 144, 145, 146, 147, 358, 359,
7401 360, 361, 152, 37, 38, 362, 40, 0, 0, 0,
7402 0, 0, 0, 0, 0, 154, 155, 156, 157, 158,
7403 159, 160, 161, 162, 0, 0, 163, 164, 0, 0,
7404 165, 166, 167, 168, 0, 0, 0, 0, 0, 0,
7405 0, 0, 0, 0, 169, 0, 0, 0, 0, 0,
7406 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7407 0, 170, 171, 172, 173, 174, 175, 176, 177, 178,
7408 179, 0, 180, 181, 0, 0, 0, 0, 0, 0,
7409 -529, -529, -529, 0, -529, 0, 0, 0, -529, -529,
7410 0, 182, 363, -529, 0, -529, -529, -529, -529, -529,
7411 -529, -529, 0, -529, 0, 0, 0, -529, -529, -529,
7412 -529, -529, -529, -529, 0, 0, -529, 0, 0, 0,
7413 0, 0, 0, -529, 0, 0, -529, -529, -529, -529,
7414 -529, -529, -529, -529, -529, -529, -529, -529, 0, -529,
7415 -529, -529, 0, -529, -529, 0, 0, 0, 0, 0,
7416 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7417 0, 0, 0, -529, 0, 0, -529, -529, 0, -529,
7418 -529, 0, -529, -529, -529, -529, -529, -529, -529, -529,
7419 -529, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7420 0, 0, 0, 0, 0, 0, 0, 0, 0, -529,
7421 -529, -529, 0, 0, 0, 0, 0, 0, -530, -530,
7422 -530, 0, -530, 0, -529, 0, -530, -530, 0, 0,
7423 -529, -530, 0, -530, -530, -530, -530, -530, -530, -530,
7424 0, -530, 0, 0, 0, -530, -530, -530, -530, -530,
7425 -530, -530, 0, 0, -530, 0, 0, 0, 0, 0,
7426 0, -530, 0, 0, -530, -530, -530, -530, -530, -530,
7427 -530, -530, -530, -530, -530, -530, 0, -530, -530, -530,
7428 0, -530, -530, 0, 0, 0, 0, 0, 0, 0,
7429 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7430 0, -530, 0, 0, -530, -530, 0, -530, -530, 0,
7431 -530, -530, -530, -530, -530, -530, -530, -530, -530, 0,
7432 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7433 0, 0, 0, 0, 0, 0, 0, -530, -530, -530,
7434 0, 0, 0, 0, 0, 0, -532, -532, -532, 0,
7435 -532, 0, -530, 0, -532, -532, 0, 0, -530, -532,
7436 0, -532, -532, -532, -532, -532, -532, -532, 0, 0,
7437 0, 0, 0, -532, -532, -532, -532, -532, -532, -532,
7438 0, 0, -532, 0, 0, 0, 0, 0, 0, -532,
7439 0, 0, -532, -532, -532, -532, -532, -532, -532, -532,
7440 -532, -532, -532, -532, 0, -532, -532, -532, 0, -532,
7441 -532, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7442 0, 0, 0, 0, 0, 0, 0, 0, 0, -532,
7443 720, 0, -532, -532, 0, -532, -532, 0, -532, -532,
7444 -532, -532, -532, -532, -532, -532, -532, 0, 0, 0,
7445 0, 0, -92, 0, 0, 0, 0, 0, 0, 0,
7446 -534, -534, -534, 0, -534, -532, -532, -532, -534, -534,
7447 0, 0, 0, -534, 0, -534, -534, -534, -534, -534,
7448 -534, -534, 0, 0, 0, 0, -532, -534, -534, -534,
7449 -534, -534, -534, -534, 0, 0, -534, 0, 0, 0,
7450 0, 0, 0, -534, 0, 0, -534, -534, -534, -534,
7451 -534, -534, -534, -534, -534, -534, -534, -534, 0, -534,
7452 -534, -534, 0, -534, -534, 0, 0, 0, 0, 0,
7453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7454 0, 0, 0, -534, 0, 0, -534, -534, 0, -534,
7455 -534, 0, -534, -534, -534, -534, -534, -534, -534, -534,
7456 -534, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7457 0, 0, 0, 0, -535, -535, -535, 0, -535, -534,
7458 -534, -534, -535, -535, 0, 0, 0, -535, 0, -535,
7459 -535, -535, -535, -535, -535, -535, 0, 0, 0, 0,
7460 -534, -535, -535, -535, -535, -535, -535, -535, 0, 0,
7461 -535, 0, 0, 0, 0, 0, 0, -535, 0, 0,
7462 -535, -535, -535, -535, -535, -535, -535, -535, -535, -535,
7463 -535, -535, 0, -535, -535, -535, 0, -535, -535, 0,
7464 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7465 0, 0, 0, 0, 0, 0, 0, -535, 0, 0,
7466 -535, -535, 0, -535, -535, 0, -535, -535, -535, -535,
7467 -535, -535, -535, -535, -535, 0, 0, 0, 0, 0,
7468 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7469 0, 0, 0, -535, -535, -535, 0, 0, 0, 0,
7470 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7471 0, 0, 0, 0, -535, 110, 111, 112, 113, 114,
7472 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
7473 125, 126, 127, 128, 129, 130, 131, 132, 133, 0,
7474 0, 0, 134, 135, 136, 137, 138, 139, 140, 141,
7475 142, 143, 0, 0, 0, 0, 0, 144, 145, 146,
7476 147, 148, 149, 150, 151, 152, 261, 262, 153, 263,
7477 0, 0, 0, 0, 0, 0, 0, 0, 154, 155,
7478 156, 157, 158, 159, 160, 161, 162, 0, 0, 163,
7479 164, 0, 0, 165, 166, 167, 168, 0, 0, 0,
7480 0, 0, 0, 0, 0, 0, 0, 169, 0, 0,
7481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7482 0, 0, 0, 0, 170, 171, 172, 173, 174, 175,
7483 176, 177, 178, 179, 0, 180, 181, 0, 0, 0,
7484 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7485 0, 0, 0, 0, 182, 110, 111, 112, 113, 114,
7486 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
7487 125, 126, 127, 128, 129, 130, 131, 132, 133, 0,
7488 0, 0, 134, 135, 136, 137, 138, 139, 140, 141,
7489 142, 143, 0, 0, 0, 0, 0, 144, 145, 146,
7490 147, 148, 149, 150, 151, 152, 225, 0, 153, 0,
7491 0, 0, 0, 0, 0, 0, 0, 0, 154, 155,
7492 156, 157, 158, 159, 160, 161, 162, 0, 0, 163,
7493 164, 0, 0, 165, 166, 167, 168, 0, 0, 0,
7494 0, 0, 0, 0, 0, 0, 0, 169, 0, 0,
7495 55, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7496 0, 0, 0, 0, 170, 171, 172, 173, 174, 175,
7497 176, 177, 178, 179, 0, 180, 181, 0, 0, 0,
7498 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7499 0, 0, 0, 0, 182, 110, 111, 112, 113, 114,
7500 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
7501 125, 126, 127, 128, 129, 130, 131, 132, 133, 0,
7502 0, 0, 134, 135, 136, 137, 138, 139, 140, 141,
7503 142, 143, 0, 0, 0, 0, 0, 144, 145, 146,
7504 147, 148, 149, 150, 151, 152, 0, 0, 153, 0,
7505 0, 0, 0, 0, 0, 0, 0, 0, 154, 155,
7506 156, 157, 158, 159, 160, 161, 162, 0, 0, 163,
7507 164, 0, 0, 165, 166, 167, 168, 0, 0, 0,
7508 0, 0, 0, 0, 0, 0, 0, 169, 0, 0,
7509 55, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7510 0, 0, 0, 0, 170, 171, 172, 173, 174, 175,
7511 176, 177, 178, 179, 0, 180, 181, 0, 0, 0,
7512 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7513 0, 0, 0, 0, 182, 110, 111, 112, 113, 114,
7514 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
7515 125, 126, 127, 128, 129, 130, 131, 132, 133, 0,
7516 0, 0, 134, 135, 136, 137, 138, 139, 140, 141,
7517 142, 143, 0, 0, 0, 0, 0, 144, 145, 146,
7518 147, 148, 149, 150, 151, 152, 0, 0, 153, 0,
7519 0, 0, 0, 0, 0, 0, 0, 0, 154, 155,
7520 156, 157, 158, 159, 160, 161, 162, 0, 0, 163,
7521 164, 0, 0, 165, 166, 167, 168, 0, 0, 0,
7522 0, 0, 0, 0, 0, 0, 0, 169, 0, 0,
7523 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7524 0, 0, 0, 0, 170, 171, 172, 173, 174, 175,
7525 176, 177, 178, 179, 0, 180, 181, 0, 0, 0,
7526 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
7527 0, 0, 0, 12, 182, 13, 14, 15, 191, 192,
7528 18, 19, 0, 0, 0, 0, 0, 193, 230, 231,
7529 23, 24, 25, 26, 0, 0, 194, 0, 0, 0,
7530 0, 0, 0, 250, 0, 0, 32, 33, 34, 35,
7531 36, 37, 38, 39, 40, 0, 41, 42, 0, 43,
7532 44, 45, 0, 0, 0, 0, 0, 0, 0, 0,
7533 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7534 0, 0, 0, 251, 0, 0, 197, 50, 0, 51,
7535 52, 0, 0, 0, 54, 55, 56, 57, 58, 59,
7536 60, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7537 0, 0, 5, 6, 7, 0, 9, 0, 0, 252,
7538 10, 11, 0, 0, 0, 12, 0, 13, 14, 15,
7539 191, 192, 18, 19, 0, 0, 0, 0, 253, 193,
7540 230, 231, 23, 24, 25, 26, 0, 0, 194, 0,
7541 0, 0, 0, 0, 0, 250, 0, 0, 32, 33,
7542 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
7543 0, 43, 44, 45, 0, 0, 0, 0, 0, 0,
7544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7545 0, 0, 0, 0, 0, 251, 0, 0, 197, 50,
7546 0, 51, 52, 0, 0, 0, 54, 55, 56, 57,
7547 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
7548 0, 0, 0, 0, 5, 6, 7, 8, 9, 0,
7549 0, 252, 10, 11, 0, 0, 0, 12, 0, 13,
7550 14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
7551 495, 20, 21, 22, 23, 24, 25, 26, 0, 0,
7552 27, 0, 0, 0, 0, 0, 28, 29, 30, 31,
7553 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
7554 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
7555 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7556 0, 0, 0, 0, 0, 0, 0, 48, 0, 0,
7557 49, 50, 0, 51, 52, 0, 53, 0, 54, 55,
7558 56, 57, 58, 59, 60, 0, 0, 0, 0, 0,
7559 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
7560 0, 10, 11, 61, 62, 63, 12, 0, 13, 14,
7561 15, 191, 192, 18, 19, 0, 0, 0, 0, 0,
7562 193, 21, 22, 23, 24, 25, 26, 0, 0, 194,
7563 0, 0, 0, 0, 0, 0, 29, 0, 0, 32,
7564 33, 34, 35, 36, 37, 38, 39, 40, 195, 41,
7565 42, 0, 43, 44, 45, 0, 46, 47, 0, 0,
7566 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7567 0, 0, 0, 0, 0, 0, 196, 0, 0, 197,
7568 50, 0, 51, 52, 0, 198, 199, 54, 55, 56,
7569 57, 58, 59, 60, 0, 0, 0, 0, 0, 0,
7570 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
7571 10, 11, 61, 200, 63, 12, 0, 13, 14, 15,
7572 191, 192, 18, 19, 0, 0, 0, 0, 0, 193,
7573 230, 231, 23, 24, 25, 26, 0, 0, 194, 0,
7574 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
7575 34, 35, 36, 37, 38, 39, 40, 195, 41, 42,
7576 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
7577 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7578 0, 0, 0, 0, 0, 196, 0, 0, 197, 50,
7579 0, 51, 52, 0, 590, 199, 54, 55, 56, 57,
7580 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
7581 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
7582 11, 61, 200, 63, 12, 0, 13, 14, 15, 191,
7583 192, 18, 19, 0, 0, 0, 0, 0, 193, 230,
7584 231, 23, 24, 25, 26, 0, 0, 194, 0, 0,
7585 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
7586 35, 36, 37, 38, 39, 40, 195, 41, 42, 0,
7587 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
7588 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7589 0, 0, 0, 0, 196, 0, 0, 197, 50, 0,
7590 51, 52, 0, 198, 0, 54, 55, 56, 57, 58,
7591 59, 60, 0, 0, 0, 0, 0, 0, 0, 0,
7592 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
7593 61, 200, 63, 12, 0, 13, 14, 15, 191, 192,
7594 18, 19, 0, 0, 0, 0, 0, 193, 230, 231,
7595 23, 24, 25, 26, 0, 0, 194, 0, 0, 0,
7596 0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
7597 36, 37, 38, 39, 40, 195, 41, 42, 0, 43,
7598 44, 45, 0, 46, 47, 0, 0, 0, 0, 0,
7599 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7600 0, 0, 0, 196, 0, 0, 197, 50, 0, 51,
7601 52, 0, 0, 199, 54, 55, 56, 57, 58, 59,
7602 60, 0, 0, 0, 0, 0, 0, 0, 0, 5,
7603 6, 7, 0, 9, 0, 0, 0, 10, 11, 61,
7604 200, 63, 12, 0, 13, 14, 15, 191, 192, 18,
7605 19, 0, 0, 0, 0, 0, 193, 230, 231, 23,
7606 24, 25, 26, 0, 0, 194, 0, 0, 0, 0,
7607 0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
7608 37, 38, 39, 40, 195, 41, 42, 0, 43, 44,
7609 45, 0, 46, 47, 0, 0, 0, 0, 0, 0,
7610 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7611 0, 0, 196, 0, 0, 197, 50, 0, 51, 52,
7612 0, 590, 0, 54, 55, 56, 57, 58, 59, 60,
7613 0, 0, 0, 0, 0, 0, 0, 0, 5, 6,
7614 7, 0, 9, 0, 0, 0, 10, 11, 61, 200,
7615 63, 12, 0, 13, 14, 15, 191, 192, 18, 19,
7616 0, 0, 0, 0, 0, 193, 230, 231, 23, 24,
7617 25, 26, 0, 0, 194, 0, 0, 0, 0, 0,
7618 0, 29, 0, 0, 32, 33, 34, 35, 36, 37,
7619 38, 39, 40, 195, 41, 42, 0, 43, 44, 45,
7620 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
7621 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7622 0, 196, 0, 0, 197, 50, 0, 51, 52, 0,
7623 0, 0, 54, 55, 56, 57, 58, 59, 60, 0,
7624 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
7625 0, 9, 0, 0, 0, 10, 11, 61, 200, 63,
7626 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
7627 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
7628 26, 0, 0, 194, 0, 0, 0, 0, 0, 0,
7629 29, 0, 0, 32, 33, 34, 35, 36, 37, 38,
7630 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
7631 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
7632 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7633 196, 0, 0, 197, 50, 0, 51, 52, 0, 489,
7634 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
7635 0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
7636 9, 0, 0, 0, 10, 11, 61, 200, 63, 12,
7637 0, 13, 14, 15, 191, 192, 18, 19, 0, 0,
7638 0, 0, 0, 193, 230, 231, 23, 24, 25, 26,
7639 0, 0, 194, 0, 0, 0, 0, 0, 0, 29,
7640 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
7641 40, 0, 41, 42, 0, 43, 44, 45, 0, 46,
7642 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7643 0, 0, 0, 0, 0, 0, 0, 0, 0, 196,
7644 0, 0, 197, 50, 0, 51, 52, 0, 198, 0,
7645 54, 55, 56, 57, 58, 59, 60, 0, 0, 0,
7646 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
7647 0, 0, 0, 10, 11, 61, 200, 63, 12, 0,
7648 13, 14, 15, 191, 192, 18, 19, 0, 0, 0,
7649 0, 0, 193, 230, 231, 23, 24, 25, 26, 0,
7650 0, 194, 0, 0, 0, 0, 0, 0, 29, 0,
7651 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
7652 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
7653 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7654 0, 0, 0, 0, 0, 0, 0, 0, 196, 0,
7655 0, 197, 50, 0, 51, 52, 0, 763, 0, 54,
7656 55, 56, 57, 58, 59, 60, 0, 0, 0, 0,
7657 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
7658 0, 0, 10, 11, 61, 200, 63, 12, 0, 13,
7659 14, 15, 191, 192, 18, 19, 0, 0, 0, 0,
7660 0, 193, 230, 231, 23, 24, 25, 26, 0, 0,
7661 194, 0, 0, 0, 0, 0, 0, 29, 0, 0,
7662 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
7663 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
7664 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7665 0, 0, 0, 0, 0, 0, 0, 196, 0, 0,
7666 197, 50, 0, 51, 52, 0, 489, 0, 54, 55,
7667 56, 57, 58, 59, 60, 0, 0, 0, 0, 0,
7668 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
7669 0, 10, 11, 61, 200, 63, 12, 0, 13, 14,
7670 15, 191, 192, 18, 19, 0, 0, 0, 0, 0,
7671 193, 230, 231, 23, 24, 25, 26, 0, 0, 194,
7672 0, 0, 0, 0, 0, 0, 29, 0, 0, 32,
7673 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
7674 42, 0, 43, 44, 45, 0, 46, 47, 0, 0,
7675 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7676 0, 0, 0, 0, 0, 0, 196, 0, 0, 197,
7677 50, 0, 51, 52, 0, 590, 0, 54, 55, 56,
7678 57, 58, 59, 60, 0, 0, 0, 0, 0, 0,
7679 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
7680 10, 11, 61, 200, 63, 12, 0, 13, 14, 15,
7681 191, 192, 18, 19, 0, 0, 0, 0, 0, 193,
7682 230, 231, 23, 24, 25, 26, 0, 0, 194, 0,
7683 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
7684 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
7685 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
7686 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7687 0, 0, 0, 0, 0, 196, 0, 0, 197, 50,
7688 0, 51, 52, 0, 0, 0, 54, 55, 56, 57,
7689 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
7690 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
7691 11, 61, 200, 63, 12, 0, 13, 14, 15, 16,
7692 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
7693 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
7694 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
7695 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
7696 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
7697 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7698 0, 0, 0, 0, 196, 0, 0, 197, 50, 0,
7699 51, 52, 0, 0, 0, 54, 55, 56, 57, 58,
7700 59, 60, 0, 0, 0, 0, 0, 0, 0, 0,
7701 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
7702 61, 62, 63, 12, 0, 13, 14, 15, 16, 17,
7703 18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
7704 23, 24, 25, 26, 0, 0, 194, 0, 0, 0,
7705 0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
7706 36, 37, 38, 39, 40, 0, 41, 42, 0, 43,
7707 44, 45, 0, 46, 47, 0, 0, 0, 0, 0,
7708 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7709 0, 0, 0, 196, 0, 0, 197, 50, 0, 51,
7710 52, 0, 0, 0, 54, 55, 56, 57, 58, 59,
7711 60, 0, 0, 0, 0, 0, 0, 0, 0, 5,
7712 6, 7, 0, 9, 0, 0, 0, 10, 11, 61,
7713 200, 63, 12, 0, 13, 14, 15, 191, 192, 18,
7714 19, 0, 0, 0, 0, 0, 193, 230, 231, 23,
7715 24, 25, 26, 0, 0, 194, 0, 0, 0, 0,
7716 0, 0, 250, 0, 0, 32, 33, 34, 35, 36,
7717 37, 38, 39, 40, 0, 41, 42, 0, 43, 44,
7718 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7719 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7720 0, 0, 251, 0, 0, 295, 50, 0, 51, 52,
7721 0, 296, 0, 54, 55, 56, 57, 58, 59, 60,
7722 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
7723 0, 0, 10, 11, 0, 0, 0, 12, 252, 13,
7724 14, 15, 191, 192, 18, 19, 0, 0, 0, 0,
7725 0, 193, 230, 231, 23, 24, 25, 26, 0, 0,
7726 194, 0, 0, 0, 0, 0, 0, 250, 0, 0,
7727 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
7728 41, 42, 0, 43, 44, 45, 0, 0, 0, 0,
7729 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7730 0, 0, 0, 0, 0, 0, 0, 337, 0, 0,
7731 49, 50, 0, 51, 52, 0, 53, 0, 54, 55,
7732 56, 57, 58, 59, 60, 0, 0, 0, 0, 5,
7733 6, 7, 0, 9, 0, 0, 0, 10, 11, 0,
7734 0, 0, 12, 252, 13, 14, 15, 191, 192, 18,
7735 19, 0, 0, 0, 0, 0, 193, 230, 231, 23,
7736 24, 25, 26, 0, 0, 194, 0, 0, 0, 0,
7737 0, 0, 250, 0, 0, 32, 33, 34, 344, 36,
7738 37, 38, 345, 40, 0, 41, 42, 0, 43, 44,
7739 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7740 0, 0, 0, 0, 0, 0, 0, 0, 0, 346,
7741 0, 0, 347, 0, 0, 197, 50, 0, 51, 52,
7742 0, 0, 0, 54, 55, 56, 57, 58, 59, 60,
7743 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
7744 0, 0, 10, 11, 0, 0, 0, 12, 252, 13,
7745 14, 15, 191, 192, 18, 19, 0, 0, 0, 0,
7746 0, 193, 230, 231, 23, 24, 25, 26, 0, 0,
7747 194, 0, 0, 0, 0, 0, 0, 250, 0, 0,
7748 32, 33, 34, 344, 36, 37, 38, 345, 40, 0,
7749 41, 42, 0, 43, 44, 45, 0, 0, 0, 0,
7750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7751 0, 0, 0, 0, 0, 0, 0, 347, 0, 0,
7752 197, 50, 0, 51, 52, 0, 0, 0, 54, 55,
7753 56, 57, 58, 59, 60, 0, 0, 0, 0, 5,
7754 6, 7, 0, 9, 0, 0, 0, 10, 11, 0,
7755 0, 0, 12, 252, 13, 14, 15, 191, 192, 18,
7756 19, 0, 0, 0, 0, 0, 193, 230, 231, 23,
7757 24, 25, 26, 0, 0, 194, 0, 0, 0, 0,
7758 0, 0, 250, 0, 0, 32, 33, 34, 35, 36,
7759 37, 38, 39, 40, 0, 41, 42, 0, 43, 44,
7760 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7761 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7762 0, 0, 251, 0, 0, 295, 50, 0, 51, 52,
7763 0, 0, 0, 54, 55, 56, 57, 58, 59, 60,
7764 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
7765 0, 0, 10, 11, 0, 0, 0, 12, 252, 13,
7766 14, 15, 191, 192, 18, 19, 0, 0, 0, 0,
7767 0, 193, 230, 231, 23, 24, 25, 26, 0, 0,
7768 194, 0, 0, 0, 0, 0, 0, 250, 0, 0,
7769 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
7770 41, 42, 0, 43, 44, 45, 0, 0, 0, 0,
7771 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7772 0, 0, 0, 0, 0, 0, 0, 882, 0, 0,
7773 197, 50, 0, 51, 52, 0, 0, 0, 54, 55,
7774 56, 57, 58, 59, 60, 0, 0, 0, 0, 5,
7775 6, 7, 0, 9, 0, 0, 0, 10, 11, 0,
7776 0, 0, 12, 252, 13, 14, 15, 191, 192, 18,
7777 19, 0, 0, 0, 0, 0, 193, 230, 231, 23,
7778 24, 25, 26, 0, 0, 194, 0, 0, 0, 0,
7779 0, 0, 250, 0, 0, 32, 33, 34, 35, 36,
7780 37, 38, 39, 40, 0, 41, 42, 0, 43, 44,
7781 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7782 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7783 0, 0, 891, 0, 0, 197, 50, 0, 51, 52,
7784 0, 0, 0, 54, 55, 56, 57, 58, 59, 60,
7785 0, 0, 0, 0, 0, 528, 529, 0, 0, 530,
7786 0, 0, 0, 0, 0, 0, 0, 0, 252, 154,
7787 155, 156, 157, 158, 159, 160, 161, 162, 0, 0,
7788 163, 164, 0, 0, 165, 166, 167, 168, 0, 0,
7789 0, 0, 0, 0, 0, 0, 0, 0, 169, 0,
7790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7791 0, 0, 0, 0, 0, 170, 171, 172, 173, 174,
7792 175, 176, 177, 178, 179, 0, 180, 181, 0, 0,
7793 0, 0, 0, 536, 537, 0, 0, 538, 0, 0,
7794 0, 0, 0, 0, 0, 182, 219, 154, 155, 156,
7795 157, 158, 159, 160, 161, 162, 0, 0, 163, 164,
7796 0, 0, 165, 166, 167, 168, 0, 0, 0, 0,
7797 0, 0, 0, 0, 0, 0, 169, 0, 0, 0,
7798 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7799 0, 0, 0, 170, 171, 172, 173, 174, 175, 176,
7800 177, 178, 179, 0, 180, 181, 0, 0, 0, 0,
7801 0, 594, 529, 0, 0, 595, 0, 0, 0, 0,
7802 0, 0, 0, 182, 219, 154, 155, 156, 157, 158,
7803 159, 160, 161, 162, 0, 0, 163, 164, 0, 0,
7804 165, 166, 167, 168, 0, 0, 0, 0, 0, 0,
7805 0, 0, 0, 0, 169, 0, 0, 0, 0, 0,
7806 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7807 0, 170, 171, 172, 173, 174, 175, 176, 177, 178,
7808 179, 0, 180, 181, 0, 0, 0, 0, 0, 597,
7809 537, 0, 0, 598, 0, 0, 0, 0, 0, 0,
7810 0, 182, 219, 154, 155, 156, 157, 158, 159, 160,
7811 161, 162, 0, 0, 163, 164, 0, 0, 165, 166,
7812 167, 168, 0, 0, 0, 0, 0, 0, 0, 0,
7813 0, 0, 169, 0, 0, 0, 0, 0, 0, 0,
7814 0, 0, 0, 0, 0, 0, 0, 0, 0, 170,
7815 171, 172, 173, 174, 175, 176, 177, 178, 179, 0,
7816 180, 181, 0, 0, 0, 0, 0, 617, 529, 0,
7817 0, 618, 0, 0, 0, 0, 0, 0, 0, 182,
7818 219, 154, 155, 156, 157, 158, 159, 160, 161, 162,
7819 0, 0, 163, 164, 0, 0, 165, 166, 167, 168,
7820 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7821 169, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7822 0, 0, 0, 0, 0, 0, 0, 170, 171, 172,
7823 173, 174, 175, 176, 177, 178, 179, 0, 180, 181,
7824 0, 0, 0, 0, 0, 620, 537, 0, 0, 621,
7825 0, 0, 0, 0, 0, 0, 0, 182, 219, 154,
7826 155, 156, 157, 158, 159, 160, 161, 162, 0, 0,
7827 163, 164, 0, 0, 165, 166, 167, 168, 0, 0,
7828 0, 0, 0, 0, 0, 0, 0, 0, 169, 0,
7829 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7830 0, 0, 0, 0, 0, 170, 171, 172, 173, 174,
7831 175, 176, 177, 178, 179, 0, 180, 181, 0, 0,
7832 0, 0, 0, 689, 529, 0, 0, 690, 0, 0,
7833 0, 0, 0, 0, 0, 182, 219, 154, 155, 156,
7834 157, 158, 159, 160, 161, 162, 0, 0, 163, 164,
7835 0, 0, 165, 166, 167, 168, 0, 0, 0, 0,
7836 0, 0, 0, 0, 0, 0, 169, 0, 0, 0,
7837 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7838 0, 0, 0, 170, 171, 172, 173, 174, 175, 176,
7839 177, 178, 179, 0, 180, 181, 0, 0, 0, 0,
7840 0, 692, 537, 0, 0, 693, 0, 0, 0, 0,
7841 0, 0, 0, 182, 219, 154, 155, 156, 157, 158,
7842 159, 160, 161, 162, 0, 0, 163, 164, 0, 0,
7843 165, 166, 167, 168, 0, 0, 0, 0, 0, 0,
7844 0, 0, 0, 0, 169, 0, 0, 0, 0, 0,
7845 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7846 0, 170, 171, 172, 173, 174, 175, 176, 177, 178,
7847 179, 0, 180, 181, 0, 0, 0, 0, 0, 699,
7848 529, 0, 0, 700, 0, 0, 0, 0, 0, 0,
7849 0, 182, 219, 154, 155, 156, 157, 158, 159, 160,
7850 161, 162, 0, 0, 163, 164, 0, 0, 165, 166,
7851 167, 168, 0, 0, 0, 0, 0, 0, 0, 0,
7852 0, 0, 169, 0, 0, 0, 0, 0, 0, 0,
7853 0, 0, 0, 0, 0, 0, 0, 0, 0, 170,
7854 171, 172, 173, 174, 175, 176, 177, 178, 179, 0,
7855 180, 181, 0, 0, 0, 0, 0, 575, 537, 0,
7856 0, 576, 0, 0, 0, 0, 0, 0, 0, 182,
7857 219, 154, 155, 156, 157, 158, 159, 160, 161, 162,
7858 0, 0, 163, 164, 0, 0, 165, 166, 167, 168,
7859 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7860 169, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7861 0, 0, 0, 0, 0, 0, 0, 170, 171, 172,
7862 173, 174, 175, 176, 177, 178, 179, 0, 180, 181,
7863 0, 0, 0, 0, 0, 937, 529, 0, 0, 938,
7864 0, 0, 0, 0, 0, 0, 0, 182, 219, 154,
7865 155, 156, 157, 158, 159, 160, 161, 162, 0, 0,
7866 163, 164, 0, 0, 165, 166, 167, 168, 0, 0,
7867 0, 0, 0, 0, 0, 0, 0, 0, 169, 0,
7868 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7869 0, 0, 0, 0, 0, 170, 171, 172, 173, 174,
7870 175, 176, 177, 178, 179, 0, 180, 181, 0, 0,
7871 0, 0, 0, 943, 529, 0, 0, 944, 0, 0,
7872 0, 0, 0, 0, 0, 182, 219, 154, 155, 156,
7873 157, 158, 159, 160, 161, 162, 0, 0, 163, 164,
7874 0, 0, 165, 166, 167, 168, 0, 0, 0, 0,
7875 0, 0, 0, 0, 0, 0, 169, 0, 0, 0,
7876 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7877 0, 0, 0, 170, 171, 172, 173, 174, 175, 176,
7878 177, 178, 179, 0, 180, 181, 0, 0, 0, 0,
7879 0, 946, 537, 0, 0, 947, 0, 0, 0, 0,
7880 0, 0, 0, 182, 219, 154, 155, 156, 157, 158,
7881 159, 160, 161, 162, 0, 0, 163, 164, 0, 0,
7882 165, 166, 167, 168, 0, 0, 0, 0, 0, 0,
7883 0, 0, 0, 0, 169, 0, 0, 0, 0, 0,
7884 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7885 0, 170, 171, 172, 173, 174, 175, 176, 177, 178,
7886 179, 0, 180, 181, 0, 0, 0, 0, 0, 575,
7887 537, 0, 0, 576, 0, 0, 0, 0, 0, 0,
7888 0, 182, 219, 154, 155, 156, 157, 158, 159, 160,
7889 161, 162, 0, 0, 163, 164, 0, 0, 165, 166,
7890 167, 168, 0, 0, 0, 0, 0, 0, 0, 0,
7891 0, 0, 169, 0, 0, 0, 0, 0, 660, 0,
7892 0, 0, 0, 0, 0, 0, 0, 0, 0, 170,
7893 171, 172, 173, 174, 175, 176, 177, 178, 179, 0,
7894 180, 181, 299, 300, 301, 302, 303, 304, 305, 306,
7895 307, 308, 309, 310, 311, 0, 0, 312, 313, 182,
7896 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7897 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7898 0, 0, 0, 0, 314, 0, 315, 316, 317, 318,
7899 319, 320, 321, 322, 323, 324
7902 static const yytype_int16 yycheck[] =
7904 2, 55, 4, 8, 52, 74, 22, 27, 8, 29,
7905 51, 260, 331, 326, 16, 17, 28, 62, 20, 53,
7906 212, 65, 550, 28, 4, 260, 298, 244, 28, 85,
7907 549, 248, 569, 596, 434, 89, 50, 8, 16, 17,
7908 74, 85, 20, 1, 347, 51, 52, 49, 50, 53,
7909 443, 53, 86, 87, 88, 55, 619, 28, 49, 267,
7910 62, 637, 735, 271, 325, 634, 327, 81, 82, 733,
7911 677, 85, 74, 25, 681, 25, 389, 22, 29, 81,
7912 82, 25, 61, 85, 86, 87, 88, 25, 237, 89,
7913 731, 107, 579, 580, 840, 495, 26, 16, 17, 85,
7914 87, 20, 109, 0, 61, 393, 367, 368, 37, 38,
7915 25, 87, 82, 87, 76, 85, 85, 25, 85, 651,
7916 85, 25, 109, 436, 148, 104, 105, 388, 691, 390,
7917 56, 85, 13, 109, 141, 109, 424, 61, 85, 702,
7918 385, 65, 25, 59, 60, 25, 295, 195, 393, 106,
7919 198, 199, 114, 414, 140, 113, 107, 109, 25, 109,
7920 634, 698, 107, 637, 2, 13, 4, 141, 147, 706,
7921 139, 140, 918, 140, 815, 140, 437, 651, 16, 17,
7922 104, 105, 20, 52, 253, 139, 140, 56, 146, 141,
7923 148, 141, 144, 140, 144, 197, 148, 141, 148, 448,
7924 13, 137, 27, 141, 877, 143, 13, 137, 222, 873,
7925 224, 49, 50, 448, 216, 231, 218, 219, 234, 253,
7926 222, 13, 224, 755, 62, 13, 141, 229, 143, 716,
7927 250, 624, 625, 141, 875, 237, 26, 141, 216, 222,
7928 218, 219, 555, 81, 82, 293, 237, 85, 293, 825,
7929 298, 253, 293, 298, 567, 862, 239, 298, 141, 659,
7930 829, 141, 296, 566, 472, 146, 28, 148, 909, 838,
7931 284, 285, 286, 287, 141, 289, 290, 796, 334, 37,
7932 38, 283, 284, 285, 286, 287, 288, 289, 290, 147,
7933 334, 293, 296, 295, 296, 556, 298, 216, 146, 218,
7934 148, 147, 85, 283, 295, 349, 141, 568, 288, 59,
7935 60, 327, 85, 148, 284, 285, 286, 287, 332, 333,
7936 85, 146, 571, 148, 326, 325, 328, 864, 373, 374,
7937 332, 333, 346, 146, 862, 148, 384, 385, 731, 146,
7938 733, 148, 68, 109, 346, 393, 141, 137, 326, 141,
7939 85, 825, 85, 143, 146, 143, 148, 140, 146, 197,
7940 148, 26, 332, 333, 838, 434, 840, 140, 687, 906,
7941 26, 373, 374, 421, 390, 140, 424, 109, 216, 385,
7942 218, 219, 945, 85, 222, 85, 224, 389, 388, 99,
7943 148, 229, 87, 119, 120, 121, 408, 614, 414, 237,
7944 434, 593, 651, 408, 676, 140, 139, 140, 408, 411,
7945 143, 389, 395, 413, 109, 421, 399, 141, 85, 402,
7946 85, 437, 815, 816, 148, 143, 495, 14, 15, 85,
7947 148, 85, 434, 416, 436, 435, 419, 408, 140, 139,
7948 140, 489, 87, 85, 918, 283, 284, 285, 286, 287,
7949 288, 289, 290, 87, 87, 293, 705, 295, 436, 85,
7950 298, 495, 141, 52, 109, 54, 55, 56, 57, 85,
7951 705, 143, 137, 140, 139, 140, 109, 87, 143, 85,
7952 873, 137, 875, 139, 140, 139, 140, 143, 326, 56,
7953 328, 26, 54, 495, 332, 333, 141, 517, 140, 109,
7954 89, 63, 64, 551, 548, 549, 95, 96, 346, 85,
7955 551, 494, 109, 139, 140, 535, 909, 533, 562, 87,
7956 15, 552, 17, 139, 140, 541, 26, 116, 88, 85,
7957 119, 850, 665, 139, 140, 373, 374, 856, 87, 672,
7958 556, 109, 590, 545, 87, 547, 615, 87, 577, 578,
7959 85, 389, 568, 555, 554, 85, 570, 146, 87, 141,
7960 109, 577, 578, 139, 140, 567, 566, 569, 570, 109,
7961 57, 58, 85, 411, 622, 587, 596, 555, 141, 143,
7962 109, 615, 587, 139, 140, 85, 137, 587, 533, 567,
7963 659, 605, 141, 609, 610, 143, 541, 637, 436, 619,
7964 640, 141, 137, 605, 139, 140, 143, 85, 656, 139,
7965 140, 651, 141, 615, 68, 928, 587, 662, 144, 146,
7966 869, 148, 145, 668, 669, 659, 139, 140, 676, 631,
7967 632, 87, 577, 578, 109, 676, 138, 137, 56, 139,
7968 140, 643, 141, 143, 52, 628, 54, 55, 56, 57,
7969 652, 695, 68, 109, 708, 686, 61, 659, 106, 106,
7970 662, 139, 140, 707, 68, 141, 668, 669, 929, 17,
7971 56, 691, 703, 52, 146, 54, 55, 56, 57, 25,
7972 694, 94, 702, 697, 144, 141, 52, 68, 54, 55,
7973 56, 57, 694, 138, 109, 697, 698, 141, 141, 104,
7974 105, 106, 83, 84, 706, 141, 141, 545, 708, 547,
7975 52, 713, 714, 141, 52, 763, 147, 555, 141, 141,
7976 61, 704, 141, 89, 694, 10, 13, 697, 773, 567,
7977 96, 569, 570, 141, 61, 116, 117, 118, 119, 120,
7978 121, 724, 8, 138, 141, 793, 146, 730, 141, 2,
7979 116, 4, 796, 736, 798, 111, 787, 145, 789, 15,
7980 68, 141, 141, 104, 105, 106, 10, 605, 799, 138,
7981 141, 773, 786, 804, 141, 83, 84, 104, 105, 106,
7982 141, 783, 61, 141, 786, 825, 68, 827, 790, 791,
7983 109, 831, 794, 631, 632, 138, 49, 114, 88, 10,
7984 840, 835, 842, 51, 52, 643, 141, 141, 810, 117,
7985 118, 119, 120, 121, 652, 849, 786, 141, 16, 17,
7986 803, 141, 20, 9, 662, 104, 105, 106, 859, 860,
7987 668, 669, 10, 835, 138, 117, 118, 119, 120, 121,
7988 52, 141, 54, 55, 56, 57, 141, 849, 46, 47,
7989 114, 853, 141, 51, 52, 138, 694, 141, 86, 697,
7990 698, 141, 864, 56, 62, 63, 141, 141, 706, 141,
7991 143, 56, 912, 143, 905, 713, 714, 89, 918, 141,
7992 920, 88, 931, 923, 624, 877, 91, 52, 930, 54,
7993 55, 56, 57, 94, 896, 52, 898, 54, 55, 56,
7994 57, 932, 904, 934, 906, 89, 52, 838, 54, 55,
7995 56, 57, 634, 929, 954, 65, 869, 917, -1, 54,
7996 55, -1, 57, -1, 89, 945, 928, 927, 63, 64,
7997 95, 96, 89, -1, -1, 773, -1, 52, 95, 54,
7998 55, 56, 57, 89, 197, 783, -1, -1, 786, 95,
7999 928, 116, 790, 791, 119, -1, 794, -1, -1, 207,
8000 -1, -1, -1, -1, 212, 40, 41, 42, 43, 44,
8001 -1, 219, 810, -1, -1, -1, 229, -1, 2, -1,
8002 -1, -1, -1, -1, 237, 52, -1, 54, 55, 56,
8003 57, -1, -1, -1, -1, -1, 0, 195, -1, -1,
8004 198, 199, 200, -1, 8, 9, 10, -1, -1, 13,
8005 14, 15, -1, 17, -1, 853, -1, -1, 216, -1,
8006 218, 219, 89, 27, -1, 49, 864, -1, 95, 96,
8007 283, -1, -1, 37, 38, 288, 40, 41, 42, 43,
8008 44, -1, 295, -1, -1, -1, -1, -1, -1, 116,
8009 -1, -1, 119, -1, -1, -1, -1, -1, 896, -1,
8010 898, -1, -1, -1, -1, -1, 904, -1, 906, -1,
8011 -1, -1, -1, -1, -1, 328, 143, -1, 326, -1,
8012 -1, 85, -1, -1, -1, -1, -1, -1, -1, -1,
8013 928, -1, -1, -1, -1, 293, -1, -1, -1, -1,
8014 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
8015 308, 309, 310, 311, 312, 313, 314, 315, 316, 317,
8016 318, 319, 320, 321, 322, 323, 324, -1, 326, -1,
8017 -1, -1, -1, -1, 138, -1, 140, -1, -1, 143,
8018 144, 389, 146, -1, 148, -1, -1, -1, -1, -1,
8019 -1, -1, -1, -1, -1, -1, -1, -1, 411, -1,
8020 52, -1, 54, 55, 56, 57, -1, -1, -1, -1,
8021 -1, -1, -1, 197, -1, 373, 374, 52, -1, 54,
8022 55, 56, 57, 68, -1, 383, 384, 385, 436, -1,
8023 -1, 389, -1, 391, 392, 393, -1, 89, 83, 84,
8024 -1, -1, -1, 95, 96, 229, 454, -1, 456, -1,
8025 458, -1, 410, 237, 89, -1, -1, 415, -1, -1,
8026 95, 96, -1, 421, 116, -1, 424, 119, -1, 114,
8027 115, 116, 117, 118, 119, 120, 121, -1, 436, -1,
8028 488, 116, -1, -1, 119, -1, -1, -1, -1, -1,
8029 -1, 143, -1, 2, -1, 4, -1, -1, -1, -1,
8030 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8031 -1, 295, -1, -1, -1, -1, -1, -1, -1, 477,
8032 478, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8033 -1, 489, 545, 541, 547, 543, -1, -1, -1, -1,
8034 49, -1, -1, -1, 53, -1, -1, 555, -1, -1,
8035 -1, -1, -1, -1, -1, -1, 569, -1, -1, 567,
8036 -1, -1, -1, -1, -1, 74, -1, -1, -1, 577,
8037 578, 579, 580, -1, -1, -1, -1, 86, 87, 88,
8038 89, -1, -1, -1, -1, 593, -1, -1, -1, -1,
8039 -1, -1, -1, 551, -1, -1, -1, 555, -1, -1,
8040 -1, -1, 610, -1, -1, -1, -1, -1, -1, 567,
8041 -1, 2, -1, 4, -1, -1, -1, -1, 631, 632,
8042 -1, -1, 630, -1, -1, -1, -1, 411, -1, -1,
8043 643, -1, 590, -1, -1, -1, -1, -1, -1, 652,
8044 -1, -1, -1, 651, -1, -1, -1, -1, -1, -1,
8045 -1, -1, -1, -1, -1, 456, -1, 458, 49, -1,
8046 -1, -1, 53, -1, 622, -1, -1, -1, 676, 677,
8047 -1, 679, -1, 681, -1, -1, -1, -1, -1, -1,
8048 -1, -1, -1, 74, -1, 698, -1, -1, 197, -1,
8049 -1, -1, -1, 706, -1, 86, 87, 88, 656, -1,
8050 713, 714, 660, -1, 662, 663, -1, -1, 716, -1,
8051 668, 669, -1, -1, -1, -1, -1, -1, 676, -1,
8052 229, -1, -1, -1, -1, -1, -1, -1, 237, -1,
8053 -1, -1, -1, 741, 742, -1, 744, -1, 746, 747,
8054 -1, -1, -1, -1, 253, -1, -1, 755, -1, 757,
8055 -1, 759, 760, -1, -1, -1, -1, 715, -1, -1,
8056 -1, 545, 720, 547, 722, 723, -1, -1, -1, -1,
8057 783, -1, -1, 781, 283, -1, 784, 790, 791, 288,
8058 -1, 794, 2, -1, 4, -1, 295, 296, -1, -1,
8059 -1, -1, -1, -1, -1, -1, -1, 810, -1, -1,
8060 -1, -1, -1, -1, -1, 763, 197, -1, -1, 767,
8061 -1, -1, -1, -1, -1, 773, -1, -1, -1, 328,
8062 -1, -1, -1, -1, -1, -1, -1, -1, -1, 49,
8063 -1, -1, -1, -1, -1, 793, -1, -1, 229, -1,
8064 853, -1, -1, -1, -1, -1, 237, 631, 632, -1,
8065 -1, 864, -1, 811, 862, -1, -1, -1, -1, 643,
8066 -1, -1, 253, -1, -1, -1, 86, -1, 652, -1,
8067 878, 879, 880, 881, -1, -1, -1, 885, 886, 887,
8068 -1, 889, 890, 896, -1, 898, -1, -1, -1, -1,
8069 -1, 904, 283, 906, -1, -1, -1, 288, -1, -1,
8070 -1, -1, 411, -1, 295, 296, -1, -1, -1, -1,
8071 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8072 928, -1, 930, 931, -1, 434, -1, -1, 936, 713,
8073 714, 939, 940, 941, 942, -1, -1, 328, -1, -1,
8074 741, 742, -1, 744, -1, 746, 747, -1, -1, -1,
8075 -1, 959, -1, -1, -1, -1, 757, -1, 759, 760,
8076 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8077 928, -1, -1, -1, -1, -1, -1, 197, -1, -1,
8078 -1, -1, -1, -1, -1, -1, 495, -1, -1, -1,
8079 -1, -1, -1, -1, -1, -1, -1, -1, -1, 783,
8080 -1, -1, -1, -1, -1, -1, 790, 791, -1, 229,
8081 794, -1, -1, -1, -1, -1, -1, 237, -1, -1,
8082 411, -1, -1, -1, -1, -1, 810, -1, -1, -1,
8083 -1, -1, -1, -1, -1, -1, 545, -1, 547, -1,
8084 -1, -1, -1, 434, -1, -1, 68, 69, 70, 71,
8085 72, 73, 74, 75, 76, 77, 78, 79, 80, -1,
8086 569, 83, 84, 283, -1, -1, -1, -1, 288, 853,
8087 -1, -1, -1, -1, -1, 295, -1, 878, 879, 880,
8088 881, -1, -1, -1, 885, 886, 887, -1, 889, 890,
8089 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
8090 -1, -1, -1, -1, 495, -1, 615, -1, 328, -1,
8091 -1, -1, 896, -1, 898, -1, -1, -1, -1, -1,
8092 904, -1, 631, 632, -1, -1, -1, -1, -1, -1,
8093 -1, -1, -1, -1, 643, 936, -1, -1, 939, 940,
8094 941, 942, -1, 652, -1, -1, -1, -1, -1, -1,
8095 659, -1, -1, -1, 545, -1, 547, -1, 959, -1,
8096 -1, -1, -1, -1, 68, 69, 70, 71, 72, 73,
8097 74, 75, 76, 77, 78, 79, 80, -1, 569, 83,
8098 84, -1, -1, -1, -1, -1, -1, -1, -1, 698,
8099 -1, 411, -1, -1, -1, -1, -1, 706, -1, -1,
8100 -1, -1, -1, -1, 713, 714, 110, -1, 112, 113,
8101 114, 115, 116, 117, 118, 119, 120, 121, -1, -1,
8102 -1, -1, -1, -1, 615, -1, -1, -1, -1, -1,
8103 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8104 631, 632, -1, -1, 148, -1, -1, -1, -1, -1,
8105 -1, -1, 643, 644, -1, -1, -1, -1, -1, -1,
8106 -1, 652, -1, -1, -1, -1, -1, -1, 659, -1,
8107 -1, -1, -1, -1, 783, -1, -1, -1, -1, -1,
8108 -1, 790, 791, -1, -1, 794, -1, -1, -1, -1,
8109 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8110 -1, 810, -1, -1, -1, -1, -1, 698, -1, -1,
8111 -1, -1, -1, -1, -1, 706, -1, -1, -1, -1,
8112 -1, -1, 713, 714, -1, 545, 835, 547, -1, -1,
8113 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
8114 849, 77, 78, -1, 853, -1, -1, 83, 84, 569,
8115 -1, -1, -1, -1, -1, 864, -1, -1, -1, -1,
8116 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8117 -1, -1, -1, -1, -1, -1, 112, 113, 114, 115,
8118 116, 117, 118, 119, 120, 121, -1, 896, -1, 898,
8119 -1, -1, 783, -1, -1, 904, -1, 906, -1, 790,
8120 791, -1, -1, 794, -1, -1, -1, -1, -1, -1,
8121 -1, 631, 632, -1, -1, -1, -1, -1, -1, 810,
8122 -1, -1, -1, 643, -1, -1, -1, -1, -1, -1,
8123 -1, -1, 652, -1, -1, -1, -1, -1, -1, -1,
8124 -1, -1, -1, -1, 835, -1, -1, -1, -1, -1,
8125 -1, 68, 69, 70, 71, 72, 73, 74, 849, -1,
8126 77, 78, 853, -1, -1, -1, 83, 84, -1, -1,
8127 -1, -1, -1, 864, -1, -1, -1, -1, 698, -1,
8128 -1, -1, -1, -1, -1, -1, 706, -1, -1, -1,
8129 -1, -1, -1, 713, 714, 112, 113, 114, 115, 116,
8130 117, 118, 119, 120, 121, 896, -1, 898, -1, 44,
8131 -1, -1, -1, 904, -1, 906, -1, -1, -1, -1,
8132 -1, -1, -1, -1, -1, -1, 44, -1, -1, -1,
8133 -1, -1, -1, 68, 69, 70, 71, 72, 73, 74,
8134 75, 76, 77, 78, 79, 80, -1, -1, 83, 84,
8135 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
8136 78, 79, 80, 783, -1, 83, 84, -1, -1, -1,
8137 790, 791, -1, -1, 794, 110, -1, 112, 113, 114,
8138 115, 116, 117, 118, 119, 120, 121, -1, -1, -1,
8139 810, -1, 110, -1, 112, 113, 114, 115, 116, 117,
8140 118, 119, 120, 121, 0, 1, 141, 3, 4, 5,
8141 6, 7, -1, -1, -1, 11, 12, -1, -1, -1,
8142 16, -1, 18, 19, 20, 21, 22, 23, 24, 849,
8143 -1, -1, -1, 853, 30, 31, 32, 33, 34, 35,
8144 36, -1, -1, 39, 864, -1, -1, -1, -1, 45,
8145 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
8146 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
8147 66, 67, -1, -1, -1, -1, 896, -1, 898, -1,
8148 -1, -1, -1, -1, 904, -1, 906, -1, -1, -1,
8149 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
8150 -1, 97, 98, 99, 100, 101, 102, 103, -1, -1,
8151 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8152 -1, -1, -1, -1, -1, -1, 122, 123, 124, 0,
8153 -1, -1, -1, -1, -1, -1, -1, 8, 9, 10,
8154 -1, -1, 13, 14, 15, -1, 17, -1, -1, -1,
8155 146, -1, 148, -1, -1, -1, 27, 28, 29, -1,
8156 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
8157 41, 42, 43, 44, -1, -1, -1, -1, -1, -1,
8158 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
8159 78, 79, 80, -1, -1, 83, 84, 68, 69, 70,
8160 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
8161 -1, -1, 83, 84, 85, -1, 87, 88, -1, -1,
8162 -1, -1, 110, 94, 112, 113, 114, 115, 116, 117,
8163 118, 119, 120, 121, -1, -1, 107, -1, 109, 110,
8164 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
8165 121, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8166 -1, -1, -1, -1, -1, -1, -1, 138, 139, 140,
8167 141, 0, -1, 144, 145, 146, -1, 148, -1, 8,
8168 9, 10, -1, -1, 13, 14, 15, -1, 17, -1,
8169 -1, -1, -1, -1, -1, -1, -1, 26, 27, 28,
8170 -1, -1, -1, -1, -1, -1, -1, -1, 37, 38,
8171 -1, 40, 41, 42, 43, 44, -1, -1, -1, -1,
8172 -1, -1, 68, 69, 70, 71, 72, 73, 74, -1,
8173 -1, 77, 78, -1, -1, -1, -1, 83, 84, 68,
8174 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
8175 79, 80, -1, -1, 83, 84, 85, -1, -1, 88,
8176 -1, -1, -1, -1, -1, 94, 112, 113, 114, 115,
8177 116, 117, 118, 119, 120, 121, -1, -1, -1, -1,
8178 -1, 110, -1, 112, 113, 114, 115, 116, 117, 118,
8179 119, 120, 121, -1, -1, -1, -1, -1, -1, -1,
8180 -1, -1, -1, -1, -1, -1, -1, -1, 137, 138,
8181 139, 140, 141, 0, 143, 144, 145, 146, -1, 148,
8182 -1, 8, 9, 10, -1, -1, 13, 14, 15, -1,
8183 17, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8184 27, 28, 29, -1, -1, -1, -1, -1, -1, -1,
8185 37, 38, -1, 40, 41, 42, 43, 44, -1, -1,
8186 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8187 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8188 -1, 68, 69, 70, 71, 72, 73, 74, 75, 76,
8189 77, 78, 79, 80, -1, -1, 83, 84, 85, -1,
8190 -1, 88, -1, -1, -1, -1, -1, 94, -1, -1,
8191 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8192 107, -1, -1, 110, 111, 112, 113, 114, 115, 116,
8193 117, 118, 119, 120, 121, -1, -1, -1, -1, -1,
8194 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8195 -1, 138, 139, 140, 141, 0, -1, 144, 145, 146,
8196 -1, 148, -1, 8, 9, 10, -1, -1, 13, 14,
8197 15, -1, 17, -1, -1, -1, -1, -1, -1, -1,
8198 -1, 26, 27, 28, -1, -1, -1, -1, -1, -1,
8199 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
8200 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8201 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8202 -1, -1, -1, 68, 69, 70, 71, 72, 73, 74,
8203 75, 76, 77, 78, 79, 80, -1, -1, 83, 84,
8204 85, -1, -1, 88, -1, -1, -1, -1, -1, 94,
8205 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8206 -1, -1, -1, -1, -1, 110, -1, 112, 113, 114,
8207 115, 116, 117, 118, 119, 120, 121, -1, -1, -1,
8208 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8209 -1, -1, 137, 138, 139, 140, 141, 0, 143, 144,
8210 145, 146, -1, 148, -1, 8, 9, 10, -1, -1,
8211 13, 14, 15, -1, 17, -1, -1, -1, -1, -1,
8212 -1, -1, -1, -1, 27, 28, -1, -1, -1, -1,
8213 -1, -1, -1, -1, 37, 38, -1, 40, 41, 42,
8214 43, 44, -1, -1, -1, -1, -1, -1, -1, -1,
8215 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8216 -1, -1, -1, -1, -1, 68, 69, 70, 71, 72,
8217 73, 74, 75, 76, 77, 78, 79, 80, -1, -1,
8218 83, 84, 85, -1, -1, 88, -1, -1, -1, -1,
8219 -1, 94, -1, -1, -1, -1, -1, -1, -1, -1,
8220 -1, -1, -1, -1, -1, -1, -1, 110, -1, 112,
8221 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
8222 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8223 -1, -1, -1, -1, -1, 138, 139, 140, 141, 0,
8224 143, 144, 145, 146, -1, 148, -1, 8, 9, 10,
8225 -1, -1, -1, 14, 15, -1, 17, -1, -1, -1,
8226 -1, -1, -1, -1, -1, 26, -1, -1, -1, -1,
8227 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
8228 41, 42, 43, 44, -1, -1, -1, -1, -1, -1,
8229 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8230 -1, -1, -1, -1, -1, -1, -1, 68, 69, 70,
8231 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
8232 -1, -1, 83, 84, 85, 0, 87, -1, -1, -1,
8233 -1, -1, -1, 8, 9, 10, -1, -1, -1, 14,
8234 15, -1, 17, -1, -1, -1, -1, -1, 109, 110,
8235 -1, 112, 113, 114, 115, 116, 117, 118, 119, 120,
8236 121, -1, 37, 38, -1, 40, 41, 42, 43, 44,
8237 -1, -1, -1, -1, -1, -1, 137, 138, 139, 140,
8238 141, -1, -1, 144, -1, 146, -1, 148, -1, -1,
8239 -1, -1, -1, 68, 69, 70, 71, 72, 73, 74,
8240 75, 76, 77, 78, 79, 80, -1, -1, 83, 84,
8241 85, -1, 87, -1, -1, -1, -1, -1, -1, -1,
8242 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8243 -1, -1, -1, -1, 109, 110, -1, 112, 113, 114,
8244 115, 116, 117, 118, 119, 120, 121, -1, -1, -1,
8245 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8246 -1, -1, -1, 138, 139, 140, 141, -1, -1, 144,
8247 -1, 146, 1, 148, 3, 4, 5, 6, 7, 8,
8248 9, 10, 11, 12, -1, -1, 15, 16, -1, 18,
8249 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
8250 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
8251 39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
8252 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
8253 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
8254 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8255 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
8256 89, 90, -1, 92, 93, -1, 95, -1, 97, 98,
8257 99, 100, 101, 102, 103, -1, -1, -1, -1, -1,
8258 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8259 -1, -1, -1, 122, 123, 124, -1, -1, -1, -1,
8260 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8261 -1, -1, -1, -1, -1, -1, -1, 146, 1, 148,
8262 3, 4, 5, 6, 7, -1, -1, 10, 11, 12,
8263 -1, 14, 15, 16, -1, 18, 19, 20, 21, 22,
8264 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
8265 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
8266 -1, -1, 45, 46, 47, 48, 49, 50, 51, 52,
8267 53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
8268 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
8269 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8270 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
8271 93, -1, 95, -1, 97, 98, 99, 100, 101, 102,
8272 103, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8273 -1, -1, -1, -1, -1, -1, -1, -1, -1, 122,
8274 123, 124, -1, -1, -1, -1, -1, -1, -1, -1,
8275 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8276 -1, -1, -1, 146, 1, 148, 3, 4, 5, 6,
8277 7, -1, -1, 10, 11, 12, -1, -1, 15, 16,
8278 17, 18, 19, 20, 21, 22, 23, 24, -1, -1,
8279 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
8280 -1, -1, 39, -1, -1, -1, -1, -1, 45, 46,
8281 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
8282 57, -1, 59, 60, -1, 62, 63, 64, -1, 66,
8283 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8284 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
8285 -1, -1, 89, 90, -1, 92, 93, -1, 95, -1,
8286 97, 98, 99, 100, 101, 102, 103, -1, -1, -1,
8287 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8288 -1, -1, -1, -1, -1, 122, 123, 124, -1, -1,
8289 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8290 -1, -1, -1, -1, -1, -1, -1, -1, -1, 146,
8291 1, 148, 3, 4, 5, 6, 7, -1, -1, 10,
8292 11, 12, -1, -1, 15, 16, -1, 18, 19, 20,
8293 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
8294 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
8295 -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
8296 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
8297 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
8298 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8299 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
8300 -1, 92, 93, -1, 95, -1, 97, 98, 99, 100,
8301 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
8302 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8303 -1, 122, 123, 124, -1, -1, -1, -1, -1, -1,
8304 -1, 1, -1, 3, 4, 5, 6, 7, -1, 9,
8305 10, 11, 12, -1, -1, 146, 16, 148, 18, 19,
8306 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
8307 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
8308 -1, -1, -1, -1, -1, 45, 46, 47, 48, 49,
8309 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
8310 60, -1, 62, 63, 64, -1, 66, 67, -1, -1,
8311 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8312 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
8313 90, -1, 92, 93, -1, 95, -1, 97, 98, 99,
8314 100, 101, 102, 103, -1, -1, -1, -1, -1, -1,
8315 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8316 -1, -1, 122, 123, 124, -1, -1, -1, -1, -1,
8317 -1, -1, 1, -1, 3, 4, 5, 6, 7, -1,
8318 -1, -1, 11, 12, -1, -1, 146, 16, 148, 18,
8319 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
8320 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
8321 39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
8322 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
8323 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
8324 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8325 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
8326 89, 90, -1, 92, 93, -1, 95, -1, 97, 98,
8327 99, 100, 101, 102, 103, -1, -1, -1, -1, -1,
8328 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8329 -1, -1, -1, 122, 123, 124, -1, -1, -1, -1,
8330 -1, -1, -1, 1, -1, 3, 4, 5, 6, 7,
8331 -1, -1, -1, 11, 12, 144, -1, 146, 16, 148,
8332 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
8333 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
8334 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
8335 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
8336 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
8337 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8338 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
8339 -1, 89, 90, -1, 92, 93, -1, 95, -1, 97,
8340 98, 99, 100, 101, 102, 103, -1, -1, -1, -1,
8341 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8342 -1, -1, -1, -1, 122, 123, 124, -1, -1, -1,
8343 -1, -1, -1, -1, 1, -1, 3, 4, 5, 6,
8344 7, -1, -1, -1, 11, 12, 144, -1, 146, 16,
8345 148, 18, 19, 20, 21, 22, 23, 24, -1, -1,
8346 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
8347 -1, -1, 39, -1, -1, -1, -1, -1, 45, 46,
8348 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
8349 57, -1, 59, 60, -1, 62, 63, 64, -1, 66,
8350 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8351 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
8352 -1, -1, 89, 90, -1, 92, 93, -1, 95, -1,
8353 97, 98, 99, 100, 101, 102, 103, -1, -1, -1,
8354 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8355 -1, -1, -1, -1, -1, 122, 123, 124, -1, -1,
8356 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8357 -1, 138, -1, -1, -1, -1, -1, -1, -1, 146,
8358 1, 148, 3, 4, 5, 6, 7, -1, -1, 10,
8359 11, 12, -1, -1, -1, 16, -1, 18, 19, 20,
8360 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
8361 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
8362 -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
8363 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
8364 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
8365 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8366 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
8367 -1, 92, 93, -1, 95, -1, 97, 98, 99, 100,
8368 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
8369 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8370 -1, 122, 123, 124, -1, -1, -1, -1, -1, -1,
8371 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
8372 -1, 11, 12, -1, -1, 146, 16, 148, 18, 19,
8373 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
8374 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
8375 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
8376 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
8377 60, -1, 62, 63, 64, -1, 66, 67, -1, -1,
8378 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8379 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
8380 90, -1, 92, 93, -1, 95, 96, 97, 98, 99,
8381 100, 101, 102, 103, -1, -1, -1, -1, -1, -1,
8382 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8383 -1, -1, 122, 123, 124, 3, 4, 5, -1, 7,
8384 -1, -1, -1, 11, 12, -1, -1, -1, 16, -1,
8385 18, 19, 20, 21, 22, 23, 24, -1, 148, -1,
8386 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
8387 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
8388 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
8389 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
8390 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8391 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
8392 -1, 89, 90, -1, 92, 93, -1, -1, -1, 97,
8393 98, 99, 100, 101, 102, 103, -1, -1, -1, -1,
8394 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8395 -1, -1, -1, -1, 122, 123, 124, -1, -1, -1,
8396 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
8397 7, -1, -1, -1, 11, 12, -1, -1, 146, 16,
8398 148, 18, 19, 20, 21, 22, 23, 24, -1, -1,
8399 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
8400 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
8401 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
8402 57, -1, 59, 60, -1, 62, 63, 64, -1, 66,
8403 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8404 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
8405 -1, -1, 89, 90, -1, 92, 93, -1, -1, -1,
8406 97, 98, 99, 100, 101, 102, 103, -1, -1, -1,
8407 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8408 -1, -1, -1, -1, -1, 122, 123, 124, 3, 4,
8409 5, 6, 7, -1, -1, -1, 11, 12, -1, -1,
8410 -1, 16, -1, 18, 19, 20, 21, 22, 23, 24,
8411 -1, 148, -1, -1, -1, 30, 31, 32, 33, 34,
8412 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
8413 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
8414 55, 56, 57, -1, 59, 60, -1, 62, 63, 64,
8415 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
8416 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8417 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
8418 95, -1, 97, 98, 99, 100, 101, 102, 103, -1,
8419 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8420 -1, -1, -1, -1, -1, -1, -1, 122, 123, 124,
8421 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8422 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8423 -1, 146, 3, 4, 5, 6, 7, 8, 9, 10,
8424 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
8425 21, 22, 23, 24, 25, 26, -1, -1, -1, 30,
8426 31, 32, 33, 34, 35, 36, 37, 38, 39, -1,
8427 -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
8428 51, 52, 53, 54, 55, 56, 57, -1, -1, -1,
8429 -1, -1, -1, -1, -1, 66, 67, 68, 69, 70,
8430 71, 72, 73, 74, -1, -1, 77, 78, -1, -1,
8431 81, 82, 83, 84, -1, -1, -1, -1, -1, -1,
8432 -1, -1, -1, -1, 95, -1, -1, -1, -1, -1,
8433 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8434 -1, 112, 113, 114, 115, 116, 117, 118, 119, 120,
8435 121, -1, 123, 124, -1, -1, -1, -1, -1, -1,
8436 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
8437 -1, 142, 143, 16, -1, 18, 19, 20, 21, 22,
8438 23, 24, -1, 26, -1, -1, -1, 30, 31, 32,
8439 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
8440 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
8441 53, 54, 55, 56, 57, 58, 59, 60, -1, 62,
8442 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
8443 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8444 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
8445 93, -1, 95, 96, 97, 98, 99, 100, 101, 102,
8446 103, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8447 -1, -1, -1, -1, -1, -1, -1, -1, -1, 122,
8448 123, 124, -1, -1, -1, -1, -1, -1, 3, 4,
8449 5, -1, 7, -1, 137, -1, 11, 12, -1, -1,
8450 143, 16, -1, 18, 19, 20, 21, 22, 23, 24,
8451 -1, 26, -1, -1, -1, 30, 31, 32, 33, 34,
8452 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
8453 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
8454 55, 56, 57, 58, 59, 60, -1, 62, 63, 64,
8455 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
8456 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8457 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
8458 95, 96, 97, 98, 99, 100, 101, 102, 103, -1,
8459 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8460 -1, -1, -1, -1, -1, -1, -1, 122, 123, 124,
8461 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
8462 7, -1, 137, -1, 11, 12, -1, -1, 143, 16,
8463 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
8464 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
8465 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
8466 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
8467 57, 58, 59, 60, -1, 62, 63, 64, -1, 66,
8468 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8469 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
8470 87, -1, 89, 90, -1, 92, 93, -1, 95, 96,
8471 97, 98, 99, 100, 101, 102, 103, -1, -1, -1,
8472 -1, -1, 109, -1, -1, -1, -1, -1, -1, -1,
8473 3, 4, 5, -1, 7, 122, 123, 124, 11, 12,
8474 -1, -1, -1, 16, -1, 18, 19, 20, 21, 22,
8475 23, 24, -1, -1, -1, -1, 143, 30, 31, 32,
8476 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
8477 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
8478 53, 54, 55, 56, 57, 58, 59, 60, -1, 62,
8479 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
8480 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8481 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
8482 93, -1, 95, 96, 97, 98, 99, 100, 101, 102,
8483 103, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8484 -1, -1, -1, -1, 3, 4, 5, -1, 7, 122,
8485 123, 124, 11, 12, -1, -1, -1, 16, -1, 18,
8486 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
8487 143, 30, 31, 32, 33, 34, 35, 36, -1, -1,
8488 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
8489 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
8490 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
8491 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8492 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
8493 89, 90, -1, 92, 93, -1, 95, 96, 97, 98,
8494 99, 100, 101, 102, 103, -1, -1, -1, -1, -1,
8495 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8496 -1, -1, -1, 122, 123, 124, -1, -1, -1, -1,
8497 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8498 -1, -1, -1, -1, 143, 3, 4, 5, 6, 7,
8499 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
8500 18, 19, 20, 21, 22, 23, 24, 25, 26, -1,
8501 -1, -1, 30, 31, 32, 33, 34, 35, 36, 37,
8502 38, 39, -1, -1, -1, -1, -1, 45, 46, 47,
8503 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
8504 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67,
8505 68, 69, 70, 71, 72, 73, 74, -1, -1, 77,
8506 78, -1, -1, 81, 82, 83, 84, -1, -1, -1,
8507 -1, -1, -1, -1, -1, -1, -1, 95, -1, -1,
8508 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8509 -1, -1, -1, -1, 112, 113, 114, 115, 116, 117,
8510 118, 119, 120, 121, -1, 123, 124, -1, -1, -1,
8511 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8512 -1, -1, -1, -1, 142, 3, 4, 5, 6, 7,
8513 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
8514 18, 19, 20, 21, 22, 23, 24, 25, 26, -1,
8515 -1, -1, 30, 31, 32, 33, 34, 35, 36, 37,
8516 38, 39, -1, -1, -1, -1, -1, 45, 46, 47,
8517 48, 49, 50, 51, 52, 53, 54, -1, 56, -1,
8518 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67,
8519 68, 69, 70, 71, 72, 73, 74, -1, -1, 77,
8520 78, -1, -1, 81, 82, 83, 84, -1, -1, -1,
8521 -1, -1, -1, -1, -1, -1, -1, 95, -1, -1,
8522 98, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8523 -1, -1, -1, -1, 112, 113, 114, 115, 116, 117,
8524 118, 119, 120, 121, -1, 123, 124, -1, -1, -1,
8525 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8526 -1, -1, -1, -1, 142, 3, 4, 5, 6, 7,
8527 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
8528 18, 19, 20, 21, 22, 23, 24, 25, 26, -1,
8529 -1, -1, 30, 31, 32, 33, 34, 35, 36, 37,
8530 38, 39, -1, -1, -1, -1, -1, 45, 46, 47,
8531 48, 49, 50, 51, 52, 53, -1, -1, 56, -1,
8532 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67,
8533 68, 69, 70, 71, 72, 73, 74, -1, -1, 77,
8534 78, -1, -1, 81, 82, 83, 84, -1, -1, -1,
8535 -1, -1, -1, -1, -1, -1, -1, 95, -1, -1,
8536 98, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8537 -1, -1, -1, -1, 112, 113, 114, 115, 116, 117,
8538 118, 119, 120, 121, -1, 123, 124, -1, -1, -1,
8539 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8540 -1, -1, -1, -1, 142, 3, 4, 5, 6, 7,
8541 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
8542 18, 19, 20, 21, 22, 23, 24, 25, 26, -1,
8543 -1, -1, 30, 31, 32, 33, 34, 35, 36, 37,
8544 38, 39, -1, -1, -1, -1, -1, 45, 46, 47,
8545 48, 49, 50, 51, 52, 53, -1, -1, 56, -1,
8546 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67,
8547 68, 69, 70, 71, 72, 73, 74, -1, -1, 77,
8548 78, -1, -1, 81, 82, 83, 84, -1, -1, -1,
8549 -1, -1, -1, -1, -1, -1, -1, 95, -1, -1,
8550 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8551 -1, -1, -1, -1, 112, 113, 114, 115, 116, 117,
8552 118, 119, 120, 121, -1, 123, 124, -1, -1, -1,
8553 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
8554 -1, -1, -1, 16, 142, 18, 19, 20, 21, 22,
8555 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
8556 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
8557 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
8558 53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
8559 63, 64, -1, -1, -1, -1, -1, -1, -1, -1,
8560 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8561 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
8562 93, -1, -1, -1, 97, 98, 99, 100, 101, 102,
8563 103, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8564 -1, -1, 3, 4, 5, -1, 7, -1, -1, 122,
8565 11, 12, -1, -1, -1, 16, -1, 18, 19, 20,
8566 21, 22, 23, 24, -1, -1, -1, -1, 141, 30,
8567 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
8568 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
8569 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
8570 -1, 62, 63, 64, -1, -1, -1, -1, -1, -1,
8571 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8572 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
8573 -1, 92, 93, -1, -1, -1, 97, 98, 99, 100,
8574 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
8575 -1, -1, -1, -1, 3, 4, 5, 6, 7, -1,
8576 -1, 122, 11, 12, -1, -1, -1, 16, -1, 18,
8577 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
8578 141, 30, 31, 32, 33, 34, 35, 36, -1, -1,
8579 39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
8580 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
8581 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
8582 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8583 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
8584 89, 90, -1, 92, 93, -1, 95, -1, 97, 98,
8585 99, 100, 101, 102, 103, -1, -1, -1, -1, -1,
8586 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
8587 -1, 11, 12, 122, 123, 124, 16, -1, 18, 19,
8588 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
8589 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
8590 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
8591 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
8592 60, -1, 62, 63, 64, -1, 66, 67, -1, -1,
8593 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8594 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
8595 90, -1, 92, 93, -1, 95, 96, 97, 98, 99,
8596 100, 101, 102, 103, -1, -1, -1, -1, -1, -1,
8597 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
8598 11, 12, 122, 123, 124, 16, -1, 18, 19, 20,
8599 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
8600 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
8601 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
8602 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
8603 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
8604 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8605 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
8606 -1, 92, 93, -1, 95, 96, 97, 98, 99, 100,
8607 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
8608 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
8609 12, 122, 123, 124, 16, -1, 18, 19, 20, 21,
8610 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
8611 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
8612 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
8613 52, 53, 54, 55, 56, 57, 58, 59, 60, -1,
8614 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
8615 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8616 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
8617 92, 93, -1, 95, -1, 97, 98, 99, 100, 101,
8618 102, 103, -1, -1, -1, -1, -1, -1, -1, -1,
8619 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
8620 122, 123, 124, 16, -1, 18, 19, 20, 21, 22,
8621 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
8622 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
8623 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
8624 53, 54, 55, 56, 57, 58, 59, 60, -1, 62,
8625 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
8626 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8627 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
8628 93, -1, -1, 96, 97, 98, 99, 100, 101, 102,
8629 103, -1, -1, -1, -1, -1, -1, -1, -1, 3,
8630 4, 5, -1, 7, -1, -1, -1, 11, 12, 122,
8631 123, 124, 16, -1, 18, 19, 20, 21, 22, 23,
8632 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
8633 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
8634 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
8635 54, 55, 56, 57, 58, 59, 60, -1, 62, 63,
8636 64, -1, 66, 67, -1, -1, -1, -1, -1, -1,
8637 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8638 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
8639 -1, 95, -1, 97, 98, 99, 100, 101, 102, 103,
8640 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
8641 5, -1, 7, -1, -1, -1, 11, 12, 122, 123,
8642 124, 16, -1, 18, 19, 20, 21, 22, 23, 24,
8643 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
8644 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
8645 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
8646 55, 56, 57, 58, 59, 60, -1, 62, 63, 64,
8647 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
8648 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8649 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
8650 -1, -1, 97, 98, 99, 100, 101, 102, 103, -1,
8651 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
8652 -1, 7, -1, -1, -1, 11, 12, 122, 123, 124,
8653 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
8654 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
8655 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
8656 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
8657 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
8658 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
8659 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8660 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
8661 -1, 97, 98, 99, 100, 101, 102, 103, -1, -1,
8662 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
8663 7, -1, -1, -1, 11, 12, 122, 123, 124, 16,
8664 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
8665 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
8666 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
8667 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
8668 57, -1, 59, 60, -1, 62, 63, 64, -1, 66,
8669 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8670 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
8671 -1, -1, 89, 90, -1, 92, 93, -1, 95, -1,
8672 97, 98, 99, 100, 101, 102, 103, -1, -1, -1,
8673 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
8674 -1, -1, -1, 11, 12, 122, 123, 124, 16, -1,
8675 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
8676 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
8677 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
8678 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
8679 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
8680 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8681 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
8682 -1, 89, 90, -1, 92, 93, -1, 95, -1, 97,
8683 98, 99, 100, 101, 102, 103, -1, -1, -1, -1,
8684 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
8685 -1, -1, 11, 12, 122, 123, 124, 16, -1, 18,
8686 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
8687 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
8688 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
8689 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
8690 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
8691 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8692 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
8693 89, 90, -1, 92, 93, -1, 95, -1, 97, 98,
8694 99, 100, 101, 102, 103, -1, -1, -1, -1, -1,
8695 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
8696 -1, 11, 12, 122, 123, 124, 16, -1, 18, 19,
8697 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
8698 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
8699 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
8700 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
8701 60, -1, 62, 63, 64, -1, 66, 67, -1, -1,
8702 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8703 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
8704 90, -1, 92, 93, -1, 95, -1, 97, 98, 99,
8705 100, 101, 102, 103, -1, -1, -1, -1, -1, -1,
8706 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
8707 11, 12, 122, 123, 124, 16, -1, 18, 19, 20,
8708 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
8709 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
8710 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
8711 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
8712 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
8713 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8714 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
8715 -1, 92, 93, -1, -1, -1, 97, 98, 99, 100,
8716 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
8717 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
8718 12, 122, 123, 124, 16, -1, 18, 19, 20, 21,
8719 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
8720 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
8721 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
8722 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
8723 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
8724 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8725 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
8726 92, 93, -1, -1, -1, 97, 98, 99, 100, 101,
8727 102, 103, -1, -1, -1, -1, -1, -1, -1, -1,
8728 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
8729 122, 123, 124, 16, -1, 18, 19, 20, 21, 22,
8730 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
8731 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
8732 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
8733 53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
8734 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
8735 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8736 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
8737 93, -1, -1, -1, 97, 98, 99, 100, 101, 102,
8738 103, -1, -1, -1, -1, -1, -1, -1, -1, 3,
8739 4, 5, -1, 7, -1, -1, -1, 11, 12, 122,
8740 123, 124, 16, -1, 18, 19, 20, 21, 22, 23,
8741 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
8742 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
8743 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
8744 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
8745 64, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8746 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8747 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
8748 -1, 95, -1, 97, 98, 99, 100, 101, 102, 103,
8749 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
8750 -1, -1, 11, 12, -1, -1, -1, 16, 122, 18,
8751 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
8752 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
8753 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
8754 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
8755 59, 60, -1, 62, 63, 64, -1, -1, -1, -1,
8756 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8757 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
8758 89, 90, -1, 92, 93, -1, 95, -1, 97, 98,
8759 99, 100, 101, 102, 103, -1, -1, -1, -1, 3,
8760 4, 5, -1, 7, -1, -1, -1, 11, 12, -1,
8761 -1, -1, 16, 122, 18, 19, 20, 21, 22, 23,
8762 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
8763 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
8764 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
8765 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
8766 64, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8767 -1, -1, -1, -1, -1, -1, -1, -1, -1, 83,
8768 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
8769 -1, -1, -1, 97, 98, 99, 100, 101, 102, 103,
8770 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
8771 -1, -1, 11, 12, -1, -1, -1, 16, 122, 18,
8772 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
8773 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
8774 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
8775 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
8776 59, 60, -1, 62, 63, 64, -1, -1, -1, -1,
8777 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8778 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
8779 89, 90, -1, 92, 93, -1, -1, -1, 97, 98,
8780 99, 100, 101, 102, 103, -1, -1, -1, -1, 3,
8781 4, 5, -1, 7, -1, -1, -1, 11, 12, -1,
8782 -1, -1, 16, 122, 18, 19, 20, 21, 22, 23,
8783 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
8784 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
8785 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
8786 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
8787 64, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8788 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8789 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
8790 -1, -1, -1, 97, 98, 99, 100, 101, 102, 103,
8791 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
8792 -1, -1, 11, 12, -1, -1, -1, 16, 122, 18,
8793 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
8794 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
8795 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
8796 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
8797 59, 60, -1, 62, 63, 64, -1, -1, -1, -1,
8798 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8799 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
8800 89, 90, -1, 92, 93, -1, -1, -1, 97, 98,
8801 99, 100, 101, 102, 103, -1, -1, -1, -1, 3,
8802 4, 5, -1, 7, -1, -1, -1, 11, 12, -1,
8803 -1, -1, 16, 122, 18, 19, 20, 21, 22, 23,
8804 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
8805 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
8806 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
8807 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
8808 64, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8809 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8810 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
8811 -1, -1, -1, 97, 98, 99, 100, 101, 102, 103,
8812 -1, -1, -1, -1, -1, 52, 53, -1, -1, 56,
8813 -1, -1, -1, -1, -1, -1, -1, -1, 122, 66,
8814 67, 68, 69, 70, 71, 72, 73, 74, -1, -1,
8815 77, 78, -1, -1, 81, 82, 83, 84, -1, -1,
8816 -1, -1, -1, -1, -1, -1, -1, -1, 95, -1,
8817 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8818 -1, -1, -1, -1, -1, 112, 113, 114, 115, 116,
8819 117, 118, 119, 120, 121, -1, 123, 124, -1, -1,
8820 -1, -1, -1, 52, 53, -1, -1, 56, -1, -1,
8821 -1, -1, -1, -1, -1, 142, 143, 66, 67, 68,
8822 69, 70, 71, 72, 73, 74, -1, -1, 77, 78,
8823 -1, -1, 81, 82, 83, 84, -1, -1, -1, -1,
8824 -1, -1, -1, -1, -1, -1, 95, -1, -1, -1,
8825 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8826 -1, -1, -1, 112, 113, 114, 115, 116, 117, 118,
8827 119, 120, 121, -1, 123, 124, -1, -1, -1, -1,
8828 -1, 52, 53, -1, -1, 56, -1, -1, -1, -1,
8829 -1, -1, -1, 142, 143, 66, 67, 68, 69, 70,
8830 71, 72, 73, 74, -1, -1, 77, 78, -1, -1,
8831 81, 82, 83, 84, -1, -1, -1, -1, -1, -1,
8832 -1, -1, -1, -1, 95, -1, -1, -1, -1, -1,
8833 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8834 -1, 112, 113, 114, 115, 116, 117, 118, 119, 120,
8835 121, -1, 123, 124, -1, -1, -1, -1, -1, 52,
8836 53, -1, -1, 56, -1, -1, -1, -1, -1, -1,
8837 -1, 142, 143, 66, 67, 68, 69, 70, 71, 72,
8838 73, 74, -1, -1, 77, 78, -1, -1, 81, 82,
8839 83, 84, -1, -1, -1, -1, -1, -1, -1, -1,
8840 -1, -1, 95, -1, -1, -1, -1, -1, -1, -1,
8841 -1, -1, -1, -1, -1, -1, -1, -1, -1, 112,
8842 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
8843 123, 124, -1, -1, -1, -1, -1, 52, 53, -1,
8844 -1, 56, -1, -1, -1, -1, -1, -1, -1, 142,
8845 143, 66, 67, 68, 69, 70, 71, 72, 73, 74,
8846 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
8847 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8848 95, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8849 -1, -1, -1, -1, -1, -1, -1, 112, 113, 114,
8850 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
8851 -1, -1, -1, -1, -1, 52, 53, -1, -1, 56,
8852 -1, -1, -1, -1, -1, -1, -1, 142, 143, 66,
8853 67, 68, 69, 70, 71, 72, 73, 74, -1, -1,
8854 77, 78, -1, -1, 81, 82, 83, 84, -1, -1,
8855 -1, -1, -1, -1, -1, -1, -1, -1, 95, -1,
8856 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8857 -1, -1, -1, -1, -1, 112, 113, 114, 115, 116,
8858 117, 118, 119, 120, 121, -1, 123, 124, -1, -1,
8859 -1, -1, -1, 52, 53, -1, -1, 56, -1, -1,
8860 -1, -1, -1, -1, -1, 142, 143, 66, 67, 68,
8861 69, 70, 71, 72, 73, 74, -1, -1, 77, 78,
8862 -1, -1, 81, 82, 83, 84, -1, -1, -1, -1,
8863 -1, -1, -1, -1, -1, -1, 95, -1, -1, -1,
8864 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8865 -1, -1, -1, 112, 113, 114, 115, 116, 117, 118,
8866 119, 120, 121, -1, 123, 124, -1, -1, -1, -1,
8867 -1, 52, 53, -1, -1, 56, -1, -1, -1, -1,
8868 -1, -1, -1, 142, 143, 66, 67, 68, 69, 70,
8869 71, 72, 73, 74, -1, -1, 77, 78, -1, -1,
8870 81, 82, 83, 84, -1, -1, -1, -1, -1, -1,
8871 -1, -1, -1, -1, 95, -1, -1, -1, -1, -1,
8872 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8873 -1, 112, 113, 114, 115, 116, 117, 118, 119, 120,
8874 121, -1, 123, 124, -1, -1, -1, -1, -1, 52,
8875 53, -1, -1, 56, -1, -1, -1, -1, -1, -1,
8876 -1, 142, 143, 66, 67, 68, 69, 70, 71, 72,
8877 73, 74, -1, -1, 77, 78, -1, -1, 81, 82,
8878 83, 84, -1, -1, -1, -1, -1, -1, -1, -1,
8879 -1, -1, 95, -1, -1, -1, -1, -1, -1, -1,
8880 -1, -1, -1, -1, -1, -1, -1, -1, -1, 112,
8881 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
8882 123, 124, -1, -1, -1, -1, -1, 52, 53, -1,
8883 -1, 56, -1, -1, -1, -1, -1, -1, -1, 142,
8884 143, 66, 67, 68, 69, 70, 71, 72, 73, 74,
8885 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
8886 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8887 95, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8888 -1, -1, -1, -1, -1, -1, -1, 112, 113, 114,
8889 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
8890 -1, -1, -1, -1, -1, 52, 53, -1, -1, 56,
8891 -1, -1, -1, -1, -1, -1, -1, 142, 143, 66,
8892 67, 68, 69, 70, 71, 72, 73, 74, -1, -1,
8893 77, 78, -1, -1, 81, 82, 83, 84, -1, -1,
8894 -1, -1, -1, -1, -1, -1, -1, -1, 95, -1,
8895 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8896 -1, -1, -1, -1, -1, 112, 113, 114, 115, 116,
8897 117, 118, 119, 120, 121, -1, 123, 124, -1, -1,
8898 -1, -1, -1, 52, 53, -1, -1, 56, -1, -1,
8899 -1, -1, -1, -1, -1, 142, 143, 66, 67, 68,
8900 69, 70, 71, 72, 73, 74, -1, -1, 77, 78,
8901 -1, -1, 81, 82, 83, 84, -1, -1, -1, -1,
8902 -1, -1, -1, -1, -1, -1, 95, -1, -1, -1,
8903 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8904 -1, -1, -1, 112, 113, 114, 115, 116, 117, 118,
8905 119, 120, 121, -1, 123, 124, -1, -1, -1, -1,
8906 -1, 52, 53, -1, -1, 56, -1, -1, -1, -1,
8907 -1, -1, -1, 142, 143, 66, 67, 68, 69, 70,
8908 71, 72, 73, 74, -1, -1, 77, 78, -1, -1,
8909 81, 82, 83, 84, -1, -1, -1, -1, -1, -1,
8910 -1, -1, -1, -1, 95, -1, -1, -1, -1, -1,
8911 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8912 -1, 112, 113, 114, 115, 116, 117, 118, 119, 120,
8913 121, -1, 123, 124, -1, -1, -1, -1, -1, 52,
8914 53, -1, -1, 56, -1, -1, -1, -1, -1, -1,
8915 -1, 142, 143, 66, 67, 68, 69, 70, 71, 72,
8916 73, 74, -1, -1, 77, 78, -1, -1, 81, 82,
8917 83, 84, -1, -1, -1, -1, -1, -1, -1, -1,
8918 -1, -1, 95, -1, -1, -1, -1, -1, 44, -1,
8919 -1, -1, -1, -1, -1, -1, -1, -1, -1, 112,
8920 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
8921 123, 124, 68, 69, 70, 71, 72, 73, 74, 75,
8922 76, 77, 78, 79, 80, -1, -1, 83, 84, 142,
8923 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8924 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8925 -1, -1, -1, -1, 110, -1, 112, 113, 114, 115,
8926 116, 117, 118, 119, 120, 121
8931 static const yytype_uint16 yystos[] =
8933 0, 150, 151, 0, 1, 3, 4, 5, 6, 7,
8934 11, 12, 16, 18, 19, 20, 21, 22, 23, 24,
8935 30, 31, 32, 33, 34, 35, 36, 39, 45, 46,
8936 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
8937 57, 59, 60, 62, 63, 64, 66, 67, 86, 89,
8938 90, 92, 93, 95, 97, 98, 99, 100, 101, 102,
8939 103, 122, 123, 124, 153, 154, 155, 158, 160, 161,
8940 164, 165, 167, 168, 169, 171, 172, 182, 196, 213,
8941 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
8942 245, 246, 256, 257, 258, 259, 260, 261, 262, 265,
8943 273, 275, 276, 277, 278, 279, 280, 303, 314, 155,
8944 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
8945 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
8946 23, 24, 25, 26, 30, 31, 32, 33, 34, 35,
8947 36, 37, 38, 39, 45, 46, 47, 48, 49, 50,
8948 51, 52, 53, 56, 66, 67, 68, 69, 70, 71,
8949 72, 73, 74, 77, 78, 81, 82, 83, 84, 95,
8950 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
8951 123, 124, 142, 175, 176, 177, 178, 180, 181, 273,
8952 275, 21, 22, 30, 39, 58, 86, 89, 95, 96,
8953 123, 164, 172, 182, 184, 189, 192, 194, 213, 277,
8954 279, 280, 301, 302, 189, 189, 143, 190, 191, 143,
8955 186, 190, 143, 148, 308, 54, 177, 308, 157, 137,
8956 31, 32, 182, 213, 303, 182, 56, 89, 153, 166,
8957 167, 158, 185, 194, 301, 314, 184, 300, 301, 314,
8958 46, 86, 122, 141, 171, 196, 213, 277, 280, 239,
8959 240, 54, 55, 57, 175, 268, 274, 267, 268, 268,
8960 147, 263, 147, 266, 59, 60, 160, 182, 182, 146,
8961 148, 307, 312, 313, 40, 41, 42, 43, 44, 37,
8962 38, 28, 243, 109, 141, 89, 95, 168, 109, 68,
8963 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
8964 79, 80, 83, 84, 110, 112, 113, 114, 115, 116,
8965 117, 118, 119, 120, 121, 85, 139, 140, 197, 158,
8966 159, 159, 200, 202, 159, 307, 313, 86, 165, 172,
8967 213, 229, 277, 280, 52, 56, 83, 86, 173, 174,
8968 213, 277, 280, 174, 33, 34, 35, 36, 49, 50,
8969 51, 52, 56, 143, 175, 278, 298, 85, 140, 26,
8970 137, 247, 259, 87, 87, 186, 190, 247, 141, 184,
8971 56, 184, 184, 109, 88, 141, 193, 314, 85, 139,
8972 140, 87, 87, 141, 193, 189, 308, 309, 189, 188,
8973 189, 314, 158, 309, 158, 54, 63, 64, 156, 143,
8974 183, 137, 153, 85, 140, 87, 166, 144, 309, 198,
8975 145, 141, 148, 311, 141, 311, 138, 311, 308, 56,
8976 59, 60, 168, 170, 141, 85, 139, 140, 52, 54,
8977 55, 56, 57, 89, 95, 96, 116, 119, 143, 241,
8978 284, 285, 286, 287, 288, 289, 292, 293, 294, 295,
8979 296, 61, 104, 105, 106, 269, 106, 269, 106, 65,
8980 106, 106, 264, 269, 106, 61, 106, 68, 68, 146,
8981 155, 159, 159, 159, 159, 155, 158, 158, 244, 95,
8982 160, 184, 194, 195, 166, 141, 171, 141, 160, 182,
8983 184, 195, 182, 182, 182, 182, 182, 182, 182, 182,
8984 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
8985 182, 182, 182, 182, 182, 182, 182, 182, 52, 53,
8986 56, 180, 186, 304, 305, 188, 52, 53, 56, 180,
8987 186, 304, 152, 153, 13, 225, 312, 225, 159, 159,
8988 307, 17, 250, 56, 85, 139, 140, 25, 158, 52,
8989 56, 173, 1, 113, 281, 312, 85, 139, 140, 209,
8990 299, 210, 85, 140, 306, 52, 56, 304, 304, 249,
8991 248, 160, 182, 160, 182, 94, 162, 179, 182, 184,
8992 95, 184, 192, 301, 52, 56, 188, 52, 56, 302,
8993 309, 144, 309, 309, 177, 199, 182, 153, 138, 304,
8994 304, 182, 309, 309, 301, 141, 170, 52, 56, 188,
8995 52, 56, 109, 52, 89, 95, 230, 231, 232, 286,
8996 284, 29, 107, 242, 141, 297, 314, 141, 297, 52,
8997 141, 297, 52, 271, 270, 147, 269, 147, 182, 182,
8998 76, 114, 234, 235, 314, 184, 141, 309, 170, 141,
8999 44, 308, 87, 87, 186, 190, 308, 310, 87, 87,
9000 186, 187, 190, 314, 10, 224, 8, 252, 314, 153,
9001 13, 153, 27, 226, 312, 226, 250, 194, 224, 52,
9002 56, 188, 52, 56, 204, 207, 312, 282, 206, 52,
9003 56, 173, 188, 152, 158, 143, 283, 284, 211, 187,
9004 190, 187, 190, 234, 234, 44, 163, 177, 184, 193,
9005 87, 310, 87, 87, 158, 138, 311, 168, 310, 184,
9006 232, 141, 286, 141, 309, 146, 236, 314, 153, 153,
9007 287, 292, 294, 296, 288, 289, 294, 288, 153, 54,
9008 55, 57, 272, 280, 52, 233, 236, 288, 290, 291,
9009 294, 296, 153, 95, 184, 170, 182, 111, 160, 182,
9010 182, 162, 145, 87, 160, 182, 160, 182, 162, 184,
9011 195, 253, 314, 15, 228, 314, 14, 227, 228, 228,
9012 201, 203, 224, 141, 225, 310, 159, 312, 159, 152,
9013 310, 224, 309, 284, 152, 312, 175, 153, 153, 182,
9014 234, 87, 309, 309, 231, 141, 95, 230, 52, 237,
9015 238, 285, 309, 10, 138, 141, 297, 141, 297, 141,
9016 297, 141, 297, 297, 138, 109, 236, 114, 141, 297,
9017 141, 297, 141, 297, 10, 184, 182, 160, 182, 88,
9018 254, 314, 153, 9, 255, 314, 159, 224, 224, 153,
9019 153, 184, 153, 226, 208, 312, 224, 309, 224, 212,
9020 10, 138, 153, 141, 231, 141, 286, 141, 288, 294,
9021 288, 288, 86, 213, 114, 291, 294, 288, 290, 294,
9022 288, 86, 172, 213, 277, 280, 225, 153, 225, 224,
9023 224, 228, 250, 251, 205, 152, 283, 138, 231, 141,
9024 238, 297, 141, 297, 297, 297, 56, 85, 141, 297,
9025 141, 297, 297, 141, 297, 297, 56, 85, 139, 140,
9026 153, 153, 153, 224, 152, 231, 288, 52, 56, 288,
9027 294, 288, 288, 52, 56, 188, 52, 56, 252, 227,
9028 224, 224, 297, 297, 141, 297, 297, 297, 310, 288,
9033 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct parser_params *parser)
9043 ((void) (yyoutput));
9053 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct parser_params *parser)
9057 fprintf (yyoutput, "token %s (", yytname[yytype]);
9059 fprintf (yyoutput, "nterm %s (", yytname[yytype]);
9061 yy_symbol_value_print (yyoutput, yytype, yyvaluep, parser);
9062 fprintf (yyoutput, ")");
9066 yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
9074 fprintf (stderr, "Stack now");
9075 for (; bottom <= top; ++bottom)
9076 fprintf (stderr, " %d", *bottom);
9077 fprintf (stderr, "\n");
9081 yy_reduce_print (YYSTYPE *yyvsp, int yyrule, struct parser_params *parser)
9090 int yynrhs = yyr2[yyrule];
9092 unsigned long int yylno = yyrline[yyrule];
9093 fprintf (stderr, "Reducing stack by rule %d (line %lu):\n",
9096 for (yyi = 0; yyi < yynrhs; yyi++)
9098 fprintf (stderr, " $%d = ", yyi + 1);
9099 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
9100 &(yyvsp[(yyi + 1) - (yynrhs)])
9102 fprintf (stderr, "\n");
9107 yytnamerr (char *yyres, const char *yystr)
9111 unsigned int yyn = 0;
9112 char const *yyp = yystr;
9119 goto do_not_strip_quotes;
9123 goto do_not_strip_quotes;
9136 do_not_strip_quotes: ;
9140 return strlen (yystr);
9142 return __builtin_stpcpy (yyres, yystr) - yyres;
9146 yysyntax_error (char *yyresult, int yystate, int yychar)
9148 int yyn = yypact[yystate];
9150 if (! (-747 < yyn && yyn <= 10225))
9154 int yytype = ((unsigned int) (yychar) <= 376 ? yytranslate[yychar] : 2);
9155 unsigned int yysize0 = yytnamerr (0, yytname[yytype]);
9156 unsigned int yysize = yysize0;
9157 unsigned int yysize1;
9158 int yysize_overflow = 0;
9159 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
9160 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
9165 static char const yyunexpected[] = "syntax error, unexpected %s";
9166 static char const yyexpecting[] = ", expecting %s";
9167 static char const yyor[] = " or %s";
9168 char yyformat[sizeof yyunexpected
9169 + sizeof yyexpecting - 1
9170 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
9171 * (sizeof yyor - 1))];
9172 char const *yyprefix = yyexpecting;
9176 int yyxbegin = yyn < 0 ? -yyn : 0;
9179 int yychecklim = 10225 - yyn + 1;
9180 int yyxend = yychecklim < 149 ? yychecklim : 149;
9183 yyarg[0] = yytname[yytype];
9184 yyfmt = __builtin_stpcpy (yyformat, yyunexpected);
9186 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
9187 if (yycheck[yyx + yyn] == yyx && yyx != 1)
9189 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
9193 yyformat[sizeof yyunexpected - 1] = '\0';
9196 yyarg[yycount++] = yytname[yyx];
9197 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
9198 yysize_overflow |= (yysize1 < yysize);
9200 yyfmt = __builtin_stpcpy (yyfmt, yyprefix);
9205 yysize1 = yysize + strlen (yyf);
9206 yysize_overflow |= (yysize1 < yysize);
9209 if (yysize_overflow)
9210 return ((unsigned int) -1);
9217 char *yyp = yyresult;
9219 while ((*yyp = *yyf) != '\0')
9221 if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
9223 yyp += yytnamerr (yyp, yyarg[yyi++]);
9238 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, struct parser_params *parser)
9241 ((void) (yyvaluep));
9246 do { if ((parser->parser_yydebug)) { fprintf (stderr, "%s ", yymsg); yy_symbol_print (stderr, yytype, yyvaluep, parser); fprintf (stderr, "\n"); } } while ((0));
9256 int ruby_yyparse (struct parser_params *parser);
9259 ruby_yyparse (struct parser_params *parser)
9286 char *yymsg = yymsgbuf;
9287 unsigned int yymsg_alloc = sizeof yymsgbuf;
9289 yytype_int16 yyssa[200];
9290 yytype_int16 *yyss = yyssa;
9291 yytype_int16 *yyssp;
9295 YYSTYPE *yyvs = yyvsa;
9302 unsigned int yystacksize = 200;
9313 do { if ((parser->parser_yydebug)) fprintf (stderr, "Starting parse\n"); } while ((0));
9341 if (yyss + yystacksize - 1 <= yyssp)
9344 unsigned int yysize = yyssp - yyss + 1;
9346 if (10000 <= yystacksize)
9347 goto yyexhaustedlab;
9349 if (10000 < yystacksize)
9350 yystacksize = 10000;
9353 yytype_int16 *yyss1 = yyss;
9354 union yyalloc *yyptr =
9355 (union yyalloc *) rb_parser_malloc(parser, ((yystacksize) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) + (sizeof (union yyalloc) - 1)));
9357 goto yyexhaustedlab;
9358 do { unsigned int yynewbytes; __builtin_memcpy (&yyptr->yyss, yyss, (yysize) * sizeof (*(yyss))); yyss = &yyptr->yyss; yynewbytes = yystacksize * sizeof (*yyss) + (sizeof (union yyalloc) - 1); yyptr += yynewbytes / sizeof (*yyptr); } while ((0));
9359 do { unsigned int yynewbytes; __builtin_memcpy (&yyptr->yyvs, yyvs, (yysize) * sizeof (*(yyvs))); yyvs = &yyptr->yyvs; yynewbytes = yystacksize * sizeof (*yyvs) + (sizeof (union yyalloc) - 1); yyptr += yynewbytes / sizeof (*yyptr); } while ((0));
9363 rb_parser_free(parser, yyss1);
9368 yyssp = yyss + yysize - 1;
9369 yyvsp = yyvs + yysize - 1;
9372 do { if ((parser->parser_yydebug)) fprintf (stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize); } while ((0));
9375 if (yyss + yystacksize - 1 <= yyssp)
9379 do { if ((parser->parser_yydebug)) fprintf (stderr, "Entering state %d\n", yystate); } while ((0));
9392 yyn = yypact[yystate];
9401 do { if ((parser->parser_yydebug)) fprintf (stderr, "Reading a token: "); } while ((0));
9402 yychar = yylex (&yylval, parser);
9407 yychar = yytoken = 0;
9408 do { if ((parser->parser_yydebug)) fprintf (stderr, "Now at end of input.\n"); } while ((0));
9412 yytoken = ((unsigned int) (yychar) <= 376 ? yytranslate[yychar] : 2);
9413 do { if ((parser->parser_yydebug)) { fprintf (stderr, "%s ", "Next token is"); yy_symbol_print (stderr, yytoken, &yylval, parser); fprintf (stderr, "\n"); } } while ((0));
9419 if (yyn < 0 || 10225 < yyn || yycheck[yyn] != yytoken)
9424 if (yyn == 0 || yyn == -555)
9439 do { if ((parser->parser_yydebug)) { fprintf (stderr, "%s ", "Shifting"); yy_symbol_print (stderr, yytoken, &yylval, parser); fprintf (stderr, "\n"); } } while ((0));
9455 yyn = yydefact[yystate];
9468 yyval = yyvsp[1-yylen];
9471 do { if ((parser->parser_yydebug)) yy_reduce_print (yyvsp, yyn, parser); } while ((0));
9477 (parser->parser_lex_state) = EXPR_BEG;
9479 local_push_gen(parser,(parser->parser_compile_for_eval));
9489 if ((yyvsp[(2) - (2)].node) && !(parser->parser_compile_for_eval)) {
9491 if (((int) (((((struct RNode*)((yyvsp[(2) - (2)].node))))->flags & (((VALUE)0x7f)<<8))>>8)) != NODE_BLOCK) void_expr_gen(parser, (((yyvsp[(2) - (2)].node)) = remove_begin((yyvsp[(2) - (2)].node))));
9493 NODE *node = (yyvsp[(2) - (2)].node);
9494 while (node->u3.node) {
9495 node = node->u3.node;
9497 void_expr_gen(parser, ((node->u1.node) = remove_begin(node->u1.node)));
9500 (parser->parser_eval_tree) = node_newnode(parser, (NODE_SCOPE), (VALUE)(local_tbl_gen(parser)), (VALUE)(block_append_gen(parser,(parser->parser_eval_tree),(yyvsp[(2) - (2)].node))), (VALUE)(0));
9501 local_pop_gen(parser);
9513 (yyval.node) = (yyvsp[(1) - (4)].node);
9514 if ((yyvsp[(2) - (4)].node)) {
9515 (yyval.node) = node_newnode(parser, (NODE_RESCUE), (VALUE)((yyvsp[(1) - (4)].node)), (VALUE)((yyvsp[(2) - (4)].node)), (VALUE)((yyvsp[(3) - (4)].node)));
9517 else if ((yyvsp[(3) - (4)].node)) {
9518 rb_compile_warn((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "else without rescue is useless");
9519 (yyval.node) = block_append_gen(parser,(yyval.node),(yyvsp[(3) - (4)].node));
9521 if ((yyvsp[(4) - (4)].node)) {
9523 (yyval.node) = node_newnode(parser, (NODE_ENSURE), (VALUE)((yyval.node)), (VALUE)(0), (VALUE)((yyvsp[(4) - (4)].node)));
9526 (yyval.node) = block_append_gen(parser,(yyvsp[(4) - (4)].node),node_newnode(parser, (NODE_NIL), (VALUE)(0), (VALUE)(0), (VALUE)(0)));
9529 fixpos((yyval.node), (yyvsp[(1) - (4)].node));
9544 void_stmts_gen(parser, (yyvsp[(1) - (2)].node));
9545 fixup_nodes(&(parser->parser_deferred_nodes));
9548 (yyval.node) = (yyvsp[(1) - (2)].node);
9556 (yyval.node) = node_newnode(parser, (NODE_BEGIN), (VALUE)(0), (VALUE)(0), (VALUE)(0));
9568 (yyval.node) = newline_node((yyvsp[(1) - (1)].node));
9579 (yyval.node) = block_append_gen(parser,(yyvsp[(1) - (3)].node),newline_node((yyvsp[(3) - (3)].node)));
9589 (yyval.node) = remove_begin((yyvsp[(2) - (2)].node));
9595 {(parser->parser_lex_state) = EXPR_FNAME;;}
9602 (yyval.node) = node_newnode(parser, (NODE_ALIAS), (VALUE)((yyvsp[(2) - (4)].node)), (VALUE)((yyvsp[(4) - (4)].node)), (VALUE)(0));
9613 (yyval.node) = node_newnode(parser, (NODE_VALIAS), (VALUE)((yyvsp[(2) - (3)].id)), (VALUE)((yyvsp[(3) - (3)].id)), (VALUE)(0));
9626 sprintf(buf, "$%c", (char)(yyvsp[(3) - (3)].node)->u2.argc);
9627 (yyval.node) = node_newnode(parser, (NODE_VALIAS), (VALUE)((yyvsp[(2) - (3)].id)), (VALUE)((__builtin_constant_p(buf) ? __extension__ (rb_intern2(buf, strlen(buf))) : (rb_intern)(buf))), (VALUE)(0));
9638 parser_yyerror(parser, "can't make alias for the number variables");
9639 (yyval.node) = node_newnode(parser, (NODE_BEGIN), (VALUE)(0), (VALUE)(0), (VALUE)(0));
9651 (yyval.node) = (yyvsp[(2) - (2)].node);
9662 (yyval.node) = node_newnode(parser, (NODE_IF), (VALUE)(cond_gen(parser, (yyvsp[(3) - (3)].node))), (VALUE)(remove_begin((yyvsp[(1) - (3)].node))), (VALUE)(0));
9663 fixpos((yyval.node), (yyvsp[(3) - (3)].node));
9674 (yyval.node) = node_newnode(parser, (NODE_IF), (VALUE)(cond_gen(parser, (yyvsp[(3) - (3)].node))), (VALUE)(0), (VALUE)(remove_begin((yyvsp[(1) - (3)].node))));
9675 fixpos((yyval.node), (yyvsp[(3) - (3)].node));
9686 if ((yyvsp[(1) - (3)].node) && ((int) (((((struct RNode*)((yyvsp[(1) - (3)].node))))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_BEGIN) {
9687 (yyval.node) = node_newnode(parser, (NODE_WHILE), (VALUE)(cond_gen(parser, (yyvsp[(3) - (3)].node))), (VALUE)((yyvsp[(1) - (3)].node)->u2.node), (VALUE)(0));
9690 (yyval.node) = node_newnode(parser, (NODE_WHILE), (VALUE)(cond_gen(parser, (yyvsp[(3) - (3)].node))), (VALUE)((yyvsp[(1) - (3)].node)), (VALUE)(1));
9702 if ((yyvsp[(1) - (3)].node) && ((int) (((((struct RNode*)((yyvsp[(1) - (3)].node))))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_BEGIN) {
9703 (yyval.node) = node_newnode(parser, (NODE_UNTIL), (VALUE)(cond_gen(parser, (yyvsp[(3) - (3)].node))), (VALUE)((yyvsp[(1) - (3)].node)->u2.node), (VALUE)(0));
9706 (yyval.node) = node_newnode(parser, (NODE_UNTIL), (VALUE)(cond_gen(parser, (yyvsp[(3) - (3)].node))), (VALUE)((yyvsp[(1) - (3)].node)), (VALUE)(1));
9718 NODE *resq = node_newnode(parser, (NODE_RESBODY), (VALUE)(0), (VALUE)(remove_begin((yyvsp[(3) - (3)].node))), (VALUE)(0));
9719 (yyval.node) = node_newnode(parser, (NODE_RESCUE), (VALUE)(remove_begin((yyvsp[(1) - (3)].node))), (VALUE)(resq), (VALUE)(0));
9729 if ((parser->parser_in_def) || (parser->parser_in_single)) {
9730 parser_yyerror(parser, "BEGIN in method");
9743 (parser->parser_eval_tree_begin) = block_append_gen(parser,(parser->parser_eval_tree_begin),(yyvsp[(4) - (5)].node));
9747 (yyval.node) = node_newnode(parser, (NODE_BEGIN), (VALUE)(0), (VALUE)(0), (VALUE)(0));
9757 if ((parser->parser_in_def) || (parser->parser_in_single)) {
9758 rb_compile_warn((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "END in method; use at_exit");
9761 (yyval.node) = node_newnode(parser, (NODE_POSTEXE), (VALUE)(0), (VALUE)(node_newnode(parser, (NODE_SCOPE), (VALUE)(0), (VALUE)((yyvsp[(3) - (4)].node)), (VALUE)(0))), (VALUE)(0));
9773 value_expr_gen(parser, ((yyvsp[(3) - (3)].node)) = remove_begin((yyvsp[(3) - (3)].node)));
9774 (yyval.node) = node_assign_gen(parser, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
9785 value_expr_gen(parser, ((yyvsp[(3) - (3)].node)) = remove_begin((yyvsp[(3) - (3)].node)));
9786 (yyvsp[(1) - (3)].node)->u2.node = (yyvsp[(3) - (3)].node);
9787 (yyval.node) = (yyvsp[(1) - (3)].node);
9798 value_expr_gen(parser, ((yyvsp[(3) - (3)].node)) = remove_begin((yyvsp[(3) - (3)].node)));
9799 if ((yyvsp[(1) - (3)].node)) {
9800 ID vid = (yyvsp[(1) - (3)].node)->u1.id;
9801 if ((yyvsp[(2) - (3)].id) == 331) {
9802 (yyvsp[(1) - (3)].node)->u2.node = (yyvsp[(3) - (3)].node);
9803 (yyval.node) = node_newnode(parser, (NODE_OP_ASGN_OR), (VALUE)(gettable_gen(parser,vid)), (VALUE)((yyvsp[(1) - (3)].node)), (VALUE)(0));
9804 if (((((vid)>376)) && (((vid)&0x07) == 0x03 || ((vid)&0x07) == 0x01 || ((vid)&0x07) == 0x06))) {
9805 (yyval.node)->u3.id = vid;
9808 else if ((yyvsp[(2) - (3)].id) == 330) {
9809 (yyvsp[(1) - (3)].node)->u2.node = (yyvsp[(3) - (3)].node);
9810 (yyval.node) = node_newnode(parser, (NODE_OP_ASGN_AND), (VALUE)(gettable_gen(parser,vid)), (VALUE)((yyvsp[(1) - (3)].node)), (VALUE)(0));
9813 (yyval.node) = (yyvsp[(1) - (3)].node);
9814 (yyval.node)->u2.node = node_newnode(parser, (NODE_CALL), (VALUE)(gettable_gen(parser,vid)), (VALUE)((yyvsp[(2) - (3)].id)), (VALUE)(node_newnode(parser, (NODE_ARRAY), (VALUE)((yyvsp[(3) - (3)].node)), (VALUE)(1), (VALUE)(0))));
9818 (yyval.node) = node_newnode(parser, (NODE_BEGIN), (VALUE)(0), (VALUE)(0), (VALUE)(0));
9832 value_expr_gen(parser, ((yyvsp[(6) - (6)].node)) = remove_begin((yyvsp[(6) - (6)].node)));
9833 if (!(yyvsp[(3) - (6)].node)) (yyvsp[(3) - (6)].node) = node_newnode(parser, (NODE_ZARRAY), (VALUE)(0), (VALUE)(0), (VALUE)(0));
9834 args = arg_concat_gen(parser,(yyvsp[(6) - (6)].node),(yyvsp[(3) - (6)].node));
9835 if ((yyvsp[(5) - (6)].id) == 331) {
9836 (yyvsp[(5) - (6)].id) = 0;
9838 else if ((yyvsp[(5) - (6)].id) == 330) {
9839 (yyvsp[(5) - (6)].id) = 1;
9841 (yyval.node) = node_newnode(parser, (NODE_OP_ASGN1), (VALUE)((yyvsp[(1) - (6)].node)), (VALUE)((yyvsp[(5) - (6)].id)), (VALUE)(args));
9842 fixpos((yyval.node), (yyvsp[(1) - (6)].node));
9854 value_expr_gen(parser, ((yyvsp[(5) - (5)].node)) = remove_begin((yyvsp[(5) - (5)].node)));
9855 if ((yyvsp[(4) - (5)].id) == 331) {
9856 (yyvsp[(4) - (5)].id) = 0;
9858 else if ((yyvsp[(4) - (5)].id) == 330) {
9859 (yyvsp[(4) - (5)].id) = 1;
9861 (yyval.node) = node_newnode(parser, (NODE_OP_ASGN2), (VALUE)((yyvsp[(1) - (5)].node)), (VALUE)((yyvsp[(5) - (5)].node)), (VALUE)(node_newnode(parser, (NODE_OP_ASGN2), (VALUE)((yyvsp[(3) - (5)].id)), (VALUE)((yyvsp[(4) - (5)].id)), (VALUE)(rb_id_attrset((yyvsp[(3) - (5)].id))))));
9862 fixpos((yyval.node), (yyvsp[(1) - (5)].node));
9874 value_expr_gen(parser, ((yyvsp[(5) - (5)].node)) = remove_begin((yyvsp[(5) - (5)].node)));
9875 if ((yyvsp[(4) - (5)].id) == 331) {
9876 (yyvsp[(4) - (5)].id) = 0;
9878 else if ((yyvsp[(4) - (5)].id) == 330) {
9879 (yyvsp[(4) - (5)].id) = 1;
9881 (yyval.node) = node_newnode(parser, (NODE_OP_ASGN2), (VALUE)((yyvsp[(1) - (5)].node)), (VALUE)((yyvsp[(5) - (5)].node)), (VALUE)(node_newnode(parser, (NODE_OP_ASGN2), (VALUE)((yyvsp[(3) - (5)].id)), (VALUE)((yyvsp[(4) - (5)].id)), (VALUE)(rb_id_attrset((yyvsp[(3) - (5)].id))))));
9882 fixpos((yyval.node), (yyvsp[(1) - (5)].node));
9894 value_expr_gen(parser, ((yyvsp[(5) - (5)].node)) = remove_begin((yyvsp[(5) - (5)].node)));
9895 if ((yyvsp[(4) - (5)].id) == 331) {
9896 (yyvsp[(4) - (5)].id) = 0;
9898 else if ((yyvsp[(4) - (5)].id) == 330) {
9899 (yyvsp[(4) - (5)].id) = 1;
9901 (yyval.node) = node_newnode(parser, (NODE_OP_ASGN2), (VALUE)((yyvsp[(1) - (5)].node)), (VALUE)((yyvsp[(5) - (5)].node)), (VALUE)(node_newnode(parser, (NODE_OP_ASGN2), (VALUE)((yyvsp[(3) - (5)].id)), (VALUE)((yyvsp[(4) - (5)].id)), (VALUE)(rb_id_attrset((yyvsp[(3) - (5)].id))))));
9902 fixpos((yyval.node), (yyvsp[(1) - (5)].node));
9914 rb_backref_error_gen(parser,(yyvsp[(1) - (3)].node));
9915 (yyval.node) = node_newnode(parser, (NODE_BEGIN), (VALUE)(0), (VALUE)(0), (VALUE)(0));
9927 value_expr_gen(parser, ((yyvsp[(3) - (3)].node)) = remove_begin((yyvsp[(3) - (3)].node)));
9928 (yyval.node) = node_assign_gen(parser, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
9939 (yyvsp[(1) - (3)].node)->u2.node = (yyvsp[(3) - (3)].node);
9940 (yyval.node) = (yyvsp[(1) - (3)].node);
9951 (yyvsp[(1) - (3)].node)->u2.node = (yyvsp[(3) - (3)].node);
9952 (yyval.node) = (yyvsp[(1) - (3)].node);
9963 (yyval.node) = logop_gen(parser, NODE_AND, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
9974 (yyval.node) = logop_gen(parser, NODE_OR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
9985 (yyval.node) = call_uni_op_gen(parser, cond_gen(parser, (yyvsp[(3) - (3)].node)),'!');
9996 (yyval.node) = call_uni_op_gen(parser, cond_gen(parser, (yyvsp[(2) - (2)].node)),'!');
10007 value_expr_gen(parser, ((yyvsp[(1) - (1)].node)) = remove_begin((yyvsp[(1) - (1)].node)));
10008 (yyval.node) = (yyvsp[(1) - (1)].node);
10009 if (!(yyval.node)) (yyval.node) = node_newnode(parser, (NODE_NIL), (VALUE)(0), (VALUE)(0), (VALUE)(0));
10020 (yyval.node) = node_newnode(parser, (NODE_RETURN), (VALUE)(ret_args_gen(parser, (yyvsp[(2) - (2)].node))), (VALUE)(0), (VALUE)(0));
10031 (yyval.node) = node_newnode(parser, (NODE_BREAK), (VALUE)(ret_args_gen(parser, (yyvsp[(2) - (2)].node))), (VALUE)(0), (VALUE)(0));
10042 (yyval.node) = node_newnode(parser, (NODE_NEXT), (VALUE)(ret_args_gen(parser, (yyvsp[(2) - (2)].node))), (VALUE)(0), (VALUE)(0));
10053 (yyval.node) = node_newnode(parser, (NODE_CALL), (VALUE)((yyvsp[(1) - (4)].node)), (VALUE)((yyvsp[(3) - (4)].id)), (VALUE)((yyvsp[(4) - (4)].node)));
10065 (yyval.node) = node_newnode(parser, (NODE_CALL), (VALUE)((yyvsp[(1) - (4)].node)), (VALUE)((yyvsp[(3) - (4)].id)), (VALUE)((yyvsp[(4) - (4)].node)));
10077 dyna_push_gen(parser);
10078 (yyval.num) = (parser->parser_ruby_sourceline);
10088 (yyval.node) = node_newnode(parser, (NODE_ITER), (VALUE)(0), (VALUE)(node_newnode(parser, (NODE_SCOPE), (VALUE)(local_tbl_gen(parser)), (VALUE)((yyvsp[(4) - (5)].node)), (VALUE)((yyvsp[(3) - (5)].node)))), (VALUE)(0));
10089 ((struct RNode*)((yyval.node)))->flags=((((struct RNode*)((yyval.node)))->flags&~(-1<<(8 +7)))|((((yyvsp[(2) - (5)].num))&(((long)1<<(sizeof(VALUE)*8 -(8 +7)))-1))<<(8 +7)));
10090 dyna_pop_gen(parser);
10101 (yyval.node) = node_newnode(parser, (NODE_FCALL), (VALUE)(0), (VALUE)((yyvsp[(1) - (2)].id)), (VALUE)((yyvsp[(2) - (2)].node)));
10102 fixpos((yyval.node), (yyvsp[(2) - (2)].node));
10113 block_dup_check_gen(parser,(yyvsp[(2) - (3)].node),(yyvsp[(3) - (3)].node));
10114 (yyvsp[(3) - (3)].node)->u3.node = node_newnode(parser, (NODE_FCALL), (VALUE)(0), (VALUE)((yyvsp[(1) - (3)].id)), (VALUE)((yyvsp[(2) - (3)].node)));
10115 (yyval.node) = (yyvsp[(3) - (3)].node);
10116 fixpos((yyval.node), (yyvsp[(2) - (3)].node));
10128 (yyval.node) = node_newnode(parser, (NODE_CALL), (VALUE)((yyvsp[(1) - (4)].node)), (VALUE)((yyvsp[(3) - (4)].id)), (VALUE)((yyvsp[(4) - (4)].node)));
10129 fixpos((yyval.node), (yyvsp[(1) - (4)].node));
10140 block_dup_check_gen(parser,(yyvsp[(4) - (5)].node),(yyvsp[(5) - (5)].node));
10141 (yyvsp[(5) - (5)].node)->u3.node = node_newnode(parser, (NODE_CALL), (VALUE)((yyvsp[(1) - (5)].node)), (VALUE)((yyvsp[(3) - (5)].id)), (VALUE)((yyvsp[(4) - (5)].node)));
10142 (yyval.node) = (yyvsp[(5) - (5)].node);
10143 fixpos((yyval.node), (yyvsp[(1) - (5)].node));
10155 (yyval.node) = node_newnode(parser, (NODE_CALL), (VALUE)((yyvsp[(1) - (4)].node)), (VALUE)((yyvsp[(3) - (4)].id)), (VALUE)((yyvsp[(4) - (4)].node)));
10156 fixpos((yyval.node), (yyvsp[(1) - (4)].node));
10167 block_dup_check_gen(parser,(yyvsp[(4) - (5)].node),(yyvsp[(5) - (5)].node));
10168 (yyvsp[(5) - (5)].node)->u3.node = node_newnode(parser, (NODE_CALL), (VALUE)((yyvsp[(1) - (5)].node)), (VALUE)((yyvsp[(3) - (5)].id)), (VALUE)((yyvsp[(4) - (5)].node)));
10169 (yyval.node) = (yyvsp[(5) - (5)].node);
10170 fixpos((yyval.node), (yyvsp[(1) - (5)].node));
10182 (yyval.node) = node_newnode(parser, (NODE_SUPER), (VALUE)(0), (VALUE)(0), (VALUE)((yyvsp[(2) - (2)].node)));
10183 fixpos((yyval.node), (yyvsp[(2) - (2)].node));
10194 (yyval.node) = new_yield_gen(parser, (yyvsp[(2) - (2)].node));
10195 fixpos((yyval.node), (yyvsp[(2) - (2)].node));
10206 (yyval.node) = (yyvsp[(2) - (3)].node);
10217 (yyval.node) = node_newnode(parser, (NODE_MASGN), (VALUE)(node_newnode(parser, (NODE_ARRAY), (VALUE)((yyvsp[(2) - (3)].node)), (VALUE)(1), (VALUE)(0))), (VALUE)(0), (VALUE)(0));
10228 (yyval.node) = node_newnode(parser, (NODE_MASGN), (VALUE)((yyvsp[(1) - (1)].node)), (VALUE)(0), (VALUE)(0));
10239 (yyval.node) = node_newnode(parser, (NODE_MASGN), (VALUE)(list_append_gen(parser,(yyvsp[(1) - (2)].node),(yyvsp[(2) - (2)].node))), (VALUE)(0), (VALUE)(0));
10250 (yyval.node) = node_newnode(parser, (NODE_MASGN), (VALUE)((yyvsp[(1) - (3)].node)), (VALUE)(0), (VALUE)((yyvsp[(3) - (3)].node)));
10261 (yyval.node) = node_newnode(parser, (NODE_MASGN), (VALUE)((yyvsp[(1) - (5)].node)), (VALUE)(0), (VALUE)(node_newnode(parser, (NODE_POSTARG), (VALUE)((yyvsp[(3) - (5)].node)), (VALUE)((yyvsp[(5) - (5)].node)), (VALUE)(0))));
10272 (yyval.node) = node_newnode(parser, (NODE_MASGN), (VALUE)((yyvsp[(1) - (2)].node)), (VALUE)(0), (VALUE)(-1));
10283 (yyval.node) = node_newnode(parser, (NODE_MASGN), (VALUE)((yyvsp[(1) - (4)].node)), (VALUE)(0), (VALUE)(node_newnode(parser, (NODE_POSTARG), (VALUE)(-1), (VALUE)((yyvsp[(4) - (4)].node)), (VALUE)(0))));
10294 (yyval.node) = node_newnode(parser, (NODE_MASGN), (VALUE)(0), (VALUE)(0), (VALUE)((yyvsp[(2) - (2)].node)));
10305 (yyval.node) = node_newnode(parser, (NODE_MASGN), (VALUE)(0), (VALUE)(0), (VALUE)(node_newnode(parser, (NODE_POSTARG), (VALUE)((yyvsp[(2) - (4)].node)), (VALUE)((yyvsp[(4) - (4)].node)), (VALUE)(0))));
10316 (yyval.node) = node_newnode(parser, (NODE_MASGN), (VALUE)(0), (VALUE)(0), (VALUE)(-1));
10327 (yyval.node) = node_newnode(parser, (NODE_MASGN), (VALUE)(0), (VALUE)(0), (VALUE)(node_newnode(parser, (NODE_POSTARG), (VALUE)(-1), (VALUE)((yyvsp[(3) - (3)].node)), (VALUE)(0))));
10338 (yyval.node) = (yyvsp[(2) - (3)].node);
10349 (yyval.node) = node_newnode(parser, (NODE_ARRAY), (VALUE)((yyvsp[(1) - (2)].node)), (VALUE)(1), (VALUE)(0));
10360 (yyval.node) = list_append_gen(parser,(yyvsp[(1) - (3)].node),(yyvsp[(2) - (3)].node));
10371 (yyval.node) = node_newnode(parser, (NODE_ARRAY), (VALUE)((yyvsp[(1) - (1)].node)), (VALUE)(1), (VALUE)(0));
10382 (yyval.node) = list_append_gen(parser,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));
10393 (yyval.node) = assignable_gen(parser, (yyvsp[(1) - (1)].id), 0);
10404 (yyval.node) = aryset_gen(parser, (yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].node));
10415 (yyval.node) = attrset_gen(parser, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].id));
10426 (yyval.node) = attrset_gen(parser, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].id));
10437 (yyval.node) = attrset_gen(parser, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].id));
10448 if ((parser->parser_in_def) || (parser->parser_in_single))
10449 parser_yyerror(parser, "dynamic constant assignment");
10450 (yyval.node) = node_newnode(parser, (NODE_CDECL), (VALUE)(0), (VALUE)(0), (VALUE)(node_newnode(parser, (NODE_COLON2), (VALUE)((yyvsp[(1) - (3)].node)), (VALUE)((yyvsp[(3) - (3)].id)), (VALUE)(0))));
10463 if ((parser->parser_in_def) || (parser->parser_in_single))
10464 parser_yyerror(parser, "dynamic constant assignment");
10465 (yyval.node) = node_newnode(parser, (NODE_CDECL), (VALUE)(0), (VALUE)(0), (VALUE)(node_newnode(parser, (NODE_COLON3), (VALUE)(0), (VALUE)((yyvsp[(2) - (2)].id)), (VALUE)(0))));
10476 rb_backref_error_gen(parser,(yyvsp[(1) - (1)].node));
10477 (yyval.node) = node_newnode(parser, (NODE_BEGIN), (VALUE)(0), (VALUE)(0), (VALUE)(0));
10489 if (!((yyval.node) = assignable_gen(parser, (yyvsp[(1) - (1)].id), 0))) (yyval.node) = node_newnode(parser, (NODE_BEGIN), (VALUE)(0), (VALUE)(0), (VALUE)(0));
10500 (yyval.node) = aryset_gen(parser, (yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].node));
10511 (yyval.node) = attrset_gen(parser, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].id));
10522 (yyval.node) = attrset_gen(parser, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].id));
10533 (yyval.node) = attrset_gen(parser, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].id));
10544 if ((parser->parser_in_def) || (parser->parser_in_single))
10545 parser_yyerror(parser, "dynamic constant assignment");
10546 (yyval.node) = node_newnode(parser, (NODE_CDECL), (VALUE)(0), (VALUE)(0), (VALUE)(node_newnode(parser, (NODE_COLON2), (VALUE)((yyvsp[(1) - (3)].node)), (VALUE)((yyvsp[(3) - (3)].id)), (VALUE)(0))));
10560 if ((parser->parser_in_def) || (parser->parser_in_single))
10561 parser_yyerror(parser, "dynamic constant assignment");
10562 (yyval.node) = node_newnode(parser, (NODE_CDECL), (VALUE)(0), (VALUE)(0), (VALUE)(node_newnode(parser, (NODE_COLON3), (VALUE)(0), (VALUE)((yyvsp[(2) - (2)].id)), (VALUE)(0))));
10576 rb_backref_error_gen(parser,(yyvsp[(1) - (1)].node));
10577 (yyval.node) = node_newnode(parser, (NODE_BEGIN), (VALUE)(0), (VALUE)(0), (VALUE)(0));
10588 parser_yyerror(parser, "class/module name must be CONSTANT");
10599 (yyval.node) = node_newnode(parser, (NODE_COLON3), (VALUE)(0), (VALUE)((yyvsp[(2) - (2)].id)), (VALUE)(0));
10610 (yyval.node) = node_newnode(parser, (NODE_COLON2), (VALUE)(0), (VALUE)((yyval.node)), (VALUE)(0));
10621 (yyval.node) = node_newnode(parser, (NODE_COLON2), (VALUE)((yyvsp[(1) - (3)].node)), (VALUE)((yyvsp[(3) - (3)].id)), (VALUE)(0));
10632 (parser->parser_lex_state) = EXPR_END;
10633 (yyval.id) = (yyvsp[(1) - (1)].id);
10645 (parser->parser_lex_state) = EXPR_END;
10646 (yyval.id) = (yyvsp[(1) - (1)].id);
10658 (yyval.node) = node_newnode(parser, (NODE_LIT), (VALUE)((((VALUE)((yyvsp[(1) - (1)].id))<<RUBY_SPECIAL_SHIFT)|RUBY_SYMBOL_FLAG)), (VALUE)(0), (VALUE)(0));
10669 (yyval.node) = node_newnode(parser, (NODE_UNDEF), (VALUE)(0), (VALUE)((yyvsp[(1) - (1)].node)), (VALUE)(0));
10678 {(parser->parser_lex_state) = EXPR_FNAME;;}
10685 (yyval.node) = block_append_gen(parser,(yyvsp[(1) - (4)].node),node_newnode(parser, (NODE_UNDEF), (VALUE)(0), (VALUE)((yyvsp[(4) - (4)].node)), (VALUE)(0)));
10694 { (yyval.id) = '|'; ;}
10699 { (yyval.id) = '^'; ;}
10704 { (yyval.id) = '&'; ;}
10709 { (yyval.id) = 324; ;}
10714 { (yyval.id) = 325; ;}
10719 { (yyval.id) = 326; ;}
10724 { (yyval.id) = 332; ;}
10729 { (yyval.id) = 333; ;}
10734 { (yyval.id) = '>'; ;}
10739 { (yyval.id) = 328; ;}
10744 { (yyval.id) = '<'; ;}
10749 { (yyval.id) = 329; ;}
10754 { (yyval.id) = 327; ;}
10759 { (yyval.id) = 338; ;}
10764 { (yyval.id) = 339; ;}
10769 { (yyval.id) = '+'; ;}
10774 { (yyval.id) = '-'; ;}
10779 { (yyval.id) = '*'; ;}
10784 { (yyval.id) = '*'; ;}
10789 { (yyval.id) = '/'; ;}
10794 { (yyval.id) = '%'; ;}
10799 { (yyval.id) = 323; ;}
10804 { (yyval.id) = '!'; ;}
10809 { (yyval.id) = '~'; ;}
10814 { (yyval.id) = 321; ;}
10819 { (yyval.id) = 322; ;}
10824 { (yyval.id) = 336; ;}
10829 { (yyval.id) = 337; ;}
10834 { (yyval.id) = '`'; ;}
10841 value_expr_gen(parser, ((yyvsp[(3) - (3)].node)) = remove_begin((yyvsp[(3) - (3)].node)));
10842 (yyval.node) = node_assign_gen(parser, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
10853 value_expr_gen(parser, ((yyvsp[(3) - (5)].node)) = remove_begin((yyvsp[(3) - (5)].node)));
10854 (yyvsp[(3) - (5)].node) = node_newnode(parser, (NODE_RESCUE), (VALUE)((yyvsp[(3) - (5)].node)), (VALUE)(node_newnode(parser, (NODE_RESBODY), (VALUE)(0), (VALUE)((yyvsp[(5) - (5)].node)), (VALUE)(0))), (VALUE)(0));
10855 (yyval.node) = node_assign_gen(parser, (yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].node));
10866 value_expr_gen(parser, ((yyvsp[(3) - (3)].node)) = remove_begin((yyvsp[(3) - (3)].node)));
10867 if ((yyvsp[(1) - (3)].node)) {
10868 ID vid = (yyvsp[(1) - (3)].node)->u1.id;
10869 if ((yyvsp[(2) - (3)].id) == 331) {
10870 (yyvsp[(1) - (3)].node)->u2.node = (yyvsp[(3) - (3)].node);
10871 (yyval.node) = node_newnode(parser, (NODE_OP_ASGN_OR), (VALUE)(gettable_gen(parser,vid)), (VALUE)((yyvsp[(1) - (3)].node)), (VALUE)(0));
10872 if (((((vid)>376)) && (((vid)&0x07) == 0x03 || ((vid)&0x07) == 0x01 || ((vid)&0x07) == 0x06))) {
10873 (yyval.node)->u3.id = vid;
10876 else if ((yyvsp[(2) - (3)].id) == 330) {
10877 (yyvsp[(1) - (3)].node)->u2.node = (yyvsp[(3) - (3)].node);
10878 (yyval.node) = node_newnode(parser, (NODE_OP_ASGN_AND), (VALUE)(gettable_gen(parser,vid)), (VALUE)((yyvsp[(1) - (3)].node)), (VALUE)(0));
10881 (yyval.node) = (yyvsp[(1) - (3)].node);
10882 (yyval.node)->u2.node = node_newnode(parser, (NODE_CALL), (VALUE)(gettable_gen(parser,vid)), (VALUE)((yyvsp[(2) - (3)].id)), (VALUE)(node_newnode(parser, (NODE_ARRAY), (VALUE)((yyvsp[(3) - (3)].node)), (VALUE)(1), (VALUE)(0))));
10886 (yyval.node) = node_newnode(parser, (NODE_BEGIN), (VALUE)(0), (VALUE)(0), (VALUE)(0));
10898 value_expr_gen(parser, ((yyvsp[(3) - (5)].node)) = remove_begin((yyvsp[(3) - (5)].node)));
10899 (yyvsp[(3) - (5)].node) = node_newnode(parser, (NODE_RESCUE), (VALUE)((yyvsp[(3) - (5)].node)), (VALUE)(node_newnode(parser, (NODE_RESBODY), (VALUE)(0), (VALUE)((yyvsp[(5) - (5)].node)), (VALUE)(0))), (VALUE)(0));
10900 if ((yyvsp[(1) - (5)].node)) {
10901 ID vid = (yyvsp[(1) - (5)].node)->u1.id;
10902 if ((yyvsp[(2) - (5)].id) == 331) {
10903 (yyvsp[(1) - (5)].node)->u2.node = (yyvsp[(3) - (5)].node);
10904 (yyval.node) = node_newnode(parser, (NODE_OP_ASGN_OR), (VALUE)(gettable_gen(parser,vid)), (VALUE)((yyvsp[(1) - (5)].node)), (VALUE)(0));
10905 if (((((vid)>376)) && (((vid)&0x07) == 0x03 || ((vid)&0x07) == 0x01 || ((vid)&0x07) == 0x06))) {
10906 (yyval.node)->u3.id = vid;
10909 else if ((yyvsp[(2) - (5)].id) == 330) {
10910 (yyvsp[(1) - (5)].node)->u2.node = (yyvsp[(3) - (5)].node);
10911 (yyval.node) = node_newnode(parser, (NODE_OP_ASGN_AND), (VALUE)(gettable_gen(parser,vid)), (VALUE)((yyvsp[(1) - (5)].node)), (VALUE)(0));
10914 (yyval.node) = (yyvsp[(1) - (5)].node);
10915 (yyval.node)->u2.node = node_newnode(parser, (NODE_CALL), (VALUE)(gettable_gen(parser,vid)), (VALUE)((yyvsp[(2) - (5)].id)), (VALUE)(node_newnode(parser, (NODE_ARRAY), (VALUE)((yyvsp[(3) - (5)].node)), (VALUE)(1), (VALUE)(0))));
10919 (yyval.node) = node_newnode(parser, (NODE_BEGIN), (VALUE)(0), (VALUE)(0), (VALUE)(0));
10934 value_expr_gen(parser, ((yyvsp[(6) - (6)].node)) = remove_begin((yyvsp[(6) - (6)].node)));
10935 if (!(yyvsp[(3) - (6)].node)) (yyvsp[(3) - (6)].node) = node_newnode(parser, (NODE_ZARRAY), (VALUE)(0), (VALUE)(0), (VALUE)(0));
10936 args = arg_concat_gen(parser,(yyvsp[(6) - (6)].node),(yyvsp[(3) - (6)].node));
10937 if ((yyvsp[(5) - (6)].id) == 331) {
10938 (yyvsp[(5) - (6)].id) = 0;
10940 else if ((yyvsp[(5) - (6)].id) == 330) {
10941 (yyvsp[(5) - (6)].id) = 1;
10943 (yyval.node) = node_newnode(parser, (NODE_OP_ASGN1), (VALUE)((yyvsp[(1) - (6)].node)), (VALUE)((yyvsp[(5) - (6)].id)), (VALUE)(args));
10944 fixpos((yyval.node), (yyvsp[(1) - (6)].node));
10956 value_expr_gen(parser, ((yyvsp[(5) - (5)].node)) = remove_begin((yyvsp[(5) - (5)].node)));
10957 if ((yyvsp[(4) - (5)].id) == 331) {
10958 (yyvsp[(4) - (5)].id) = 0;
10960 else if ((yyvsp[(4) - (5)].id) == 330) {
10961 (yyvsp[(4) - (5)].id) = 1;
10963 (yyval.node) = node_newnode(parser, (NODE_OP_ASGN2), (VALUE)((yyvsp[(1) - (5)].node)), (VALUE)((yyvsp[(5) - (5)].node)), (VALUE)(node_newnode(parser, (NODE_OP_ASGN2), (VALUE)((yyvsp[(3) - (5)].id)), (VALUE)((yyvsp[(4) - (5)].id)), (VALUE)(rb_id_attrset((yyvsp[(3) - (5)].id))))));
10964 fixpos((yyval.node), (yyvsp[(1) - (5)].node));
10976 value_expr_gen(parser, ((yyvsp[(5) - (5)].node)) = remove_begin((yyvsp[(5) - (5)].node)));
10977 if ((yyvsp[(4) - (5)].id) == 331) {
10978 (yyvsp[(4) - (5)].id) = 0;
10980 else if ((yyvsp[(4) - (5)].id) == 330) {
10981 (yyvsp[(4) - (5)].id) = 1;
10983 (yyval.node) = node_newnode(parser, (NODE_OP_ASGN2), (VALUE)((yyvsp[(1) - (5)].node)), (VALUE)((yyvsp[(5) - (5)].node)), (VALUE)(node_newnode(parser, (NODE_OP_ASGN2), (VALUE)((yyvsp[(3) - (5)].id)), (VALUE)((yyvsp[(4) - (5)].id)), (VALUE)(rb_id_attrset((yyvsp[(3) - (5)].id))))));
10984 fixpos((yyval.node), (yyvsp[(1) - (5)].node));
10996 value_expr_gen(parser, ((yyvsp[(5) - (5)].node)) = remove_begin((yyvsp[(5) - (5)].node)));
10997 if ((yyvsp[(4) - (5)].id) == 331) {
10998 (yyvsp[(4) - (5)].id) = 0;
11000 else if ((yyvsp[(4) - (5)].id) == 330) {
11001 (yyvsp[(4) - (5)].id) = 1;
11003 (yyval.node) = node_newnode(parser, (NODE_OP_ASGN2), (VALUE)((yyvsp[(1) - (5)].node)), (VALUE)((yyvsp[(5) - (5)].node)), (VALUE)(node_newnode(parser, (NODE_OP_ASGN2), (VALUE)((yyvsp[(3) - (5)].id)), (VALUE)((yyvsp[(4) - (5)].id)), (VALUE)(rb_id_attrset((yyvsp[(3) - (5)].id))))));
11004 fixpos((yyval.node), (yyvsp[(1) - (5)].node));
11016 parser_yyerror(parser, "constant re-assignment");
11017 (yyval.node) = node_newnode(parser, (NODE_BEGIN), (VALUE)(0), (VALUE)(0), (VALUE)(0));
11030 parser_yyerror(parser, "constant re-assignment");
11031 (yyval.node) = node_newnode(parser, (NODE_BEGIN), (VALUE)(0), (VALUE)(0), (VALUE)(0));
11044 rb_backref_error_gen(parser,(yyvsp[(1) - (3)].node));
11045 (yyval.node) = node_newnode(parser, (NODE_BEGIN), (VALUE)(0), (VALUE)(0), (VALUE)(0));
11058 value_expr_gen(parser, ((yyvsp[(1) - (3)].node)) = remove_begin((yyvsp[(1) - (3)].node)));
11059 value_expr_gen(parser, ((yyvsp[(3) - (3)].node)) = remove_begin((yyvsp[(3) - (3)].node)));
11060 (yyval.node) = node_newnode(parser, (NODE_DOT2), (VALUE)((yyvsp[(1) - (3)].node)), (VALUE)((yyvsp[(3) - (3)].node)), (VALUE)(0));
11061 if (((int) (((((struct RNode*)((yyvsp[(1) - (3)].node))))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_LIT && (((long)((yyvsp[(1) - (3)].node)->u1.value))&RUBY_FIXNUM_FLAG) &&
11062 ((int) (((((struct RNode*)((yyvsp[(3) - (3)].node))))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_LIT && (((long)((yyvsp[(3) - (3)].node)->u1.value))&RUBY_FIXNUM_FLAG)) {
11063 (parser->parser_deferred_nodes) = list_append_gen(parser,(parser->parser_deferred_nodes),(yyval.node));
11075 value_expr_gen(parser, ((yyvsp[(1) - (3)].node)) = remove_begin((yyvsp[(1) - (3)].node)));
11076 value_expr_gen(parser, ((yyvsp[(3) - (3)].node)) = remove_begin((yyvsp[(3) - (3)].node)));
11077 (yyval.node) = node_newnode(parser, (NODE_DOT3), (VALUE)((yyvsp[(1) - (3)].node)), (VALUE)((yyvsp[(3) - (3)].node)), (VALUE)(0));
11078 if (((int) (((((struct RNode*)((yyvsp[(1) - (3)].node))))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_LIT && (((long)((yyvsp[(1) - (3)].node)->u1.value))&RUBY_FIXNUM_FLAG) &&
11079 ((int) (((((struct RNode*)((yyvsp[(3) - (3)].node))))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_LIT && (((long)((yyvsp[(3) - (3)].node)->u1.value))&RUBY_FIXNUM_FLAG)) {
11080 (parser->parser_deferred_nodes) = list_append_gen(parser,(parser->parser_deferred_nodes),(yyval.node));
11092 (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),'+',(yyvsp[(3) - (3)].node));
11103 (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),'-',(yyvsp[(3) - (3)].node));
11114 (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),'*',(yyvsp[(3) - (3)].node));
11125 (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),'/',(yyvsp[(3) - (3)].node));
11136 (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),'%',(yyvsp[(3) - (3)].node));
11147 (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),323,(yyvsp[(3) - (3)].node));
11158 (yyval.node) = node_newnode(parser, (NODE_CALL), (VALUE)(call_bin_op_gen(parser, (yyvsp[(2) - (4)].node),323,(yyvsp[(4) - (4)].node))), (VALUE)(322), (VALUE)(0));
11170 (yyval.node) = node_newnode(parser, (NODE_CALL), (VALUE)(call_bin_op_gen(parser, (yyvsp[(2) - (4)].node),323,(yyvsp[(4) - (4)].node))), (VALUE)(322), (VALUE)(0));
11182 (yyval.node) = call_uni_op_gen(parser, (yyvsp[(2) - (2)].node),321);
11193 (yyval.node) = call_uni_op_gen(parser, (yyvsp[(2) - (2)].node),322);
11204 (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),'|',(yyvsp[(3) - (3)].node));
11215 (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),'^',(yyvsp[(3) - (3)].node));
11226 (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),'&',(yyvsp[(3) - (3)].node));
11237 (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),324,(yyvsp[(3) - (3)].node));
11248 (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),'>',(yyvsp[(3) - (3)].node));
11259 (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),328,(yyvsp[(3) - (3)].node));
11270 (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),'<',(yyvsp[(3) - (3)].node));
11281 (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),329,(yyvsp[(3) - (3)].node));
11292 (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),325,(yyvsp[(3) - (3)].node));
11303 (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),326,(yyvsp[(3) - (3)].node));
11314 (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),327,(yyvsp[(3) - (3)].node));
11325 (yyval.node) = match_op_gen(parser, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
11326 if (((int) (((((struct RNode*)((yyvsp[(1) - (3)].node))))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_LIT && rb_type((VALUE)((yyvsp[(1) - (3)].node)->u1.value)) == RUBY_T_REGEXP) {
11327 (yyval.node) = reg_named_capture_assign_gen(parser,(yyvsp[(1) - (3)].node)->u1.value,(yyval.node));
11339 (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),333,(yyvsp[(3) - (3)].node));
11350 (yyval.node) = call_uni_op_gen(parser, cond_gen(parser, (yyvsp[(2) - (2)].node)),'!');
11361 (yyval.node) = call_uni_op_gen(parser, (yyvsp[(2) - (2)].node),'~');
11372 (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),338,(yyvsp[(3) - (3)].node));
11383 (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),339,(yyvsp[(3) - (3)].node));
11394 (yyval.node) = logop_gen(parser, NODE_AND, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
11405 (yyval.node) = logop_gen(parser, NODE_OR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
11414 {(parser->parser_in_defined) = 1;;}
11421 (parser->parser_in_defined) = 0;
11422 (yyval.node) = node_newnode(parser, (NODE_DEFINED), (VALUE)((yyvsp[(4) - (4)].node)), (VALUE)(0), (VALUE)(0));
11434 value_expr_gen(parser, ((yyvsp[(1) - (6)].node)) = remove_begin((yyvsp[(1) - (6)].node)));
11435 (yyval.node) = node_newnode(parser, (NODE_IF), (VALUE)(cond_gen(parser, (yyvsp[(1) - (6)].node))), (VALUE)((yyvsp[(3) - (6)].node)), (VALUE)((yyvsp[(6) - (6)].node)));
11436 fixpos((yyval.node), (yyvsp[(1) - (6)].node));
11446 (yyval.node) = (yyvsp[(1) - (1)].node);
11454 value_expr_gen(parser, ((yyvsp[(1) - (1)].node)) = remove_begin((yyvsp[(1) - (1)].node)));
11455 (yyval.node) = (yyvsp[(1) - (1)].node);
11456 if (!(yyval.node)) (yyval.node) = node_newnode(parser, (NODE_NIL), (VALUE)(0), (VALUE)(0), (VALUE)(0));
11466 (yyval.node) = (yyvsp[(1) - (2)].node);
11474 (yyval.node) = arg_append_gen(parser,(yyvsp[(1) - (4)].node),node_newnode(parser, (NODE_HASH), (VALUE)((yyvsp[(3) - (4)].node)), (VALUE)(0), (VALUE)(0)));
11485 (yyval.node) = node_newnode(parser, (NODE_ARRAY), (VALUE)(node_newnode(parser, (NODE_HASH), (VALUE)((yyvsp[(1) - (2)].node)), (VALUE)(0), (VALUE)(0))), (VALUE)(1), (VALUE)(0));
11496 (yyval.node) = (yyvsp[(2) - (3)].node);
11507 (yyval.node) = node_newnode(parser, (NODE_ARRAY), (VALUE)((yyvsp[(1) - (1)].node)), (VALUE)(1), (VALUE)(0));
11518 (yyval.node) = arg_blk_pass((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node));
11529 (yyval.node) = node_newnode(parser, (NODE_ARRAY), (VALUE)(node_newnode(parser, (NODE_HASH), (VALUE)((yyvsp[(1) - (2)].node)), (VALUE)(0), (VALUE)(0))), (VALUE)(1), (VALUE)(0));
11530 (yyval.node) = arg_blk_pass((yyval.node), (yyvsp[(2) - (2)].node));
11542 (yyval.node) = arg_append_gen(parser,(yyvsp[(1) - (4)].node),node_newnode(parser, (NODE_HASH), (VALUE)((yyvsp[(3) - (4)].node)), (VALUE)(0), (VALUE)(0)));
11543 (yyval.node) = arg_blk_pass((yyval.node), (yyvsp[(4) - (4)].node));
11553 (yyval.num) = (parser->parser_cmdarg_stack);
11554 ((parser->parser_cmdarg_stack) = ((parser->parser_cmdarg_stack)<<1)|((1)&1));
11562 (parser->parser_cmdarg_stack) = (yyvsp[(1) - (2)].num);
11563 (yyval.node) = (yyvsp[(2) - (2)].node);
11571 (yyval.node) = node_newnode(parser, (NODE_BLOCK_PASS), (VALUE)(0), (VALUE)((yyvsp[(2) - (2)].node)), (VALUE)(0));
11581 (yyval.node) = (yyvsp[(2) - (2)].node);
11603 (yyval.node) = node_newnode(parser, (NODE_ARRAY), (VALUE)((yyvsp[(1) - (1)].node)), (VALUE)(1), (VALUE)(0));
11614 (yyval.node) = node_newnode(parser, (NODE_SPLAT), (VALUE)((yyvsp[(2) - (2)].node)), (VALUE)(0), (VALUE)(0));
11626 if ((n1 = splat_array((yyvsp[(1) - (3)].node))) != 0) {
11627 (yyval.node) = list_append_gen(parser,n1,(yyvsp[(3) - (3)].node));
11630 (yyval.node) = arg_append_gen(parser,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));
11643 if ((((int) (((((struct RNode*)((yyvsp[(4) - (4)].node))))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_ARRAY) && (n1 = splat_array((yyvsp[(1) - (4)].node))) != 0) {
11644 (yyval.node) = list_concat_gen(parser,n1,(yyvsp[(4) - (4)].node));
11647 (yyval.node) = arg_concat_gen(parser,(yyvsp[(1) - (4)].node),(yyvsp[(4) - (4)].node));
11660 if ((n1 = splat_array((yyvsp[(1) - (3)].node))) != 0) {
11661 (yyval.node) = list_append_gen(parser,n1,(yyvsp[(3) - (3)].node));
11664 (yyval.node) = arg_append_gen(parser,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));
11677 if (((int) (((((struct RNode*)((yyvsp[(4) - (4)].node))))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_ARRAY &&
11678 (n1 = splat_array((yyvsp[(1) - (4)].node))) != 0) {
11679 (yyval.node) = list_concat_gen(parser,n1,(yyvsp[(4) - (4)].node));
11682 (yyval.node) = arg_concat_gen(parser,(yyvsp[(1) - (4)].node),(yyvsp[(4) - (4)].node));
11694 (yyval.node) = node_newnode(parser, (NODE_SPLAT), (VALUE)((yyvsp[(2) - (2)].node)), (VALUE)(0), (VALUE)(0));
11705 (yyval.node) = node_newnode(parser, (NODE_FCALL), (VALUE)(0), (VALUE)((yyvsp[(1) - (1)].id)), (VALUE)(0));
11716 (yyval.num) = (parser->parser_ruby_sourceline);
11726 if ((yyvsp[(3) - (4)].node) == ((void *)0)) {
11727 (yyval.node) = node_newnode(parser, (NODE_NIL), (VALUE)(0), (VALUE)(0), (VALUE)(0));
11730 if (((int) (((((struct RNode*)((yyvsp[(3) - (4)].node))))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_RESCUE ||
11731 ((int) (((((struct RNode*)((yyvsp[(3) - (4)].node))))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_ENSURE)
11732 ((struct RNode*)((yyvsp[(3) - (4)].node)))->flags=((((struct RNode*)((yyvsp[(3) - (4)].node)))->flags&~(-1<<(8 +7)))|((((yyvsp[(2) - (4)].num))&(((long)1<<(sizeof(VALUE)*8 -(8 +7)))-1))<<(8 +7)));
11733 (yyval.node) = node_newnode(parser, (NODE_BEGIN), (VALUE)(0), (VALUE)((yyvsp[(3) - (4)].node)), (VALUE)(0));
11735 ((struct RNode*)((yyval.node)))->flags=((((struct RNode*)((yyval.node)))->flags&~(-1<<(8 +7)))|((((yyvsp[(2) - (4)].num))&(((long)1<<(sizeof(VALUE)*8 -(8 +7)))-1))<<(8 +7)));
11744 {(parser->parser_lex_state) = EXPR_ENDARG;;}
11750 rb_compile_warning((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "(...) interpreted as grouped expression");
11752 (yyval.node) = (yyvsp[(2) - (4)].node);
11763 (yyval.node) = (yyvsp[(2) - (3)].node);
11774 (yyval.node) = node_newnode(parser, (NODE_COLON2), (VALUE)((yyvsp[(1) - (3)].node)), (VALUE)((yyvsp[(3) - (3)].id)), (VALUE)(0));
11785 (yyval.node) = node_newnode(parser, (NODE_COLON3), (VALUE)(0), (VALUE)((yyvsp[(2) - (2)].id)), (VALUE)(0));
11796 if ((yyvsp[(2) - (3)].node) == 0) {
11797 (yyval.node) = node_newnode(parser, (NODE_ZARRAY), (VALUE)(0), (VALUE)(0), (VALUE)(0));
11800 (yyval.node) = (yyvsp[(2) - (3)].node);
11812 (yyval.node) = node_newnode(parser, (NODE_HASH), (VALUE)((yyvsp[(2) - (3)].node)), (VALUE)(0), (VALUE)(0));
11823 (yyval.node) = node_newnode(parser, (NODE_RETURN), (VALUE)(0), (VALUE)(0), (VALUE)(0));
11834 (yyval.node) = new_yield_gen(parser, (yyvsp[(3) - (4)].node));
11845 (yyval.node) = node_newnode(parser, (NODE_YIELD), (VALUE)(0), (VALUE)(0), (VALUE)(((VALUE)RUBY_Qfalse)));
11856 (yyval.node) = node_newnode(parser, (NODE_YIELD), (VALUE)(0), (VALUE)(0), (VALUE)(((VALUE)RUBY_Qfalse)));
11865 {(parser->parser_in_defined) = 1;;}
11872 (parser->parser_in_defined) = 0;
11873 (yyval.node) = node_newnode(parser, (NODE_DEFINED), (VALUE)((yyvsp[(5) - (6)].node)), (VALUE)(0), (VALUE)(0));
11885 (yyval.node) = call_uni_op_gen(parser, cond_gen(parser, (yyvsp[(3) - (4)].node)),'!');
11896 (yyval.node) = call_uni_op_gen(parser, cond_gen(parser, node_newnode(parser, (NODE_NIL), (VALUE)(0), (VALUE)(0), (VALUE)(0))),'!');
11907 (yyvsp[(2) - (2)].node)->u3.node = node_newnode(parser, (NODE_FCALL), (VALUE)(0), (VALUE)((yyvsp[(1) - (2)].id)), (VALUE)(0));
11908 (yyval.node) = (yyvsp[(2) - (2)].node);
11909 fixpos((yyvsp[(2) - (2)].node)->u3.node, (yyvsp[(2) - (2)].node));
11921 block_dup_check_gen(parser,(yyvsp[(1) - (2)].node)->u3.node,(yyvsp[(2) - (2)].node));
11922 (yyvsp[(2) - (2)].node)->u3.node = (yyvsp[(1) - (2)].node);
11923 (yyval.node) = (yyvsp[(2) - (2)].node);
11924 fixpos((yyval.node), (yyvsp[(1) - (2)].node));
11934 (yyval.node) = (yyvsp[(2) - (2)].node);
11942 (yyval.node) = node_newnode(parser, (NODE_IF), (VALUE)(cond_gen(parser, (yyvsp[(2) - (6)].node))), (VALUE)((yyvsp[(4) - (6)].node)), (VALUE)((yyvsp[(5) - (6)].node)));
11943 fixpos((yyval.node), (yyvsp[(2) - (6)].node));
11954 (yyval.node) = node_newnode(parser, (NODE_IF), (VALUE)(cond_gen(parser, (yyvsp[(2) - (6)].node))), (VALUE)((yyvsp[(5) - (6)].node)), (VALUE)((yyvsp[(4) - (6)].node)));
11955 fixpos((yyval.node), (yyvsp[(2) - (6)].node));
11964 {((parser->parser_cond_stack) = ((parser->parser_cond_stack)<<1)|((1)&1));;}
11969 {((parser->parser_cond_stack) = (parser->parser_cond_stack) >> 1);;}
11976 (yyval.node) = node_newnode(parser, (NODE_WHILE), (VALUE)(cond_gen(parser, (yyvsp[(3) - (7)].node))), (VALUE)((yyvsp[(6) - (7)].node)), (VALUE)(1));
11977 fixpos((yyval.node), (yyvsp[(3) - (7)].node));
11986 {((parser->parser_cond_stack) = ((parser->parser_cond_stack)<<1)|((1)&1));;}
11991 {((parser->parser_cond_stack) = (parser->parser_cond_stack) >> 1);;}
11998 (yyval.node) = node_newnode(parser, (NODE_UNTIL), (VALUE)(cond_gen(parser, (yyvsp[(3) - (7)].node))), (VALUE)((yyvsp[(6) - (7)].node)), (VALUE)(1));
11999 fixpos((yyval.node), (yyvsp[(3) - (7)].node));
12010 (yyval.node) = node_newnode(parser, (NODE_CASE), (VALUE)((yyvsp[(2) - (5)].node)), (VALUE)((yyvsp[(4) - (5)].node)), (VALUE)(0));
12011 fixpos((yyval.node), (yyvsp[(2) - (5)].node));
12022 (yyval.node) = node_newnode(parser, (NODE_CASE), (VALUE)(0), (VALUE)((yyvsp[(3) - (4)].node)), (VALUE)(0));
12031 {((parser->parser_cond_stack) = ((parser->parser_cond_stack)<<1)|((1)&1));;}
12036 {((parser->parser_cond_stack) = (parser->parser_cond_stack) >> 1);;}
12043 ID id = internal_id_gen(parser);
12044 ID *tbl = (ID*)ruby_xmalloc2((2),sizeof(ID));
12045 NODE *m = node_newnode(parser, (NODE_ARGS_AUX), (VALUE)(0), (VALUE)(0), (VALUE)(0));
12046 NODE *args, *scope;
12048 if (((int) (((((struct RNode*)((yyvsp[(2) - (9)].node))))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_MASGN) {
12053 NODE *one = node_newnode(parser, (NODE_ARRAY), (VALUE)(node_newnode(parser, (NODE_LIT), (VALUE)(((VALUE)(((long)(1))<<1 | RUBY_FIXNUM_FLAG))), (VALUE)(0), (VALUE)(0))), (VALUE)(1), (VALUE)(0));
12054 NODE *zero = node_newnode(parser, (NODE_ARRAY), (VALUE)(node_newnode(parser, (NODE_LIT), (VALUE)(((VALUE)(((long)(0))<<1 | RUBY_FIXNUM_FLAG))), (VALUE)(0), (VALUE)(0))), (VALUE)(1), (VALUE)(0));
12055 m->u3.node = block_append_gen(parser,node_newnode(parser, (NODE_IF), (VALUE)(node_newnode(parser, (NODE_AND), (VALUE)(node_newnode(parser, (NODE_CALL), (VALUE)(node_newnode(parser, (NODE_CALL), (VALUE)(node_newnode(parser, (NODE_DVAR), (VALUE)(id), (VALUE)(0), (VALUE)(0))), (VALUE)((__builtin_constant_p("length") ? __extension__ (rb_intern2("length", strlen("length"))) : (rb_intern)("length"))), (VALUE)(0))), (VALUE)((__builtin_constant_p("==") ? __extension__ (rb_intern2("==", strlen("=="))) : (rb_intern)("=="))), (VALUE)(one))), (VALUE)(node_newnode(parser, (NODE_CALL), (VALUE)(node_newnode(parser, (NODE_CALL), (VALUE)(node_newnode(parser, (NODE_DVAR), (VALUE)(id), (VALUE)(0), (VALUE)(0))), (VALUE)((__builtin_constant_p("[]") ? __extension__ (rb_intern2("[]", strlen("[]"))) : (rb_intern)("[]"))), (VALUE)(zero))), (VALUE)((__builtin_constant_p("kind_of?") ? __extension__ (rb_intern2("kind_of?", strlen("kind_of?"))) : (rb_intern)("kind_of?"))), (VALUE)(node_newnode(parser, (NODE_ARRAY), (VALUE)(node_newnode(parser, (NODE_LIT), (VALUE)(rb_cArray), (VALUE)(0), (VALUE)(0))), (VALUE)(1), (VALUE)(0))))), (VALUE)(0))), (VALUE)(node_newnode(parser, (NODE_DASGN_CURR), (VALUE)(id), (VALUE)(node_newnode(parser, (NODE_CALL), (VALUE)(node_newnode(parser, (NODE_DVAR), (VALUE)(id), (VALUE)(0), (VALUE)(0))), (VALUE)((__builtin_constant_p("[]") ? __extension__ (rb_intern2("[]", strlen("[]"))) : (rb_intern)("[]"))), (VALUE)(zero))), (VALUE)(0))), (VALUE)(0)),node_assign_gen(parser, (yyvsp[(2) - (9)].node), node_newnode(parser, (NODE_DVAR), (VALUE)(id), (VALUE)(0), (VALUE)(0))));
12057 args = new_args_gen(parser, m,0,id,0,0);
12060 if (((int) (((((struct RNode*)((yyvsp[(2) - (9)].node))))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_LASGN ||
12061 ((int) (((((struct RNode*)((yyvsp[(2) - (9)].node))))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_DASGN ||
12062 ((int) (((((struct RNode*)((yyvsp[(2) - (9)].node))))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_DASGN_CURR) {
12063 (yyvsp[(2) - (9)].node)->u2.node = node_newnode(parser, (NODE_DVAR), (VALUE)(id), (VALUE)(0), (VALUE)(0));
12065 m->u3.node = (yyvsp[(2) - (9)].node);
12066 args = new_args_gen(parser, m,0,0,0,0);
12069 m->u3.node = node_assign_gen(parser, node_newnode(parser, (NODE_MASGN), (VALUE)(node_newnode(parser, (NODE_ARRAY), (VALUE)((yyvsp[(2) - (9)].node)), (VALUE)(1), (VALUE)(0))), (VALUE)(0), (VALUE)(0)), node_newnode(parser, (NODE_DVAR), (VALUE)(id), (VALUE)(0), (VALUE)(0)));
12070 args = new_args_gen(parser, m,0,id,0,0);
12073 scope = node_newnode(parser, (NODE_SCOPE), (VALUE)(tbl), (VALUE)((yyvsp[(8) - (9)].node)), (VALUE)(args));
12074 tbl[0] = 1; tbl[1] = id;
12075 (yyval.node) = node_newnode(parser, (NODE_FOR), (VALUE)(0), (VALUE)(scope), (VALUE)((yyvsp[(5) - (9)].node)));
12076 fixpos((yyval.node), (yyvsp[(2) - (9)].node));
12086 if ((parser->parser_in_def) || (parser->parser_in_single))
12087 parser_yyerror(parser, "class definition in method body");
12089 local_push_gen(parser,0);
12090 (yyval.num) = (parser->parser_ruby_sourceline);
12100 (yyval.node) = node_newnode(parser, (NODE_CLASS), (VALUE)((yyvsp[(2) - (6)].node)), (VALUE)(node_newnode(parser, (NODE_SCOPE), (VALUE)(local_tbl_gen(parser)), (VALUE)((yyvsp[(5) - (6)].node)), (VALUE)(0))), (VALUE)(((yyvsp[(3) - (6)].node))));
12101 ((struct RNode*)((yyval.node)))->flags=((((struct RNode*)((yyval.node)))->flags&~(-1<<(8 +7)))|((((yyvsp[(4) - (6)].num))&(((long)1<<(sizeof(VALUE)*8 -(8 +7)))-1))<<(8 +7)));
12102 local_pop_gen(parser);
12112 (yyval.num) = (parser->parser_in_def);
12113 (parser->parser_in_def) = 0;
12120 (yyval.num) = (parser->parser_in_single);
12121 (parser->parser_in_single) = 0;
12123 local_push_gen(parser,0);
12133 (yyval.node) = node_newnode(parser, (NODE_SCLASS), (VALUE)((yyvsp[(3) - (8)].node)), (VALUE)(node_newnode(parser, (NODE_SCOPE), (VALUE)(local_tbl_gen(parser)), (VALUE)((yyvsp[(7) - (8)].node)), (VALUE)(0))), (VALUE)(0));
12134 fixpos((yyval.node), (yyvsp[(3) - (8)].node));
12135 local_pop_gen(parser);
12139 (parser->parser_in_def) = (yyvsp[(4) - (8)].num);
12140 (parser->parser_in_single) = (yyvsp[(6) - (8)].num);
12147 if ((parser->parser_in_def) || (parser->parser_in_single))
12148 parser_yyerror(parser, "module definition in method body");
12150 local_push_gen(parser,0);
12151 (yyval.num) = (parser->parser_ruby_sourceline);
12161 (yyval.node) = node_newnode(parser, (NODE_MODULE), (VALUE)((yyvsp[(2) - (5)].node)), (VALUE)(node_newnode(parser, (NODE_SCOPE), (VALUE)(local_tbl_gen(parser)), (VALUE)((yyvsp[(4) - (5)].node)), (VALUE)(0))), (VALUE)(0));
12162 ((struct RNode*)((yyval.node)))->flags=((((struct RNode*)((yyval.node)))->flags&~(-1<<(8 +7)))|((((yyvsp[(3) - (5)].num))&(((long)1<<(sizeof(VALUE)*8 -(8 +7)))-1))<<(8 +7)));
12163 local_pop_gen(parser);
12173 (yyval.id) = (parser->parser_cur_mid);
12174 (parser->parser_cur_mid) = (yyvsp[(2) - (2)].id);
12175 (parser->parser_in_def)++;
12177 local_push_gen(parser,0);
12187 NODE *body = remove_begin((yyvsp[(5) - (6)].node));
12188 reduce_nodes_gen(parser,&body);
12189 (yyval.node) = node_newnode(parser, (NODE_DEFN), (VALUE)(0), (VALUE)((yyvsp[(2) - (6)].id)), (VALUE)(node_newnode(parser, (NODE_SCOPE), (VALUE)(local_tbl_gen(parser)), (VALUE)(body), (VALUE)((yyvsp[(4) - (6)].node)))));
12190 fixpos((yyval.node), (yyvsp[(4) - (6)].node));
12191 fixpos((yyval.node)->u3.node, (yyvsp[(4) - (6)].node));
12192 local_pop_gen(parser);
12196 (parser->parser_in_def)--;
12197 (parser->parser_cur_mid) = (yyvsp[(3) - (6)].id);
12203 {(parser->parser_lex_state) = EXPR_FNAME;;}
12209 (parser->parser_in_single)++;
12210 (parser->parser_lex_state) = EXPR_END;
12212 local_push_gen(parser,0);
12222 NODE *body = remove_begin((yyvsp[(8) - (9)].node));
12223 reduce_nodes_gen(parser,&body);
12224 (yyval.node) = node_newnode(parser, (NODE_DEFS), (VALUE)((yyvsp[(2) - (9)].node)), (VALUE)((yyvsp[(5) - (9)].id)), (VALUE)(node_newnode(parser, (NODE_SCOPE), (VALUE)(local_tbl_gen(parser)), (VALUE)(body), (VALUE)((yyvsp[(7) - (9)].node)))));
12225 fixpos((yyval.node), (yyvsp[(2) - (9)].node));
12226 fixpos((yyval.node)->u3.node, (yyvsp[(2) - (9)].node));
12227 local_pop_gen(parser);
12231 (parser->parser_in_single)--;
12239 (yyval.node) = node_newnode(parser, (NODE_BREAK), (VALUE)(0), (VALUE)(0), (VALUE)(0));
12250 (yyval.node) = node_newnode(parser, (NODE_NEXT), (VALUE)(0), (VALUE)(0), (VALUE)(0));
12261 (yyval.node) = node_newnode(parser, (NODE_REDO), (VALUE)(0), (VALUE)(0), (VALUE)(0));
12272 (yyval.node) = node_newnode(parser, (NODE_RETRY), (VALUE)(0), (VALUE)(0), (VALUE)(0));
12283 value_expr_gen(parser, ((yyvsp[(1) - (1)].node)) = remove_begin((yyvsp[(1) - (1)].node)));
12284 (yyval.node) = (yyvsp[(1) - (1)].node);
12285 if (!(yyval.node)) (yyval.node) = node_newnode(parser, (NODE_NIL), (VALUE)(0), (VALUE)(0), (VALUE)(0));
12296 if ((((VALUE)((*rb_ruby_verbose_ptr())) & ~((VALUE)RUBY_Qnil)) != 0)) token_info_push(parser, "begin");
12305 if ((((VALUE)((*rb_ruby_verbose_ptr())) & ~((VALUE)RUBY_Qnil)) != 0)) token_info_push(parser, "if");
12314 if ((((VALUE)((*rb_ruby_verbose_ptr())) & ~((VALUE)RUBY_Qnil)) != 0)) token_info_push(parser, "unless");
12323 if ((((VALUE)((*rb_ruby_verbose_ptr())) & ~((VALUE)RUBY_Qnil)) != 0)) token_info_push(parser, "while");
12332 if ((((VALUE)((*rb_ruby_verbose_ptr())) & ~((VALUE)RUBY_Qnil)) != 0)) token_info_push(parser, "until");
12341 if ((((VALUE)((*rb_ruby_verbose_ptr())) & ~((VALUE)RUBY_Qnil)) != 0)) token_info_push(parser, "case");
12350 if ((((VALUE)((*rb_ruby_verbose_ptr())) & ~((VALUE)RUBY_Qnil)) != 0)) token_info_push(parser, "for");
12359 if ((((VALUE)((*rb_ruby_verbose_ptr())) & ~((VALUE)RUBY_Qnil)) != 0)) token_info_push(parser, "class");
12368 if ((((VALUE)((*rb_ruby_verbose_ptr())) & ~((VALUE)RUBY_Qnil)) != 0)) token_info_push(parser, "module");
12377 if ((((VALUE)((*rb_ruby_verbose_ptr())) & ~((VALUE)RUBY_Qnil)) != 0)) token_info_push(parser, "def");
12386 if ((((VALUE)((*rb_ruby_verbose_ptr())) & ~((VALUE)RUBY_Qnil)) != 0)) token_info_pop(parser, "end");
12395 (yyval.node) = node_newnode(parser, (NODE_IF), (VALUE)(cond_gen(parser, (yyvsp[(2) - (5)].node))), (VALUE)((yyvsp[(4) - (5)].node)), (VALUE)((yyvsp[(5) - (5)].node)));
12396 fixpos((yyval.node), (yyvsp[(2) - (5)].node));
12407 (yyval.node) = (yyvsp[(2) - (2)].node);
12418 (yyval.node) = assignable_gen(parser, (yyvsp[(1) - (1)].id), 0);
12429 (yyval.node) = (yyvsp[(2) - (3)].node);
12440 (yyval.node) = node_newnode(parser, (NODE_ARRAY), (VALUE)((yyvsp[(1) - (1)].node)), (VALUE)(1), (VALUE)(0));
12451 (yyval.node) = list_append_gen(parser,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));
12462 (yyval.node) = node_newnode(parser, (NODE_MASGN), (VALUE)((yyvsp[(1) - (1)].node)), (VALUE)(0), (VALUE)(0));
12473 (yyval.node) = node_newnode(parser, (NODE_MASGN), (VALUE)((yyvsp[(1) - (4)].node)), (VALUE)(0), (VALUE)(assignable_gen(parser, (yyvsp[(4) - (4)].id), 0)));
12484 (yyval.node) = node_newnode(parser, (NODE_MASGN), (VALUE)((yyvsp[(1) - (6)].node)), (VALUE)(0), (VALUE)(node_newnode(parser, (NODE_POSTARG), (VALUE)(assignable_gen(parser, (yyvsp[(4) - (6)].id), 0)), (VALUE)((yyvsp[(6) - (6)].node)), (VALUE)(0))));
12495 (yyval.node) = node_newnode(parser, (NODE_MASGN), (VALUE)((yyvsp[(1) - (3)].node)), (VALUE)(0), (VALUE)(-1));
12506 (yyval.node) = node_newnode(parser, (NODE_MASGN), (VALUE)((yyvsp[(1) - (5)].node)), (VALUE)(0), (VALUE)(node_newnode(parser, (NODE_POSTARG), (VALUE)(-1), (VALUE)((yyvsp[(5) - (5)].node)), (VALUE)(0))));
12517 (yyval.node) = node_newnode(parser, (NODE_MASGN), (VALUE)(0), (VALUE)(0), (VALUE)(assignable_gen(parser, (yyvsp[(2) - (2)].id), 0)));
12528 (yyval.node) = node_newnode(parser, (NODE_MASGN), (VALUE)(0), (VALUE)(0), (VALUE)(node_newnode(parser, (NODE_POSTARG), (VALUE)(assignable_gen(parser, (yyvsp[(2) - (4)].id), 0)), (VALUE)((yyvsp[(4) - (4)].node)), (VALUE)(0))));
12542 (yyval.node) = node_newnode(parser, (NODE_MASGN), (VALUE)(0), (VALUE)(0), (VALUE)(-1));
12553 (yyval.node) = node_newnode(parser, (NODE_MASGN), (VALUE)(0), (VALUE)(0), (VALUE)(node_newnode(parser, (NODE_POSTARG), (VALUE)(-1), (VALUE)((yyvsp[(3) - (3)].node)), (VALUE)(0))));
12564 (yyval.node) = new_args_gen(parser, (yyvsp[(1) - (6)].node),(yyvsp[(3) - (6)].node),(yyvsp[(5) - (6)].id),0,(yyvsp[(6) - (6)].id));
12575 (yyval.node) = new_args_gen(parser, (yyvsp[(1) - (8)].node),(yyvsp[(3) - (8)].node),(yyvsp[(5) - (8)].id),(yyvsp[(7) - (8)].node),(yyvsp[(8) - (8)].id));
12586 (yyval.node) = new_args_gen(parser, (yyvsp[(1) - (4)].node),(yyvsp[(3) - (4)].node),0,0,(yyvsp[(4) - (4)].id));
12597 (yyval.node) = new_args_gen(parser, (yyvsp[(1) - (6)].node),(yyvsp[(3) - (6)].node),0,(yyvsp[(5) - (6)].node),(yyvsp[(6) - (6)].id));
12608 (yyval.node) = new_args_gen(parser, (yyvsp[(1) - (4)].node),0,(yyvsp[(3) - (4)].id),0,(yyvsp[(4) - (4)].id));
12619 (yyval.node) = new_args_gen(parser, (yyvsp[(1) - (2)].node),0,1,0,0);
12631 (yyval.node) = new_args_gen(parser, (yyvsp[(1) - (6)].node),0,(yyvsp[(3) - (6)].id),(yyvsp[(5) - (6)].node),(yyvsp[(6) - (6)].id));
12642 (yyval.node) = new_args_gen(parser, (yyvsp[(1) - (2)].node),0,0,0,(yyvsp[(2) - (2)].id));
12653 (yyval.node) = new_args_gen(parser, 0,(yyvsp[(1) - (4)].node),(yyvsp[(3) - (4)].id),0,(yyvsp[(4) - (4)].id));
12664 (yyval.node) = new_args_gen(parser, 0,(yyvsp[(1) - (6)].node),(yyvsp[(3) - (6)].id),(yyvsp[(5) - (6)].node),(yyvsp[(6) - (6)].id));
12675 (yyval.node) = new_args_gen(parser, 0,(yyvsp[(1) - (2)].node),0,0,(yyvsp[(2) - (2)].id));
12686 (yyval.node) = new_args_gen(parser, 0,(yyvsp[(1) - (4)].node),0,(yyvsp[(3) - (4)].node),(yyvsp[(4) - (4)].id));
12697 (yyval.node) = new_args_gen(parser, 0,0,(yyvsp[(1) - (2)].id),0,(yyvsp[(2) - (2)].id));
12708 (yyval.node) = new_args_gen(parser, 0,0,(yyvsp[(1) - (4)].id),(yyvsp[(3) - (4)].node),(yyvsp[(4) - (4)].id));
12719 (yyval.node) = new_args_gen(parser, 0,0,0,0,(yyvsp[(1) - (1)].id));
12729 (parser->parser_command_start) = ((VALUE)RUBY_Qtrue);
12761 (yyval.node) = (yyvsp[(2) - (4)].node);
12783 new_bv_gen(parser, (yyvsp[(1) - (1)].id));
12801 dyna_push_gen(parser);
12804 (yyval.num) = (parser->parser_lpar_beg);
12805 (parser->parser_lpar_beg) = ++(parser->parser_paren_nest);
12812 (parser->parser_lpar_beg) = (yyvsp[(1) - (3)].num);
12814 (yyval.node) = (yyvsp[(2) - (3)].node);
12815 (yyval.node)->u2.node = node_newnode(parser, (NODE_SCOPE), (VALUE)(local_tbl_gen(parser)), (VALUE)((yyvsp[(3) - (3)].node)), (VALUE)((yyvsp[(2) - (3)].node)->u1.node));
12816 dyna_pop_gen(parser);
12827 (yyval.node) = node_newnode(parser, (NODE_LAMBDA), (VALUE)((yyvsp[(2) - (4)].node)), (VALUE)(0), (VALUE)(0));
12838 (yyval.node) = node_newnode(parser, (NODE_LAMBDA), (VALUE)((yyvsp[(1) - (1)].node)), (VALUE)(0), (VALUE)(0));
12848 (yyval.node) = (yyvsp[(2) - (3)].node);
12855 (yyval.node) = (yyvsp[(2) - (3)].node);
12863 dyna_push_gen(parser);
12864 (yyval.num) = (parser->parser_ruby_sourceline);
12873 (yyval.node) = node_newnode(parser, (NODE_ITER), (VALUE)(0), (VALUE)(node_newnode(parser, (NODE_SCOPE), (VALUE)(local_tbl_gen(parser)), (VALUE)((yyvsp[(4) - (5)].node)), (VALUE)((yyvsp[(3) - (5)].node)))), (VALUE)(0));
12874 ((struct RNode*)((yyval.node)))->flags=((((struct RNode*)((yyval.node)))->flags&~(-1<<(8 +7)))|((((yyvsp[(2) - (5)].num))&(((long)1<<(sizeof(VALUE)*8 -(8 +7)))-1))<<(8 +7)));
12875 dyna_pop_gen(parser);
12886 if (((int) (((((struct RNode*)((yyvsp[(1) - (2)].node))))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_YIELD) {
12887 parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "block given to yield");
12890 block_dup_check_gen(parser,(yyvsp[(1) - (2)].node)->u3.node,(yyvsp[(2) - (2)].node));
12892 (yyvsp[(2) - (2)].node)->u3.node = (yyvsp[(1) - (2)].node);
12893 (yyval.node) = (yyvsp[(2) - (2)].node);
12894 fixpos((yyval.node), (yyvsp[(1) - (2)].node));
12905 (yyval.node) = node_newnode(parser, (NODE_CALL), (VALUE)((yyvsp[(1) - (4)].node)), (VALUE)((yyvsp[(3) - (4)].id)), (VALUE)((yyvsp[(4) - (4)].node)));
12917 (yyval.node) = node_newnode(parser, (NODE_CALL), (VALUE)((yyvsp[(1) - (4)].node)), (VALUE)((yyvsp[(3) - (4)].id)), (VALUE)((yyvsp[(4) - (4)].node)));
12929 (yyval.node) = node_newnode(parser, (NODE_FCALL), (VALUE)(0), (VALUE)((yyvsp[(1) - (2)].id)), (VALUE)((yyvsp[(2) - (2)].node)));
12930 fixpos((yyval.node), (yyvsp[(2) - (2)].node));
12941 (yyval.node) = node_newnode(parser, (NODE_CALL), (VALUE)((yyvsp[(1) - (4)].node)), (VALUE)((yyvsp[(3) - (4)].id)), (VALUE)((yyvsp[(4) - (4)].node)));
12942 fixpos((yyval.node), (yyvsp[(1) - (4)].node));
12954 (yyval.node) = node_newnode(parser, (NODE_CALL), (VALUE)((yyvsp[(1) - (4)].node)), (VALUE)((yyvsp[(3) - (4)].id)), (VALUE)((yyvsp[(4) - (4)].node)));
12955 fixpos((yyval.node), (yyvsp[(1) - (4)].node));
12967 (yyval.node) = node_newnode(parser, (NODE_CALL), (VALUE)((yyvsp[(1) - (3)].node)), (VALUE)((yyvsp[(3) - (3)].id)), (VALUE)(0));
12978 (yyval.node) = node_newnode(parser, (NODE_CALL), (VALUE)((yyvsp[(1) - (3)].node)), (VALUE)((__builtin_constant_p("call") ? __extension__ (rb_intern2("call", strlen("call"))) : (rb_intern)("call"))), (VALUE)((yyvsp[(3) - (3)].node)));
12979 fixpos((yyval.node), (yyvsp[(1) - (3)].node));
12992 (yyval.node) = node_newnode(parser, (NODE_CALL), (VALUE)((yyvsp[(1) - (3)].node)), (VALUE)((__builtin_constant_p("call") ? __extension__ (rb_intern2("call", strlen("call"))) : (rb_intern)("call"))), (VALUE)((yyvsp[(3) - (3)].node)));
12993 fixpos((yyval.node), (yyvsp[(1) - (3)].node));
13006 (yyval.node) = node_newnode(parser, (NODE_SUPER), (VALUE)(0), (VALUE)(0), (VALUE)((yyvsp[(2) - (2)].node)));
13017 (yyval.node) = node_newnode(parser, (NODE_ZSUPER), (VALUE)(0), (VALUE)(0), (VALUE)(0));
13028 if ((yyvsp[(1) - (4)].node) && ((int) (((((struct RNode*)((yyvsp[(1) - (4)].node))))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_SELF)
13029 (yyval.node) = node_newnode(parser, (NODE_FCALL), (VALUE)(0), (VALUE)(336), (VALUE)((yyvsp[(3) - (4)].node)));
13031 (yyval.node) = node_newnode(parser, (NODE_CALL), (VALUE)((yyvsp[(1) - (4)].node)), (VALUE)(336), (VALUE)((yyvsp[(3) - (4)].node)));
13032 fixpos((yyval.node), (yyvsp[(1) - (4)].node));
13043 dyna_push_gen(parser);
13044 (yyval.num) = (parser->parser_ruby_sourceline);
13054 (yyval.node) = node_newnode(parser, (NODE_ITER), (VALUE)(0), (VALUE)(node_newnode(parser, (NODE_SCOPE), (VALUE)(local_tbl_gen(parser)), (VALUE)((yyvsp[(4) - (5)].node)), (VALUE)((yyvsp[(3) - (5)].node)))), (VALUE)(0));
13055 ((struct RNode*)((yyval.node)))->flags=((((struct RNode*)((yyval.node)))->flags&~(-1<<(8 +7)))|((((yyvsp[(2) - (5)].num))&(((long)1<<(sizeof(VALUE)*8 -(8 +7)))-1))<<(8 +7)));
13056 ((struct RNode*)((yyval.node)->u2.node))->flags=((((struct RNode*)((yyval.node)->u2.node))->flags&~(-1<<(8 +7)))|((((yyvsp[(2) - (5)].num))&(((long)1<<(sizeof(VALUE)*8 -(8 +7)))-1))<<(8 +7)));
13057 ((struct RNode*)((yyval.node)->u2.node->u2.node))->flags=((((struct RNode*)((yyval.node)->u2.node->u2.node))->flags&~(-1<<(8 +7)))|((((yyvsp[(2) - (5)].num))&(((long)1<<(sizeof(VALUE)*8 -(8 +7)))-1))<<(8 +7)));
13058 dyna_pop_gen(parser);
13069 dyna_push_gen(parser);
13070 (yyval.num) = (parser->parser_ruby_sourceline);
13080 (yyval.node) = node_newnode(parser, (NODE_ITER), (VALUE)(0), (VALUE)(node_newnode(parser, (NODE_SCOPE), (VALUE)(local_tbl_gen(parser)), (VALUE)((yyvsp[(4) - (5)].node)), (VALUE)((yyvsp[(3) - (5)].node)))), (VALUE)(0));
13081 ((struct RNode*)((yyval.node)))->flags=((((struct RNode*)((yyval.node)))->flags&~(-1<<(8 +7)))|((((yyvsp[(2) - (5)].num))&(((long)1<<(sizeof(VALUE)*8 -(8 +7)))-1))<<(8 +7)));
13082 dyna_pop_gen(parser);
13093 (yyval.node) = node_newnode(parser, (NODE_WHEN), (VALUE)((yyvsp[(2) - (5)].node)), (VALUE)((yyvsp[(4) - (5)].node)), (VALUE)((yyvsp[(5) - (5)].node)));
13104 if ((yyvsp[(3) - (6)].node)) {
13105 (yyvsp[(3) - (6)].node) = node_assign_gen(parser, (yyvsp[(3) - (6)].node), node_newnode(parser, (NODE_ERRINFO), (VALUE)(0), (VALUE)(0), (VALUE)(0)));
13106 (yyvsp[(5) - (6)].node) = block_append_gen(parser,(yyvsp[(3) - (6)].node),(yyvsp[(5) - (6)].node));
13108 (yyval.node) = node_newnode(parser, (NODE_RESBODY), (VALUE)((yyvsp[(6) - (6)].node)), (VALUE)((yyvsp[(5) - (6)].node)), (VALUE)((yyvsp[(2) - (6)].node)));
13109 fixpos((yyval.node), (yyvsp[(2) - (6)].node)?(yyvsp[(2) - (6)].node):(yyvsp[(5) - (6)].node));
13124 (yyval.node) = node_newnode(parser, (NODE_ARRAY), (VALUE)((yyvsp[(1) - (1)].node)), (VALUE)(1), (VALUE)(0));
13135 if (!((yyval.node) = splat_array((yyvsp[(1) - (1)].node)))) (yyval.node) = (yyvsp[(1) - (1)].node);
13145 (yyval.node) = (yyvsp[(2) - (2)].node);
13153 (yyval.node) = (yyvsp[(2) - (2)].node);
13164 (yyval.node) = node_newnode(parser, (NODE_LIT), (VALUE)((((VALUE)((yyvsp[(1) - (1)].id))<<RUBY_SPECIAL_SHIFT)|RUBY_SYMBOL_FLAG)), (VALUE)(0), (VALUE)(0));
13175 NODE *node = (yyvsp[(1) - (1)].node);
13177 node = node_newnode(parser, (NODE_STR), (VALUE)(rb_enc_str_new(0,0,parser->enc)), (VALUE)(0), (VALUE)(0));
13180 node = evstr2dstr_gen(parser,node);
13182 (yyval.node) = node;
13193 (yyval.node) = literal_concat_gen(parser,(yyvsp[(1) - (2)].node),(yyvsp[(2) - (2)].node));
13204 (yyval.node) = (yyvsp[(2) - (3)].node);
13215 NODE *node = (yyvsp[(2) - (3)].node);
13217 node = node_newnode(parser, (NODE_XSTR), (VALUE)(rb_enc_str_new(0,0,parser->enc)), (VALUE)(0), (VALUE)(0));
13220 switch (((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8))) {
13222 ((struct RNode*)(node))->flags=((((struct RNode*)(node))->flags&~(((VALUE)0x7f)<<8))|(((NODE_XSTR)<<8)&(((VALUE)0x7f)<<8)));
13225 ((struct RNode*)(node))->flags=((((struct RNode*)(node))->flags&~(((VALUE)0x7f)<<8))|(((NODE_DXSTR)<<8)&(((VALUE)0x7f)<<8)));
13228 node = node_newnode(parser, (NODE_DXSTR), (VALUE)(rb_enc_str_new(0,0,parser->enc)), (VALUE)(1), (VALUE)(node_newnode(parser, (NODE_ARRAY), (VALUE)(node), (VALUE)(1), (VALUE)(0))));
13232 (yyval.node) = node;
13243 int options = (yyvsp[(3) - (3)].num);
13244 NODE *node = (yyvsp[(2) - (3)].node);
13247 node = node_newnode(parser, (NODE_LIT), (VALUE)(reg_compile_gen(parser, rb_enc_str_new(0,0,parser->enc), options)), (VALUE)(0), (VALUE)(0));
13249 else switch (((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8))) {
13252 VALUE src = node->u1.value;
13253 ((struct RNode*)(node))->flags=((((struct RNode*)(node))->flags&~(((VALUE)0x7f)<<8))|(((NODE_LIT)<<8)&(((VALUE)0x7f)<<8)));
13254 node->u1.value = reg_compile_gen(parser, src, options);
13258 node = node_newnode(parser, (NODE_DSTR), (VALUE)(rb_enc_str_new(0,0,parser->enc)), (VALUE)(1), (VALUE)(node_newnode(parser, (NODE_ARRAY), (VALUE)(node), (VALUE)(1), (VALUE)(0))));
13260 if (options & (1<<16)) {
13261 ((struct RNode*)(node))->flags=((((struct RNode*)(node))->flags&~(((VALUE)0x7f)<<8))|(((NODE_DREGX_ONCE)<<8)&(((VALUE)0x7f)<<8)));
13264 ((struct RNode*)(node))->flags=((((struct RNode*)(node))->flags&~(((VALUE)0x7f)<<8))|(((NODE_DREGX)<<8)&(((VALUE)0x7f)<<8)));
13266 node->u2.id = options & 0xff;
13267 reg_fragment_check_gen(parser, node->u1.value, options);
13268 for (list = node->u3.node; list; list = list->u3.node) {
13269 if (((int) (((((struct RNode*)(list->u1.node)))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_STR) {
13270 reg_fragment_check_gen(parser, list->u1.node->u1.value, options);
13275 (yyval.node) = node;
13286 (yyval.node) = node_newnode(parser, (NODE_ZARRAY), (VALUE)(0), (VALUE)(0), (VALUE)(0));
13296 (yyval.node) = (yyvsp[(2) - (3)].node);
13315 (yyval.node) = list_append_gen(parser,(yyvsp[(1) - (3)].node),evstr2dstr_gen(parser,(yyvsp[(2) - (3)].node)));
13326 (yyval.node) = literal_concat_gen(parser,(yyvsp[(1) - (2)].node),(yyvsp[(2) - (2)].node));
13337 (yyval.node) = node_newnode(parser, (NODE_ZARRAY), (VALUE)(0), (VALUE)(0), (VALUE)(0));
13347 (yyval.node) = (yyvsp[(2) - (3)].node);
13366 (yyval.node) = list_append_gen(parser,(yyvsp[(1) - (3)].node),(yyvsp[(2) - (3)].node));
13388 (yyval.node) = literal_concat_gen(parser,(yyvsp[(1) - (2)].node),(yyvsp[(2) - (2)].node));
13410 (yyval.node) = literal_concat_gen(parser,(yyvsp[(1) - (2)].node),(yyvsp[(2) - (2)].node));
13420 (yyval.node) = (parser->parser_lex_strterm);
13421 (parser->parser_lex_strterm) = 0;
13422 (parser->parser_lex_state) = EXPR_BEG;
13430 (parser->parser_lex_strterm) = (yyvsp[(2) - (3)].node);
13431 (yyval.node) = node_newnode(parser, (NODE_EVSTR), (VALUE)(0), (VALUE)(((yyvsp[(3) - (3)].node))), (VALUE)(0));
13442 (yyval.node) = (parser->parser_lex_strterm);
13443 (parser->parser_lex_strterm) = 0;
13444 (parser->parser_lex_state) = EXPR_BEG;
13445 ((parser->parser_cond_stack) = ((parser->parser_cond_stack)<<1)|((0)&1));
13446 ((parser->parser_cmdarg_stack) = ((parser->parser_cmdarg_stack)<<1)|((0)&1));
13453 (parser->parser_lex_strterm) = (yyvsp[(2) - (4)].node);
13454 ((parser->parser_cond_stack) = ((parser->parser_cond_stack) >> 1) | ((parser->parser_cond_stack) & 1));
13455 ((parser->parser_cmdarg_stack) = ((parser->parser_cmdarg_stack) >> 1) | ((parser->parser_cmdarg_stack) & 1));
13457 if ((yyvsp[(3) - (4)].node)) (yyvsp[(3) - (4)].node)->flags &= ~(((VALUE)1)<<7);
13458 (yyval.node) = new_evstr_gen(parser,(yyvsp[(3) - (4)].node));
13469 (yyval.node) = node_newnode(parser, (NODE_GVAR), (VALUE)((yyvsp[(1) - (1)].id)), (VALUE)(0), (VALUE)(rb_global_entry((yyvsp[(1) - (1)].id))));
13480 (yyval.node) = node_newnode(parser, (NODE_IVAR), (VALUE)((yyvsp[(1) - (1)].id)), (VALUE)(0), (VALUE)(0));
13491 (yyval.node) = node_newnode(parser, (NODE_CVAR), (VALUE)((yyvsp[(1) - (1)].id)), (VALUE)(0), (VALUE)(0));
13502 (parser->parser_lex_state) = EXPR_END;
13503 (yyval.id) = (yyvsp[(2) - (2)].id);
13515 (parser->parser_lex_state) = EXPR_END;
13516 if (!((yyval.node) = (yyvsp[(2) - (3)].node))) {
13517 (yyval.node) = node_newnode(parser, (NODE_LIT), (VALUE)((((VALUE)((__builtin_constant_p("") ? __extension__ (rb_intern2("", strlen(""))) : (rb_intern)("")))<<RUBY_SPECIAL_SHIFT)|RUBY_SYMBOL_FLAG)), (VALUE)(0), (VALUE)(0));
13522 switch (((int) (((((struct RNode*)((yyval.node))))->flags & (((VALUE)0x7f)<<8))>>8))) {
13524 ((struct RNode*)((yyval.node)))->flags=((((struct RNode*)((yyval.node)))->flags&~(((VALUE)0x7f)<<8))|(((NODE_DSYM)<<8)&(((VALUE)0x7f)<<8)));
13527 lit = (yyval.node)->u1.value;
13528 (yyval.node)->u1.value = (((VALUE)(rb_intern_str(lit))<<RUBY_SPECIAL_SHIFT)|RUBY_SYMBOL_FLAG);
13529 ((struct RNode*)((yyval.node)))->flags=((((struct RNode*)((yyval.node)))->flags&~(((VALUE)0x7f)<<8))|(((NODE_LIT)<<8)&(((VALUE)0x7f)<<8)));
13532 (yyval.node) = node_newnode(parser, (NODE_DSYM), (VALUE)(rb_enc_str_new(0,0,parser->enc)), (VALUE)(1), (VALUE)(node_newnode(parser, (NODE_ARRAY), (VALUE)((yyval.node)), (VALUE)(1), (VALUE)(0))));
13547 (yyval.node) = negate_lit((yyvsp[(2) - (2)].node));
13558 (yyval.node) = negate_lit((yyvsp[(2) - (2)].node));
13567 {(yyval.id) = 289;;}
13572 {(yyval.id) = 288;;}
13577 {(yyval.id) = 290;;}
13582 {(yyval.id) = 291;;}
13587 {(yyval.id) = 305;;}
13592 {(yyval.id) = 304;;}
13597 {(yyval.id) = 306;;}
13604 if (!((yyval.node) = gettable_gen(parser,(yyvsp[(1) - (1)].id)))) (yyval.node) = node_newnode(parser, (NODE_BEGIN), (VALUE)(0), (VALUE)(0), (VALUE)(0));
13615 (yyval.node) = assignable_gen(parser, (yyvsp[(1) - (1)].id), 0);
13636 (parser->parser_lex_state) = EXPR_BEG;
13643 (yyval.node) = (yyvsp[(3) - (4)].node);
13664 (yyval.node) = (yyvsp[(2) - (3)].node);
13665 (parser->parser_lex_state) = EXPR_BEG;
13666 (parser->parser_command_start) = ((VALUE)RUBY_Qtrue);
13678 (yyval.node) = (yyvsp[(1) - (2)].node);
13686 (yyval.node) = new_args_gen(parser, (yyvsp[(1) - (6)].node),(yyvsp[(3) - (6)].node),(yyvsp[(5) - (6)].id),0,(yyvsp[(6) - (6)].id));
13697 (yyval.node) = new_args_gen(parser, (yyvsp[(1) - (8)].node),(yyvsp[(3) - (8)].node),(yyvsp[(5) - (8)].id),(yyvsp[(7) - (8)].node),(yyvsp[(8) - (8)].id));
13708 (yyval.node) = new_args_gen(parser, (yyvsp[(1) - (4)].node),(yyvsp[(3) - (4)].node),0,0,(yyvsp[(4) - (4)].id));
13719 (yyval.node) = new_args_gen(parser, (yyvsp[(1) - (6)].node),(yyvsp[(3) - (6)].node),0,(yyvsp[(5) - (6)].node),(yyvsp[(6) - (6)].id));
13730 (yyval.node) = new_args_gen(parser, (yyvsp[(1) - (4)].node),0,(yyvsp[(3) - (4)].id),0,(yyvsp[(4) - (4)].id));
13741 (yyval.node) = new_args_gen(parser, (yyvsp[(1) - (6)].node),0,(yyvsp[(3) - (6)].id),(yyvsp[(5) - (6)].node),(yyvsp[(6) - (6)].id));
13752 (yyval.node) = new_args_gen(parser, (yyvsp[(1) - (2)].node),0,0,0,(yyvsp[(2) - (2)].id));
13763 (yyval.node) = new_args_gen(parser, 0,(yyvsp[(1) - (4)].node),(yyvsp[(3) - (4)].id),0,(yyvsp[(4) - (4)].id));
13774 (yyval.node) = new_args_gen(parser, 0,(yyvsp[(1) - (6)].node),(yyvsp[(3) - (6)].id),(yyvsp[(5) - (6)].node),(yyvsp[(6) - (6)].id));
13785 (yyval.node) = new_args_gen(parser, 0,(yyvsp[(1) - (2)].node),0,0,(yyvsp[(2) - (2)].id));
13796 (yyval.node) = new_args_gen(parser, 0,(yyvsp[(1) - (4)].node),0,(yyvsp[(3) - (4)].node),(yyvsp[(4) - (4)].id));
13807 (yyval.node) = new_args_gen(parser, 0,0,(yyvsp[(1) - (2)].id),0,(yyvsp[(2) - (2)].id));
13818 (yyval.node) = new_args_gen(parser, 0,0,(yyvsp[(1) - (4)].id),(yyvsp[(3) - (4)].node),(yyvsp[(4) - (4)].id));
13829 (yyval.node) = new_args_gen(parser, 0,0,0,0,(yyvsp[(1) - (1)].id));
13840 (yyval.node) = new_args_gen(parser, 0,0,0,0,0);
13851 parser_yyerror(parser, "formal argument cannot be a constant");
13863 parser_yyerror(parser, "formal argument cannot be an instance variable");
13875 parser_yyerror(parser, "formal argument cannot be a global variable");
13887 parser_yyerror(parser, "formal argument cannot be a class variable");
13899 if (!((((yyvsp[(1) - (1)].id))>376)&&(((yyvsp[(1) - (1)].id))&0x07)==0x00))
13900 parser_yyerror(parser, "formal argument must be local variable");
13901 shadowing_lvar_gen(parser, (yyvsp[(1) - (1)].id));
13904 (yyval.id) = (yyvsp[(1) - (1)].id);
13912 arg_var_gen(parser, (yyvsp[(1) - (1)].id));
13913 (yyval.node) = node_newnode(parser, (NODE_ARGS_AUX), (VALUE)((yyvsp[(1) - (1)].id)), (VALUE)(1), (VALUE)(0));
13923 ID tid = internal_id_gen(parser);
13924 arg_var_gen(parser, tid);
13925 if (dyna_in_block_gen(parser)) {
13926 (yyvsp[(2) - (3)].node)->u2.node = node_newnode(parser, (NODE_DVAR), (VALUE)(tid), (VALUE)(0), (VALUE)(0));
13929 (yyvsp[(2) - (3)].node)->u2.node = node_newnode(parser, (NODE_LVAR), (VALUE)(tid), (VALUE)(0), (VALUE)(0));
13931 (yyval.node) = node_newnode(parser, (NODE_ARGS_AUX), (VALUE)(tid), (VALUE)(1), (VALUE)(0));
13932 (yyval.node)->u3.node = (yyvsp[(2) - (3)].node);
13943 (yyval.node) = (yyvsp[(1) - (3)].node);
13944 (yyval.node)->u2.argc++;
13945 (yyval.node)->u3.node = block_append_gen(parser,(yyval.node)->u3.node,(yyvsp[(3) - (3)].node)->u3.node);
13946 rb_gc_force_recycle((VALUE)(yyvsp[(3) - (3)].node));
13957 if (!((((yyvsp[(1) - (3)].id))>376)&&(((yyvsp[(1) - (3)].id))&0x07)==0x00))
13958 parser_yyerror(parser, "formal argument must be local variable");
13959 shadowing_lvar_gen(parser, (yyvsp[(1) - (3)].id));
13960 arg_var_gen(parser, (yyvsp[(1) - (3)].id));
13961 (yyval.node) = node_newnode(parser, (NODE_OPT_ARG), (VALUE)(0), (VALUE)(assignable_gen(parser, (yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].node))), (VALUE)(0));
13972 if (!((((yyvsp[(1) - (3)].id))>376)&&(((yyvsp[(1) - (3)].id))&0x07)==0x00))
13973 parser_yyerror(parser, "formal argument must be local variable");
13974 shadowing_lvar_gen(parser, (yyvsp[(1) - (3)].id));
13975 arg_var_gen(parser, (yyvsp[(1) - (3)].id));
13976 (yyval.node) = node_newnode(parser, (NODE_OPT_ARG), (VALUE)(0), (VALUE)(assignable_gen(parser, (yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].node))), (VALUE)(0));
13987 (yyval.node) = (yyvsp[(1) - (1)].node);
13998 NODE *opts = (yyvsp[(1) - (3)].node);
14000 while (opts->u3.node) {
14001 opts = opts->u3.node;
14003 opts->u3.node = (yyvsp[(3) - (3)].node);
14004 (yyval.node) = (yyvsp[(1) - (3)].node);
14015 (yyval.node) = (yyvsp[(1) - (1)].node);
14026 NODE *opts = (yyvsp[(1) - (3)].node);
14028 while (opts->u3.node) {
14029 opts = opts->u3.node;
14031 opts->u3.node = (yyvsp[(3) - (3)].node);
14032 (yyval.node) = (yyvsp[(1) - (3)].node);
14043 if (!((((yyvsp[(2) - (2)].id))>376)&&(((yyvsp[(2) - (2)].id))&0x07)==0x00))
14044 parser_yyerror(parser, "rest argument must be local variable");
14045 shadowing_lvar_gen(parser, (yyvsp[(2) - (2)].id));
14046 arg_var_gen(parser, (yyvsp[(2) - (2)].id));
14047 (yyval.id) = (yyvsp[(2) - (2)].id);
14058 (yyval.id) = internal_id_gen(parser);
14059 arg_var_gen(parser, (yyval.id));
14070 if (!((((yyvsp[(2) - (2)].id))>376)&&(((yyvsp[(2) - (2)].id))&0x07)==0x00))
14071 parser_yyerror(parser, "block argument must be local variable");
14072 else if (!dyna_in_block_gen(parser) && local_id_gen(parser, (yyvsp[(2) - (2)].id)))
14073 parser_yyerror(parser, "duplicated block argument name");
14074 shadowing_lvar_gen(parser, (yyvsp[(2) - (2)].id));
14075 arg_var_gen(parser, (yyvsp[(2) - (2)].id));
14076 (yyval.id) = (yyvsp[(2) - (2)].id);
14086 (yyval.id) = (yyvsp[(2) - (2)].id);
14105 value_expr_gen(parser, ((yyvsp[(1) - (1)].node)) = remove_begin((yyvsp[(1) - (1)].node)));
14106 (yyval.node) = (yyvsp[(1) - (1)].node);
14107 if (!(yyval.node)) (yyval.node) = node_newnode(parser, (NODE_NIL), (VALUE)(0), (VALUE)(0), (VALUE)(0));
14116 {(parser->parser_lex_state) = EXPR_BEG;;}
14123 if ((yyvsp[(3) - (4)].node) == 0) {
14124 parser_yyerror(parser, "can't define singleton method for ().");
14127 switch (((int) (((((struct RNode*)((yyvsp[(3) - (4)].node))))->flags & (((VALUE)0x7f)<<8))>>8))) {
14136 parser_yyerror(parser, "can't define singleton method for literals");
14138 value_expr_gen(parser, ((yyvsp[(3) - (4)].node)) = remove_begin((yyvsp[(3) - (4)].node)));
14142 (yyval.node) = (yyvsp[(3) - (4)].node);
14153 (yyval.node) = (yyvsp[(1) - (2)].node);
14164 (yyval.node) = list_concat_gen(parser,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));
14175 (yyval.node) = list_append_gen(parser,node_newnode(parser, (NODE_ARRAY), (VALUE)((yyvsp[(1) - (3)].node)), (VALUE)(1), (VALUE)(0)),(yyvsp[(3) - (3)].node));
14186 (yyval.node) = list_append_gen(parser,node_newnode(parser, (NODE_ARRAY), (VALUE)(node_newnode(parser, (NODE_LIT), (VALUE)((((VALUE)((yyvsp[(1) - (2)].id))<<RUBY_SPECIAL_SHIFT)|RUBY_SYMBOL_FLAG)), (VALUE)(0), (VALUE)(0))), (VALUE)(1), (VALUE)(0)),(yyvsp[(2) - (2)].node));
14195 {(yyerrstatus = 0);;}
14200 {(yyerrstatus = 0);;}
14216 do { if ((parser->parser_yydebug)) { fprintf (stderr, "%s ", "-> $$ ="); yy_symbol_print (stderr, yyr1[yyn], &yyval, parser); fprintf (stderr, "\n"); } } while ((0));
14218 (yyvsp -= (yylen), yyssp -= (yylen));
14220 do { if ((parser->parser_yydebug)) yy_stack_print ((yyss), (yyssp)); } while ((0));
14231 yystate = yypgoto[yyn - 149] + *yyssp;
14232 if (0 <= yystate && yystate <= 10225 && yycheck[yystate] == *yyssp)
14233 yystate = yytable[yystate];
14235 yystate = yydefgoto[yyn - 149];
14252 unsigned int yysize = yysyntax_error (0, yystate, yychar);
14253 if (yymsg_alloc < yysize && yymsg_alloc < ((unsigned int) -1))
14255 unsigned int yyalloc = 2 * yysize;
14256 if (! (yysize <= yyalloc && yyalloc <= ((unsigned int) -1)))
14257 yyalloc = ((unsigned int) -1);
14258 if (yymsg != yymsgbuf)
14259 rb_parser_free(parser, yymsg);
14260 yymsg = (char *) rb_parser_malloc(parser, yyalloc);
14262 yymsg_alloc = yyalloc;
14266 yymsg_alloc = sizeof yymsgbuf;
14270 if (0 < yysize && yysize <= yymsg_alloc)
14272 (void) yysyntax_error (yymsg, yystate, yychar);
14273 parser_yyerror (parser, yymsg);
14277 parser_yyerror (parser, "syntax error");
14279 goto yyexhaustedlab;
14287 if (yyerrstatus == 3)
14300 yydestruct ("Error: discarding",
14301 yytoken, &yylval, parser);
14324 (yyvsp -= (yylen), yyssp -= (yylen));
14326 do { if ((parser->parser_yydebug)) yy_stack_print ((yyss), (yyssp)); } while ((0));
14339 yyn = yypact[yystate];
14343 if (0 <= yyn && yyn <= 10225 && yycheck[yyn] == 1)
14345 yyn = yytable[yyn];
14356 yydestruct ("Error: popping",
14357 yystos[yystate], yyvsp, parser);
14358 (yyvsp -= (1), yyssp -= (1));
14360 do { if ((parser->parser_yydebug)) yy_stack_print ((yyss), (yyssp)); } while ((0));
14370 do { if ((parser->parser_yydebug)) { fprintf (stderr, "%s ", "Shifting"); yy_symbol_print (stderr, yystos[yyn], yyvsp, parser); fprintf (stderr, "\n"); } } while ((0));
14395 parser_yyerror (parser, "memory exhausted");
14401 if (yychar != 0 && yychar != (-2))
14402 yydestruct ("Cleanup: discarding lookahead",
14403 yytoken, &yylval, parser);
14406 (yyvsp -= (yylen), yyssp -= (yylen));
14407 do { if ((parser->parser_yydebug)) yy_stack_print ((yyss), (yyssp)); } while ((0));
14408 while (yyssp != yyss)
14410 yydestruct ("Cleanup: popping",
14411 yystos[*yyssp], yyvsp, parser);
14412 (yyvsp -= (1), yyssp -= (1));
14416 rb_parser_free(parser, yyss);
14419 if (yymsg != yymsgbuf)
14420 rb_parser_free(parser, yymsg);
14432 static int parser_regx_options(struct parser_params*);
14433 static int parser_tokadd_string(struct parser_params*,int,int,int,long*,rb_encoding**);
14434 static void parser_tokaddmbc(struct parser_params *parser, int c, rb_encoding *enc);
14435 static int parser_parse_string(struct parser_params*,NODE*);
14436 static int parser_here_document(struct parser_params*,NODE*);
14438 # 1 "./include/ruby/regex.h" 1
14439 # 29 "./include/ruby/regex.h"
14440 extern OnigEncoding OnigEncDefaultCharEncoding;
14442 # 1 "./include/ruby/util.h" 1
14443 # 44 "./include/ruby/util.h"
14444 unsigned long ruby_scan_oct(const char *, int, int *);
14446 unsigned long ruby_scan_hex(const char *, int, int *);
14452 void ruby_qsort(void *, const int, const int,
14453 int (*)(const void *, const void *, void *), void *);
14455 void ruby_setenv(const char *, const char *);
14456 void ruby_unsetenv(const char *);
14462 char *ruby_strdup(const char *);
14466 char *ruby_getcwd(void);
14469 double ruby_strtod(const char *, char **);
14473 void ruby_each_words(const char *, void (*)(const char*, int, void*), void *);
14477 token_info_get_column(struct parser_params *parser, const char *token)
14480 const char *p, *pend = (parser->parser_lex_p) - strlen(token);
14481 for (p = (parser->parser_lex_pbeg); p < pend; p++) {
14483 column = (((column - 1) / 8) + 1) * 8;
14491 token_info_has_nonspaces(struct parser_params *parser, const char *token)
14493 const char *p, *pend = (parser->parser_lex_p) - strlen(token);
14494 for (p = (parser->parser_lex_pbeg); p < pend; p++) {
14495 if (*p != ' ' && *p != '\t') {
14503 token_info_push(struct parser_params *parser, const char *token)
14505 token_info *ptinfo;
14507 if ((parser->parser_compile_for_eval)) return;
14508 ptinfo = (token_info*)ruby_xmalloc(sizeof(token_info));
14509 ptinfo->token = token;
14510 ptinfo->linenum = (parser->parser_ruby_sourceline);
14511 ptinfo->column = token_info_get_column(parser, token);
14512 ptinfo->nonspc = token_info_has_nonspaces(parser, token);
14513 ptinfo->next = parser->parser_token_info;
14515 parser->parser_token_info = ptinfo;
14519 token_info_pop(struct parser_params *parser, const char *token)
14522 token_info *ptinfo = parser->parser_token_info;
14524 if (!ptinfo) return;
14525 parser->parser_token_info = ptinfo->next;
14526 if (token_info_get_column(parser, token) == ptinfo->column) {
14529 linenum = (parser->parser_ruby_sourceline);
14530 if (linenum == ptinfo->linenum) {
14533 if (token_info_has_nonspaces(parser, token) || ptinfo->nonspc) {
14536 rb_compile_warning((parser->parser_ruby_sourcefile), linenum,
14537 "mismatched indentations at '%s' with '%s' at %d",
14538 token, ptinfo->token, ptinfo->linenum);
14541 ruby_xfree(ptinfo);
14546 parser_yyerror(struct parser_params *parser, const char *msg)
14549 const int max_line_margin = 30;
14550 const char *p, *pe;
14554 parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "%s", msg);
14555 p = (parser->parser_lex_p);
14556 while ((parser->parser_lex_pbeg) <= p) {
14557 if (*p == '\n') break;
14562 pe = (parser->parser_lex_p);
14563 while (pe < (parser->parser_lex_pend)) {
14564 if (*pe == '\n') break;
14571 const char *pre = "", *post = "";
14573 if (len > max_line_margin * 2 + 10) {
14574 if ((parser->parser_lex_p) - p > max_line_margin) {
14575 p = (char *)onigenc_get_prev_char_head(rb_enc_get((parser->parser_lex_lastline)),(OnigUChar*)(p),(OnigUChar*)((parser->parser_lex_p) - max_line_margin),(OnigUChar*)(pe));
14578 if (pe - (parser->parser_lex_p) > max_line_margin) {
14579 pe = (char *)onigenc_get_prev_char_head(rb_enc_get((parser->parser_lex_lastline)),(OnigUChar*)((parser->parser_lex_p)),(OnigUChar*)((parser->parser_lex_p) + max_line_margin),(OnigUChar*)(pe));
14584 buf = (char*)__builtin_alloca (sizeof(char)*(len+2));
14585 memcpy((buf), (p), sizeof(char)*(len));
14587 rb_compile_error_append("%s%s%s", pre, buf, post);
14589 i = (parser->parser_lex_p) - p;
14590 p2 = buf; pe = buf + len;
14593 if (*p2 != '\t') *p2 = ' ';
14598 rb_compile_error_append("%s%s", pre, buf);
14606 static void parser_prepare(struct parser_params *parser);
14609 VALUE ruby_suppress_tracing(VALUE (*func)(VALUE, int), VALUE arg, int always);
14612 debug_lines(const char *f)
14614 if (rb_const_defined_at(rb_cObject, (__builtin_constant_p("SCRIPT_LINES__") ? __extension__ (rb_intern2("SCRIPT_LINES__", strlen("SCRIPT_LINES__"))) : (rb_intern)("SCRIPT_LINES__")))) {
14615 VALUE hash = rb_const_get_at(rb_cObject, (__builtin_constant_p("SCRIPT_LINES__") ? __extension__ (rb_intern2("SCRIPT_LINES__", strlen("SCRIPT_LINES__"))) : (rb_intern)("SCRIPT_LINES__")));
14616 if (rb_type((VALUE)(hash)) == RUBY_T_HASH) {
14617 VALUE fname = __extension__ ( { (__builtin_constant_p(f)) ? rb_str_new(f, strlen(f)) : rb_str_new_cstr(f); });
14618 VALUE lines = rb_ary_new();
14619 rb_hash_aset(hash, fname, lines);
14627 coverage(const char *f, int n)
14629 extern VALUE rb_get_coverages(void);
14630 VALUE coverages = rb_get_coverages();
14631 if ((((VALUE)(coverages) & ~((VALUE)RUBY_Qnil)) != 0) && ((struct RBasic*)(coverages))->klass == 0) {
14632 VALUE fname = __extension__ ( { (__builtin_constant_p(f)) ? rb_str_new(f, strlen(f)) : rb_str_new_cstr(f); });
14633 VALUE lines = rb_ary_new2(n);
14635 ((struct RBasic*)(lines))->klass = 0;
14636 for (i = 0; i < n; i++) ((((struct RBasic*)(lines))->flags & (((VALUE)1)<<(12 +1))) ? ((struct RArray*)(lines))->as.ary : ((struct RArray*)(lines))->as.heap.ptr)[i] = ((VALUE)RUBY_Qnil);
14637 ((struct RArray*)(lines))->as.heap.len = n;
14638 rb_hash_aset(coverages, fname, lines);
14645 e_option_supplied(struct parser_params *parser)
14647 if (__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ((parser->parser_ruby_sourcefile)) && __builtin_constant_p ("-e") && (__s1_len = strlen ((parser->parser_ruby_sourcefile)), __s2_len = strlen ("-e"), (!((size_t)(const void *)(((parser->parser_ruby_sourcefile)) + 1) - (size_t)(const void *)((parser->parser_ruby_sourcefile)) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("-e") + 1) - (size_t)(const void *)("-e") == 1) || __s2_len >= 4)) ? __builtin_strcmp ((parser->parser_ruby_sourcefile), "-e") : (__builtin_constant_p ((parser->parser_ruby_sourcefile)) && ((size_t)(const void *)(((parser->parser_ruby_sourcefile)) + 1) - (size_t)(const void *)((parser->parser_ruby_sourcefile)) == 1) && (__s1_len = strlen ((parser->parser_ruby_sourcefile)), __s1_len < 4) ? (__builtin_constant_p ("-e") && ((size_t)(const void *)(("-e") + 1) - (size_t)(const void *)("-e") == 1) ? __builtin_strcmp ((parser->parser_ruby_sourcefile), "-e") : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) ("-e"); register int __result = (((__const unsigned char *) (__const char *) ((parser->parser_ruby_sourcefile)))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) ((parser->parser_ruby_sourcefile)))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) ((parser->parser_ruby_sourcefile)))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) ((parser->parser_ruby_sourcefile)))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("-e") && ((size_t)(const void *)(("-e") + 1) - (size_t)(const void *)("-e") == 1) && (__s2_len = strlen ("-e"), __s2_len < 4) ? (__builtin_constant_p ((parser->parser_ruby_sourcefile)) && ((size_t)(const void *)(((parser->parser_ruby_sourcefile)) + 1) - (size_t)(const void *)((parser->parser_ruby_sourcefile)) == 1) ? __builtin_strcmp ((parser->parser_ruby_sourcefile), "-e") : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) ((parser->parser_ruby_sourcefile)); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ("-e"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) ("-e"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ("-e"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) ("-e"))[3]); } } __result; }))) : __builtin_strcmp ((parser->parser_ruby_sourcefile), "-e")))); }) == 0)
14648 return ((VALUE)RUBY_Qtrue);
14649 return ((VALUE)RUBY_Qfalse);
14653 yycompile0(VALUE arg, int tracing)
14657 struct parser_params *parser = (struct parser_params *)arg;
14659 if (!(parser->parser_compile_for_eval) && rb_safe_level() == 0) {
14660 (parser->debug_lines) = debug_lines((parser->parser_ruby_sourcefile));
14661 if ((parser->debug_lines) && (parser->parser_ruby_sourceline) > 0) {
14662 VALUE str = rb_enc_str_new(0,0,parser->enc);
14663 n = (parser->parser_ruby_sourceline);
14665 rb_ary_push((parser->debug_lines), str);
14669 if (!e_option_supplied(parser)) {
14670 (parser->coverage) = coverage((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline));
14674 parser_prepare(parser);
14675 (parser->parser_deferred_nodes) = 0;
14676 n = ruby_yyparse((void*)parser);
14677 (parser->debug_lines) = 0;
14678 (parser->coverage) = 0;
14679 (parser->parser_compile_for_eval) = 0;
14681 (parser->parser_lex_strterm) = 0;
14682 (parser->parser_lex_p) = (parser->parser_lex_pbeg) = (parser->parser_lex_pend) = 0;
14683 (parser->parser_lex_lastline) = (parser->parser_lex_nextline) = 0;
14684 if (parser->nerr) {
14687 tree = (parser->parser_eval_tree);
14689 tree = node_newnode(parser, (NODE_NIL), (VALUE)(0), (VALUE)(0), (VALUE)(0));
14691 if ((parser->parser_eval_tree_begin)) {
14692 NODE *scope = (parser->parser_eval_tree);
14695 scope->u2.node = node_newnode(parser, (NODE_PRELUDE), (VALUE)((parser->parser_eval_tree_begin)), (VALUE)(scope->u2.node), (VALUE)(0));
14700 tree = (parser->parser_eval_tree);
14702 return (VALUE)tree;
14706 yycompile(struct parser_params *parser, const char *f, int line)
14708 (parser->parser_ruby_sourcefile) = ruby_strdup(f);
14709 (parser->parser_ruby_sourceline) = line - 1;
14710 return (NODE *)ruby_suppress_tracing(yycompile0, (VALUE)parser, ((VALUE)RUBY_Qtrue));
14715 lex_get_str(struct parser_params *parser, VALUE s)
14717 char *beg, *end, *pend;
14719 beg = (!(((struct RBasic*)(s))->flags & (((VALUE)1)<<(12 +1))) ? ((struct RString*)(s))->as.ary : ((struct RString*)(s))->as.heap.ptr);
14720 if ((parser->parser_lex_gets_ptr)) {
14721 if ((!(((struct RBasic*)(s))->flags & (((VALUE)1)<<(12 +1))) ? (long)((((struct RBasic*)(s))->flags >> (12 +2)) & (((((VALUE)1)<<(12 +2))|(((VALUE)1)<<(12 +3))|(((VALUE)1)<<(12 +4))|(((VALUE)1)<<(12 +5))|(((VALUE)1)<<(12 +6))) >> (12 +2))) : ((struct RString*)(s))->as.heap.len) == (parser->parser_lex_gets_ptr)) return ((VALUE)RUBY_Qnil);
14722 beg += (parser->parser_lex_gets_ptr);
14724 pend = (!(((struct RBasic*)(s))->flags & (((VALUE)1)<<(12 +1))) ? ((struct RString*)(s))->as.ary : ((struct RString*)(s))->as.heap.ptr) + (!(((struct RBasic*)(s))->flags & (((VALUE)1)<<(12 +1))) ? (long)((((struct RBasic*)(s))->flags >> (12 +2)) & (((((VALUE)1)<<(12 +2))|(((VALUE)1)<<(12 +3))|(((VALUE)1)<<(12 +4))|(((VALUE)1)<<(12 +5))|(((VALUE)1)<<(12 +6))) >> (12 +2))) : ((struct RString*)(s))->as.heap.len);
14726 while (end < pend) {
14727 if (*end++ == '\n') break;
14729 (parser->parser_lex_gets_ptr) = end - (!(((struct RBasic*)(s))->flags & (((VALUE)1)<<(12 +1))) ? ((struct RString*)(s))->as.ary : ((struct RString*)(s))->as.heap.ptr);
14730 return rb_enc_str_new(beg, end - beg, rb_enc_get(s));
14734 lex_getline(struct parser_params *parser)
14736 VALUE line = (*parser->parser_lex_gets)(parser, parser->parser_lex_input);
14738 if ((parser->debug_lines) && !((VALUE)(line) == ((VALUE)RUBY_Qnil))) {
14739 rb_ary_push((parser->debug_lines), line);
14741 if ((parser->coverage) && !((VALUE)(line) == ((VALUE)RUBY_Qnil))) {
14742 rb_ary_push((parser->coverage), ((VALUE)RUBY_Qnil));
14750 rb_compile_string(const char *f, VALUE s, int line)
14752 VALUE volatile vparser = rb_parser_new();
14754 return rb_parser_compile_string(vparser, f, s, line);
14758 rb_parser_compile_string(volatile VALUE vparser, const char *f, VALUE s, int line)
14760 struct parser_params *parser;
14762 volatile VALUE tmp;
14764 do { rb_check_type((VALUE)(vparser),RUBY_T_DATA); parser = (struct parser_params*)(((struct RData*)(vparser))->data);} while (0);
14765 (parser->parser_lex_gets) = lex_get_str;
14766 (parser->parser_lex_gets_ptr) = 0;
14767 (parser->parser_lex_input) = s;
14768 (parser->parser_lex_pbeg) = (parser->parser_lex_p) = (parser->parser_lex_pend) = 0;
14769 (parser->parser_compile_for_eval) = rb_parse_in_eval();
14771 node = yycompile(parser, f, line);
14778 rb_compile_cstr(const char *f, const char *s, int len, int line)
14780 return rb_compile_string(f, rb_str_new(s, len), line);
14784 rb_parser_compile_cstr(volatile VALUE vparser, const char *f, const char *s, int len, int line)
14786 return rb_parser_compile_string(vparser, f, rb_str_new(s, len), line);
14790 lex_io_gets(struct parser_params *parser, VALUE io)
14792 return rb_io_gets(io);
14796 rb_compile_file(const char *f, VALUE file, int start)
14798 VALUE volatile vparser = rb_parser_new();
14800 return rb_parser_compile_file(vparser, f, file, start);
14804 rb_parser_compile_file(volatile VALUE vparser, const char *f, VALUE file, int start)
14806 struct parser_params *parser;
14807 volatile VALUE tmp;
14810 do { rb_check_type((VALUE)(vparser),RUBY_T_DATA); parser = (struct parser_params*)(((struct RData*)(vparser))->data);} while (0);
14811 (parser->parser_lex_gets) = lex_io_gets;
14812 (parser->parser_lex_input) = file;
14813 (parser->parser_lex_pbeg) = (parser->parser_lex_p) = (parser->parser_lex_pend) = 0;
14814 (parser->parser_compile_for_eval) = rb_parse_in_eval();
14816 node = yycompile(parser, f, start);
14824 str_dquote = (0x02),
14825 str_xquote = (0x02),
14826 str_regexp = (0x04|0x01|0x02),
14827 str_sword = (0x08),
14828 str_dword = (0x08|0x02),
14830 str_dsym = (0x10|0x02)
14834 parser_str_new(const char *p, long n, rb_encoding *enc, int func, rb_encoding *enc0)
14838 str = rb_enc_str_new(p, n, enc);
14839 if (!(func & 0x04) && ((enc)->min_enc_len==1 && !rb_enc_dummy_p(enc))) {
14840 if (rb_enc_str_coderange(str) == (((VALUE)1)<<(12 +8))) {
14842 else if (enc0 == rb_usascii_encoding() && enc != rb_utf8_encoding()) {
14843 rb_enc_associate(str, rb_ascii8bit_encoding());
14854 parser_nextc(struct parser_params *parser)
14858 if ((parser->parser_lex_p) == (parser->parser_lex_pend)) {
14859 VALUE v = (parser->parser_lex_nextline);
14860 (parser->parser_lex_nextline) = 0;
14865 if (!(parser->parser_lex_input) || ((VALUE)(v = lex_getline(parser)) == ((VALUE)RUBY_Qnil))) {
14866 parser->eofp = ((VALUE)RUBY_Qtrue);
14867 (parser->parser_lex_p = parser->parser_lex_pend);
14873 if ((parser->parser_heredoc_end) > 0) {
14874 (parser->parser_ruby_sourceline) = (parser->parser_heredoc_end);
14875 (parser->parser_heredoc_end) = 0;
14877 (parser->parser_ruby_sourceline)++;
14878 parser->line_count++;
14879 (parser->parser_lex_pbeg) = (parser->parser_lex_p) = (!(((struct RBasic*)(v))->flags & (((VALUE)1)<<(12 +1))) ? ((struct RString*)(v))->as.ary : ((struct RString*)(v))->as.heap.ptr);
14880 (parser->parser_lex_pend) = (parser->parser_lex_p) + (!(((struct RBasic*)(v))->flags & (((VALUE)1)<<(12 +1))) ? (long)((((struct RBasic*)(v))->flags >> (12 +2)) & (((((VALUE)1)<<(12 +2))|(((VALUE)1)<<(12 +3))|(((VALUE)1)<<(12 +4))|(((VALUE)1)<<(12 +5))|(((VALUE)1)<<(12 +6))) >> (12 +2))) : ((struct RString*)(v))->as.heap.len);
14884 (parser->parser_lex_lastline) = v;
14887 c = (unsigned char)*(parser->parser_lex_p)++;
14888 if (c == '\r' && ((parser->parser_lex_p) < (parser->parser_lex_pend) && ('\n') == *(parser->parser_lex_p))) {
14889 (parser->parser_lex_p)++;
14897 parser_pushback(struct parser_params *parser, int c)
14899 if (c == -1) return;
14900 (parser->parser_lex_p)--;
14901 if ((parser->parser_lex_p) > (parser->parser_lex_pbeg) && (parser->parser_lex_p)[0] == '\n' && (parser->parser_lex_p)[-1] == '\r') {
14902 (parser->parser_lex_p)--;
14907 parser_newtok(struct parser_params *parser)
14909 (parser->parser_tokidx) = 0;
14910 if (!(parser->parser_tokenbuf)) {
14911 (parser->parser_toksiz) = 60;
14912 (parser->parser_tokenbuf) = (char*)ruby_xmalloc2((60),sizeof(char));
14914 if ((parser->parser_toksiz) > 4096) {
14915 (parser->parser_toksiz) = 60;
14916 ((parser->parser_tokenbuf))=(char*)ruby_xrealloc2((char*)((parser->parser_tokenbuf)),(60),sizeof(char));
14918 return (parser->parser_tokenbuf);
14922 parser_tokspace(struct parser_params *parser, int n)
14924 (parser->parser_tokidx) += n;
14926 if ((parser->parser_tokidx) >= (parser->parser_toksiz)) {
14927 do {(parser->parser_toksiz) *= 2;} while ((parser->parser_toksiz) < (parser->parser_tokidx));
14928 ((parser->parser_tokenbuf))=(char*)ruby_xrealloc2((char*)((parser->parser_tokenbuf)),((parser->parser_toksiz)),sizeof(char));
14930 return &(parser->parser_tokenbuf)[(parser->parser_tokidx)-n];
14934 parser_tokadd(struct parser_params *parser, int c)
14936 (parser->parser_tokenbuf)[(parser->parser_tokidx)++] = (char)c;
14937 if ((parser->parser_tokidx) >= (parser->parser_toksiz)) {
14938 (parser->parser_toksiz) *= 2;
14939 ((parser->parser_tokenbuf))=(char*)ruby_xrealloc2((char*)((parser->parser_tokenbuf)),((parser->parser_toksiz)),sizeof(char));
14944 parser_tok_hex(struct parser_params *parser, int *numlen)
14948 c = ruby_scan_hex((parser->parser_lex_p), 2, numlen);
14950 parser_yyerror(parser, "invalid hex escape");
14953 (parser->parser_lex_p) += *numlen;
14960 parser_tokadd_utf8(struct parser_params *parser, rb_encoding **encp,
14961 int string_literal, int symbol_literal, int regexp_literal)
14973 if (regexp_literal) { parser_tokadd(parser, '\\'); parser_tokadd(parser, 'u'); }
14975 if (((parser->parser_lex_p) < (parser->parser_lex_pend) && ('{') == *(parser->parser_lex_p))) {
14977 if (regexp_literal) { parser_tokadd(parser, *(parser->parser_lex_p)); }
14978 parser_nextc(parser);
14979 codepoint = ruby_scan_hex((parser->parser_lex_p), 6, &numlen);
14981 parser_yyerror(parser, "invalid Unicode escape");
14984 if (codepoint > 0x10ffff) {
14985 parser_yyerror(parser, "invalid Unicode codepoint (too large)");
14988 (parser->parser_lex_p) += numlen;
14989 if (regexp_literal) {
14990 memcpy(parser_tokspace(parser, numlen), (parser->parser_lex_p) - (numlen), (numlen));
14992 else if (codepoint >= 0x80) {
14993 *encp = (parser->utf8 ? parser->utf8 : (parser->utf8 = rb_utf8_encoding()));
14994 if (string_literal) parser_tokaddmbc(parser, codepoint, *encp);
14996 else if (string_literal) {
14997 if (codepoint == 0 && symbol_literal) {
14998 parser_yyerror(parser, "symbol cannot contain '\\u{0}'");
15002 parser_tokadd(parser, codepoint);
15004 } while (string_literal && (((parser->parser_lex_p) < (parser->parser_lex_pend) && (' ') == *(parser->parser_lex_p)) || ((parser->parser_lex_p) < (parser->parser_lex_pend) && ('\t') == *(parser->parser_lex_p))));
15006 if (!((parser->parser_lex_p) < (parser->parser_lex_pend) && ('}') == *(parser->parser_lex_p))) {
15007 parser_yyerror(parser, "unterminated Unicode escape");
15011 if (regexp_literal) { parser_tokadd(parser, '}'); }
15012 parser_nextc(parser);
15015 codepoint = ruby_scan_hex((parser->parser_lex_p), 4, &numlen);
15017 parser_yyerror(parser, "invalid Unicode escape");
15020 (parser->parser_lex_p) += 4;
15021 if (regexp_literal) {
15022 memcpy(parser_tokspace(parser, 4), (parser->parser_lex_p) - (4), (4));
15024 else if (codepoint >= 0x80) {
15025 *encp = (parser->utf8 ? parser->utf8 : (parser->utf8 = rb_utf8_encoding()));
15026 if (string_literal) parser_tokaddmbc(parser, codepoint, *encp);
15028 else if (string_literal) {
15029 if (codepoint == 0 && symbol_literal) {
15030 parser_yyerror(parser, "symbol cannot contain '\\u0000'");
15034 parser_tokadd(parser, codepoint);
15045 parser_read_escape(struct parser_params *parser, int flags,
15046 rb_encoding **encp)
15051 switch (c = parser_nextc(parser)) {
15076 case '0': case '1': case '2': case '3':
15077 case '4': case '5': case '6': case '7':
15078 if (flags & (1|2)) goto eof;
15082 parser_pushback(parser, c);
15083 c = ruby_scan_oct((parser->parser_lex_p), 3, &numlen);
15084 (parser->parser_lex_p) += numlen;
15089 if (flags & (1|2)) goto eof;
15090 c = parser_tok_hex(parser, &numlen);
15091 if (numlen == 0) return 0;
15101 if (flags & 2) goto eof;
15102 if ((c = parser_nextc(parser)) != '-') {
15103 parser_pushback(parser, c);
15106 if ((c = parser_nextc(parser)) == '\\') {
15107 return parser_read_escape(parser, flags|2, encp) | 0x80;
15109 else if (c == -1 || !((unsigned long)((unsigned char)(c)) < 128)) goto eof;
15111 return ((c & 0xff) | 0x80);
15115 if ((c = parser_nextc(parser)) != '-') {
15116 parser_pushback(parser, c);
15120 if (flags & 1) goto eof;
15121 if ((c = parser_nextc(parser))== '\\') {
15122 c = parser_read_escape(parser, flags|1, encp);
15126 else if (c == -1 || !((unsigned long)((unsigned char)(c)) < 128)) goto eof;
15131 parser_yyerror(parser, "Invalid escape character syntax");
15140 parser_tokaddmbc(struct parser_params *parser, int c, rb_encoding *enc)
15142 int len = rb_enc_codelen(c, enc);
15143 (enc)->code_to_mbc(c,(OnigUChar*)(parser_tokspace(parser, len)),enc);
15147 parser_tokadd_escape(struct parser_params *parser, rb_encoding **encp)
15153 switch (c = parser_nextc(parser)) {
15157 case '0': case '1': case '2': case '3':
15158 case '4': case '5': case '6': case '7':
15159 if (flags & (1|2)) goto eof;
15164 oct = ruby_scan_oct(--(parser->parser_lex_p), 3, &numlen);
15165 if (numlen == 0) goto eof;
15166 (parser->parser_lex_p) += numlen;
15167 memcpy(parser_tokspace(parser, numlen + 1), (parser->parser_lex_p) - (numlen + 1), (numlen + 1));
15172 if (flags & (1|2)) goto eof;
15177 hex = parser_tok_hex(parser, &numlen);
15178 if (numlen == 0) goto eof;
15179 memcpy(parser_tokspace(parser, numlen + 2), (parser->parser_lex_p) - (numlen + 2), (numlen + 2));
15184 if (flags & 2) goto eof;
15185 if ((c = parser_nextc(parser)) != '-') {
15186 parser_pushback(parser, c);
15189 memcpy(parser_tokspace(parser, 3), (parser->parser_lex_p) - (3), (3));
15194 if (flags & 1) goto eof;
15195 if ((c = parser_nextc(parser)) != '-') {
15196 parser_pushback(parser, c);
15199 memcpy(parser_tokspace(parser, 3), (parser->parser_lex_p) - (3), (3));
15203 if (flags & 1) goto eof;
15204 memcpy(parser_tokspace(parser, 2), (parser->parser_lex_p) - (2), (2));
15207 if ((c = parser_nextc(parser)) == '\\') {
15210 else if (c == -1) goto eof;
15211 parser_tokadd(parser, c);
15216 parser_yyerror(parser, "Invalid escape character syntax");
15220 parser_tokadd(parser, '\\');
15221 parser_tokadd(parser, c);
15226 extern int rb_char_to_option_kcode(int c, int *option, int *kcode);
15229 parser_regx_options(struct parser_params *parser)
15235 parser_newtok(parser);
15236 while (c = parser_nextc(parser), rb_isalpha((unsigned char)(c))) {
15238 options |= (1<<16);
15240 else if (rb_char_to_option_kcode(c, &opt, &kc)) {
15242 if (kc >= 0) kcode = c;
15245 parser_tokadd(parser, c);
15248 parser_pushback(parser, c);
15249 if ((parser->parser_tokidx)) {
15250 ((parser->parser_tokenbuf)[(parser->parser_tokidx)]='\0');
15251 parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "unknown regexp option%s - %s",
15252 (parser->parser_tokidx) > 1 ? "s" : "", (parser->parser_tokenbuf));
15254 return options | (((kcode)&0xff)<<8);
15258 dispose_string(VALUE str)
15261 if (((struct RBasic*)(str))->flags & (((VALUE)1)<<(12 +1)))
15262 ruby_xfree((!(((struct RBasic*)(str))->flags & (((VALUE)1)<<(12 +1))) ? ((struct RString*)(str))->as.ary : ((struct RString*)(str))->as.heap.ptr));
15263 rb_gc_force_recycle(str);
15267 parser_tokadd_mbchar(struct parser_params *parser, int c)
15269 int len = rb_enc_precise_mbclen(((parser->parser_lex_p)-1),(parser->parser_lex_pend),parser->enc);
15270 if (!(0 < (len))) {
15271 parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "invalid multibyte char (%s)", (parser->enc->name));
15274 parser_tokadd(parser, c);
15275 (parser->parser_lex_p) += --len;
15276 if (len > 0) memcpy(parser_tokspace(parser, len), (parser->parser_lex_p) - (len), (len));
15283 parser_tokadd_string(struct parser_params *parser,
15284 int func, int term, int paren, long *nest,
15285 rb_encoding **encp)
15288 int has_nonascii = 0;
15289 rb_encoding *enc = *encp;
15291 static const char mixed_msg[] = "%s mixed within %s source";
15293 while ((c = parser_nextc(parser)) != -1) {
15294 if (paren && c == paren) {
15297 else if (c == term) {
15298 if (!nest || !*nest) {
15299 parser_pushback(parser, c);
15304 else if ((func & 0x02) && c == '#' && (parser->parser_lex_p) < (parser->parser_lex_pend)) {
15305 int c2 = *(parser->parser_lex_p);
15306 if (c2 == '$' || c2 == '@' || c2 == '{') {
15307 parser_pushback(parser, c);
15311 else if (c == '\\') {
15312 const char *beg = (parser->parser_lex_p) - 1;
15313 c = parser_nextc(parser);
15316 if (func & 0x08) break;
15317 if (func & 0x02) continue;
15318 parser_tokadd(parser, '\\');
15322 if (func & 0x01) parser_tokadd(parser, c);
15326 if ((func & 0x02) == 0) {
15327 parser_tokadd(parser, '\\');
15330 parser_tokadd_utf8(parser, &enc, 1,
15333 if (has_nonascii && enc != *encp) {
15334 do { const char *pos = (parser->parser_lex_p); (parser->parser_lex_p) = beg; if (!errbuf) { int len = sizeof(mixed_msg) - 4; len += strlen((enc)->name); len += strlen((*encp)->name); errbuf = (char*)__builtin_alloca (sizeof(char)*(len)); snprintf(errbuf, len, mixed_msg, (enc)->name, (*encp)->name); parser_yyerror(parser, errbuf); }; (parser->parser_lex_p) = pos; } while (0);
15340 parser_pushback(parser, c);
15341 if ((c = parser_tokadd_escape(parser, &enc)) < 0)
15343 if (has_nonascii && enc != *encp) {
15344 do { const char *pos = (parser->parser_lex_p); (parser->parser_lex_p) = beg; if (!errbuf) { int len = sizeof(mixed_msg) - 4; len += strlen((enc)->name); len += strlen((*encp)->name); errbuf = (char*)__builtin_alloca (sizeof(char)*(len)); snprintf(errbuf, len, mixed_msg, (enc)->name, (*encp)->name); parser_yyerror(parser, errbuf); }; (parser->parser_lex_p) = pos; } while (0);
15348 else if (func & 0x02) {
15349 parser_pushback(parser, c);
15350 if (func & 0x01) parser_tokadd(parser, '\\');
15351 c = parser_read_escape(parser, 0, &enc);
15353 else if ((func & 0x08) && rb_isspace((unsigned char)(c))) {
15356 else if (c != term && !(paren && c == paren)) {
15357 parser_tokadd(parser, '\\');
15361 else if (!((unsigned long)((unsigned char)(*((parser->parser_lex_p)-1))) < 128)) {
15363 if (enc != *encp) {
15364 if (!errbuf) { int len = sizeof(mixed_msg) - 4; len += strlen((enc)->name); len += strlen((*encp)->name); errbuf = (char*)__builtin_alloca (sizeof(char)*(len)); snprintf(errbuf, len, mixed_msg, (enc)->name, (*encp)->name); parser_yyerror(parser, errbuf); };
15367 if (parser_tokadd_mbchar(parser, c) == -1) return -1;
15370 else if ((func & 0x08) && rb_isspace((unsigned char)(c))) {
15371 parser_pushback(parser, c);
15374 if (!c && (func & 0x10)) {
15376 parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "symbol cannot contain '\\0'");
15381 if (enc != *encp) {
15382 if (!errbuf) { int len = sizeof(mixed_msg) - 4; len += strlen((enc)->name); len += strlen((*encp)->name); errbuf = (char*)__builtin_alloca (sizeof(char)*(len)); snprintf(errbuf, len, mixed_msg, (enc)->name, (*encp)->name); parser_yyerror(parser, errbuf); };
15386 parser_tokadd(parser, c);
15396 parser_parse_string(struct parser_params *parser, NODE *quote)
15398 int func = quote->u1.id;
15399 int term = ((signed short)(quote)->u2.id);
15400 int paren = (char)((quote)->u2.id >> 8*2);
15402 rb_encoding *enc = parser->enc;
15404 if (func == -1) return 361;
15405 c = parser_nextc(parser);
15406 if ((func & 0x08) && rb_isspace((unsigned char)(c))) {
15407 do {c = parser_nextc(parser);} while (rb_isspace((unsigned char)(c)));
15410 if (c == term && !quote->u3.cnt) {
15415 if (!(func & 0x04)) return 361;
15416 (*((YYSTYPE*)(parser->parser_yylval))).num = parser_regx_options(parser);
15420 parser_pushback(parser, c);
15423 parser_newtok(parser);
15424 if ((func & 0x02) && c == '#') {
15425 switch (c = parser_nextc(parser)) {
15428 parser_pushback(parser, c);
15433 parser_tokadd(parser, '#');
15435 parser_pushback(parser, c);
15436 if (parser_tokadd_string(parser,func,term,paren,"e->u3.cnt,&enc) == -1) {
15438 (parser->parser_ruby_sourceline) = ((VALUE)(((((struct RNode*)(quote)))->flags>>(8 +7))&(((long)1<<(sizeof(VALUE)*8 -(8 +7)))-1)));
15441 parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "unterminated regexp meets end of file");
15446 parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "unterminated string meets end of file");
15451 ((parser->parser_tokenbuf)[(parser->parser_tokidx)]='\0');
15452 (*((YYSTYPE*)(parser->parser_yylval))).node = node_newnode(parser, (NODE_STR), (VALUE)(parser_str_new(((parser->parser_tokenbuf)),((parser->parser_tokidx)),(enc),(func),parser->enc)), (VALUE)(0), (VALUE)(0));
15457 parser_heredoc_identifier(struct parser_params *parser)
15459 int c = parser_nextc(parser), term, func = 0, len;
15462 c = parser_nextc(parser);
15467 func |= str_squote; goto quoted;
15469 func |= str_dquote; goto quoted;
15471 func |= str_xquote;
15473 parser_newtok(parser);
15474 parser_tokadd(parser, func);
15476 while ((c = parser_nextc(parser)) != -1 && c != term) {
15477 if (parser_tokadd_mbchar(parser, c) == -1) return 0;
15480 parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "unterminated here document identifier");
15486 if (!(!parser->eofp && ((parser->enc)->is_code_ctype(*((parser->parser_lex_p)-1),13,parser->enc) || (*((parser->parser_lex_p)-1)) == '_' || !((unsigned long)((unsigned char)(*((parser->parser_lex_p)-1))) < 128)))) {
15487 parser_pushback(parser, c);
15489 parser_pushback(parser, '-');
15493 parser_newtok(parser);
15495 parser_tokadd(parser, func |= str_dquote);
15497 if (parser_tokadd_mbchar(parser, c) == -1) return 0;
15498 } while ((c = parser_nextc(parser)) != -1 && (!parser->eofp && ((parser->enc)->is_code_ctype(*((parser->parser_lex_p)-1),13,parser->enc) || (*((parser->parser_lex_p)-1)) == '_' || !((unsigned long)((unsigned char)(*((parser->parser_lex_p)-1))) < 128))));
15499 parser_pushback(parser, c);
15503 ((parser->parser_tokenbuf)[(parser->parser_tokidx)]='\0');
15507 len = (parser->parser_lex_p) - (parser->parser_lex_pbeg);
15508 (parser->parser_lex_p = parser->parser_lex_pend);
15509 (parser->parser_lex_strterm) = node_newnode(parser, NODE_ARRAY, rb_enc_str_new(((parser->parser_tokenbuf)),((parser->parser_tokidx)),parser->enc), len, (parser->parser_lex_lastline));
15513 ((struct RNode*)((parser->parser_lex_strterm)))->flags=((((struct RNode*)((parser->parser_lex_strterm)))->flags&~(-1<<(8 +7)))|((((parser->parser_ruby_sourceline))&(((long)1<<(sizeof(VALUE)*8 -(8 +7)))-1))<<(8 +7)));
15517 return term == '`' ? 355 : 354;
15521 parser_heredoc_restore(struct parser_params *parser, NODE *here)
15531 line = here->u3.value;
15532 (parser->parser_lex_lastline) = line;
15533 (parser->parser_lex_pbeg) = (!(((struct RBasic*)(line))->flags & (((VALUE)1)<<(12 +1))) ? ((struct RString*)(line))->as.ary : ((struct RString*)(line))->as.heap.ptr);
15534 (parser->parser_lex_pend) = (parser->parser_lex_pbeg) + (!(((struct RBasic*)(line))->flags & (((VALUE)1)<<(12 +1))) ? (long)((((struct RBasic*)(line))->flags >> (12 +2)) & (((((VALUE)1)<<(12 +2))|(((VALUE)1)<<(12 +3))|(((VALUE)1)<<(12 +4))|(((VALUE)1)<<(12 +5))|(((VALUE)1)<<(12 +6))) >> (12 +2))) : ((struct RString*)(line))->as.heap.len);
15535 (parser->parser_lex_p) = (parser->parser_lex_pbeg) + here->u2.argc;
15536 (parser->parser_heredoc_end) = (parser->parser_ruby_sourceline);
15537 (parser->parser_ruby_sourceline) = ((VALUE)(((((struct RNode*)(here)))->flags>>(8 +7))&(((long)1<<(sizeof(VALUE)*8 -(8 +7)))-1)));
15538 dispose_string(here->u1.value);
15539 rb_gc_force_recycle((VALUE)here);
15546 parser_whole_match_p(struct parser_params *parser,
15547 const char *eos, int len, int indent)
15549 const char *p = (parser->parser_lex_pbeg);
15553 while (*p && rb_isspace((unsigned char)(*p))) p++;
15555 n= (parser->parser_lex_pend) - (p + len);
15556 if (n < 0 || (n > 0 && p[len] != '\n' && p[len] != '\r')) return ((VALUE)RUBY_Qfalse);
15557 if ((__extension__ (__builtin_constant_p (len) && ((__builtin_constant_p (eos) && strlen (eos) < ((size_t) (len))) || (__builtin_constant_p (p) && strlen (p) < ((size_t) (len)))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (eos) && __builtin_constant_p (p) && (__s1_len = strlen (eos), __s2_len = strlen (p), (!((size_t)(const void *)((eos) + 1) - (size_t)(const void *)(eos) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((p) + 1) - (size_t)(const void *)(p) == 1) || __s2_len >= 4)) ? __builtin_strcmp (eos, p) : (__builtin_constant_p (eos) && ((size_t)(const void *)((eos) + 1) - (size_t)(const void *)(eos) == 1) && (__s1_len = strlen (eos), __s1_len < 4) ? (__builtin_constant_p (p) && ((size_t)(const void *)((p) + 1) - (size_t)(const void *)(p) == 1) ? __builtin_strcmp (eos, p) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) (p); register int __result = (((__const unsigned char *) (__const char *) (eos))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (eos))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (eos))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (eos))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (p) && ((size_t)(const void *)((p) + 1) - (size_t)(const void *)(p) == 1) && (__s2_len = strlen (p), __s2_len < 4) ? (__builtin_constant_p (eos) && ((size_t)(const void *)((eos) + 1) - (size_t)(const void *)(eos) == 1) ? __builtin_strcmp (eos, p) : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (eos); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) (p))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) (p))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) (p))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) (p))[3]); } } __result; }))) : __builtin_strcmp (eos, p)))); }) : strncmp (eos, p, len))) == 0) return ((VALUE)RUBY_Qtrue);
15558 return ((VALUE)RUBY_Qfalse);
15562 parser_here_document(struct parser_params *parser, NODE *here)
15564 int c, func, indent = 0;
15565 const char *eos, *p, *pend;
15569 eos = (!(((struct RBasic*)(here->u1.value))->flags & (((VALUE)1)<<(12 +1))) ? ((struct RString*)(here->u1.value))->as.ary : ((struct RString*)(here->u1.value))->as.heap.ptr);
15570 len = (!(((struct RBasic*)(here->u1.value))->flags & (((VALUE)1)<<(12 +1))) ? (long)((((struct RBasic*)(here->u1.value))->flags >> (12 +2)) & (((((VALUE)1)<<(12 +2))|(((VALUE)1)<<(12 +3))|(((VALUE)1)<<(12 +4))|(((VALUE)1)<<(12 +5))|(((VALUE)1)<<(12 +6))) >> (12 +2))) : ((struct RString*)(here->u1.value))->as.heap.len) - 1;
15571 indent = (func = *eos++) & 0x20;
15573 if ((c = parser_nextc(parser)) == -1) {
15575 parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "can't find string \"%s\" anywhere before EOF", eos);
15577 parser_heredoc_restore(parser,(parser->parser_lex_strterm));
15578 (parser->parser_lex_strterm) = 0;
15581 if (((parser->parser_lex_p) == (parser->parser_lex_pbeg) + 1) && parser_whole_match_p(parser,eos,len,indent)) {
15582 parser_heredoc_restore(parser,(parser->parser_lex_strterm));
15586 if (!(func & 0x02)) {
15588 p = (!(((struct RBasic*)((parser->parser_lex_lastline)))->flags & (((VALUE)1)<<(12 +1))) ? ((struct RString*)((parser->parser_lex_lastline)))->as.ary : ((struct RString*)((parser->parser_lex_lastline)))->as.heap.ptr);
15589 pend = (parser->parser_lex_pend);
15591 switch (pend[-1]) {
15593 if (--pend == p || pend[-1] != '\r') {
15602 rb_str_cat(str, p, pend - p);
15604 str = rb_enc_str_new((p),(pend - p),parser->enc);
15605 if (pend < (parser->parser_lex_pend)) rb_str_cat(str, "\n", 1);
15606 (parser->parser_lex_p = parser->parser_lex_pend);
15607 if (parser_nextc(parser) == -1) {
15608 if (str) dispose_string(str);
15611 } while (!parser_whole_match_p(parser,eos,len,indent));
15615 rb_encoding *enc = parser->enc;
15616 parser_newtok(parser);
15618 switch (c = parser_nextc(parser)) {
15621 parser_pushback(parser, c);
15626 parser_tokadd(parser, '#');
15629 parser_pushback(parser, c);
15630 if ((c = parser_tokadd_string(parser,func,'\n',0,((void *)0),&enc)) == -1) {
15631 if (parser->eofp) goto error;
15635 (*((YYSTYPE*)(parser->parser_yylval))).node = node_newnode(parser, (NODE_STR), (VALUE)(parser_str_new(((parser->parser_tokenbuf)),((parser->parser_tokidx)),(enc),(func),parser->enc)), (VALUE)(0), (VALUE)(0));
15638 parser_tokadd(parser, parser_nextc(parser));
15640 if ((c = parser_nextc(parser)) == -1) goto error;
15641 } while (!parser_whole_match_p(parser,eos,len,indent));
15642 str = parser_str_new(((parser->parser_tokenbuf)),((parser->parser_tokidx)),(enc),(func),parser->enc);
15644 parser_heredoc_restore(parser,(parser->parser_lex_strterm));
15645 (parser->parser_lex_strterm) = node_newnode(parser, NODE_ZARRAY, (-1), (0) | ((0) << (8 * 2)), 0);
15646 (*((YYSTYPE*)(parser->parser_yylval))).node = node_newnode(parser, (NODE_STR), (VALUE)(str), (VALUE)(0), (VALUE)(0));
15653 struct kwtable {const char *name; int id[2]; enum lex_state_e state;};
15654 const struct kwtable *rb_reserved_word(const char *, unsigned int);
15664 static unsigned int
15666 register const char *str;
15667 register unsigned int len;
15669 static const unsigned char asso_values[] =
15671 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
15672 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
15673 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
15674 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
15675 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
15676 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
15677 51, 51, 51, 26, 51, 51, 14, 51, 16, 8,
15678 11, 13, 51, 51, 51, 51, 10, 51, 13, 51,
15679 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
15680 51, 51, 51, 51, 51, 11, 51, 13, 1, 26,
15681 4, 1, 8, 28, 51, 23, 51, 1, 1, 27,
15682 5, 19, 21, 51, 8, 3, 3, 11, 51, 21,
15683 24, 16, 51, 51, 51, 51, 51, 51, 51, 51,
15684 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
15685 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
15686 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
15687 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
15688 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
15689 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
15690 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
15691 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
15692 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
15693 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
15694 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
15695 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
15696 51, 51, 51, 51, 51, 51
15698 register int hval = len;
15703 hval += asso_values[(unsigned char)str[2]];
15707 hval += asso_values[(unsigned char)str[0]];
15710 return hval + asso_values[(unsigned char)str[len - 1]];
15719 const struct kwtable *
15720 rb_reserved_word (str, len)
15721 register const char *str;
15722 register unsigned int len;
15724 static const struct kwtable wordlist[] =
15726 {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
15728 {"break", {276, 276}, EXPR_MID},
15730 {"else", {270, 270}, EXPR_BEG},
15732 {"nil", {289, 289}, EXPR_END},
15734 {"ensure", {264, 264}, EXPR_BEG},
15736 {"end", {265, 265}, EXPR_END},
15738 {"then", {268, 268}, EXPR_BEG},
15740 {"not", {294, 294}, EXPR_ARG},
15742 {"false", {291, 291}, EXPR_END},
15744 {"self", {288, 288}, EXPR_END},
15746 {"elsif", {269, 269}, EXPR_VALUE},
15748 {"rescue", {263, 299}, EXPR_MID},
15750 {"true", {290, 290}, EXPR_END},
15752 {"until", {274, 298}, EXPR_VALUE},
15754 {"unless", {267, 296}, EXPR_VALUE},
15756 {"return", {285, 285}, EXPR_MID},
15758 {"def", {260, 260}, EXPR_FNAME},
15760 {"and", {292, 292}, EXPR_VALUE},
15762 {"do", {281, 281}, EXPR_BEG},
15764 {"yield", {286, 286}, EXPR_ARG},
15766 {"for", {275, 275}, EXPR_VALUE},
15768 {"undef", {261, 261}, EXPR_FNAME},
15770 {"or", {293, 293}, EXPR_VALUE},
15772 {"in", {280, 280}, EXPR_VALUE},
15774 {"when", {272, 272}, EXPR_VALUE},
15776 {"retry", {279, 279}, EXPR_END},
15778 {"if", {266, 295}, EXPR_VALUE},
15780 {"case", {271, 271}, EXPR_VALUE},
15782 {"redo", {278, 278}, EXPR_END},
15784 {"next", {277, 277}, EXPR_MID},
15786 {"super", {287, 287}, EXPR_ARG},
15788 {"module", {259, 259}, EXPR_VALUE},
15790 {"begin", {262, 262}, EXPR_BEG},
15792 {"__LINE__", {304, 304}, EXPR_END},
15794 {"__FILE__", {305, 305}, EXPR_END},
15796 {"__ENCODING__", {306, 306}, EXPR_END},
15798 {"END", {303, 303}, EXPR_END},
15800 {"alias", {300, 300}, EXPR_FNAME},
15802 {"BEGIN", {302, 302}, EXPR_END},
15804 {"defined?", {301, 301}, EXPR_ARG},
15806 {"class", {258, 258}, EXPR_CLASS},
15809 {"while", {273, 297}, EXPR_VALUE}
15812 if (len <= 12 && len >= 2)
15814 register int key = hash (str, len);
15816 if (key <= 50 && key >= 0)
15818 register const char *s = wordlist[key].name;
15820 if (*str == *s && !__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (str + 1) && __builtin_constant_p (s + 1) && (__s1_len = strlen (str + 1), __s2_len = strlen (s + 1), (!((size_t)(const void *)((str + 1) + 1) - (size_t)(const void *)(str + 1) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((s + 1) + 1) - (size_t)(const void *)(s + 1) == 1) || __s2_len >= 4)) ? __builtin_strcmp (str + 1, s + 1) : (__builtin_constant_p (str + 1) && ((size_t)(const void *)((str + 1) + 1) - (size_t)(const void *)(str + 1) == 1) && (__s1_len = strlen (str + 1), __s1_len < 4) ? (__builtin_constant_p (s + 1) && ((size_t)(const void *)((s + 1) + 1) - (size_t)(const void *)(s + 1) == 1) ? __builtin_strcmp (str + 1, s + 1) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) (s + 1); register int __result = (((__const unsigned char *) (__const char *) (str + 1))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (str + 1))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (str + 1))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (str + 1))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (s + 1) && ((size_t)(const void *)((s + 1) + 1) - (size_t)(const void *)(s + 1) == 1) && (__s2_len = strlen (s + 1), __s2_len < 4) ? (__builtin_constant_p (str + 1) && ((size_t)(const void *)((str + 1) + 1) - (size_t)(const void *)(str + 1) == 1) ? __builtin_strcmp (str + 1, s + 1) : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (str + 1); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) (s + 1))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) (s + 1))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) (s + 1))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) (s + 1))[3]); } } __result; }))) : __builtin_strcmp (str + 1, s + 1)))); }))
15821 return &wordlist[key];
15831 arg_ambiguous_gen(struct parser_params *parser)
15833 rb_compile_warning((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "ambiguous first argument; put parentheses or even spaces");
15837 lvar_defined_gen(struct parser_params *parser, ID id)
15840 return (dyna_in_block_gen(parser) && dvar_defined_gen(parser, id)) || local_id_gen(parser, id);
15848 parser_encode_length(struct parser_params *parser, const char *name, int len)
15852 if (len > 5 && name[nlen = len - 5] == '-') {
15853 if (rb_memcicmp(name + nlen + 1, "unix", 4) == 0)
15856 if (len > 4 && name[nlen = len - 5] == '-') {
15857 if (rb_memcicmp(name + nlen + 1, "dos", 3) == 0)
15859 if (rb_memcicmp(name + nlen + 1, "mac", 3) == 0)
15866 parser_set_encode(struct parser_params *parser, const char *name)
15868 int idx = rb_enc_find_index(name);
15872 rb_raise(rb_eArgError, "unknown encoding name: %s", name);
15874 enc = rb_enc_from_index(idx);
15875 if (!((enc)->min_enc_len==1 && !rb_enc_dummy_p(enc))) {
15876 rb_raise(rb_eArgError, "%s is not ASCII compatible", (enc)->name);
15882 comment_at_top(struct parser_params *parser)
15884 const char *p = (parser->parser_lex_pbeg), *pend = (parser->parser_lex_p) - 1;
15885 if (parser->line_count != (parser->has_shebang ? 2 : 1)) return 0;
15887 if (!rb_isspace((unsigned char)(*p))) return 0;
15894 typedef int (*rb_magic_comment_length_t)(struct parser_params *parser, const char *name, int len);
15895 typedef void (*rb_magic_comment_setter_t)(struct parser_params *parser, const char *name, const char *val);
15898 magic_comment_encoding(struct parser_params *parser, const char *name, const char *val)
15900 if (!comment_at_top(parser)) {
15901 rb_warning("encoding '%s' is ignored, valid only in the first line except for shebang line.",
15905 parser_set_encode(parser, val);
15908 struct magic_comment {
15910 rb_magic_comment_setter_t func;
15911 rb_magic_comment_length_t length;
15914 static const struct magic_comment magic_comments[] = {
15915 {"coding", magic_comment_encoding, parser_encode_length},
15916 {"encoding", magic_comment_encoding, parser_encode_length},
15920 static const char *
15921 magic_comment_marker(const char *str, int len)
15928 if (str[i-1] == '*' && str[i-2] == '-') {
15929 return str + i + 1;
15934 if (i + 1 >= len) return 0;
15935 if (str[i+1] != '-') {
15938 else if (str[i-1] != '-') {
15942 return str + i + 2;
15954 parser_magic_comment(struct parser_params *parser, const char *str, int len)
15956 VALUE name = 0, val = 0;
15957 const char *beg, *end, *vbeg, *vend;
15963 if (len <= 7) return ((VALUE)RUBY_Qfalse);
15964 if (!(beg = magic_comment_marker(str, len))) return ((VALUE)RUBY_Qfalse);
15965 if (!(end = magic_comment_marker(beg, str + len - beg))) return ((VALUE)RUBY_Qfalse);
15967 len = end - beg - 3;
15972 const struct magic_comment *p = magic_comments;
15977 for (; len > 0 && *str; str++, --len) {
15979 case '\'': case '"': case ':': case ';':
15982 if (!rb_isspace((unsigned char)(*str))) break;
15984 for (beg = str; len > 0; str++, --len) {
15986 case '\'': case '"': case ':': case ';':
15989 if (rb_isspace((unsigned char)(*str))) break;
15994 for (end = str; len > 0 && rb_isspace((unsigned char)(*str)); str++, --len);
15996 if (*str != ':') continue;
15998 do str++; while (--len > 0 && rb_isspace((unsigned char)(*str)));
16001 for (vbeg = ++str; --len > 0 && *str != '"'; str++) {
16002 if (*str == '\\') {
16014 for (vbeg = str; len > 0 && *str != '"' && *str != ';' && !rb_isspace((unsigned char)(*str)); --len, str++);
16017 while (len > 0 && (*str == ';' || rb_isspace((unsigned char)(*str)))) --len, str++;
16020 ((name) ? (rb_str_resize((name), (n)), memcpy(((!(((struct RBasic*)(name))->flags & (((VALUE)1)<<(12 +1))) ? ((struct RString*)(name))->as.ary : ((struct RString*)(name))->as.heap.ptr)), ((beg)), sizeof(char)*((n))), (name)) : ((name) = rb_enc_str_new(((beg)),((n)),parser->enc)));
16021 s = (!(((struct RBasic*)(name))->flags & (((VALUE)1)<<(12 +1))) ? ((struct RString*)(name))->as.ary : ((struct RString*)(name))->as.heap.ptr);
16022 for (i = 0; i < n; ++i) {
16023 if (*s == '-') *s = '_';
16027 if ((st_strncasecmp(p->name, s, n)) == 0) {
16030 n = (*p->length)(parser, vbeg, n);
16032 ((val) ? (rb_str_resize((val), (n)), memcpy(((!(((struct RBasic*)(val))->flags & (((VALUE)1)<<(12 +1))) ? ((struct RString*)(val))->as.ary : ((struct RString*)(val))->as.heap.ptr)), ((vbeg)), sizeof(char)*((n))), (val)) : ((val) = rb_enc_str_new(((vbeg)),((n)),parser->enc)));
16033 (*p->func)(parser, s, (!(((struct RBasic*)(val))->flags & (((VALUE)1)<<(12 +1))) ? ((struct RString*)(val))->as.ary : ((struct RString*)(val))->as.heap.ptr));
16036 } while (++p < magic_comments + sizeof(magic_comments) / sizeof(*p));
16042 return ((VALUE)RUBY_Qtrue);
16046 set_file_encoding(struct parser_params *parser, const char *str, const char *send)
16049 const char *beg = str;
16053 if (send - str <= 6) return;
16055 case 'C': case 'c': str += 6; continue;
16056 case 'O': case 'o': str += 5; continue;
16057 case 'D': case 'd': str += 4; continue;
16058 case 'I': case 'i': str += 3; continue;
16059 case 'N': case 'n': str += 2; continue;
16060 case 'G': case 'g': str += 1; continue;
16061 case '=': case ':':
16067 if (rb_isspace((unsigned char)(*str))) break;
16070 if ((st_strncasecmp(str-6, "coding", 6)) == 0) break;
16074 if (++str >= send) return;
16075 } while (rb_isspace((unsigned char)(*str)));
16077 if (*str != '=' && *str != ':') return;
16082 while ((*str == '-' || *str == '_' || rb_isalnum((unsigned char)(*str))) && ++str < send);
16083 s = rb_str_new(beg, parser_encode_length(parser, beg, str - beg));
16084 parser_set_encode(parser, (!(((struct RBasic*)(s))->flags & (((VALUE)1)<<(12 +1))) ? ((struct RString*)(s))->as.ary : ((struct RString*)(s))->as.heap.ptr));
16085 rb_str_resize(s, 0);
16089 parser_prepare(struct parser_params *parser)
16091 int c = parser_nextc(parser);
16094 if (((parser->parser_lex_p) < (parser->parser_lex_pend) && ('!') == *(parser->parser_lex_p))) parser->has_shebang = 1;
16097 if ((parser->parser_lex_pend) - (parser->parser_lex_p) >= 2 &&
16098 (unsigned char)(parser->parser_lex_p)[0] == 0xbb &&
16099 (unsigned char)(parser->parser_lex_p)[1] == 0xbf) {
16100 parser->enc = rb_utf8_encoding();
16101 (parser->parser_lex_p) += 2;
16102 (parser->parser_lex_pbeg) = (parser->parser_lex_p);
16109 parser_pushback(parser, c);
16110 parser->enc = rb_enc_get((parser->parser_lex_lastline));
16117 parser_yylex(struct parser_params *parser)
16120 int space_seen = 0;
16122 enum lex_state_e last_state;
16129 if ((parser->parser_lex_strterm)) {
16131 if (((int) (((((struct RNode*)((parser->parser_lex_strterm))))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_ARRAY) {
16132 token = parser_here_document(parser,(parser->parser_lex_strterm));
16133 if (token == 361) {
16134 (parser->parser_lex_strterm) = 0;
16135 (parser->parser_lex_state) = EXPR_END;
16139 token = parser_parse_string(parser,(parser->parser_lex_strterm));
16140 if (token == 361 || token == 320) {
16141 rb_gc_force_recycle((VALUE)(parser->parser_lex_strterm));
16142 (parser->parser_lex_strterm) = 0;
16143 (parser->parser_lex_state) = EXPR_END;
16148 cmd_state = (parser->parser_command_start);
16149 (parser->parser_command_start) = ((VALUE)RUBY_Qfalse);
16151 switch (c = parser_nextc(parser)) {
16159 case ' ': case '\t': case '\f': case '\r':
16167 if (!parser_magic_comment(parser, (parser->parser_lex_p), (parser->parser_lex_pend) - (parser->parser_lex_p))) {
16168 if (comment_at_top(parser)) {
16169 set_file_encoding(parser, (parser->parser_lex_p), (parser->parser_lex_pend));
16172 (parser->parser_lex_p) = (parser->parser_lex_pend);
16179 switch ((parser->parser_lex_state)) {
16195 while ((c = parser_nextc(parser))) {
16197 case ' ': case '\t': case '\f': case '\r':
16202 if ((c = parser_nextc(parser)) != '.') {
16203 parser_pushback(parser, c);
16204 parser_pushback(parser, '.');
16209 --(parser->parser_ruby_sourceline);
16210 (parser->parser_lex_nextline) = (parser->parser_lex_lastline);
16212 (parser->parser_lex_p = parser->parser_lex_pend);
16218 goto normal_newline;
16222 (parser->parser_command_start) = ((VALUE)RUBY_Qtrue);
16223 (parser->parser_lex_state) = EXPR_BEG;
16227 if ((c = parser_nextc(parser)) == '*') {
16228 if ((c = parser_nextc(parser)) == '=') {
16229 (*((YYSTYPE*)(parser->parser_yylval))).id = 323;
16230 (parser->parser_lex_state) = EXPR_BEG;
16233 parser_pushback(parser, c);
16238 (*((YYSTYPE*)(parser->parser_yylval))).id = '*';
16239 (parser->parser_lex_state) = EXPR_BEG;
16242 parser_pushback(parser, c);
16243 if (((parser->parser_lex_state) == EXPR_ARG || (parser->parser_lex_state) == EXPR_CMDARG) && space_seen && !rb_isspace((unsigned char)(c))) {
16244 rb_compile_warning((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "`*' interpreted as argument prefix");
16247 else if (((parser->parser_lex_state) == EXPR_BEG || (parser->parser_lex_state) == EXPR_MID || (parser->parser_lex_state) == EXPR_VALUE || (parser->parser_lex_state) == EXPR_CLASS)) {
16254 switch ((parser->parser_lex_state)) {
16255 case EXPR_FNAME: case EXPR_DOT:
16256 (parser->parser_lex_state) = EXPR_ARG; break;
16258 (parser->parser_lex_state) = EXPR_BEG; break;
16263 c = parser_nextc(parser);
16264 if ((parser->parser_lex_state) == EXPR_FNAME || (parser->parser_lex_state) == EXPR_DOT) {
16265 (parser->parser_lex_state) = EXPR_ARG;
16271 (parser->parser_lex_state) = EXPR_BEG;
16279 parser_pushback(parser, c);
16283 if (((parser->parser_lex_p) == (parser->parser_lex_pbeg) + 1)) {
16285 if ((__extension__ (__builtin_constant_p (5) && ((__builtin_constant_p ((parser->parser_lex_p)) && strlen ((parser->parser_lex_p)) < ((size_t) (5))) || (__builtin_constant_p ("begin") && strlen ("begin") < ((size_t) (5)))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ((parser->parser_lex_p)) && __builtin_constant_p ("begin") && (__s1_len = strlen ((parser->parser_lex_p)), __s2_len = strlen ("begin"), (!((size_t)(const void *)(((parser->parser_lex_p)) + 1) - (size_t)(const void *)((parser->parser_lex_p)) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("begin") + 1) - (size_t)(const void *)("begin") == 1) || __s2_len >= 4)) ? __builtin_strcmp ((parser->parser_lex_p), "begin") : (__builtin_constant_p ((parser->parser_lex_p)) && ((size_t)(const void *)(((parser->parser_lex_p)) + 1) - (size_t)(const void *)((parser->parser_lex_p)) == 1) && (__s1_len = strlen ((parser->parser_lex_p)), __s1_len < 4) ? (__builtin_constant_p ("begin") && ((size_t)(const void *)(("begin") + 1) - (size_t)(const void *)("begin") == 1) ? __builtin_strcmp ((parser->parser_lex_p), "begin") : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) ("begin"); register int __result = (((__const unsigned char *) (__const char *) ((parser->parser_lex_p)))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) ((parser->parser_lex_p)))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) ((parser->parser_lex_p)))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) ((parser->parser_lex_p)))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("begin") && ((size_t)(const void *)(("begin") + 1) - (size_t)(const void *)("begin") == 1) && (__s2_len = strlen ("begin"), __s2_len < 4) ? (__builtin_constant_p ((parser->parser_lex_p)) && ((size_t)(const void *)(((parser->parser_lex_p)) + 1) - (size_t)(const void *)((parser->parser_lex_p)) == 1) ? __builtin_strcmp ((parser->parser_lex_p), "begin") : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) ((parser->parser_lex_p)); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ("begin"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) ("begin"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ("begin"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) ("begin"))[3]); } } __result; }))) : __builtin_strcmp ((parser->parser_lex_p), "begin")))); }) : strncmp ((parser->parser_lex_p), "begin", 5))) == 0 && rb_isspace((unsigned char)((parser->parser_lex_p)[5]))) {
16293 (parser->parser_lex_p = parser->parser_lex_pend);
16300 c = parser_nextc(parser);
16302 parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "embedded document meets end of file");
16305 if (c != '=') continue;
16306 if ((__extension__ (__builtin_constant_p (3) && ((__builtin_constant_p ((parser->parser_lex_p)) && strlen ((parser->parser_lex_p)) < ((size_t) (3))) || (__builtin_constant_p ("end") && strlen ("end") < ((size_t) (3)))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ((parser->parser_lex_p)) && __builtin_constant_p ("end") && (__s1_len = strlen ((parser->parser_lex_p)), __s2_len = strlen ("end"), (!((size_t)(const void *)(((parser->parser_lex_p)) + 1) - (size_t)(const void *)((parser->parser_lex_p)) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("end") + 1) - (size_t)(const void *)("end") == 1) || __s2_len >= 4)) ? __builtin_strcmp ((parser->parser_lex_p), "end") : (__builtin_constant_p ((parser->parser_lex_p)) && ((size_t)(const void *)(((parser->parser_lex_p)) + 1) - (size_t)(const void *)((parser->parser_lex_p)) == 1) && (__s1_len = strlen ((parser->parser_lex_p)), __s1_len < 4) ? (__builtin_constant_p ("end") && ((size_t)(const void *)(("end") + 1) - (size_t)(const void *)("end") == 1) ? __builtin_strcmp ((parser->parser_lex_p), "end") : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) ("end"); register int __result = (((__const unsigned char *) (__const char *) ((parser->parser_lex_p)))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) ((parser->parser_lex_p)))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) ((parser->parser_lex_p)))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) ((parser->parser_lex_p)))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("end") && ((size_t)(const void *)(("end") + 1) - (size_t)(const void *)("end") == 1) && (__s2_len = strlen ("end"), __s2_len < 4) ? (__builtin_constant_p ((parser->parser_lex_p)) && ((size_t)(const void *)(((parser->parser_lex_p)) + 1) - (size_t)(const void *)((parser->parser_lex_p)) == 1) ? __builtin_strcmp ((parser->parser_lex_p), "end") : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) ((parser->parser_lex_p)); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ("end"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) ("end"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ("end"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) ("end"))[3]); } } __result; }))) : __builtin_strcmp ((parser->parser_lex_p), "end")))); }) : strncmp ((parser->parser_lex_p), "end", 3))) == 0 &&
16307 ((parser->parser_lex_p) + 3 == (parser->parser_lex_pend) || rb_isspace((unsigned char)((parser->parser_lex_p)[3])))) {
16311 (parser->parser_lex_p = parser->parser_lex_pend);
16319 switch ((parser->parser_lex_state)) {
16320 case EXPR_FNAME: case EXPR_DOT:
16321 (parser->parser_lex_state) = EXPR_ARG; break;
16323 (parser->parser_lex_state) = EXPR_BEG; break;
16325 if ((c = parser_nextc(parser)) == '=') {
16326 if ((c = parser_nextc(parser)) == '=') {
16329 parser_pushback(parser, c);
16335 else if (c == '>') {
16338 parser_pushback(parser, c);
16342 c = parser_nextc(parser);
16344 (parser->parser_lex_state) != EXPR_END &&
16345 (parser->parser_lex_state) != EXPR_DOT &&
16346 (parser->parser_lex_state) != EXPR_ENDARG &&
16347 (parser->parser_lex_state) != EXPR_CLASS &&
16348 (!((parser->parser_lex_state) == EXPR_ARG || (parser->parser_lex_state) == EXPR_CMDARG) || space_seen)) {
16349 int token = parser_heredoc_identifier(parser);
16350 if (token) return token;
16352 switch ((parser->parser_lex_state)) {
16353 case EXPR_FNAME: case EXPR_DOT:
16354 (parser->parser_lex_state) = EXPR_ARG; break;
16356 (parser->parser_lex_state) = EXPR_BEG; break;
16359 if ((c = parser_nextc(parser)) == '>') {
16362 parser_pushback(parser, c);
16366 if ((c = parser_nextc(parser)) == '=') {
16367 (*((YYSTYPE*)(parser->parser_yylval))).id = 338;
16368 (parser->parser_lex_state) = EXPR_BEG;
16371 parser_pushback(parser, c);
16374 parser_pushback(parser, c);
16378 switch ((parser->parser_lex_state)) {
16379 case EXPR_FNAME: case EXPR_DOT:
16380 (parser->parser_lex_state) = EXPR_ARG; break;
16382 (parser->parser_lex_state) = EXPR_BEG; break;
16384 if ((c = parser_nextc(parser)) == '=') {
16388 if ((c = parser_nextc(parser)) == '=') {
16389 (*((YYSTYPE*)(parser->parser_yylval))).id = 339;
16390 (parser->parser_lex_state) = EXPR_BEG;
16393 parser_pushback(parser, c);
16396 parser_pushback(parser, c);
16400 (parser->parser_lex_strterm) = node_newnode(parser, NODE_ZARRAY, (str_dquote), ('"') | ((0) << (8 * 2)), 0);
16404 if ((parser->parser_lex_state) == EXPR_FNAME) {
16405 (parser->parser_lex_state) = EXPR_END;
16408 if ((parser->parser_lex_state) == EXPR_DOT) {
16410 (parser->parser_lex_state) = EXPR_CMDARG;
16412 (parser->parser_lex_state) = EXPR_ARG;
16415 (parser->parser_lex_strterm) = node_newnode(parser, NODE_ZARRAY, (str_xquote), ('`') | ((0) << (8 * 2)), 0);
16419 (parser->parser_lex_strterm) = node_newnode(parser, NODE_ZARRAY, (str_squote), ('\'') | ((0) << (8 * 2)), 0);
16423 if ((parser->parser_lex_state) == EXPR_END || (parser->parser_lex_state) == EXPR_ENDARG) {
16424 (parser->parser_lex_state) = EXPR_VALUE;
16427 c = parser_nextc(parser);
16429 parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "incomplete character syntax");
16432 if ((parser->enc)->is_code_ctype(c,9,parser->enc)) {
16433 if (!((parser->parser_lex_state) == EXPR_ARG || (parser->parser_lex_state) == EXPR_CMDARG)) {
16456 rb_compile_warn((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "invalid character syntax; use ?\\%c", c2);
16460 parser_pushback(parser, c);
16461 (parser->parser_lex_state) = EXPR_VALUE;
16464 parser_newtok(parser);
16466 if (!((unsigned long)((unsigned char)(*((parser->parser_lex_p)-1))) < 128)) {
16467 if (parser_tokadd_mbchar(parser, c) == -1) return 0;
16469 else if (((parser->enc)->is_code_ctype(c,13,parser->enc) || c == '_') &&
16470 (parser->parser_lex_p) < (parser->parser_lex_pend) && ((parser->enc)->is_code_ctype(*(parser->parser_lex_p),13,parser->enc) || (*(parser->parser_lex_p)) == '_' || !((unsigned long)((unsigned char)(*(parser->parser_lex_p))) < 128))) {
16473 else if (c == '\\') {
16474 if (((parser->parser_lex_p) < (parser->parser_lex_pend) && ('u') == *(parser->parser_lex_p))) {
16475 parser_nextc(parser);
16476 c = parser_tokadd_utf8(parser, &enc, 0, 0, 0);
16478 parser_tokaddmbc(parser, c, enc);
16481 parser_tokadd(parser, c);
16485 c = parser_read_escape(parser, 0, &enc);
16486 parser_tokadd(parser, c);
16490 parser_tokadd(parser, c);
16492 ((parser->parser_tokenbuf)[(parser->parser_tokidx)]='\0');
16493 (*((YYSTYPE*)(parser->parser_yylval))).node = node_newnode(parser, (NODE_STR), (VALUE)(parser_str_new(((parser->parser_tokenbuf)),((parser->parser_tokidx)),(enc),(0),parser->enc)), (VALUE)(0), (VALUE)(0));
16494 (parser->parser_lex_state) = EXPR_END;
16498 if ((c = parser_nextc(parser)) == '&') {
16499 (parser->parser_lex_state) = EXPR_BEG;
16500 if ((c = parser_nextc(parser)) == '=') {
16501 (*((YYSTYPE*)(parser->parser_yylval))).id = 330;
16502 (parser->parser_lex_state) = EXPR_BEG;
16505 parser_pushback(parser, c);
16508 else if (c == '=') {
16509 (*((YYSTYPE*)(parser->parser_yylval))).id = '&';
16510 (parser->parser_lex_state) = EXPR_BEG;
16513 parser_pushback(parser, c);
16514 if (((parser->parser_lex_state) == EXPR_ARG || (parser->parser_lex_state) == EXPR_CMDARG) && space_seen && !rb_isspace((unsigned char)(c))) {
16515 rb_compile_warning((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "`&' interpreted as argument prefix");
16518 else if (((parser->parser_lex_state) == EXPR_BEG || (parser->parser_lex_state) == EXPR_MID || (parser->parser_lex_state) == EXPR_VALUE || (parser->parser_lex_state) == EXPR_CLASS)) {
16524 switch ((parser->parser_lex_state)) {
16525 case EXPR_FNAME: case EXPR_DOT:
16526 (parser->parser_lex_state) = EXPR_ARG; break;
16528 (parser->parser_lex_state) = EXPR_BEG;
16533 if ((c = parser_nextc(parser)) == '|') {
16534 (parser->parser_lex_state) = EXPR_BEG;
16535 if ((c = parser_nextc(parser)) == '=') {
16536 (*((YYSTYPE*)(parser->parser_yylval))).id = 331;
16537 (parser->parser_lex_state) = EXPR_BEG;
16540 parser_pushback(parser, c);
16544 (*((YYSTYPE*)(parser->parser_yylval))).id = '|';
16545 (parser->parser_lex_state) = EXPR_BEG;
16548 if ((parser->parser_lex_state) == EXPR_FNAME || (parser->parser_lex_state) == EXPR_DOT) {
16549 (parser->parser_lex_state) = EXPR_ARG;
16552 (parser->parser_lex_state) = EXPR_BEG;
16554 parser_pushback(parser, c);
16558 c = parser_nextc(parser);
16559 if ((parser->parser_lex_state) == EXPR_FNAME || (parser->parser_lex_state) == EXPR_DOT) {
16560 (parser->parser_lex_state) = EXPR_ARG;
16564 parser_pushback(parser, c);
16568 (*((YYSTYPE*)(parser->parser_yylval))).id = '+';
16569 (parser->parser_lex_state) = EXPR_BEG;
16572 if (((parser->parser_lex_state) == EXPR_BEG || (parser->parser_lex_state) == EXPR_MID || (parser->parser_lex_state) == EXPR_VALUE || (parser->parser_lex_state) == EXPR_CLASS) ||
16573 (((parser->parser_lex_state) == EXPR_ARG || (parser->parser_lex_state) == EXPR_CMDARG) && space_seen && !rb_isspace((unsigned char)(c)))) {
16574 if (((parser->parser_lex_state) == EXPR_ARG || (parser->parser_lex_state) == EXPR_CMDARG)) arg_ambiguous_gen(parser);
16575 (parser->parser_lex_state) = EXPR_BEG;
16576 parser_pushback(parser, c);
16577 if (c != -1 && rb_isdigit((unsigned char)(c))) {
16583 (parser->parser_lex_state) = EXPR_BEG;
16584 parser_pushback(parser, c);
16588 c = parser_nextc(parser);
16589 if ((parser->parser_lex_state) == EXPR_FNAME || (parser->parser_lex_state) == EXPR_DOT) {
16590 (parser->parser_lex_state) = EXPR_ARG;
16594 parser_pushback(parser, c);
16598 (*((YYSTYPE*)(parser->parser_yylval))).id = '-';
16599 (parser->parser_lex_state) = EXPR_BEG;
16603 (parser->parser_lex_state) = EXPR_ARG;
16606 if (((parser->parser_lex_state) == EXPR_BEG || (parser->parser_lex_state) == EXPR_MID || (parser->parser_lex_state) == EXPR_VALUE || (parser->parser_lex_state) == EXPR_CLASS) ||
16607 (((parser->parser_lex_state) == EXPR_ARG || (parser->parser_lex_state) == EXPR_CMDARG) && space_seen && !rb_isspace((unsigned char)(c)))) {
16608 if (((parser->parser_lex_state) == EXPR_ARG || (parser->parser_lex_state) == EXPR_CMDARG)) arg_ambiguous_gen(parser);
16609 (parser->parser_lex_state) = EXPR_BEG;
16610 parser_pushback(parser, c);
16611 if (c != -1 && rb_isdigit((unsigned char)(c))) {
16616 (parser->parser_lex_state) = EXPR_BEG;
16617 parser_pushback(parser, c);
16621 (parser->parser_lex_state) = EXPR_BEG;
16622 if ((c = parser_nextc(parser)) == '.') {
16623 if ((c = parser_nextc(parser)) == '.') {
16626 parser_pushback(parser, c);
16629 parser_pushback(parser, c);
16630 if (c != -1 && rb_isdigit((unsigned char)(c))) {
16631 parser_yyerror(parser, "no .<digit> floating literal anymore; put 0 before dot");
16633 (parser->parser_lex_state) = EXPR_DOT;
16637 case '0': case '1': case '2': case '3': case '4':
16638 case '5': case '6': case '7': case '8': case '9':
16640 int is_float, seen_point, seen_e, nondigit;
16642 is_float = seen_point = seen_e = nondigit = 0;
16643 (parser->parser_lex_state) = EXPR_END;
16644 parser_newtok(parser);
16645 if (c == '-' || c == '+') {
16646 parser_tokadd(parser, c);
16647 c = parser_nextc(parser);
16650 int start = (parser->parser_tokidx);
16651 c = parser_nextc(parser);
16652 if (c == 'x' || c == 'X') {
16654 c = parser_nextc(parser);
16655 if (c != -1 && rb_isxdigit((unsigned char)(c))) {
16658 if (nondigit) break;
16662 if (!rb_isxdigit((unsigned char)(c))) break;
16664 parser_tokadd(parser, c);
16665 } while ((c = parser_nextc(parser)) != -1);
16667 parser_pushback(parser, c);
16668 ((parser->parser_tokenbuf)[(parser->parser_tokidx)]='\0');
16669 if ((parser->parser_tokidx) == start) {
16670 parser_yyerror(parser, "numeric literal without digits");
16672 else if (nondigit) goto trailing_uc;
16673 (*((YYSTYPE*)(parser->parser_yylval))).node = node_newnode(parser, (NODE_LIT), (VALUE)(rb_cstr_to_inum((parser->parser_tokenbuf), 16, ((VALUE)RUBY_Qfalse))), (VALUE)(0), (VALUE)(0));
16676 if (c == 'b' || c == 'B') {
16678 c = parser_nextc(parser);
16679 if (c == '0' || c == '1') {
16682 if (nondigit) break;
16686 if (c != '0' && c != '1') break;
16688 parser_tokadd(parser, c);
16689 } while ((c = parser_nextc(parser)) != -1);
16691 parser_pushback(parser, c);
16692 ((parser->parser_tokenbuf)[(parser->parser_tokidx)]='\0');
16693 if ((parser->parser_tokidx) == start) {
16694 parser_yyerror(parser, "numeric literal without digits");
16696 else if (nondigit) goto trailing_uc;
16697 (*((YYSTYPE*)(parser->parser_yylval))).node = node_newnode(parser, (NODE_LIT), (VALUE)(rb_cstr_to_inum((parser->parser_tokenbuf), 2, ((VALUE)RUBY_Qfalse))), (VALUE)(0), (VALUE)(0));
16700 if (c == 'd' || c == 'D') {
16702 c = parser_nextc(parser);
16703 if (c != -1 && rb_isdigit((unsigned char)(c))) {
16706 if (nondigit) break;
16710 if (!rb_isdigit((unsigned char)(c))) break;
16712 parser_tokadd(parser, c);
16713 } while ((c = parser_nextc(parser)) != -1);
16715 parser_pushback(parser, c);
16716 ((parser->parser_tokenbuf)[(parser->parser_tokidx)]='\0');
16717 if ((parser->parser_tokidx) == start) {
16718 parser_yyerror(parser, "numeric literal without digits");
16720 else if (nondigit) goto trailing_uc;
16721 (*((YYSTYPE*)(parser->parser_yylval))).node = node_newnode(parser, (NODE_LIT), (VALUE)(rb_cstr_to_inum((parser->parser_tokenbuf), 10, ((VALUE)RUBY_Qfalse))), (VALUE)(0), (VALUE)(0));
16728 if (c == 'o' || c == 'O') {
16730 c = parser_nextc(parser);
16731 if (c == -1 || c == '_' || !rb_isdigit((unsigned char)(c))) {
16732 parser_yyerror(parser, "numeric literal without digits");
16735 if (c >= '0' && c <= '7') {
16740 if (nondigit) break;
16744 if (c < '0' || c > '9') break;
16745 if (c > '7') goto invalid_octal;
16747 parser_tokadd(parser, c);
16748 } while ((c = parser_nextc(parser)) != -1);
16749 if ((parser->parser_tokidx) > start) {
16750 parser_pushback(parser, c);
16751 ((parser->parser_tokenbuf)[(parser->parser_tokidx)]='\0');
16752 if (nondigit) goto trailing_uc;
16753 (*((YYSTYPE*)(parser->parser_yylval))).node = node_newnode(parser, (NODE_LIT), (VALUE)(rb_cstr_to_inum((parser->parser_tokenbuf), 8, ((VALUE)RUBY_Qfalse))), (VALUE)(0), (VALUE)(0));
16757 parser_pushback(parser, c);
16761 if (c > '7' && c <= '9') {
16763 parser_yyerror(parser, "Invalid octal digit");
16765 else if (c == '.' || c == 'e' || c == 'E') {
16766 parser_tokadd(parser, '0');
16769 parser_pushback(parser, c);
16770 (*((YYSTYPE*)(parser->parser_yylval))).node = node_newnode(parser, (NODE_LIT), (VALUE)(((VALUE)(((long)(0))<<1 | RUBY_FIXNUM_FLAG))), (VALUE)(0), (VALUE)(0));
16777 case '0': case '1': case '2': case '3': case '4':
16778 case '5': case '6': case '7': case '8': case '9':
16780 parser_tokadd(parser, c);
16784 if (nondigit) goto trailing_uc;
16785 if (seen_point || seen_e) {
16789 int c0 = parser_nextc(parser);
16790 if (c == -1 || !rb_isdigit((unsigned char)(c0))) {
16791 parser_pushback(parser, c0);
16796 parser_tokadd(parser, '.');
16797 parser_tokadd(parser, c);
16806 parser_pushback(parser, c);
16813 parser_tokadd(parser, c);
16817 c = parser_nextc(parser);
16818 if (c != '-' && c != '+') continue;
16819 parser_tokadd(parser, c);
16824 if (nondigit) goto decode_num;
16831 c = parser_nextc(parser);
16835 parser_pushback(parser, c);
16836 ((parser->parser_tokenbuf)[(parser->parser_tokidx)]='\0');
16840 sprintf(tmp, "trailing `%c' in number", nondigit);
16841 parser_yyerror(parser, tmp);
16844 double d = ruby_strtod((parser->parser_tokenbuf),0);
16845 if ((*__errno_location ()) == 34) {
16846 rb_compile_warning((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "Float %s out of range", (parser->parser_tokenbuf));
16847 (*__errno_location ()) = 0;
16849 (*((YYSTYPE*)(parser->parser_yylval))).node = node_newnode(parser, (NODE_LIT), (VALUE)(rb_float_new(d)), (VALUE)(0), (VALUE)(0));
16852 (*((YYSTYPE*)(parser->parser_yylval))).node = node_newnode(parser, (NODE_LIT), (VALUE)(rb_cstr_to_inum((parser->parser_tokenbuf), 10, ((VALUE)RUBY_Qfalse))), (VALUE)(0), (VALUE)(0));
16858 (parser->parser_paren_nest)--;
16860 ((parser->parser_cond_stack) = ((parser->parser_cond_stack) >> 1) | ((parser->parser_cond_stack) & 1));
16861 ((parser->parser_cmdarg_stack) = ((parser->parser_cmdarg_stack) >> 1) | ((parser->parser_cmdarg_stack) & 1));
16863 (parser->parser_lex_state) = EXPR_END;
16865 (parser->parser_lex_state) = EXPR_ENDARG;
16869 c = parser_nextc(parser);
16871 if (((parser->parser_lex_state) == EXPR_BEG || (parser->parser_lex_state) == EXPR_MID || (parser->parser_lex_state) == EXPR_VALUE || (parser->parser_lex_state) == EXPR_CLASS) ||
16872 (parser->parser_lex_state) == EXPR_CLASS || (((parser->parser_lex_state) == EXPR_ARG || (parser->parser_lex_state) == EXPR_CMDARG) && space_seen)) {
16873 (parser->parser_lex_state) = EXPR_BEG;
16876 (parser->parser_lex_state) = EXPR_DOT;
16879 if ((parser->parser_lex_state) == EXPR_END || (parser->parser_lex_state) == EXPR_ENDARG || (c != -1 && rb_isspace((unsigned char)(c)))) {
16880 parser_pushback(parser, c);
16881 (parser->parser_lex_state) = EXPR_BEG;
16886 (parser->parser_lex_strterm) = node_newnode(parser, NODE_ZARRAY, (str_ssym), (c) | ((0) << (8 * 2)), 0);
16889 (parser->parser_lex_strterm) = node_newnode(parser, NODE_ZARRAY, (str_dsym), (c) | ((0) << (8 * 2)), 0);
16892 parser_pushback(parser, c);
16895 (parser->parser_lex_state) = EXPR_FNAME;
16899 if (((parser->parser_lex_state) == EXPR_BEG || (parser->parser_lex_state) == EXPR_MID || (parser->parser_lex_state) == EXPR_VALUE || (parser->parser_lex_state) == EXPR_CLASS)) {
16900 (parser->parser_lex_strterm) = node_newnode(parser, NODE_ZARRAY, (str_regexp), ('/') | ((0) << (8 * 2)), 0);
16903 if ((c = parser_nextc(parser)) == '=') {
16904 (*((YYSTYPE*)(parser->parser_yylval))).id = '/';
16905 (parser->parser_lex_state) = EXPR_BEG;
16908 parser_pushback(parser, c);
16909 if (((parser->parser_lex_state) == EXPR_ARG || (parser->parser_lex_state) == EXPR_CMDARG) && space_seen) {
16910 if (!rb_isspace((unsigned char)(c))) {
16911 arg_ambiguous_gen(parser);
16912 (parser->parser_lex_strterm) = node_newnode(parser, NODE_ZARRAY, (str_regexp), ('/') | ((0) << (8 * 2)), 0);
16916 switch ((parser->parser_lex_state)) {
16917 case EXPR_FNAME: case EXPR_DOT:
16918 (parser->parser_lex_state) = EXPR_ARG; break;
16920 (parser->parser_lex_state) = EXPR_BEG; break;
16925 if ((c = parser_nextc(parser)) == '=') {
16926 (*((YYSTYPE*)(parser->parser_yylval))).id = '^';
16927 (parser->parser_lex_state) = EXPR_BEG;
16930 switch ((parser->parser_lex_state)) {
16931 case EXPR_FNAME: case EXPR_DOT:
16932 (parser->parser_lex_state) = EXPR_ARG; break;
16934 (parser->parser_lex_state) = EXPR_BEG; break;
16936 parser_pushback(parser, c);
16940 (parser->parser_lex_state) = EXPR_BEG;
16941 (parser->parser_command_start) = ((VALUE)RUBY_Qtrue);
16945 (parser->parser_lex_state) = EXPR_BEG;
16949 if ((parser->parser_lex_state) == EXPR_FNAME || (parser->parser_lex_state) == EXPR_DOT) {
16950 if ((c = parser_nextc(parser)) != '@') {
16951 parser_pushback(parser, c);
16953 (parser->parser_lex_state) = EXPR_ARG;
16956 (parser->parser_lex_state) = EXPR_BEG;
16961 if (((parser->parser_lex_state) == EXPR_BEG || (parser->parser_lex_state) == EXPR_MID || (parser->parser_lex_state) == EXPR_VALUE || (parser->parser_lex_state) == EXPR_CLASS)) {
16964 else if (space_seen) {
16965 if (((parser->parser_lex_state) == EXPR_ARG || (parser->parser_lex_state) == EXPR_CMDARG)) {
16969 (parser->parser_paren_nest)++;
16970 ((parser->parser_cond_stack) = ((parser->parser_cond_stack)<<1)|((0)&1));
16971 ((parser->parser_cmdarg_stack) = ((parser->parser_cmdarg_stack)<<1)|((0)&1));
16972 (parser->parser_lex_state) = EXPR_BEG;
16976 (parser->parser_paren_nest)++;
16977 if ((parser->parser_lex_state) == EXPR_FNAME || (parser->parser_lex_state) == EXPR_DOT) {
16978 (parser->parser_lex_state) = EXPR_ARG;
16979 if ((c = parser_nextc(parser)) == ']') {
16980 if ((c = parser_nextc(parser)) == '=') {
16983 parser_pushback(parser, c);
16986 parser_pushback(parser, c);
16989 else if (((parser->parser_lex_state) == EXPR_BEG || (parser->parser_lex_state) == EXPR_MID || (parser->parser_lex_state) == EXPR_VALUE || (parser->parser_lex_state) == EXPR_CLASS)) {
16992 else if (((parser->parser_lex_state) == EXPR_ARG || (parser->parser_lex_state) == EXPR_CMDARG) && space_seen) {
16995 (parser->parser_lex_state) = EXPR_BEG;
16996 ((parser->parser_cond_stack) = ((parser->parser_cond_stack)<<1)|((0)&1));
16997 ((parser->parser_cmdarg_stack) = ((parser->parser_cmdarg_stack)<<1)|((0)&1));
17001 if ((parser->parser_lpar_beg) && (parser->parser_lpar_beg) == (parser->parser_paren_nest)) {
17002 (parser->parser_lex_state) = EXPR_BEG;
17003 (parser->parser_lpar_beg) = 0;
17004 --(parser->parser_paren_nest);
17007 if (((parser->parser_lex_state) == EXPR_ARG || (parser->parser_lex_state) == EXPR_CMDARG) || (parser->parser_lex_state) == EXPR_END)
17009 else if ((parser->parser_lex_state) == EXPR_ENDARG)
17013 ((parser->parser_cond_stack) = ((parser->parser_cond_stack)<<1)|((0)&1));
17014 ((parser->parser_cmdarg_stack) = ((parser->parser_cmdarg_stack)<<1)|((0)&1));
17015 (parser->parser_lex_state) = EXPR_BEG;
17016 if (c != 348) (parser->parser_command_start) = ((VALUE)RUBY_Qtrue);
17020 c = parser_nextc(parser);
17028 parser_pushback(parser, c);
17032 if (((parser->parser_lex_state) == EXPR_BEG || (parser->parser_lex_state) == EXPR_MID || (parser->parser_lex_state) == EXPR_VALUE || (parser->parser_lex_state) == EXPR_CLASS)) {
17036 c = parser_nextc(parser);
17038 if (c == -1 || !rb_isalnum((unsigned char)(c))) {
17043 term = parser_nextc(parser);
17044 if ((parser->enc)->is_code_ctype(term,13,parser->enc) || !((unsigned long)((unsigned char)(*((parser->parser_lex_p)-1))) < 128)) {
17045 parser_yyerror(parser, "unknown type of %string");
17049 if (c == -1 || term == -1) {
17050 parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "unterminated quoted string meets end of file");
17054 if (term == '(') term = ')';
17055 else if (term == '[') term = ']';
17056 else if (term == '{') term = '}';
17057 else if (term == '<') term = '>';
17062 (parser->parser_lex_strterm) = node_newnode(parser, NODE_ZARRAY, (str_dquote), (term) | ((paren) << (8 * 2)), 0);
17066 (parser->parser_lex_strterm) = node_newnode(parser, NODE_ZARRAY, (str_squote), (term) | ((paren) << (8 * 2)), 0);
17070 (parser->parser_lex_strterm) = node_newnode(parser, NODE_ZARRAY, (str_dword), (term) | ((paren) << (8 * 2)), 0);
17071 do {c = parser_nextc(parser);} while (rb_isspace((unsigned char)(c)));
17072 parser_pushback(parser, c);
17076 (parser->parser_lex_strterm) = node_newnode(parser, NODE_ZARRAY, (str_sword), (term) | ((paren) << (8 * 2)), 0);
17077 do {c = parser_nextc(parser);} while (rb_isspace((unsigned char)(c)));
17078 parser_pushback(parser, c);
17082 (parser->parser_lex_strterm) = node_newnode(parser, NODE_ZARRAY, (str_xquote), (term) | ((paren) << (8 * 2)), 0);
17086 (parser->parser_lex_strterm) = node_newnode(parser, NODE_ZARRAY, (str_regexp), (term) | ((paren) << (8 * 2)), 0);
17090 (parser->parser_lex_strterm) = node_newnode(parser, NODE_ZARRAY, (str_ssym), (term) | ((paren) << (8 * 2)), 0);
17091 (parser->parser_lex_state) = EXPR_FNAME;
17095 parser_yyerror(parser, "unknown type of %string");
17099 if ((c = parser_nextc(parser)) == '=') {
17100 (*((YYSTYPE*)(parser->parser_yylval))).id = '%';
17101 (parser->parser_lex_state) = EXPR_BEG;
17104 if (((parser->parser_lex_state) == EXPR_ARG || (parser->parser_lex_state) == EXPR_CMDARG) && space_seen && !rb_isspace((unsigned char)(c))) {
17107 switch ((parser->parser_lex_state)) {
17108 case EXPR_FNAME: case EXPR_DOT:
17109 (parser->parser_lex_state) = EXPR_ARG; break;
17111 (parser->parser_lex_state) = EXPR_BEG; break;
17113 parser_pushback(parser, c);
17117 last_state = (parser->parser_lex_state);
17118 (parser->parser_lex_state) = EXPR_END;
17119 parser_newtok(parser);
17120 c = parser_nextc(parser);
17123 c = parser_nextc(parser);
17124 if ((!parser->eofp && ((parser->enc)->is_code_ctype(*((parser->parser_lex_p)-1),13,parser->enc) || (*((parser->parser_lex_p)-1)) == '_' || !((unsigned long)((unsigned char)(*((parser->parser_lex_p)-1))) < 128)))) {
17125 parser_tokadd(parser, '$');
17126 parser_tokadd(parser, '_');
17129 parser_pushback(parser, c);
17148 parser_tokadd(parser, '$');
17149 parser_tokadd(parser, c);
17150 ((parser->parser_tokenbuf)[(parser->parser_tokidx)]='\0');
17151 (*((YYSTYPE*)(parser->parser_yylval))).id = (__builtin_constant_p((parser->parser_tokenbuf)) ? __extension__ (rb_intern2((parser->parser_tokenbuf), strlen((parser->parser_tokenbuf)))) : (rb_intern)((parser->parser_tokenbuf)));
17155 parser_tokadd(parser, '$');
17156 parser_tokadd(parser, c);
17157 c = parser_nextc(parser);
17158 if ((!parser->eofp && ((parser->enc)->is_code_ctype(*((parser->parser_lex_p)-1),13,parser->enc) || (*((parser->parser_lex_p)-1)) == '_' || !((unsigned long)((unsigned char)(*((parser->parser_lex_p)-1))) < 128)))) {
17159 if (parser_tokadd_mbchar(parser, c) == -1) return 0;
17162 parser_pushback(parser, c);
17165 ((parser->parser_tokenbuf)[(parser->parser_tokidx)]='\0');
17166 (*((YYSTYPE*)(parser->parser_yylval))).id = (__builtin_constant_p((parser->parser_tokenbuf)) ? __extension__ (rb_intern2((parser->parser_tokenbuf), strlen((parser->parser_tokenbuf)))) : (rb_intern)((parser->parser_tokenbuf)));
17173 if (last_state == EXPR_FNAME) {
17174 parser_tokadd(parser, '$');
17175 parser_tokadd(parser, c);
17178 (*((YYSTYPE*)(parser->parser_yylval))).node = node_newnode(parser, (NODE_BACK_REF), (VALUE)(0), (VALUE)(c), (VALUE)(0));
17181 case '1': case '2': case '3':
17182 case '4': case '5': case '6':
17183 case '7': case '8': case '9':
17184 parser_tokadd(parser, '$');
17186 parser_tokadd(parser, c);
17187 c = parser_nextc(parser);
17188 } while (c != -1 && rb_isdigit((unsigned char)(c)));
17189 parser_pushback(parser, c);
17190 if (last_state == EXPR_FNAME) goto gvar;
17191 ((parser->parser_tokenbuf)[(parser->parser_tokidx)]='\0');
17192 (*((YYSTYPE*)(parser->parser_yylval))).node = node_newnode(parser, (NODE_NTH_REF), (VALUE)(0), (VALUE)(atoi((parser->parser_tokenbuf)+1)), (VALUE)(0));
17196 if (!(!parser->eofp && ((parser->enc)->is_code_ctype(*((parser->parser_lex_p)-1),13,parser->enc) || (*((parser->parser_lex_p)-1)) == '_' || !((unsigned long)((unsigned char)(*((parser->parser_lex_p)-1))) < 128)))) {
17197 parser_pushback(parser, c);
17201 parser_tokadd(parser, '$');
17206 c = parser_nextc(parser);
17207 parser_newtok(parser);
17208 parser_tokadd(parser, '@');
17210 parser_tokadd(parser, '@');
17211 c = parser_nextc(parser);
17213 if (c != -1 && rb_isdigit((unsigned char)(c))) {
17214 if ((parser->parser_tokidx) == 1) {
17215 parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "`@%c' is not allowed as an instance variable name", c);
17218 parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "`@@%c' is not allowed as a class variable name", c);
17222 if (!(!parser->eofp && ((parser->enc)->is_code_ctype(*((parser->parser_lex_p)-1),13,parser->enc) || (*((parser->parser_lex_p)-1)) == '_' || !((unsigned long)((unsigned char)(*((parser->parser_lex_p)-1))) < 128)))) {
17223 parser_pushback(parser, c);
17229 if (((parser->parser_lex_p) == (parser->parser_lex_pbeg) + 1) && parser_whole_match_p(parser,"__END__",7,0)) {
17230 (parser->parser_ruby__end__seen) = 1;
17231 parser->eofp = ((VALUE)RUBY_Qtrue);
17240 parser_newtok(parser);
17244 if (!(!parser->eofp && ((parser->enc)->is_code_ctype(*((parser->parser_lex_p)-1),13,parser->enc) || (*((parser->parser_lex_p)-1)) == '_' || !((unsigned long)((unsigned char)(*((parser->parser_lex_p)-1))) < 128)))) {
17245 rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "Invalid char `\\x%02X' in expression", c);
17249 parser_newtok(parser);
17253 mb = (((VALUE)1)<<(12 +8));
17255 if (!((unsigned long)((unsigned char)(c)) < 128)) mb = 0;
17256 if (parser_tokadd_mbchar(parser, c) == -1) return 0;
17257 c = parser_nextc(parser);
17258 } while ((!parser->eofp && ((parser->enc)->is_code_ctype(*((parser->parser_lex_p)-1),13,parser->enc) || (*((parser->parser_lex_p)-1)) == '_' || !((unsigned long)((unsigned char)(*((parser->parser_lex_p)-1))) < 128))));
17259 switch ((parser->parser_tokenbuf)[0]) {
17260 case '@': case '$':
17261 parser_pushback(parser, c);
17264 if ((c == '!' || c == '?') && !((parser->parser_lex_p) < (parser->parser_lex_pend) && ('=') == *(parser->parser_lex_p))) {
17265 parser_tokadd(parser, c);
17268 parser_pushback(parser, c);
17271 ((parser->parser_tokenbuf)[(parser->parser_tokidx)]='\0');
17276 last_state = (parser->parser_lex_state);
17277 switch ((parser->parser_tokenbuf)[0]) {
17279 (parser->parser_lex_state) = EXPR_END;
17283 (parser->parser_lex_state) = EXPR_END;
17284 if ((parser->parser_tokenbuf)[1] == '@')
17291 if (((parser->parser_tokidx)>0?(parser->parser_tokenbuf)[(parser->parser_tokidx)-1]:0) == '!' || ((parser->parser_tokidx)>0?(parser->parser_tokenbuf)[(parser->parser_tokidx)-1]:0) == '?') {
17295 if ((parser->parser_lex_state) == EXPR_FNAME) {
17296 if ((c = parser_nextc(parser)) == '=' && !((parser->parser_lex_p) < (parser->parser_lex_pend) && ('~') == *(parser->parser_lex_p)) && !((parser->parser_lex_p) < (parser->parser_lex_pend) && ('>') == *(parser->parser_lex_p)) &&
17297 (!((parser->parser_lex_p) < (parser->parser_lex_pend) && ('=') == *(parser->parser_lex_p)) || ((parser->parser_lex_p) + 1 < (parser->parser_lex_pend) && (parser->parser_lex_p)[1] == '>'))) {
17299 parser_tokadd(parser, c);
17300 ((parser->parser_tokenbuf)[(parser->parser_tokidx)]='\0');
17303 parser_pushback(parser, c);
17306 if (result == 0 && rb_isupper((unsigned char)((parser->parser_tokenbuf)[0]))) {
17314 if (((parser->parser_lex_state) == EXPR_BEG && !cmd_state) ||
17315 (parser->parser_lex_state) == EXPR_ARG ||
17316 (parser->parser_lex_state) == EXPR_CMDARG) {
17317 if (((parser->parser_lex_p) < (parser->parser_lex_pend) && (':') == *(parser->parser_lex_p)) && !((parser->parser_lex_p) + 1 < (parser->parser_lex_pend) && (parser->parser_lex_p)[1] == ':')) {
17318 (parser->parser_lex_state) = EXPR_BEG;
17319 parser_nextc(parser);
17320 (*((YYSTYPE*)(parser->parser_yylval))).id = rb_intern3((parser->parser_tokenbuf), (parser->parser_tokidx), parser->enc);
17324 if (mb == (((VALUE)1)<<(12 +8)) && (parser->parser_lex_state) != EXPR_DOT) {
17325 const struct kwtable *kw;
17328 kw = rb_reserved_word((parser->parser_tokenbuf), (parser->parser_tokidx));
17330 enum lex_state_e state = (parser->parser_lex_state);
17331 (parser->parser_lex_state) = kw->state;
17332 if (state == EXPR_FNAME) {
17333 (*((YYSTYPE*)(parser->parser_yylval))).id = (__builtin_constant_p(kw->name) ? __extension__ (rb_intern2(kw->name, strlen(kw->name))) : (rb_intern)(kw->name));
17336 if (kw->id[0] == 281) {
17337 (parser->parser_command_start) = ((VALUE)RUBY_Qtrue);
17338 if ((parser->parser_lpar_beg) && (parser->parser_lpar_beg) == (parser->parser_paren_nest)) {
17339 (parser->parser_lpar_beg) = 0;
17340 --(parser->parser_paren_nest);
17343 if (((parser->parser_cond_stack)&1)) return 282;
17344 if (((parser->parser_cmdarg_stack)&1) && state != EXPR_CMDARG)
17346 if (state == EXPR_ENDARG || state == EXPR_BEG)
17350 if (state == EXPR_BEG || state == EXPR_VALUE)
17353 if (kw->id[0] != kw->id[1])
17354 (parser->parser_lex_state) = EXPR_BEG;
17360 if (((parser->parser_lex_state) == EXPR_BEG || (parser->parser_lex_state) == EXPR_MID || (parser->parser_lex_state) == EXPR_VALUE || (parser->parser_lex_state) == EXPR_CLASS) ||
17361 (parser->parser_lex_state) == EXPR_DOT ||
17362 ((parser->parser_lex_state) == EXPR_ARG || (parser->parser_lex_state) == EXPR_CMDARG)) {
17364 (parser->parser_lex_state) = EXPR_CMDARG;
17367 (parser->parser_lex_state) = EXPR_ARG;
17371 (parser->parser_lex_state) = EXPR_END;
17375 ID ident = rb_intern3((parser->parser_tokenbuf), (parser->parser_tokidx), parser->enc);
17377 (*((YYSTYPE*)(parser->parser_yylval))).id = ident;
17378 if (last_state != EXPR_DOT && (((ident)>376)&&((ident)&0x07)==0x00) && lvar_defined_gen(parser, ident)) {
17379 (parser->parser_lex_state) = EXPR_END;
17388 yylex(void *lval, void *p)
17393 struct parser_params *parser = (struct parser_params*)p;
17397 parser->parser_yylval = lval;
17398 parser->parser_yylval->val = ((VALUE)RUBY_Qundef);
17400 t = parser_yylex(parser);
17407 node_newnode(struct parser_params *parser, enum node_type type, VALUE a0, VALUE a1, VALUE a2)
17409 NODE *n = (rb_node_newnode)(type, a0, a1, a2);
17410 ((struct RNode*)(n))->flags=((((struct RNode*)(n))->flags&~(-1<<(8 +7)))|((((parser->parser_ruby_sourceline))&(((long)1<<(sizeof(VALUE)*8 -(8 +7)))-1))<<(8 +7)));
17415 nodetype(NODE *node)
17417 return (enum node_type)((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8));
17421 nodeline(NODE *node)
17423 return ((VALUE)(((((struct RNode*)(node)))->flags>>(8 +7))&(((long)1<<(sizeof(VALUE)*8 -(8 +7)))-1)));
17427 newline_node(NODE *node)
17430 node = remove_begin(node);
17431 node->flags |= (((VALUE)1)<<7);
17437 fixpos(NODE *node, NODE *orig)
17441 if (orig == (NODE*)1) return;
17442 ((struct RNode*)(node))->flags=((((struct RNode*)(node))->flags&~(-1<<(8 +7)))|(((((VALUE)(((((struct RNode*)(orig)))->flags>>(8 +7))&(((long)1<<(sizeof(VALUE)*8 -(8 +7)))-1))))&(((long)1<<(sizeof(VALUE)*8 -(8 +7)))-1))<<(8 +7)));
17446 parser_warning(struct parser_params *parser, NODE *node, const char *mesg)
17448 rb_compile_warning((parser->parser_ruby_sourcefile), ((VALUE)(((((struct RNode*)(node)))->flags>>(8 +7))&(((long)1<<(sizeof(VALUE)*8 -(8 +7)))-1))), "%s", mesg);
17453 parser_warn(struct parser_params *parser, NODE *node, const char *mesg)
17455 rb_compile_warn((parser->parser_ruby_sourcefile), ((VALUE)(((((struct RNode*)(node)))->flags>>(8 +7))&(((long)1<<(sizeof(VALUE)*8 -(8 +7)))-1))), "%s", mesg);
17460 block_append_gen(struct parser_params *parser, NODE *head, NODE *tail)
17462 NODE *end, *h = head, *nd;
17464 if (tail == 0) return head;
17466 if (h == 0) return tail;
17467 switch (((int) (((((struct RNode*)(h)))->flags & (((VALUE)0x7f)<<8))>>8))) {
17474 parser_warning(parser, h, "unused literal ignored");
17477 h = end = node_newnode(parser, (NODE_BLOCK), (VALUE)(head), (VALUE)(0), (VALUE)(0));
17478 end->u2.node = end;
17488 switch (((int) (((((struct RNode*)(nd)))->flags & (((VALUE)0x7f)<<8))>>8))) {
17494 if ((((VALUE)((*rb_ruby_verbose_ptr())) & ~((VALUE)RUBY_Qnil)) != 0)) {
17495 parser_warning(parser, nd, "statement not reached");
17503 if (((int) (((((struct RNode*)(tail)))->flags & (((VALUE)0x7f)<<8))>>8)) != NODE_BLOCK) {
17504 tail = node_newnode(parser, (NODE_BLOCK), (VALUE)(tail), (VALUE)(0), (VALUE)(0));
17505 tail->u2.node = tail;
17507 end->u3.node = tail;
17508 h->u2.node = tail->u2.node;
17514 list_append_gen(struct parser_params *parser, NODE *list, NODE *item)
17518 if (list == 0) return node_newnode(parser, (NODE_ARRAY), (VALUE)(item), (VALUE)(1), (VALUE)(0));
17519 if (list->u3.node) {
17520 last = list->u3.node->u2.node;
17526 list->u2.argc += 1;
17527 last->u3.node = node_newnode(parser, (NODE_ARRAY), (VALUE)(item), (VALUE)(1), (VALUE)(0));
17528 list->u3.node->u2.node = last->u3.node;
17534 list_concat_gen(struct parser_params *parser, NODE *head, NODE *tail)
17538 if (head->u3.node) {
17539 last = head->u3.node->u2.node;
17545 head->u2.argc += tail->u2.argc;
17546 last->u3.node = tail;
17547 if (tail->u3.node) {
17548 head->u3.node->u2.node = tail->u3.node->u2.node;
17551 head->u3.node->u2.node = tail;
17558 literal_concat0(struct parser_params *parser, VALUE head, VALUE tail)
17560 if (!rb_enc_compatible(head, tail)) {
17561 parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "string literal encodings differ (%s / %s)",
17562 (rb_enc_get(head))->name,
17563 (rb_enc_get(tail))->name);
17564 rb_str_resize(head, 0);
17565 rb_str_resize(tail, 0);
17568 rb_str_buf_append(head, tail);
17574 literal_concat_gen(struct parser_params *parser, NODE *head, NODE *tail)
17576 enum node_type htype;
17578 if (!head) return tail;
17579 if (!tail) return head;
17581 htype = ((int) (((((struct RNode*)(head)))->flags & (((VALUE)0x7f)<<8))>>8));
17582 if (htype == NODE_EVSTR) {
17583 NODE *node = node_newnode(parser, (NODE_DSTR), (VALUE)(rb_enc_str_new(0,0,parser->enc)), (VALUE)(1), (VALUE)(0));
17584 head = list_append_gen(parser,node,head);
17586 switch (((int) (((((struct RNode*)(tail)))->flags & (((VALUE)0x7f)<<8))>>8))) {
17588 if (htype == NODE_STR) {
17589 if (!literal_concat0(parser, head->u1.value, tail->u1.value)) {
17591 rb_gc_force_recycle((VALUE)head);
17592 rb_gc_force_recycle((VALUE)tail);
17595 rb_gc_force_recycle((VALUE)tail);
17598 list_append_gen(parser,head,tail);
17603 if (htype == NODE_STR) {
17604 if (!literal_concat0(parser, head->u1.value, tail->u1.value))
17606 tail->u1.value = head->u1.value;
17607 rb_gc_force_recycle((VALUE)head);
17611 ((struct RNode*)(tail))->flags=((((struct RNode*)(tail))->flags&~(((VALUE)0x7f)<<8))|(((NODE_ARRAY)<<8)&(((VALUE)0x7f)<<8)));
17612 tail->u1.node = node_newnode(parser, (NODE_STR), (VALUE)(tail->u1.value), (VALUE)(0), (VALUE)(0));
17613 list_concat_gen(parser,head,tail);
17618 if (htype == NODE_STR) {
17619 ((struct RNode*)(head))->flags=((((struct RNode*)(head))->flags&~(((VALUE)0x7f)<<8))|(((NODE_DSTR)<<8)&(((VALUE)0x7f)<<8)));
17622 list_append_gen(parser,head,tail);
17629 evstr2dstr_gen(struct parser_params *parser, NODE *node)
17631 if (((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_EVSTR) {
17632 node = list_append_gen(parser,node_newnode(parser, (NODE_DSTR), (VALUE)(rb_enc_str_new(0,0,parser->enc)), (VALUE)(1), (VALUE)(0)),node);
17638 new_evstr_gen(struct parser_params *parser, NODE *node)
17643 switch (((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8))) {
17644 case NODE_STR: case NODE_DSTR: case NODE_EVSTR:
17648 return node_newnode(parser, (NODE_EVSTR), (VALUE)(0), (VALUE)((head)), (VALUE)(0));
17652 call_bin_op_gen(struct parser_params *parser, NODE *recv, ID id, NODE *arg1)
17654 value_expr_gen(parser, (recv) = remove_begin(recv));
17655 value_expr_gen(parser, (arg1) = remove_begin(arg1));
17656 return node_newnode(parser, (NODE_CALL), (VALUE)(recv), (VALUE)(id), (VALUE)(node_newnode(parser, (NODE_ARRAY), (VALUE)(arg1), (VALUE)(1), (VALUE)(0))));
17660 call_uni_op_gen(struct parser_params *parser, NODE *recv, ID id)
17662 value_expr_gen(parser, (recv) = remove_begin(recv));
17663 return node_newnode(parser, (NODE_CALL), (VALUE)(recv), (VALUE)(id), (VALUE)(0));
17667 match_op_gen(struct parser_params *parser, NODE *node1, NODE *node2)
17669 value_expr_gen(parser, (node1) = remove_begin(node1));
17670 value_expr_gen(parser, (node2) = remove_begin(node2));
17672 switch (((int) (((((struct RNode*)(node1)))->flags & (((VALUE)0x7f)<<8))>>8))) {
17674 case NODE_DREGX_ONCE:
17675 return node_newnode(parser, (NODE_MATCH2), (VALUE)(node1), (VALUE)(node2), (VALUE)(0));
17678 if (rb_type((VALUE)(node1->u1.value)) == RUBY_T_REGEXP) {
17679 return node_newnode(parser, (NODE_MATCH2), (VALUE)(node1), (VALUE)(node2), (VALUE)(0));
17685 switch (((int) (((((struct RNode*)(node2)))->flags & (((VALUE)0x7f)<<8))>>8))) {
17687 case NODE_DREGX_ONCE:
17688 return node_newnode(parser, (NODE_MATCH3), (VALUE)(node2), (VALUE)(node1), (VALUE)(0));
17691 if (rb_type((VALUE)(node2->u1.value)) == RUBY_T_REGEXP) {
17692 return node_newnode(parser, (NODE_MATCH3), (VALUE)(node2), (VALUE)(node1), (VALUE)(0));
17697 return node_newnode(parser, (NODE_CALL), (VALUE)(node1), (VALUE)(332), (VALUE)(node_newnode(parser, (NODE_ARRAY), (VALUE)(node2), (VALUE)(1), (VALUE)(0))));
17701 gettable_gen(struct parser_params *parser, ID id)
17704 return node_newnode(parser, (NODE_SELF), (VALUE)(0), (VALUE)(0), (VALUE)(0));
17706 else if (id == 289) {
17707 return node_newnode(parser, (NODE_NIL), (VALUE)(0), (VALUE)(0), (VALUE)(0));
17709 else if (id == 290) {
17710 return node_newnode(parser, (NODE_TRUE), (VALUE)(0), (VALUE)(0), (VALUE)(0));
17712 else if (id == 291) {
17713 return node_newnode(parser, (NODE_FALSE), (VALUE)(0), (VALUE)(0), (VALUE)(0));
17715 else if (id == 305) {
17716 return node_newnode(parser, (NODE_STR), (VALUE)(rb_external_str_new_with_enc((parser->parser_ruby_sourcefile), strlen((parser->parser_ruby_sourcefile)), rb_filesystem_encoding())), (VALUE)(0), (VALUE)(0));
17719 else if (id == 304) {
17720 return node_newnode(parser, (NODE_LIT), (VALUE)(((VALUE)(((long)((parser->parser_ruby_sourceline)))<<1 | RUBY_FIXNUM_FLAG))), (VALUE)(0), (VALUE)(0));
17722 else if (id == 306) {
17723 return node_newnode(parser, (NODE_LIT), (VALUE)(rb_enc_from_encoding(parser->enc)), (VALUE)(0), (VALUE)(0));
17725 else if ((((id)>376)&&((id)&0x07)==0x00)) {
17726 if (dyna_in_block_gen(parser) && dvar_defined_gen(parser, id)) return node_newnode(parser, (NODE_DVAR), (VALUE)(id), (VALUE)(0), (VALUE)(0));
17727 if (local_id_gen(parser, id)) return node_newnode(parser, (NODE_LVAR), (VALUE)(id), (VALUE)(0), (VALUE)(0));
17729 return node_newnode(parser, (NODE_VCALL), (VALUE)(0), (VALUE)(id), (VALUE)(0));
17731 else if ((((id)>376)&&((id)&0x07)==0x03)) {
17732 return node_newnode(parser, (NODE_GVAR), (VALUE)(id), (VALUE)(0), (VALUE)(rb_global_entry(id)));
17734 else if ((((id)>376)&&((id)&0x07)==0x01)) {
17735 return node_newnode(parser, (NODE_IVAR), (VALUE)(id), (VALUE)(0), (VALUE)(0));
17737 else if ((((id)>376)&&((id)&0x07)==0x05)) {
17738 return node_newnode(parser, (NODE_CONST), (VALUE)(id), (VALUE)(0), (VALUE)(0));
17740 else if ((((id)>376)&&((id)&0x07)==0x06)) {
17741 return node_newnode(parser, (NODE_CVAR), (VALUE)(id), (VALUE)(0), (VALUE)(0));
17743 parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "identifier %s is not valid to get", rb_id2name(id));
17748 assignable_gen(struct parser_params *parser, ID id, NODE *val)
17752 parser_yyerror(parser, "Can't change the value of self");
17754 else if (id == 289) {
17755 parser_yyerror(parser, "Can't assign to nil");
17757 else if (id == 290) {
17758 parser_yyerror(parser, "Can't assign to true");
17760 else if (id == 291) {
17761 parser_yyerror(parser, "Can't assign to false");
17763 else if (id == 305) {
17764 parser_yyerror(parser, "Can't assign to __FILE__");
17766 else if (id == 304) {
17767 parser_yyerror(parser, "Can't assign to __LINE__");
17769 else if (id == 306) {
17770 parser_yyerror(parser, "Can't assign to __ENCODING__");
17772 else if ((((id)>376)&&((id)&0x07)==0x00)) {
17773 if (dyna_in_block_gen(parser)) {
17774 if (dvar_curr_gen(parser, id)) {
17775 return node_newnode(parser, (NODE_DASGN_CURR), (VALUE)(id), (VALUE)(val), (VALUE)(0));
17777 else if (dvar_defined_gen(parser, id)) {
17778 return node_newnode(parser, (NODE_DASGN), (VALUE)(id), (VALUE)(val), (VALUE)(0));
17780 else if (local_id_gen(parser, id)) {
17781 return node_newnode(parser, (NODE_LASGN), (VALUE)(id), (VALUE)(val), (VALUE)(0));
17784 local_var_gen(parser, id);;
17785 return node_newnode(parser, (NODE_DASGN_CURR), (VALUE)(id), (VALUE)(val), (VALUE)(0));
17789 if (!local_id_gen(parser, id)) {
17790 local_var_gen(parser, id);;
17792 return node_newnode(parser, (NODE_LASGN), (VALUE)(id), (VALUE)(val), (VALUE)(0));
17795 else if ((((id)>376)&&((id)&0x07)==0x03)) {
17796 return node_newnode(parser, (NODE_GASGN), (VALUE)(id), (VALUE)(val), (VALUE)(rb_global_entry(id)));
17798 else if ((((id)>376)&&((id)&0x07)==0x01)) {
17799 return node_newnode(parser, (NODE_IASGN), (VALUE)(id), (VALUE)(val), (VALUE)(0));
17801 else if ((((id)>376)&&((id)&0x07)==0x05)) {
17802 if ((parser->parser_in_def) || (parser->parser_in_single))
17803 parser_yyerror(parser, "dynamic constant assignment");
17804 return node_newnode(parser, (NODE_CDECL), (VALUE)(id), (VALUE)(val), (VALUE)(0));
17806 else if ((((id)>376)&&((id)&0x07)==0x06)) {
17807 return node_newnode(parser, (NODE_CVASGN), (VALUE)(id), (VALUE)(val), (VALUE)(0));
17810 parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "identifier %s is not valid to set", rb_id2name(id));
17816 shadowing_lvar_gen(struct parser_params *parser, ID name)
17820 do { static ID rb_intern_id_cache; if (!rb_intern_id_cache) rb_intern_id_cache = rb_intern2("_", strlen("_")); uscore = rb_intern_id_cache; } while (0);
17821 if (uscore == name) return;
17822 if (dyna_in_block_gen(parser)) {
17823 if (dvar_curr_gen(parser, name)) {
17824 parser_yyerror(parser, "duplicated argument name");
17826 else if (dvar_defined_gen(parser, name) || local_id_gen(parser, name)) {
17827 rb_compile_warning((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "shadowing outer local variable - %s", rb_id2name(name));
17828 vtable_add((parser->parser_lvtbl)->vars, name);
17832 if (local_id_gen(parser, name)) {
17833 parser_yyerror(parser, "duplicated argument name");
17839 new_bv_gen(struct parser_params *parser, ID name)
17842 if (!(((name)>376)&&((name)&0x07)==0x00)) {
17843 parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "invalid local variable - %s",
17847 shadowing_lvar_gen(parser, name);
17848 local_var_gen(parser, name);;
17852 aryset_gen(struct parser_params *parser, NODE *recv, NODE *idx)
17854 if (recv && ((int) (((((struct RNode*)(recv)))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_SELF)
17856 return node_newnode(parser, (NODE_ATTRASGN), (VALUE)(recv), (VALUE)(337), (VALUE)(idx));
17860 block_dup_check_gen(struct parser_params *parser, NODE *node1, NODE *node2)
17862 if (node2 && node1 && ((int) (((((struct RNode*)(node1)))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_BLOCK_PASS) {
17863 parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "both block arg and actual block given");
17868 rb_id_attrset(ID id)
17876 attrset_gen(struct parser_params *parser, NODE *recv, ID id)
17878 if (recv && ((int) (((((struct RNode*)(recv)))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_SELF)
17880 return node_newnode(parser, (NODE_ATTRASGN), (VALUE)(recv), (VALUE)(rb_id_attrset(id)), (VALUE)(0));
17884 rb_backref_error_gen(struct parser_params *parser, NODE *node)
17886 switch (((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8))) {
17888 parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "Can't set variable $%ld", node->u2.argc);
17890 case NODE_BACK_REF:
17891 parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "Can't set variable $%c", (int)node->u2.argc);
17897 arg_concat_gen(struct parser_params *parser, NODE *node1, NODE *node2)
17899 if (!node2) return node1;
17900 switch (((int) (((((struct RNode*)(node1)))->flags & (((VALUE)0x7f)<<8))>>8))) {
17901 case NODE_BLOCK_PASS:
17902 node1->u3.node = arg_concat_gen(parser,node1->u3.node,node2);
17904 case NODE_ARGSPUSH:
17905 if (((int) (((((struct RNode*)(node2)))->flags & (((VALUE)0x7f)<<8))>>8)) != NODE_ARRAY) break;
17906 node1->u2.node = list_concat_gen(parser,node_newnode(parser, (NODE_ARRAY), (VALUE)(node1->u2.node), (VALUE)(1), (VALUE)(0)),node2);
17907 ((struct RNode*)(node1))->flags=((((struct RNode*)(node1))->flags&~(((VALUE)0x7f)<<8))|(((NODE_ARGSCAT)<<8)&(((VALUE)0x7f)<<8)));
17910 if (((int) (((((struct RNode*)(node2)))->flags & (((VALUE)0x7f)<<8))>>8)) != NODE_ARRAY ||
17911 ((int) (((((struct RNode*)(node1->u2.node)))->flags & (((VALUE)0x7f)<<8))>>8)) != NODE_ARRAY) break;
17912 node1->u2.node = list_concat_gen(parser,node1->u2.node,node2);
17915 return node_newnode(parser, (NODE_ARGSCAT), (VALUE)(node1), (VALUE)(node2), (VALUE)(0));
17919 arg_append_gen(struct parser_params *parser, NODE *node1, NODE *node2)
17921 if (!node1) return node_newnode(parser, (NODE_ARRAY), (VALUE)(node2), (VALUE)(1), (VALUE)(0));
17922 switch (((int) (((((struct RNode*)(node1)))->flags & (((VALUE)0x7f)<<8))>>8))) {
17924 return list_append_gen(parser,node1,node2);
17925 case NODE_BLOCK_PASS:
17926 node1->u1.node = arg_append_gen(parser,node1->u1.node,node2);
17928 case NODE_ARGSPUSH:
17929 node1->u2.node = list_append_gen(parser,node_newnode(parser, (NODE_ARRAY), (VALUE)(node1->u2.node), (VALUE)(1), (VALUE)(0)),node2);
17930 ((struct RNode*)(node1))->flags=((((struct RNode*)(node1))->flags&~(((VALUE)0x7f)<<8))|(((NODE_ARGSCAT)<<8)&(((VALUE)0x7f)<<8)));
17933 return node_newnode(parser, (NODE_ARGSPUSH), (VALUE)(node1), (VALUE)(node2), (VALUE)(0));
17937 splat_array(NODE* node)
17939 if (((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_SPLAT) node = node->u1.node;
17940 if (((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_ARRAY) return node;
17945 node_assign_gen(struct parser_params *parser, NODE *lhs, NODE *rhs)
17947 if (!lhs) return 0;
17949 switch (((int) (((((struct RNode*)(lhs)))->flags & (((VALUE)0x7f)<<8))>>8))) {
17955 case NODE_DASGN_CURR:
17959 lhs->u2.node = rhs;
17962 case NODE_ATTRASGN:
17964 lhs->u3.node = arg_append_gen(parser,lhs->u3.node,rhs);
17976 value_expr_gen(struct parser_params *parser, NODE *node)
17981 rb_compile_warning((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "empty expression");
17984 switch (((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8))) {
17987 parser_warning(parser, node, "void value expression");
17988 return ((VALUE)RUBY_Qfalse);
17995 if (!cond) parser_yyerror(parser, "void value expression");
17997 return ((VALUE)RUBY_Qfalse);
18000 while (node->u3.node) {
18001 node = node->u3.node;
18003 node = node->u1.node;
18007 node = node->u2.node;
18011 if (!node->u2.node) {
18012 node = node->u3.node;
18015 else if (!node->u3.node) {
18016 node = node->u2.node;
18019 if (!value_expr_gen(parser, (node->u2.node) = remove_begin(node->u2.node))) return ((VALUE)RUBY_Qfalse);
18020 node = node->u3.node;
18026 node = node->u2.node;
18030 return ((VALUE)RUBY_Qtrue);
18034 return ((VALUE)RUBY_Qtrue);
18038 void_expr_gen(struct parser_params *parser, NODE *node)
18040 const char *useless = 0;
18042 if (!(((VALUE)((*rb_ruby_verbose_ptr())) & ~((VALUE)RUBY_Qnil)) != 0)) return;
18045 switch (((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8))) {
18047 switch (node->u2.id) {
18066 useless = rb_id2name(node->u2.id);
18077 case NODE_BACK_REF:
18078 useless = "a variable";
18081 useless = "a constant";
18087 case NODE_DREGX_ONCE:
18088 useless = "a literal";
18113 useless = "defined?";
18118 int line = (parser->parser_ruby_sourceline);
18120 (parser->parser_ruby_sourceline) = ((VALUE)(((((struct RNode*)(node)))->flags>>(8 +7))&(((long)1<<(sizeof(VALUE)*8 -(8 +7)))-1)));
18121 rb_compile_warn((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "useless use of %s in void context", useless);
18122 (parser->parser_ruby_sourceline) = line;
18127 void_stmts_gen(struct parser_params *parser, NODE *node)
18129 if (!(((VALUE)((*rb_ruby_verbose_ptr())) & ~((VALUE)RUBY_Qnil)) != 0)) return;
18131 if (((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8)) != NODE_BLOCK) return;
18134 if (!node->u3.node) return;
18135 void_expr_gen(parser, (node->u1.node));
18136 node = node->u3.node;
18141 remove_begin(NODE *node)
18143 NODE **n = &node, *n1 = node;
18144 while (n1 && ((int) (((((struct RNode*)(n1)))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_BEGIN && n1->u2.node) {
18145 *n = n1 = n1->u2.node;
18151 reduce_nodes_gen(struct parser_params *parser, NODE **body)
18153 NODE *node = *body;
18156 *body = node_newnode(parser, (NODE_NIL), (VALUE)(0), (VALUE)(0), (VALUE)(0));
18165 switch (((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8))) {
18171 *body = node = node->u1.node;
18174 *body = node = node->u2.node;
18177 body = &node->u2.node->u1.node;
18180 if (((!node->u2.node) ? (node->u3.node ? (body = &node->u3.node, 1) : 0) : (!node->u3.node) ? (body = &node->u2.node, 1) : (reduce_nodes_gen(parser,&node->u2.node), body = &node->u3.node, 1))) break;
18183 body = &node->u2.node;
18186 if (!((!node->u2.node) ? (node->u3.node ? (body = &node->u3.node, 1) : 0) : (!node->u3.node) ? (body = &node->u2.node, 1) : (reduce_nodes_gen(parser,&node->u2.node), body = &node->u3.node, 1))) goto end;
18189 if (!((!node->u1.node) ? (node->u2.node ? (body = &node->u2.node, 1) : 0) : (!node->u2.node) ? (body = &node->u1.node, 1) : (reduce_nodes_gen(parser,&node->u1.node), body = &node->u2.node, 1))) goto end;
18192 if (!((!node->u1.node) ? (node->u2.node ? (body = &node->u2.node, 1) : 0) : (!node->u2.node) ? (body = &node->u1.node, 1) : (reduce_nodes_gen(parser,&node->u1.node), body = &node->u2.node, 1))) goto end;
18204 assign_in_cond(struct parser_params *parser, NODE *node)
18206 switch (((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8))) {
18208 parser_yyerror(parser, "multiple assignment in conditional");
18221 switch (((int) (((((struct RNode*)(node->u2.node)))->flags & (((VALUE)0x7f)<<8))>>8))) {
18228 parser_warn(parser, node->u2.node, "found = in conditional, should be ==");
18243 warn_unless_e_option(struct parser_params *parser, NODE *node, const char *str)
18245 if (!e_option_supplied(parser)) parser_warn(parser, node, str);
18249 warning_unless_e_option(struct parser_params *parser, NODE *node, const char *str)
18251 if (!e_option_supplied(parser)) parser_warning(parser, node, str);
18255 fixup_nodes(NODE **rootnode)
18257 NODE *node, *next, *head;
18259 for (node = *rootnode; node; node = next) {
18260 enum node_type type;
18263 next = node->u3.node;
18264 head = node->u1.node;
18265 rb_gc_force_recycle((VALUE)node);
18267 switch (type = ((int) (((((struct RNode*)(head)))->flags & (((VALUE)0x7f)<<8))>>8))) {
18270 val = rb_range_new(head->u1.node->u1.value, head->u2.node->u1.value,
18271 type == NODE_DOT3 ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse));
18272 rb_gc_force_recycle((VALUE)head->u1.node);
18273 rb_gc_force_recycle((VALUE)head->u2.node);
18274 ((struct RNode*)(head))->flags=((((struct RNode*)(head))->flags&~(((VALUE)0x7f)<<8))|(((NODE_LIT)<<8)&(((VALUE)0x7f)<<8)));
18275 head->u1.value = val;
18283 static NODE *cond0(struct parser_params*,NODE*);
18286 range_op(struct parser_params *parser, NODE *node)
18288 enum node_type type;
18290 if (node == 0) return 0;
18292 type = ((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8));
18293 value_expr_gen(parser, (node) = remove_begin(node));
18294 if (type == NODE_LIT && (((long)(node->u1.value))&RUBY_FIXNUM_FLAG)) {
18295 warn_unless_e_option(parser, node, "integer literal in conditional range");
18296 return node_newnode(parser, (NODE_CALL), (VALUE)(node), (VALUE)(325), (VALUE)(node_newnode(parser, (NODE_ARRAY), (VALUE)(node_newnode(parser, (NODE_GVAR), (VALUE)((__builtin_constant_p("$.") ? __extension__ (rb_intern2("$.", strlen("$."))) : (rb_intern)("$."))), (VALUE)(0), (VALUE)(rb_global_entry((__builtin_constant_p("$.") ? __extension__ (rb_intern2("$.", strlen("$."))) : (rb_intern)("$.")))))), (VALUE)(1), (VALUE)(0))));
18298 return cond0(parser, node);
18302 literal_node(NODE *node)
18304 if (!node) return 1;
18305 switch (((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8))) {
18311 case NODE_DREGX_ONCE:
18323 cond0(struct parser_params *parser, NODE *node)
18325 if (node == 0) return 0;
18326 assign_in_cond(parser, node);
18328 switch (((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8))) {
18332 rb_compile_warn((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "string literal in condition");
18336 case NODE_DREGX_ONCE:
18337 warning_unless_e_option(parser, node, "regex literal in condition");
18338 return node_newnode(parser, (NODE_MATCH2), (VALUE)(node), (VALUE)(node_newnode(parser, (NODE_GVAR), (VALUE)((__builtin_constant_p("$_") ? __extension__ (rb_intern2("$_", strlen("$_"))) : (rb_intern)("$_"))), (VALUE)(0), (VALUE)(rb_global_entry((__builtin_constant_p("$_") ? __extension__ (rb_intern2("$_", strlen("$_"))) : (rb_intern)("$_")))))), (VALUE)(0));
18342 node->u1.node = cond0(parser, node->u1.node);
18343 node->u2.node = cond0(parser, node->u2.node);
18348 node->u1.node = range_op(parser, node->u1.node);
18349 node->u2.node = range_op(parser, node->u2.node);
18350 if (((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_DOT2) ((struct RNode*)(node))->flags=((((struct RNode*)(node))->flags&~(((VALUE)0x7f)<<8))|(((NODE_FLIP2)<<8)&(((VALUE)0x7f)<<8)));
18351 else if (((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_DOT3) ((struct RNode*)(node))->flags=((((struct RNode*)(node))->flags&~(((VALUE)0x7f)<<8))|(((NODE_FLIP3)<<8)&(((VALUE)0x7f)<<8)));
18352 if (!e_option_supplied(parser)) {
18353 int b = literal_node(node->u1.node);
18354 int e = literal_node(node->u2.node);
18355 if ((b == 1 && e == 1) || (b + e >= 2 && (((VALUE)((*rb_ruby_verbose_ptr())) & ~((VALUE)RUBY_Qnil)) != 0))) {
18356 parser_warn(parser, node, "range literal in condition");
18362 parser_warning(parser, node, "literal in condition");
18366 if (rb_type((VALUE)(node->u1.value)) == RUBY_T_REGEXP) {
18367 warn_unless_e_option(parser, node, "regex literal in condition");
18368 ((struct RNode*)(node))->flags=((((struct RNode*)(node))->flags&~(((VALUE)0x7f)<<8))|(((NODE_MATCH)<<8)&(((VALUE)0x7f)<<8)));
18371 parser_warning(parser, node, "literal in condition");
18380 cond_gen(struct parser_params *parser, NODE *node)
18382 if (node == 0) return 0;
18383 return cond0(parser, node);
18387 logop_gen(struct parser_params *parser, enum node_type type, NODE *left, NODE *right)
18389 value_expr_gen(parser, (left) = remove_begin(left));
18390 if (left && ((int) (((((struct RNode*)(left)))->flags & (((VALUE)0x7f)<<8))>>8)) == type) {
18391 NODE *node = left, *second;
18392 while ((second = node->u2.node) != 0 && ((int) (((((struct RNode*)(second)))->flags & (((VALUE)0x7f)<<8))>>8)) == type) {
18395 node->u2.node = node_newnode(parser, (type), (VALUE)(second), (VALUE)(right), (VALUE)(0));
18398 return node_newnode(parser, (type), (VALUE)(left), (VALUE)(right), (VALUE)(0));
18402 no_blockarg(struct parser_params *parser, NODE *node)
18404 if (node && ((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_BLOCK_PASS) {
18405 parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "block argument should not be given");
18410 ret_args_gen(struct parser_params *parser, NODE *node)
18413 no_blockarg(parser, node);
18414 if (((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_ARRAY) {
18415 if (node->u3.node == 0) {
18416 node = node->u1.node;
18419 ((struct RNode*)(node))->flags=((((struct RNode*)(node))->flags&~(((VALUE)0x7f)<<8))|(((NODE_VALUES)<<8)&(((VALUE)0x7f)<<8)));
18427 new_yield_gen(struct parser_params *parser, NODE *node)
18429 long state = ((VALUE)RUBY_Qtrue);
18432 no_blockarg(parser, node);
18433 if (node && ((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_SPLAT) {
18434 state = ((VALUE)RUBY_Qtrue);
18438 state = ((VALUE)RUBY_Qfalse);
18440 return node_newnode(parser, (NODE_YIELD), (VALUE)(node), (VALUE)(0), (VALUE)(state));
18444 negate_lit(NODE *node)
18446 switch (rb_type((VALUE)(node->u1.value))) {
18447 case RUBY_T_FIXNUM:
18448 node->u1.value = ((VALUE)(((long)(-(((long)node->u1.value)>>(int)1)))<<1 | RUBY_FIXNUM_FLAG));
18450 case RUBY_T_BIGNUM:
18451 node->u1.value = rb_funcall(node->u1.value,322,0,0);
18454 ((struct RFloat*)(node->u1.value))->float_value = -(((struct RFloat*)(node->u1.value))->float_value);
18463 arg_blk_pass(NODE *node1, NODE *node2)
18466 node2->u1.node = node1;
18473 new_args_gen(struct parser_params *parser, NODE *m, NODE *o, ID r, NODE *p, ID b)
18475 int saved_line = (parser->parser_ruby_sourceline);
18479 node = node_newnode(parser, (NODE_ARGS), (VALUE)(o), (VALUE)(m ? m->u2.argc : 0), (VALUE)(0));
18480 i1 = m ? m->u3.node : 0;
18481 node->u3.node = node_newnode(parser, (NODE_ARGS_AUX), (VALUE)(r), (VALUE)(b), (VALUE)(0));
18485 node->u3.node->u3.node = node_newnode(parser, (NODE_ARGS_AUX), (VALUE)(p->u1.id), (VALUE)(p->u2.argc), (VALUE)(0));
18488 node->u3.node->u3.node = node_newnode(parser, (NODE_ARGS_AUX), (VALUE)(0), (VALUE)(0), (VALUE)(0));
18491 node->u3.node->u3.node->u3.node = node_newnode(parser, (NODE_AND), (VALUE)(i1), (VALUE)(i2), (VALUE)(0));
18493 (parser->parser_ruby_sourceline) = saved_line;
18498 local_push_gen(struct parser_params *parser, int inherit_dvars)
18500 struct local_vars *local;
18502 local = (struct local_vars*)ruby_xmalloc(sizeof(struct local_vars));
18503 local->prev = (parser->parser_lvtbl);
18504 local->args = vtable_alloc(0);
18505 local->vars = vtable_alloc(inherit_dvars ? ((void*)1) : ((void *)0));
18506 (parser->parser_lvtbl) = local;
18510 local_pop_gen(struct parser_params *parser)
18512 struct local_vars *local = (parser->parser_lvtbl)->prev;
18513 vtable_free((parser->parser_lvtbl)->args);
18514 vtable_free((parser->parser_lvtbl)->vars);
18515 ruby_xfree((parser->parser_lvtbl));
18516 (parser->parser_lvtbl) = local;
18520 vtable_tblcpy(ID *buf, const struct vtable *src)
18522 int i, cnt = vtable_size(src);
18526 for (i = 0; i < cnt; i++) {
18527 buf[i] = src->tbl[i];
18535 local_tbl_gen(struct parser_params *parser)
18537 int cnt = vtable_size((parser->parser_lvtbl)->args) + vtable_size((parser->parser_lvtbl)->vars);
18540 if (cnt <= 0) return 0;
18541 buf = (ID*)ruby_xmalloc2((cnt + 1),sizeof(ID));
18542 vtable_tblcpy(buf+1, (parser->parser_lvtbl)->args);
18543 vtable_tblcpy(buf+vtable_size((parser->parser_lvtbl)->args)+1, (parser->parser_lvtbl)->vars);
18549 arg_var_gen(struct parser_params *parser, ID id)
18551 vtable_add((parser->parser_lvtbl)->args, id);
18552 return vtable_size((parser->parser_lvtbl)->args) - 1;
18556 local_var_gen(struct parser_params *parser, ID id)
18558 vtable_add((parser->parser_lvtbl)->vars, id);
18559 return vtable_size((parser->parser_lvtbl)->vars) - 1;
18563 local_id_gen(struct parser_params *parser, ID id)
18565 struct vtable *vars, *args;
18567 vars = (parser->parser_lvtbl)->vars;
18568 args = (parser->parser_lvtbl)->args;
18570 while (vars && ((VALUE)(vars->prev) & ~(VALUE)3)) {
18575 if (vars && vars->prev == ((void*)1)) {
18576 return rb_local_defined(id);
18579 return (vtable_included(args, id) ||
18580 vtable_included(vars, id));
18585 dyna_push_gen(struct parser_params *parser)
18587 (parser->parser_lvtbl)->args = vtable_alloc((parser->parser_lvtbl)->args);
18588 (parser->parser_lvtbl)->vars = vtable_alloc((parser->parser_lvtbl)->vars);
18592 dyna_pop_gen(struct parser_params *parser)
18594 struct vtable *tmp;
18596 tmp = (parser->parser_lvtbl)->args;
18597 (parser->parser_lvtbl)->args = (parser->parser_lvtbl)->args->prev;
18599 tmp = (parser->parser_lvtbl)->vars;
18600 (parser->parser_lvtbl)->vars = (parser->parser_lvtbl)->vars->prev;
18605 dyna_in_block_gen(struct parser_params *parser)
18607 return ((VALUE)((parser->parser_lvtbl)->vars) & ~(VALUE)3) && (parser->parser_lvtbl)->vars->prev != ((void *)0);
18611 dvar_defined_gen(struct parser_params *parser, ID id)
18613 struct vtable *vars, *args;
18615 args = (parser->parser_lvtbl)->args;
18616 vars = (parser->parser_lvtbl)->vars;
18618 while (((VALUE)(vars) & ~(VALUE)3)) {
18619 if (vtable_included(args, id)) {
18622 if (vtable_included(vars, id)) {
18629 if (vars == ((void*)1)) {
18630 return rb_dvar_defined(id);
18637 dvar_curr_gen(struct parser_params *parser, ID id)
18639 return (vtable_included((parser->parser_lvtbl)->args, id) ||
18640 vtable_included((parser->parser_lvtbl)->vars, id));
18643 VALUE rb_reg_compile(VALUE str, int options);
18644 VALUE rb_reg_check_preprocess(VALUE);
18647 reg_fragment_setenc_gen(struct parser_params* parser, VALUE str, int options)
18649 int c = (((options)>>8)&0xff);
18653 rb_char_to_option_kcode(c, &opt, &idx);
18654 if (idx != (((((struct RBasic*)(str))->flags & (1023<<(12 +10)))>>(12 +10)) != 1023 ? ((((struct RBasic*)(str))->flags & (1023<<(12 +10)))>>(12 +10)) : rb_enc_get_index(str)) &&
18655 rb_enc_str_coderange(str) != (((VALUE)1)<<(12 +8))) {
18658 do { VALUE rb_encoding_set_obj = (str); int encoding_set_enc_index = (idx); if (encoding_set_enc_index < 1023) do { ((struct RBasic*)(rb_encoding_set_obj))->flags &= ~(1023<<(12 +10)); ((struct RBasic*)(rb_encoding_set_obj))->flags |= (encoding_set_enc_index) << (12 +10);} while (0); else rb_enc_set_index(rb_encoding_set_obj, encoding_set_enc_index); } while (0);
18660 else if (((options)&32)) {
18661 if (!(((((struct RBasic*)(str))->flags & (1023<<(12 +10)))>>(12 +10)) == 0) &&
18662 rb_enc_str_coderange(str) != (((VALUE)1)<<(12 +8))) {
18666 rb_enc_associate(str, rb_ascii8bit_encoding());
18668 else if (parser->enc == rb_usascii_encoding()) {
18669 if (rb_enc_str_coderange(str) != (((VALUE)1)<<(12 +8))) {
18671 rb_enc_associate(str, rb_usascii_encoding());
18674 rb_enc_associate(str, rb_ascii8bit_encoding());
18680 parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline),
18681 "regexp encoding option '%c' differs from source encoding '%s'",
18682 c, (rb_enc_get(str))->name);
18686 reg_fragment_check_gen(struct parser_params* parser, VALUE str, int options)
18689 reg_fragment_setenc_gen(parser, str, options);
18690 err = rb_reg_check_preprocess(str);
18691 if (err != ((VALUE)RUBY_Qnil)) {
18692 err = rb_obj_as_string(err);
18693 parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "%s", (!(((struct RBasic*)(err))->flags & (((VALUE)1)<<(12 +1))) ? ((struct RString*)(err))->as.ary : ((struct RString*)(err))->as.heap.ptr));
18694 (*(volatile VALUE *)&(err));
18699 struct parser_params* parser;
18704 } reg_named_capture_assign_t;
18707 reg_named_capture_assign_iter(const OnigUChar *name, const OnigUChar *name_end,
18708 int back_num, int *back_refs, OnigRegex regex, void *arg0)
18710 reg_named_capture_assign_t *arg = (reg_named_capture_assign_t*)arg0;
18711 struct parser_params* parser = arg->parser;
18712 rb_encoding *enc = arg->enc;
18713 int len = name_end - name;
18714 const char *s = (const char *)name;
18719 if (arg->succ_block == 0) {
18720 arg->succ_block = node_newnode(parser, (NODE_BEGIN), (VALUE)(0), (VALUE)(0), (VALUE)(0));
18721 arg->fail_block = node_newnode(parser, (NODE_BEGIN), (VALUE)(0), (VALUE)(0), (VALUE)(0));
18724 if (!len || (*name != '_' && ((unsigned long)((unsigned char)(*name)) < 128) && !(enc)->is_code_ctype(*name,6,enc)) ||
18725 rb_reserved_word(s, len) || !rb_enc_symname2_p(s, len, enc)) {
18726 return ST_CONTINUE;
18728 var = rb_intern3(s, len, enc);
18729 if (dvar_defined_gen(parser, var) || local_id_gen(parser, var)) {
18730 rb_compile_warning((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "named capture conflicts a local variable - %s", rb_id2name(var));
18733 arg->succ_block = block_append_gen(parser,arg->succ_block,newline_node(node_assign_gen(parser, assignable_gen(parser, var, 0), node_newnode(parser, (NODE_CALL), (VALUE)(gettable_gen(parser,(__builtin_constant_p("$~") ? __extension__ (rb_intern2("$~", strlen("$~"))) : (rb_intern)("$~")))), (VALUE)(idAREF), (VALUE)(node_newnode(parser, (NODE_ARRAY), (VALUE)(node_newnode(parser, (NODE_LIT), (VALUE)((((VALUE)(var)<<RUBY_SPECIAL_SHIFT)|RUBY_SYMBOL_FLAG)), (VALUE)(0), (VALUE)(0))), (VALUE)(1), (VALUE)(0)))))));
18740 arg->fail_block = block_append_gen(parser,arg->fail_block,newline_node(node_assign_gen(parser, assignable_gen(parser, var, 0), node_newnode(parser, (NODE_LIT), (VALUE)(((VALUE)RUBY_Qnil)), (VALUE)(0), (VALUE)(0)))));
18742 return ST_CONTINUE;
18746 reg_named_capture_assign_gen(struct parser_params* parser, VALUE regexp, NODE *match)
18748 reg_named_capture_assign_t arg;
18750 arg.parser = parser;
18751 arg.enc = rb_enc_get(regexp);
18752 arg.succ_block = 0;
18753 arg.fail_block = 0;
18755 onig_foreach_name(((struct RRegexp*)(regexp))->ptr, reg_named_capture_assign_iter, (void*)&arg);
18761 block_append_gen(parser,newline_node(match),node_newnode(parser, (NODE_IF), (VALUE)(gettable_gen(parser,(__builtin_constant_p("$~") ? __extension__ (rb_intern2("$~", strlen("$~"))) : (rb_intern)("$~")))), (VALUE)(block_append_gen(parser,newline_node(arg.succ_block),newline_node( node_newnode(parser, (NODE_CALL), (VALUE)(gettable_gen(parser,(__builtin_constant_p("$~") ? __extension__ (rb_intern2("$~", strlen("$~"))) : (rb_intern)("$~")))), (VALUE)((__builtin_constant_p("begin") ? __extension__ (rb_intern2("begin", strlen("begin"))) : (rb_intern)("begin"))), (VALUE)(node_newnode(parser, (NODE_ARRAY), (VALUE)(node_newnode(parser, (NODE_LIT), (VALUE)(((VALUE)(((long)(0))<<1 | RUBY_FIXNUM_FLAG))), (VALUE)(0), (VALUE)(0))), (VALUE)(1), (VALUE)(0))))))), (VALUE)(block_append_gen(parser,newline_node(arg.fail_block),newline_node( node_newnode(parser, (NODE_LIT), (VALUE)(((VALUE)RUBY_Qnil)), (VALUE)(0), (VALUE)(0)))))));
18766 reg_compile_gen(struct parser_params* parser, VALUE str, int options)
18771 reg_fragment_setenc_gen(parser, str, options);
18772 err = rb_errinfo();
18773 re = rb_reg_compile(str, options & 0xff);
18774 if (((VALUE)(re) == ((VALUE)RUBY_Qnil))) {
18775 ID mesg = (__builtin_constant_p("mesg") ? __extension__ (rb_intern2("mesg", strlen("mesg"))) : (rb_intern)("mesg"));
18776 VALUE m = rb_attr_get(rb_errinfo(), mesg);
18777 rb_set_errinfo(err);
18778 if (!((VALUE)(err) == ((VALUE)RUBY_Qnil))) {
18779 rb_str_append(rb_str_cat(rb_attr_get(err, mesg), "\n", 1), m);
18782 parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "%s", (!(((struct RBasic*)(m))->flags & (((VALUE)1)<<(12 +1))) ? ((struct RString*)(m))->as.ary : ((struct RString*)(m))->as.heap.ptr));
18784 return ((VALUE)RUBY_Qnil);
18790 rb_gc_mark_parser(void)
18795 rb_parser_append_print(VALUE vparser, NODE *node)
18798 NODE *scope = node;
18799 struct parser_params *parser;
18801 if (!node) return node;
18803 do { rb_check_type((VALUE)(vparser),RUBY_T_DATA); parser = (struct parser_params*)(((struct RData*)(vparser))->data);} while (0);
18805 node = node->u2.node;
18807 if (((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_PRELUDE) {
18809 node = node->u2.node;
18812 node = block_append_gen(parser,node,node_newnode(parser, (NODE_FCALL), (VALUE)(0), (VALUE)((__builtin_constant_p("print") ? __extension__ (rb_intern2("print", strlen("print"))) : (rb_intern)("print"))), (VALUE)(node_newnode(parser, (NODE_ARRAY), (VALUE)(node_newnode(parser, (NODE_GVAR), (VALUE)((__builtin_constant_p("$_") ? __extension__ (rb_intern2("$_", strlen("$_"))) : (rb_intern)("$_"))), (VALUE)(0), (VALUE)(rb_global_entry((__builtin_constant_p("$_") ? __extension__ (rb_intern2("$_", strlen("$_"))) : (rb_intern)("$_")))))), (VALUE)(1), (VALUE)(0)))));
18816 prelude->u2.node = node;
18817 scope->u2.node = prelude;
18820 scope->u2.node = node;
18827 rb_parser_while_loop(VALUE vparser, NODE *node, int chop, int split)
18830 NODE *scope = node;
18831 struct parser_params *parser;
18833 if (!node) return node;
18835 do { rb_check_type((VALUE)(vparser),RUBY_T_DATA); parser = (struct parser_params*)(((struct RData*)(vparser))->data);} while (0);
18837 node = node->u2.node;
18839 if (((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_PRELUDE) {
18841 node = node->u2.node;
18844 node = block_append_gen(parser,node_newnode(parser, (NODE_GASGN), (VALUE)((__builtin_constant_p("$F") ? __extension__ (rb_intern2("$F", strlen("$F"))) : (rb_intern)("$F"))), (VALUE)(node_newnode(parser, (NODE_CALL), (VALUE)(node_newnode(parser, (NODE_GVAR), (VALUE)((__builtin_constant_p("$_") ? __extension__ (rb_intern2("$_", strlen("$_"))) : (rb_intern)("$_"))), (VALUE)(0), (VALUE)(rb_global_entry((__builtin_constant_p("$_") ? __extension__ (rb_intern2("$_", strlen("$_"))) : (rb_intern)("$_")))))), (VALUE)((__builtin_constant_p("split") ? __extension__ (rb_intern2("split", strlen("split"))) : (rb_intern)("split"))), (VALUE)(0))), (VALUE)(rb_global_entry((__builtin_constant_p("$F") ? __extension__ (rb_intern2("$F", strlen("$F"))) : (rb_intern)("$F"))))),node);
18850 node = block_append_gen(parser,node_newnode(parser, (NODE_CALL), (VALUE)(node_newnode(parser, (NODE_GVAR), (VALUE)((__builtin_constant_p("$_") ? __extension__ (rb_intern2("$_", strlen("$_"))) : (rb_intern)("$_"))), (VALUE)(0), (VALUE)(rb_global_entry((__builtin_constant_p("$_") ? __extension__ (rb_intern2("$_", strlen("$_"))) : (rb_intern)("$_")))))), (VALUE)((__builtin_constant_p("chop!") ? __extension__ (rb_intern2("chop!", strlen("chop!"))) : (rb_intern)("chop!"))), (VALUE)(0)),node);
18854 node = node_newnode(parser, (NODE_OPT_N), (VALUE)(0), (VALUE)(node), (VALUE)(0));
18857 prelude->u2.node = node;
18858 scope->u2.node = prelude;
18861 scope->u2.node = node;
18867 static const struct {
18873 {'+', "+(binary)"},
18874 {'-', "-(binary)"},
18895 static struct symbols {
18899 st_table *ivar2_id;
18900 st_table *id_ivar2;
18902 } global_symbols = {tLAST_ID};
18904 static const struct st_hash_type symhash = {
18915 ivar2_cmp(struct ivar2_key *key1, struct ivar2_key *key2)
18917 if (key1->id == key2->id && key1->klass == key2->klass) {
18924 ivar2_hash(struct ivar2_key *key)
18926 return (key->id << 8) ^ (key->klass >> 2);
18929 static const struct st_hash_type ivar2_hash_type = {
18937 global_symbols.sym_id = st_init_table_with_size(&symhash, 1000);
18938 global_symbols.id_str = st_init_numtable_with_size(1000);
18939 global_symbols.ivar2_id = st_init_table_with_size(&ivar2_hash_type, 1000);
18940 global_symbols.id_ivar2 = st_init_numtable_with_size(1000);
18946 rb_gc_mark_symbols(void)
18948 rb_mark_tbl(global_symbols.id_str);
18949 rb_gc_mark_locations(global_symbols.op_sym,
18950 global_symbols.op_sym + 376);
18954 internal_id_gen(struct parser_params *parser)
18956 ID id = (ID)vtable_size((parser->parser_lvtbl)->args) + (ID)vtable_size((parser->parser_lvtbl)->vars);
18957 id += ((376 - 0x07) >> 3) + 1;
18958 return 0x07 | (id << 3);
18962 is_special_global_name(const char *m, const char *e, rb_encoding *enc)
18966 if (m >= e) return 0;
18968 case '~': case '*': case '$': case '?': case '!': case '@':
18969 case '/': case '\\': case ';': case ',': case '.': case '=':
18970 case ':': case '<': case '>': case '\"':
18971 case '&': case '`': case '\'': case '+':
18977 if (m < e && ((enc)->is_code_ctype(*m,13,enc) || (*m) == '_' || !((unsigned long)((unsigned char)(*m)) < 128))) {
18978 if (!((unsigned long)((unsigned char)(*m)) < 128)) mb = 1;
18979 m += rb_enc_mbclen(m, e, enc);
18983 if (!(enc)->is_code_ctype(*m,4,enc)) return 0;
18985 if (!((unsigned long)((unsigned char)(*m)) < 128)) mb = 1;
18987 } while ((enc)->is_code_ctype(*m,4,enc));
18989 return m == e ? mb + 1 : 0;
18993 rb_symname_p(const char *name)
18995 return rb_enc_symname_p(name, rb_ascii8bit_encoding());
18999 rb_enc_symname_p(const char *name, rb_encoding *enc)
19001 return rb_enc_symname2_p(name, strlen(name), enc);
19005 rb_enc_symname2_p(const char *name, int len, rb_encoding *enc)
19007 const char *m = name;
19008 const char *e = m + len;
19009 int localid = ((VALUE)RUBY_Qfalse);
19011 if (!m) return ((VALUE)RUBY_Qfalse);
19014 return ((VALUE)RUBY_Qfalse);
19017 if (is_special_global_name(++m, e, enc)) return ((VALUE)RUBY_Qtrue);
19021 if (*++m == '@') ++m;
19026 case '<': ++m; break;
19027 case '=': if (*++m == '>') ++m; break;
19034 case '>': case '=': ++m; break;
19040 case '~': ++m; break;
19041 case '=': if (*++m == '=') ++m; break;
19042 default: return ((VALUE)RUBY_Qfalse);
19047 if (*++m == '*') ++m;
19050 case '+': case '-':
19051 if (*++m == '@') ++m;
19054 case '|': case '^': case '&': case '/': case '%': case '~': case '`':
19059 if (*++m != ']') return ((VALUE)RUBY_Qfalse);
19060 if (*++m == '=') ++m;
19065 case '\0': return ((VALUE)RUBY_Qtrue);
19066 case '=': case '~': ++m; break;
19067 default: return ((VALUE)RUBY_Qfalse);
19072 localid = !(enc)->is_code_ctype(*m,10,enc);
19074 if (m >= e || (*m != '_' && !(enc)->is_code_ctype(*m,1,enc) && ((unsigned long)((unsigned char)(*m)) < 128)))
19075 return ((VALUE)RUBY_Qfalse);
19076 while (m < e && ((enc)->is_code_ctype(*m,13,enc) || (*m) == '_' || !((unsigned long)((unsigned char)(*m)) < 128))) m += rb_enc_mbclen(m, e, enc);
19079 case '!': case '?': case '=': ++m;
19084 return *m ? ((VALUE)RUBY_Qfalse) : ((VALUE)RUBY_Qtrue);
19088 register_symid(ID id, const char *name, long len, rb_encoding *enc)
19090 VALUE str = rb_enc_str_new(name, len, enc);
19091 do {if ((!(((VALUE)((str)) & RUBY_IMMEDIATE_MASK) || !(((VALUE)((str)) & ~((VALUE)RUBY_Qnil)) != 0)) && (((struct RBasic*)((str)))->flags & RUBY_T_MASK) != RUBY_T_NODE)) ((struct RBasic*)((str)))->flags |= ((((VALUE)1)<<11));} while (0);
19092 st_add_direct(global_symbols.sym_id, (st_data_t)str, id);
19093 st_add_direct(global_symbols.id_str, id, (st_data_t)str);
19098 rb_intern3(const char *name, long len, rb_encoding *enc)
19100 const char *m = name;
19101 const char *e = m + len;
19107 struct RString fake_str;
19108 fake_str.basic.flags = RUBY_T_STRING|(((VALUE)1)<<(12 +1))|(((VALUE)1)<<11);
19109 fake_str.basic.klass = rb_cString;
19110 fake_str.as.heap.len = len;
19111 fake_str.as.heap.ptr = (char *)name;
19112 fake_str.as.heap.aux.capa = len;
19113 str = (VALUE)&fake_str;
19114 rb_enc_associate(str, enc);
19116 if (st_lookup(global_symbols.sym_id, str, (st_data_t *)&id))
19119 if (rb_cString && !((enc)->min_enc_len==1 && !rb_enc_dummy_p(enc))) {
19128 if ((mb = is_special_global_name(++m, e, enc)) != 0) {
19129 if (!--mb) enc = rb_ascii8bit_encoding();
19145 if (c != '_' && ((c) < 128) && (enc)->is_code_ctype(c,8,enc)) {
19153 for (i = 0; i < (sizeof(op_tbl) / sizeof(op_tbl[0])); i++) {
19154 if (*op_tbl[i].name == *m &&
19155 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (op_tbl[i].name) && __builtin_constant_p (m) && (__s1_len = strlen (op_tbl[i].name), __s2_len = strlen (m), (!((size_t)(const void *)((op_tbl[i].name) + 1) - (size_t)(const void *)(op_tbl[i].name) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((m) + 1) - (size_t)(const void *)(m) == 1) || __s2_len >= 4)) ? __builtin_strcmp (op_tbl[i].name, m) : (__builtin_constant_p (op_tbl[i].name) && ((size_t)(const void *)((op_tbl[i].name) + 1) - (size_t)(const void *)(op_tbl[i].name) == 1) && (__s1_len = strlen (op_tbl[i].name), __s1_len < 4) ? (__builtin_constant_p (m) && ((size_t)(const void *)((m) + 1) - (size_t)(const void *)(m) == 1) ? __builtin_strcmp (op_tbl[i].name, m) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) (m); register int __result = (((__const unsigned char *) (__const char *) (op_tbl[i].name))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (op_tbl[i].name))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (op_tbl[i].name))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (op_tbl[i].name))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (m) && ((size_t)(const void *)((m) + 1) - (size_t)(const void *)(m) == 1) && (__s2_len = strlen (m), __s2_len < 4) ? (__builtin_constant_p (op_tbl[i].name) && ((size_t)(const void *)((op_tbl[i].name) + 1) - (size_t)(const void *)(op_tbl[i].name) == 1) ? __builtin_strcmp (op_tbl[i].name, m) : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (op_tbl[i].name); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) (m))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) (m))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) (m))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) (m))[3]); } } __result; }))) : __builtin_strcmp (op_tbl[i].name, m)))); }) == 0) {
19156 id = op_tbl[i].token;
19162 if (m[last] == '=') {
19164 id = rb_intern3(name, last, enc);
19165 if (id > 376 && !(((id)>376)&&((id)&0x07)==0x04)) {
19166 enc = rb_enc_get(rb_id2str(id));
19167 id = rb_id_attrset(id);
19172 else if ((enc)->is_code_ctype(m[0],10,enc)) {
19181 if (!(enc)->is_code_ctype(*m,4,enc)) {
19182 while (m <= name + last && ((enc)->is_code_ctype(*m,13,enc) || (*m) == '_' || !((unsigned long)((unsigned char)(*m)) < 128))) {
19183 if (((unsigned long)((unsigned char)(*m)) < 128)) {
19188 m += rb_enc_mbclen(m, e, enc);
19192 if (m - name < len) id = 0x07;
19193 if (enc != rb_usascii_encoding()) {
19199 for (; m <= name + len; ++m) {
19200 if (!((unsigned long)((unsigned char)(*m)) < 128)) goto mbstr;
19202 enc = rb_usascii_encoding();
19207 id |= ++global_symbols.last_id << 3;
19209 return register_symid(id, name, len, enc);
19213 rb_intern2(const char *name, long len)
19215 return rb_intern3(name, len, rb_usascii_encoding());
19220 rb_intern(const char *name)
19222 return rb_intern2(name, strlen(name));
19226 rb_intern_str(VALUE str)
19231 if (rb_enc_str_coderange(str) == (((VALUE)1)<<(12 +8))) {
19232 enc = rb_usascii_encoding();
19235 enc = rb_enc_get(str);
19237 id = rb_intern3((!(((struct RBasic*)(str))->flags & (((VALUE)1)<<(12 +1))) ? ((struct RString*)(str))->as.ary : ((struct RString*)(str))->as.heap.ptr), (!(((struct RBasic*)(str))->flags & (((VALUE)1)<<(12 +1))) ? (long)((((struct RBasic*)(str))->flags >> (12 +2)) & (((((VALUE)1)<<(12 +2))|(((VALUE)1)<<(12 +3))|(((VALUE)1)<<(12 +4))|(((VALUE)1)<<(12 +5))|(((VALUE)1)<<(12 +6))) >> (12 +2))) : ((struct RString*)(str))->as.heap.len), enc);
19238 (*(volatile VALUE *)&(str));
19250 if (rb_ispunct(id)) {
19251 VALUE str = global_symbols.op_sym[i = (int)id];
19254 name[0] = (char)id;
19256 str = rb_usascii_str_new(name, 1);
19257 do {if ((!(((VALUE)((str)) & RUBY_IMMEDIATE_MASK) || !(((VALUE)((str)) & ~((VALUE)RUBY_Qnil)) != 0)) && (((struct RBasic*)((str)))->flags & RUBY_T_MASK) != RUBY_T_NODE)) ((struct RBasic*)((str)))->flags |= ((((VALUE)1)<<11));} while (0);
19258 global_symbols.op_sym[i] = str;
19262 for (i = 0; i < (sizeof(op_tbl) / sizeof(op_tbl[0])); i++) {
19263 if (op_tbl[i].token == id) {
19264 VALUE str = global_symbols.op_sym[i];
19266 str = __extension__ ( { (__builtin_constant_p(op_tbl[i].name)) ? rb_usascii_str_new(op_tbl[i].name, strlen(op_tbl[i].name)) : rb_usascii_str_new_cstr(op_tbl[i].name); });
19267 do {if ((!(((VALUE)((str)) & RUBY_IMMEDIATE_MASK) || !(((VALUE)((str)) & ~((VALUE)RUBY_Qnil)) != 0)) && (((struct RBasic*)((str)))->flags & RUBY_T_MASK) != RUBY_T_NODE)) ((struct RBasic*)((str)))->flags |= ((((VALUE)1)<<11));} while (0);
19268 global_symbols.op_sym[i] = str;
19275 if (st_lookup(global_symbols.id_str, id, &data)) {
19276 VALUE str = (VALUE)data;
19277 if (((struct RBasic*)(str))->klass == 0)
19278 ((struct RBasic*)(str))->klass = rb_cString;
19282 if ((((id)>376)&&((id)&0x07)==0x04)) {
19283 ID id2 = (id & ~0x07) | 0x00;
19286 while (!(str = rb_id2str(id2))) {
19287 if (!(((id2)>376)&&((id2)&0x07)==0x00)) return 0;
19288 id2 = (id & ~0x07) | 0x05;
19290 str = rb_str_dup(str);
19291 rb_str_cat(str, "=", 1);
19292 rb_intern_str(str);
19293 if (st_lookup(global_symbols.id_str, id, &data)) {
19294 VALUE str = (VALUE)data;
19295 if (((struct RBasic*)(str))->klass == 0)
19296 ((struct RBasic*)(str))->klass = rb_cString;
19306 VALUE str = rb_id2str(id);
19308 if (!str) return 0;
19309 return (!(((struct RBasic*)(str))->flags & (((VALUE)1)<<(12 +1))) ? ((struct RString*)(str))->as.ary : ((struct RString*)(str))->as.heap.ptr);
19313 symbols_i(VALUE sym, ID value, VALUE ary)
19315 rb_ary_push(ary, (((VALUE)(value)<<RUBY_SPECIAL_SHIFT)|RUBY_SYMBOL_FLAG));
19316 return ST_CONTINUE;
19320 rb_sym_all_symbols(void)
19322 VALUE ary = rb_ary_new2(global_symbols.sym_id->num_entries);
19324 st_foreach(global_symbols.sym_id, symbols_i, ary);
19329 rb_is_const_id(ID id)
19331 if ((((id)>376)&&((id)&0x07)==0x05)) return ((VALUE)RUBY_Qtrue);
19332 return ((VALUE)RUBY_Qfalse);
19336 rb_is_class_id(ID id)
19338 if ((((id)>376)&&((id)&0x07)==0x06)) return ((VALUE)RUBY_Qtrue);
19339 return ((VALUE)RUBY_Qfalse);
19343 rb_is_instance_id(ID id)
19345 if ((((id)>376)&&((id)&0x07)==0x01)) return ((VALUE)RUBY_Qtrue);
19346 return ((VALUE)RUBY_Qfalse);
19350 rb_is_local_id(ID id)
19352 if ((((id)>376)&&((id)&0x07)==0x00)) return ((VALUE)RUBY_Qtrue);
19353 return ((VALUE)RUBY_Qfalse);
19357 rb_is_junk_id(ID id)
19359 if ((((id)>376)&&((id)&0x07)==0x07)) return ((VALUE)RUBY_Qtrue);
19360 return ((VALUE)RUBY_Qfalse);
19366 parser_initialize(struct parser_params *parser)
19368 parser->eofp = ((VALUE)RUBY_Qfalse);
19370 parser->parser_lex_strterm = 0;
19371 parser->parser_cond_stack = 0;
19372 parser->parser_cmdarg_stack = 0;
19373 parser->parser_class_nest = 0;
19374 parser->parser_paren_nest = 0;
19375 parser->parser_lpar_beg = 0;
19376 parser->parser_in_single = 0;
19377 parser->parser_in_def = 0;
19378 parser->parser_in_defined = 0;
19379 parser->parser_compile_for_eval = 0;
19380 parser->parser_cur_mid = 0;
19381 parser->parser_tokenbuf = ((void *)0);
19382 parser->parser_tokidx = 0;
19383 parser->parser_toksiz = 0;
19384 parser->parser_heredoc_end = 0;
19385 parser->parser_command_start = ((VALUE)RUBY_Qtrue);
19386 parser->parser_deferred_nodes = 0;
19387 parser->parser_lex_pbeg = 0;
19388 parser->parser_lex_p = 0;
19389 parser->parser_lex_pend = 0;
19390 parser->parser_lvtbl = 0;
19391 parser->parser_ruby__end__seen = 0;
19392 parser->parser_ruby_sourcefile = 0;
19394 parser->is_ripper = 0;
19395 parser->parser_eval_tree_begin = 0;
19396 parser->parser_eval_tree = 0;
19398 parser->heap = ((void *)0);
19400 parser->enc = rb_usascii_encoding();
19409 parser_mark(void *ptr)
19411 struct parser_params *p = (struct parser_params*)ptr;
19413 rb_gc_mark((VALUE)p->parser_lex_strterm);
19414 rb_gc_mark((VALUE)p->parser_deferred_nodes);
19415 rb_gc_mark(p->parser_lex_input);
19416 rb_gc_mark(p->parser_lex_lastline);
19417 rb_gc_mark(p->parser_lex_nextline);
19419 rb_gc_mark((VALUE)p->parser_eval_tree_begin) ;
19420 rb_gc_mark((VALUE)p->parser_eval_tree) ;
19421 rb_gc_mark(p->debug_lines);
19423 rb_gc_mark((VALUE)p->heap);
19428 parser_free(void *ptr)
19430 struct parser_params *p = (struct parser_params*)ptr;
19431 struct local_vars *local, *prev;
19433 if (p->parser_tokenbuf) {
19434 ruby_xfree(p->parser_tokenbuf);
19436 for (local = p->parser_lvtbl; local; local = prev) {
19437 if (local->vars) ruby_xfree(local->vars);
19438 prev = local->prev;
19442 ruby_xfree(p->parser_ruby_sourcefile);
19447 VALUE rb_parser_get_yydebug(VALUE);
19448 VALUE rb_parser_set_yydebug(VALUE, VALUE);
19451 static struct parser_params *
19454 struct parser_params *p;
19456 p = (struct parser_params*)ruby_xmalloc2((1),sizeof(struct parser_params));
19457 memset((p), 0, sizeof(struct parser_params)*(1));
19458 parser_initialize(p);
19463 rb_parser_new(void)
19465 struct parser_params *p = parser_new();
19467 return rb_data_object_alloc(0,p,(RUBY_DATA_FUNC)parser_mark,(RUBY_DATA_FUNC)parser_free);
19471 rb_parser_end_seen_p(VALUE vparser)
19473 struct parser_params *parser;
19475 do { rb_check_type((VALUE)(vparser),RUBY_T_DATA); parser = (struct parser_params*)(((struct RData*)(vparser))->data);} while (0);
19476 return (parser->parser_ruby__end__seen) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse);
19486 rb_parser_encoding(VALUE vparser)
19488 struct parser_params *parser;
19490 do { rb_check_type((VALUE)(vparser),RUBY_T_DATA); parser = (struct parser_params*)(((struct RData*)(vparser))->data);} while (0);
19491 return rb_enc_from_encoding(parser->enc);
19501 rb_parser_get_yydebug(VALUE self)
19503 struct parser_params *parser;
19505 do { rb_check_type((VALUE)(self),RUBY_T_DATA); parser = (struct parser_params*)(((struct RData*)(self))->data);} while (0);
19506 return (parser->parser_yydebug) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse);
19516 rb_parser_set_yydebug(VALUE self, VALUE flag)
19518 struct parser_params *parser;
19520 do { rb_check_type((VALUE)(self),RUBY_T_DATA); parser = (struct parser_params*)(((struct RData*)(self))->data);} while (0);
19521 (parser->parser_yydebug) = (((VALUE)(flag) & ~((VALUE)RUBY_Qnil)) != 0);
19532 rb_parser_malloc(struct parser_params *parser, size_t size)
19534 size_t cnt = ((1) * (size) / sizeof(YYSTYPE));
19535 NODE *n = node_newnode(parser, NODE_ALLOCA, 0, (VALUE)parser->heap, 0);
19536 void *ptr = ruby_xmalloc(size);
19538 return ((parser->heap = (n))->u1.node = (ptr), (n)->u3.cnt = (cnt), (ptr));
19542 rb_parser_calloc(struct parser_params *parser, size_t nelem, size_t size)
19544 size_t cnt = ((nelem) * (size) / sizeof(YYSTYPE));
19545 NODE *n = node_newnode(parser, NODE_ALLOCA, 0, (VALUE)parser->heap, 0);
19546 void *ptr = ruby_xcalloc(nelem, size);
19548 return ((parser->heap = (n))->u1.node = (ptr), (n)->u3.cnt = (cnt), (ptr));
19552 rb_parser_realloc(struct parser_params *parser, void *ptr, size_t size)
19555 size_t cnt = ((1) * (size) / sizeof(YYSTYPE));
19557 if (ptr && (n = parser->heap) != ((void *)0)) {
19559 if (n->u1.node == ptr) {
19560 n->u1.node = ptr = ruby_xrealloc(ptr, size);
19561 if (n->u3.cnt) n->u3.cnt = cnt;
19564 } while ((n = n->u2.node) != ((void *)0));
19566 n = node_newnode(parser, NODE_ALLOCA, 0, (VALUE)parser->heap, 0);
19567 ptr = ruby_xrealloc(ptr, size);
19568 return ((parser->heap = (n))->u1.node = (ptr), (n)->u3.cnt = (cnt), (ptr));
19572 rb_parser_free(struct parser_params *parser, void *ptr)
19574 NODE **prev = &parser->heap, *n;
19576 while ((n = *prev) != ((void *)0)) {
19577 if (n->u1.node == ptr) {
19578 *prev = n->u2.node;
19579 rb_gc_force_recycle((VALUE)n);
19582 prev = &n->u2.node;