Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 187099 Details for
Bug 264653
gcc 4.3.2-r3 will compile some files very slowly
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
test file
parse_.c (text/plain), 555.30 KB, created by
Flavio Cappelli
on 2009-04-02 16:13:03 UTC
(
hide
)
Description:
test file
Filename:
MIME Type:
Creator:
Flavio Cappelli
Created:
2009-04-02 16:13:03 UTC
Size:
555.30 KB
patch
obsolete
># 1 "parse.c" ># 1 "/home/hramrach/ruby-1.9.1-rc1//" ># 1 "<built-in>" ># 1 "<command-line>" ># 1 "parse.c" ># 68 "parse.c" > enum yytokentype { > keyword_class = 258, > keyword_module = 259, > keyword_def = 260, > keyword_undef = 261, > keyword_begin = 262, > keyword_rescue = 263, > keyword_ensure = 264, > keyword_end = 265, > keyword_if = 266, > keyword_unless = 267, > keyword_then = 268, > keyword_elsif = 269, > keyword_else = 270, > keyword_case = 271, > keyword_when = 272, > keyword_while = 273, > keyword_until = 274, > keyword_for = 275, > keyword_break = 276, > keyword_next = 277, > keyword_redo = 278, > keyword_retry = 279, > keyword_in = 280, > keyword_do = 281, > keyword_do_cond = 282, > keyword_do_block = 283, > keyword_do_LAMBDA = 284, > keyword_return = 285, > keyword_yield = 286, > keyword_super = 287, > keyword_self = 288, > keyword_nil = 289, > keyword_true = 290, > keyword_false = 291, > keyword_and = 292, > keyword_or = 293, > keyword_not = 294, > modifier_if = 295, > modifier_unless = 296, > modifier_while = 297, > modifier_until = 298, > modifier_rescue = 299, > keyword_alias = 300, > keyword_defined = 301, > keyword_BEGIN = 302, > keyword_END = 303, > keyword__LINE__ = 304, > keyword__FILE__ = 305, > keyword__ENCODING__ = 306, > tIDENTIFIER = 307, > tFID = 308, > tGVAR = 309, > tIVAR = 310, > tCONSTANT = 311, > tCVAR = 312, > tLABEL = 313, > tINTEGER = 314, > tFLOAT = 315, > tSTRING_CONTENT = 316, > tCHAR = 317, > tNTH_REF = 318, > tBACK_REF = 319, > tREGEXP_END = 320, > tUPLUS = 321, > tUMINUS = 322, > tPOW = 323, > tCMP = 324, > tEQ = 325, > tEQQ = 326, > tNEQ = 327, > tGEQ = 328, > tLEQ = 329, > tANDOP = 330, > tOROP = 331, > tMATCH = 332, > tNMATCH = 333, > tDOT2 = 334, > tDOT3 = 335, > tAREF = 336, > tASET = 337, > tLSHFT = 338, > tRSHFT = 339, > tCOLON2 = 340, > tCOLON3 = 341, > tOP_ASGN = 342, > tASSOC = 343, > tLPAREN = 344, > tLPAREN_ARG = 345, > tRPAREN = 346, > tLBRACK = 347, > tLBRACE = 348, > tLBRACE_ARG = 349, > tSTAR = 350, > tAMPER = 351, > tLAMBDA = 352, > tSYMBEG = 353, > tSTRING_BEG = 354, > tXSTRING_BEG = 355, > tREGEXP_BEG = 356, > tWORDS_BEG = 357, > tQWORDS_BEG = 358, > tSTRING_DBEG = 359, > tSTRING_DVAR = 360, > tSTRING_END = 361, > tLAMBEG = 362, > tLOWEST = 363, > tUMINUS_NUM = 364, > idNULL = 365, > idRespond_to = 366, > idIFUNC = 367, > idCFUNC = 368, > idThrowState = 369, > id_core_set_method_alias = 370, > id_core_set_variable_alias = 371, > id_core_undef_method = 372, > id_core_define_method = 373, > id_core_define_singleton_method = 374, > id_core_set_postexe = 375, > tLAST_TOKEN = 376 > }; ># 12 "parse.y" > > > > > > ># 1 "./include/ruby/ruby.h" 1 ># 25 "./include/ruby/ruby.h" ># 1 ".ext/include/i686-linux/ruby/config.h" 1 ># 26 "./include/ruby/ruby.h" 2 ># 50 "./include/ruby/ruby.h" ># 1 "/usr/include/stdlib.h" 1 3 4 ># 25 "/usr/include/stdlib.h" 3 4 ># 1 "/usr/include/features.h" 1 3 4 ># 330 "/usr/include/features.h" 3 4 ># 1 "/usr/include/sys/cdefs.h" 1 3 4 ># 348 "/usr/include/sys/cdefs.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 349 "/usr/include/sys/cdefs.h" 2 3 4 ># 331 "/usr/include/features.h" 2 3 4 ># 354 "/usr/include/features.h" 3 4 ># 1 "/usr/include/gnu/stubs.h" 1 3 4 > > > ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 5 "/usr/include/gnu/stubs.h" 2 3 4 > > ># 1 "/usr/include/gnu/stubs-32.h" 1 3 4 ># 8 "/usr/include/gnu/stubs.h" 2 3 4 ># 355 "/usr/include/features.h" 2 3 4 ># 26 "/usr/include/stdlib.h" 2 3 4 > > > > > > > ># 1 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include/stddef.h" 1 3 4 ># 214 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include/stddef.h" 3 4 >typedef unsigned int size_t; ># 326 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include/stddef.h" 3 4 >typedef int wchar_t; ># 34 "/usr/include/stdlib.h" 2 3 4 > > > > > > > > ># 1 "/usr/include/bits/waitflags.h" 1 3 4 ># 43 "/usr/include/stdlib.h" 2 3 4 ># 1 "/usr/include/bits/waitstatus.h" 1 3 4 ># 65 "/usr/include/bits/waitstatus.h" 3 4 ># 1 "/usr/include/endian.h" 1 3 4 ># 37 "/usr/include/endian.h" 3 4 ># 1 "/usr/include/bits/endian.h" 1 3 4 ># 38 "/usr/include/endian.h" 2 3 4 ># 66 "/usr/include/bits/waitstatus.h" 2 3 4 > >union wait > { > int w_status; > struct > { > > unsigned int __w_termsig:7; > unsigned int __w_coredump:1; > unsigned int __w_retcode:8; > unsigned int:16; > > > > > > > > } __wait_terminated; > struct > { > > unsigned int __w_stopval:8; > unsigned int __w_stopsig:8; > unsigned int:16; > > > > > > > } __wait_stopped; > }; ># 44 "/usr/include/stdlib.h" 2 3 4 ># 68 "/usr/include/stdlib.h" 3 4 >typedef union > { > union wait *__uptr; > int *__iptr; > } __WAIT_STATUS __attribute__ ((__transparent_union__)); ># 96 "/usr/include/stdlib.h" 3 4 > > >typedef struct > { > int quot; > int rem; > } div_t; > > > >typedef struct > { > long int quot; > long int rem; > } ldiv_t; > > > > > > > >__extension__ typedef struct > { > long long int quot; > long long int rem; > } lldiv_t; > > ># 140 "/usr/include/stdlib.h" 3 4 >extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__)) ; > > > > >extern double atof (__const char *__nptr) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; > >extern int atoi (__const char *__nptr) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; > >extern long int atol (__const char *__nptr) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; > > > > > >__extension__ extern long long int atoll (__const char *__nptr) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; > > > > > >extern double strtod (__const char *__restrict __nptr, > char **__restrict __endptr) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; > > > > > >extern float strtof (__const char *__restrict __nptr, > char **__restrict __endptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; > >extern long double strtold (__const char *__restrict __nptr, > char **__restrict __endptr) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; > > > > > >extern long int strtol (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; > >extern unsigned long int strtoul (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; > > > > >__extension__ >extern long long int strtoq (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; > >__extension__ >extern unsigned long long int strtouq (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; > > > > > >__extension__ >extern long long int strtoll (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; > >__extension__ >extern unsigned long long int strtoull (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; > ># 236 "/usr/include/stdlib.h" 3 4 ># 1 "/usr/include/xlocale.h" 1 3 4 ># 28 "/usr/include/xlocale.h" 3 4 >typedef struct __locale_struct >{ > > struct locale_data *__locales[13]; > > > const unsigned short int *__ctype_b; > const int *__ctype_tolower; > const int *__ctype_toupper; > > > const char *__names[13]; >} *__locale_t; ># 237 "/usr/include/stdlib.h" 2 3 4 > > > >extern long int strtol_l (__const char *__restrict __nptr, > char **__restrict __endptr, int __base, > __locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) ; > >extern unsigned long int strtoul_l (__const char *__restrict __nptr, > char **__restrict __endptr, > int __base, __locale_t __loc) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) ; > >__extension__ >extern long long int strtoll_l (__const char *__restrict __nptr, > char **__restrict __endptr, int __base, > __locale_t __loc) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) ; > >__extension__ >extern unsigned long long int strtoull_l (__const char *__restrict __nptr, > char **__restrict __endptr, > int __base, __locale_t __loc) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) ; > >extern double strtod_l (__const char *__restrict __nptr, > char **__restrict __endptr, __locale_t __loc) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) ; > >extern float strtof_l (__const char *__restrict __nptr, > char **__restrict __endptr, __locale_t __loc) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) ; > >extern long double strtold_l (__const char *__restrict __nptr, > char **__restrict __endptr, > __locale_t __loc) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) ; > > > > > >extern __inline double >__attribute__ ((__nothrow__)) atof (__const char *__nptr) >{ > return strtod (__nptr, (char **) ((void *)0)); >} >extern __inline int >__attribute__ ((__nothrow__)) atoi (__const char *__nptr) >{ > return (int) strtol (__nptr, (char **) ((void *)0), 10); >} >extern __inline long int >__attribute__ ((__nothrow__)) atol (__const char *__nptr) >{ > return strtol (__nptr, (char **) ((void *)0), 10); >} > > > > >__extension__ extern __inline long long int >__attribute__ ((__nothrow__)) atoll (__const char *__nptr) >{ > return strtoll (__nptr, (char **) ((void *)0), 10); >} > ># 311 "/usr/include/stdlib.h" 3 4 >extern char *l64a (long int __n) __attribute__ ((__nothrow__)) ; > > >extern long int a64l (__const char *__s) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; > > > > ># 1 "/usr/include/sys/types.h" 1 3 4 ># 29 "/usr/include/sys/types.h" 3 4 > > ># 1 "/usr/include/bits/types.h" 1 3 4 ># 28 "/usr/include/bits/types.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 29 "/usr/include/bits/types.h" 2 3 4 > > >typedef unsigned char __u_char; >typedef unsigned short int __u_short; >typedef unsigned int __u_int; >typedef unsigned long int __u_long; > > >typedef signed char __int8_t; >typedef unsigned char __uint8_t; >typedef signed short int __int16_t; >typedef unsigned short int __uint16_t; >typedef signed int __int32_t; >typedef unsigned int __uint32_t; > > > > >__extension__ typedef signed long long int __int64_t; >__extension__ typedef unsigned long long int __uint64_t; > > > > > > > >__extension__ typedef long long int __quad_t; >__extension__ typedef unsigned long long int __u_quad_t; ># 131 "/usr/include/bits/types.h" 3 4 ># 1 "/usr/include/bits/typesizes.h" 1 3 4 ># 132 "/usr/include/bits/types.h" 2 3 4 > > >__extension__ typedef __u_quad_t __dev_t; >__extension__ typedef unsigned int __uid_t; >__extension__ typedef unsigned int __gid_t; >__extension__ typedef unsigned long int __ino_t; >__extension__ typedef __u_quad_t __ino64_t; >__extension__ typedef unsigned int __mode_t; >__extension__ typedef unsigned int __nlink_t; >__extension__ typedef long int __off_t; >__extension__ typedef __quad_t __off64_t; >__extension__ typedef int __pid_t; >__extension__ typedef struct { int __val[2]; } __fsid_t; >__extension__ typedef long int __clock_t; >__extension__ typedef unsigned long int __rlim_t; >__extension__ typedef __u_quad_t __rlim64_t; >__extension__ typedef unsigned int __id_t; >__extension__ typedef long int __time_t; >__extension__ typedef unsigned int __useconds_t; >__extension__ typedef long int __suseconds_t; > >__extension__ typedef int __daddr_t; >__extension__ typedef long int __swblk_t; >__extension__ typedef int __key_t; > > >__extension__ typedef int __clockid_t; > > >__extension__ typedef void * __timer_t; > > >__extension__ typedef long int __blksize_t; > > > > >__extension__ typedef long int __blkcnt_t; >__extension__ typedef __quad_t __blkcnt64_t; > > >__extension__ typedef unsigned long int __fsblkcnt_t; >__extension__ typedef __u_quad_t __fsblkcnt64_t; > > >__extension__ typedef unsigned long int __fsfilcnt_t; >__extension__ typedef __u_quad_t __fsfilcnt64_t; > >__extension__ typedef int __ssize_t; > > > >typedef __off64_t __loff_t; >typedef __quad_t *__qaddr_t; >typedef char *__caddr_t; > > >__extension__ typedef int __intptr_t; > > >__extension__ typedef unsigned int __socklen_t; ># 32 "/usr/include/sys/types.h" 2 3 4 > > > >typedef __u_char u_char; >typedef __u_short u_short; >typedef __u_int u_int; >typedef __u_long u_long; >typedef __quad_t quad_t; >typedef __u_quad_t u_quad_t; >typedef __fsid_t fsid_t; > > > > >typedef __loff_t loff_t; > > > > > >typedef __ino64_t ino_t; > > > > >typedef __ino64_t ino64_t; > > > > >typedef __dev_t dev_t; > > > > >typedef __gid_t gid_t; > > > > >typedef __mode_t mode_t; > > > > >typedef __nlink_t nlink_t; > > > > >typedef __uid_t uid_t; > > > > > > > >typedef __off64_t off_t; > > > > >typedef __off64_t off64_t; > > > > >typedef __pid_t pid_t; > > > > >typedef __id_t id_t; > > > > >typedef __ssize_t ssize_t; > > > > > >typedef __daddr_t daddr_t; >typedef __caddr_t caddr_t; > > > > > >typedef __key_t key_t; ># 133 "/usr/include/sys/types.h" 3 4 ># 1 "/usr/include/time.h" 1 3 4 ># 59 "/usr/include/time.h" 3 4 > > >typedef __clock_t clock_t; > > > ># 75 "/usr/include/time.h" 3 4 > > >typedef __time_t time_t; > > > ># 93 "/usr/include/time.h" 3 4 >typedef __clockid_t clockid_t; ># 105 "/usr/include/time.h" 3 4 >typedef __timer_t timer_t; ># 134 "/usr/include/sys/types.h" 2 3 4 > > > >typedef __useconds_t useconds_t; > > > >typedef __suseconds_t suseconds_t; > > > > > ># 1 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include/stddef.h" 1 3 4 ># 148 "/usr/include/sys/types.h" 2 3 4 > > > >typedef unsigned long int ulong; >typedef unsigned short int ushort; >typedef unsigned int uint; ># 195 "/usr/include/sys/types.h" 3 4 >typedef int int8_t __attribute__ ((__mode__ (__QI__))); >typedef int int16_t __attribute__ ((__mode__ (__HI__))); >typedef int int32_t __attribute__ ((__mode__ (__SI__))); >typedef int int64_t __attribute__ ((__mode__ (__DI__))); > > >typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); >typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); >typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); >typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); > >typedef int register_t __attribute__ ((__mode__ (__word__))); ># 220 "/usr/include/sys/types.h" 3 4 ># 1 "/usr/include/sys/select.h" 1 3 4 ># 31 "/usr/include/sys/select.h" 3 4 ># 1 "/usr/include/bits/select.h" 1 3 4 ># 32 "/usr/include/sys/select.h" 2 3 4 > > ># 1 "/usr/include/bits/sigset.h" 1 3 4 ># 24 "/usr/include/bits/sigset.h" 3 4 >typedef int __sig_atomic_t; > > > > >typedef struct > { > unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; > } __sigset_t; ># 35 "/usr/include/sys/select.h" 2 3 4 > > > >typedef __sigset_t sigset_t; > > > > > ># 1 "/usr/include/time.h" 1 3 4 ># 121 "/usr/include/time.h" 3 4 >struct timespec > { > __time_t tv_sec; > long int tv_nsec; > }; ># 45 "/usr/include/sys/select.h" 2 3 4 > ># 1 "/usr/include/bits/time.h" 1 3 4 ># 69 "/usr/include/bits/time.h" 3 4 >struct timeval > { > __time_t tv_sec; > __suseconds_t tv_usec; > }; ># 47 "/usr/include/sys/select.h" 2 3 4 ># 55 "/usr/include/sys/select.h" 3 4 >typedef long int __fd_mask; ># 67 "/usr/include/sys/select.h" 3 4 >typedef struct > { > > > > __fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))]; > > > > > > } fd_set; > > > > > > >typedef __fd_mask fd_mask; ># 99 "/usr/include/sys/select.h" 3 4 > ># 109 "/usr/include/sys/select.h" 3 4 >extern int select (int __nfds, fd_set *__restrict __readfds, > fd_set *__restrict __writefds, > fd_set *__restrict __exceptfds, > struct timeval *__restrict __timeout); ># 121 "/usr/include/sys/select.h" 3 4 >extern int pselect (int __nfds, fd_set *__restrict __readfds, > fd_set *__restrict __writefds, > fd_set *__restrict __exceptfds, > const struct timespec *__restrict __timeout, > const __sigset_t *__restrict __sigmask); > > > ># 221 "/usr/include/sys/types.h" 2 3 4 > > ># 1 "/usr/include/sys/sysmacros.h" 1 3 4 ># 30 "/usr/include/sys/sysmacros.h" 3 4 >__extension__ >extern unsigned int gnu_dev_major (unsigned long long int __dev) > __attribute__ ((__nothrow__)); >__extension__ >extern unsigned int gnu_dev_minor (unsigned long long int __dev) > __attribute__ ((__nothrow__)); >__extension__ >extern unsigned long long int gnu_dev_makedev (unsigned int __major, > unsigned int __minor) > __attribute__ ((__nothrow__)); > > >__extension__ extern __inline unsigned int >__attribute__ ((__nothrow__)) gnu_dev_major (unsigned long long int __dev) >{ > return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff); >} > >__extension__ extern __inline unsigned int >__attribute__ ((__nothrow__)) gnu_dev_minor (unsigned long long int __dev) >{ > return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff); >} > >__extension__ extern __inline unsigned long long int >__attribute__ ((__nothrow__)) gnu_dev_makedev (unsigned int __major, unsigned int __minor) >{ > return ((__minor & 0xff) | ((__major & 0xfff) << 8) > | (((unsigned long long int) (__minor & ~0xff)) << 12) > | (((unsigned long long int) (__major & ~0xfff)) << 32)); >} ># 224 "/usr/include/sys/types.h" 2 3 4 > > > > >typedef __blksize_t blksize_t; ># 248 "/usr/include/sys/types.h" 3 4 >typedef __blkcnt64_t blkcnt_t; > > > >typedef __fsblkcnt64_t fsblkcnt_t; > > > >typedef __fsfilcnt64_t fsfilcnt_t; > > > > > >typedef __blkcnt64_t blkcnt64_t; >typedef __fsblkcnt64_t fsblkcnt64_t; >typedef __fsfilcnt64_t fsfilcnt64_t; > > > > > ># 1 "/usr/include/bits/pthreadtypes.h" 1 3 4 ># 23 "/usr/include/bits/pthreadtypes.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 24 "/usr/include/bits/pthreadtypes.h" 2 3 4 ># 50 "/usr/include/bits/pthreadtypes.h" 3 4 >typedef unsigned long int pthread_t; > > >typedef union >{ > char __size[36]; > long int __align; >} pthread_attr_t; ># 67 "/usr/include/bits/pthreadtypes.h" 3 4 >typedef struct __pthread_internal_slist >{ > struct __pthread_internal_slist *__next; >} __pthread_slist_t; > > > > > >typedef union >{ > struct __pthread_mutex_s > { > int __lock; > unsigned int __count; > int __owner; > > > > > > int __kind; > > > > > > unsigned int __nusers; > __extension__ union > { > int __spins; > __pthread_slist_t __list; > }; > > } __data; > char __size[24]; > long int __align; >} pthread_mutex_t; > >typedef union >{ > char __size[4]; > int __align; >} pthread_mutexattr_t; > > > > >typedef union >{ > struct > { > int __lock; > unsigned int __futex; > __extension__ unsigned long long int __total_seq; > __extension__ unsigned long long int __wakeup_seq; > __extension__ unsigned long long int __woken_seq; > void *__mutex; > unsigned int __nwaiters; > unsigned int __broadcast_seq; > } __data; > char __size[48]; > __extension__ long long int __align; >} pthread_cond_t; > >typedef union >{ > char __size[4]; > int __align; >} pthread_condattr_t; > > > >typedef unsigned int pthread_key_t; > > > >typedef int pthread_once_t; > > > > > >typedef union >{ ># 170 "/usr/include/bits/pthreadtypes.h" 3 4 > struct > { > int __lock; > unsigned int __nr_readers; > unsigned int __readers_wakeup; > unsigned int __writer_wakeup; > unsigned int __nr_readers_queued; > unsigned int __nr_writers_queued; > > > unsigned char __flags; > unsigned char __shared; > unsigned char __pad1; > unsigned char __pad2; > int __writer; > } __data; > > char __size[32]; > long int __align; >} pthread_rwlock_t; > >typedef union >{ > char __size[8]; > long int __align; >} pthread_rwlockattr_t; > > > > > >typedef volatile int pthread_spinlock_t; > > > > >typedef union >{ > char __size[20]; > long int __align; >} pthread_barrier_t; > >typedef union >{ > char __size[4]; > int __align; >} pthread_barrierattr_t; ># 271 "/usr/include/sys/types.h" 2 3 4 > > > ># 321 "/usr/include/stdlib.h" 2 3 4 > > > > > > >extern long int random (void) __attribute__ ((__nothrow__)); > > >extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__)); > > > > > >extern char *initstate (unsigned int __seed, char *__statebuf, > size_t __statelen) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); > > > >extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > > > > >struct random_data > { > int32_t *fptr; > int32_t *rptr; > int32_t *state; > int rand_type; > int rand_deg; > int rand_sep; > int32_t *end_ptr; > }; > >extern int random_r (struct random_data *__restrict __buf, > int32_t *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > >extern int srandom_r (unsigned int __seed, struct random_data *__buf) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); > >extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, > size_t __statelen, > struct random_data *__restrict __buf) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))); > >extern int setstate_r (char *__restrict __statebuf, > struct random_data *__restrict __buf) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > > >extern int rand (void) __attribute__ ((__nothrow__)); > >extern void srand (unsigned int __seed) __attribute__ ((__nothrow__)); > > > > >extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__)); > > > > > > > >extern double drand48 (void) __attribute__ ((__nothrow__)); >extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern long int lrand48 (void) __attribute__ ((__nothrow__)); >extern long int nrand48 (unsigned short int __xsubi[3]) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern long int mrand48 (void) __attribute__ ((__nothrow__)); >extern long int jrand48 (unsigned short int __xsubi[3]) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern void srand48 (long int __seedval) __attribute__ ((__nothrow__)); >extern unsigned short int *seed48 (unsigned short int __seed16v[3]) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); >extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > > >struct drand48_data > { > unsigned short int __x[3]; > unsigned short int __old_x[3]; > unsigned short int __c; > unsigned short int __init; > unsigned long long int __a; > }; > > >extern int drand48_r (struct drand48_data *__restrict __buffer, > double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); >extern int erand48_r (unsigned short int __xsubi[3], > struct drand48_data *__restrict __buffer, > double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int lrand48_r (struct drand48_data *__restrict __buffer, > long int *__restrict __result) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); >extern int nrand48_r (unsigned short int __xsubi[3], > struct drand48_data *__restrict __buffer, > long int *__restrict __result) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int mrand48_r (struct drand48_data *__restrict __buffer, > long int *__restrict __result) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); >extern int jrand48_r (unsigned short int __xsubi[3], > struct drand48_data *__restrict __buffer, > long int *__restrict __result) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int srand48_r (long int __seedval, struct drand48_data *__buffer) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); > >extern int seed48_r (unsigned short int __seed16v[3], > struct drand48_data *__buffer) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > >extern int lcong48_r (unsigned short int __param[7], > struct drand48_data *__buffer) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > > > > > >extern void *malloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ; > >extern void *calloc (size_t __nmemb, size_t __size) > __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ; > > > > > > > > > > >extern void *realloc (void *__ptr, size_t __size) > __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); > >extern void free (void *__ptr) __attribute__ ((__nothrow__)); > > > > >extern void cfree (void *__ptr) __attribute__ ((__nothrow__)); > > > ># 1 "/usr/include/alloca.h" 1 3 4 ># 25 "/usr/include/alloca.h" 3 4 ># 1 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include/stddef.h" 1 3 4 ># 26 "/usr/include/alloca.h" 2 3 4 > > > > > > > >extern void *alloca (size_t __size) __attribute__ ((__nothrow__)); > > > > > > ># 498 "/usr/include/stdlib.h" 2 3 4 > > > > >extern void *valloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ; > > > > >extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; > > > > >extern void abort (void) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); > > > >extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > > > >extern void exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); > > > > > > >extern void _Exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); > > > > > > >extern char *getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; > > > > >extern char *__secure_getenv (__const char *__name) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; > > > > > >extern int putenv (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern int setenv (__const char *__name, __const char *__value, int __replace) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); > > >extern int unsetenv (__const char *__name) __attribute__ ((__nothrow__)); > > > > > > >extern int clearenv (void) __attribute__ ((__nothrow__)); ># 583 "/usr/include/stdlib.h" 3 4 >extern char *mktemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; ># 597 "/usr/include/stdlib.h" 3 4 >extern int mkstemp (char *__template) __asm__ ("" "mkstemp64") > __attribute__ ((__nonnull__ (1))) ; > > > > > >extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ; ># 614 "/usr/include/stdlib.h" 3 4 >extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; ># 628 "/usr/include/stdlib.h" 3 4 >extern int mkostemp (char *__template, int __flags) __asm__ ("" "mkostemp64") > __attribute__ ((__nonnull__ (1))) ; > > > > > >extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ; > > > > > > > > > >extern int system (__const char *__command) ; > > > > > > >extern char *canonicalize_file_name (__const char *__name) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; ># 662 "/usr/include/stdlib.h" 3 4 >extern char *realpath (__const char *__restrict __name, > char *__restrict __resolved) __attribute__ ((__nothrow__)) ; > > > > > > >typedef int (*__compar_fn_t) (__const void *, __const void *); > > >typedef __compar_fn_t comparison_fn_t; > > > > > > >extern void *bsearch (__const void *__key, __const void *__base, > size_t __nmemb, size_t __size, __compar_fn_t __compar) > __attribute__ ((__nonnull__ (1, 2, 5))) ; > > > >extern void qsort (void *__base, size_t __nmemb, size_t __size, > __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); > > > >extern int abs (int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ; >extern long int labs (long int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ; > > > >__extension__ extern long long int llabs (long long int __x) > __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ; > > > > > > > >extern div_t div (int __numer, int __denom) > __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ; >extern ldiv_t ldiv (long int __numer, long int __denom) > __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ; > > > > >__extension__ extern lldiv_t lldiv (long long int __numer, > long long int __denom) > __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ; > ># 727 "/usr/include/stdlib.h" 3 4 >extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ; > > > > >extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ; > > > > >extern char *gcvt (double __value, int __ndigit, char *__buf) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) ; > > > > >extern char *qecvt (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ; >extern char *qfcvt (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ; >extern char *qgcvt (long double __value, int __ndigit, char *__buf) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) ; > > > > >extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign, char *__restrict __buf, > size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5))); >extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign, char *__restrict __buf, > size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5))); > >extern int qecvt_r (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign, > char *__restrict __buf, size_t __len) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5))); >extern int qfcvt_r (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign, > char *__restrict __buf, size_t __len) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5))); > > > > > > > >extern int mblen (__const char *__s, size_t __n) __attribute__ ((__nothrow__)) ; > > >extern int mbtowc (wchar_t *__restrict __pwc, > __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__)) ; > > >extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__)) ; > > > >extern size_t mbstowcs (wchar_t *__restrict __pwcs, > __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__)); > >extern size_t wcstombs (char *__restrict __s, > __const wchar_t *__restrict __pwcs, size_t __n) > __attribute__ ((__nothrow__)); > > > > > > > > >extern int rpmatch (__const char *__response) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; ># 815 "/usr/include/stdlib.h" 3 4 >extern int getsubopt (char **__restrict __optionp, > char *__const *__restrict __tokens, > char **__restrict __valuep) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3))) ; > > > > > >extern void setkey (__const char *__key) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > > > > >extern int posix_openpt (int __oflag) ; > > > > > > > >extern int grantpt (int __fd) __attribute__ ((__nothrow__)); > > > >extern int unlockpt (int __fd) __attribute__ ((__nothrow__)); > > > > >extern char *ptsname (int __fd) __attribute__ ((__nothrow__)) ; > > > > > > >extern int ptsname_r (int __fd, char *__buf, size_t __buflen) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); > > >extern int getpt (void); > > > > > > >extern int getloadavg (double __loadavg[], int __nelem) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); ># 883 "/usr/include/stdlib.h" 3 4 > ># 51 "./include/ruby/ruby.h" 2 > > > ># 1 "/usr/include/string.h" 1 3 4 ># 28 "/usr/include/string.h" 3 4 > > > > > ># 1 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include/stddef.h" 1 3 4 ># 34 "/usr/include/string.h" 2 3 4 > > > > >extern void *memcpy (void *__restrict __dest, > __const void *__restrict __src, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern void *memmove (void *__dest, __const void *__src, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > > >extern void *memccpy (void *__restrict __dest, __const void *__restrict __src, > int __c, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int memcmp (__const void *__s1, __const void *__s2, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern void *memchr (__const void *__s, int __c, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern void *rawmemchr (__const void *__s, int __c) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > >extern void *memrchr (__const void *__s, int __c, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern char *strcpy (char *__restrict __dest, __const char *__restrict __src) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > >extern char *strncpy (char *__restrict __dest, > __const char *__restrict __src, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern char *strcat (char *__restrict __dest, __const char *__restrict __src) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > >extern char *strncat (char *__restrict __dest, __const char *__restrict __src, > size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int strcmp (__const char *__s1, __const char *__s2) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern int strncmp (__const char *__s1, __const char *__s2, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int strcoll (__const char *__s1, __const char *__s2) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern size_t strxfrm (char *__restrict __dest, > __const char *__restrict __src, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); > ># 121 "/usr/include/string.h" 3 4 >extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); > >extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n, > __locale_t __l) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))); > > > > >extern char *strdup (__const char *__s) > __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); > > > > > > >extern char *strndup (__const char *__string, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); ># 165 "/usr/include/string.h" 3 4 > > >extern char *strchr (__const char *__s, int __c) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > >extern char *strrchr (__const char *__s, int __c) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern char *strchrnul (__const char *__s, int __c) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern size_t strcspn (__const char *__s, __const char *__reject) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern size_t strspn (__const char *__s, __const char *__accept) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern char *strpbrk (__const char *__s, __const char *__accept) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern char *strstr (__const char *__haystack, __const char *__needle) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > > >extern char *strtok (char *__restrict __s, __const char *__restrict __delim) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); > > > > >extern char *__strtok_r (char *__restrict __s, > __const char *__restrict __delim, > char **__restrict __save_ptr) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); > >extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim, > char **__restrict __save_ptr) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); > > > > >extern char *strcasestr (__const char *__haystack, __const char *__needle) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > > >extern void *memmem (__const void *__haystack, size_t __haystacklen, > __const void *__needle, size_t __needlelen) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))); > > > >extern void *__mempcpy (void *__restrict __dest, > __const void *__restrict __src, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); >extern void *mempcpy (void *__restrict __dest, > __const void *__restrict __src, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern size_t strlen (__const char *__s) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern size_t strnlen (__const char *__string, size_t __maxlen) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern char *strerror (int __errnum) __attribute__ ((__nothrow__)); > ># 281 "/usr/include/string.h" 3 4 >extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); > > > > > >extern char *strerror_l (int __errnum, __locale_t __l) __attribute__ ((__nothrow__)); > > > > > >extern void __bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > >extern void bcopy (__const void *__src, void *__dest, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int bcmp (__const void *__s1, __const void *__s2, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern char *index (__const char *__s, int __c) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > >extern char *rindex (__const char *__s, int __c) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > >extern int ffs (int __i) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > > >extern int ffsl (long int __l) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > >__extension__ extern int ffsll (long long int __ll) > __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > > >extern int strcasecmp (__const char *__s1, __const char *__s2) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern int strcasecmp_l (__const char *__s1, __const char *__s2, > __locale_t __loc) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); > >extern int strncasecmp_l (__const char *__s1, __const char *__s2, > size_t __n, __locale_t __loc) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); > > > > > >extern char *strsep (char **__restrict __stringp, > __const char *__restrict __delim) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > > >extern int strverscmp (__const char *__s1, __const char *__s2) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern char *strsignal (int __sig) __attribute__ ((__nothrow__)); > > >extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); >extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > >extern char *__stpncpy (char *__restrict __dest, > __const char *__restrict __src, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); >extern char *stpncpy (char *__restrict __dest, > __const char *__restrict __src, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern char *strfry (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern void *memfrob (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > > > >extern char *basename (__const char *__filename) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); ># 420 "/usr/include/string.h" 3 4 ># 1 "/usr/include/bits/string.h" 1 3 4 ># 421 "/usr/include/string.h" 2 3 4 > > ># 1 "/usr/include/bits/string2.h" 1 3 4 ># 394 "/usr/include/bits/string2.h" 3 4 >extern void *__rawmemchr (const void *__s, int __c); ># 969 "/usr/include/bits/string2.h" 3 4 >extern __inline size_t __strcspn_c1 (__const char *__s, int __reject); >extern __inline size_t >__strcspn_c1 (__const char *__s, int __reject) >{ > register size_t __result = 0; > while (__s[__result] != '\0' && __s[__result] != __reject) > ++__result; > return __result; >} > >extern __inline size_t __strcspn_c2 (__const char *__s, int __reject1, > int __reject2); >extern __inline size_t >__strcspn_c2 (__const char *__s, int __reject1, int __reject2) >{ > register size_t __result = 0; > while (__s[__result] != '\0' && __s[__result] != __reject1 > && __s[__result] != __reject2) > ++__result; > return __result; >} > >extern __inline size_t __strcspn_c3 (__const char *__s, int __reject1, > int __reject2, int __reject3); >extern __inline size_t >__strcspn_c3 (__const char *__s, int __reject1, int __reject2, > int __reject3) >{ > register size_t __result = 0; > while (__s[__result] != '\0' && __s[__result] != __reject1 > && __s[__result] != __reject2 && __s[__result] != __reject3) > ++__result; > return __result; >} ># 1045 "/usr/include/bits/string2.h" 3 4 >extern __inline size_t __strspn_c1 (__const char *__s, int __accept); >extern __inline size_t >__strspn_c1 (__const char *__s, int __accept) >{ > register size_t __result = 0; > > while (__s[__result] == __accept) > ++__result; > return __result; >} > >extern __inline size_t __strspn_c2 (__const char *__s, int __accept1, > int __accept2); >extern __inline size_t >__strspn_c2 (__const char *__s, int __accept1, int __accept2) >{ > register size_t __result = 0; > > while (__s[__result] == __accept1 || __s[__result] == __accept2) > ++__result; > return __result; >} > >extern __inline size_t __strspn_c3 (__const char *__s, int __accept1, > int __accept2, int __accept3); >extern __inline size_t >__strspn_c3 (__const char *__s, int __accept1, int __accept2, int __accept3) >{ > register size_t __result = 0; > > while (__s[__result] == __accept1 || __s[__result] == __accept2 > || __s[__result] == __accept3) > ++__result; > return __result; >} ># 1121 "/usr/include/bits/string2.h" 3 4 >extern __inline char *__strpbrk_c2 (__const char *__s, int __accept1, > int __accept2); >extern __inline char * >__strpbrk_c2 (__const char *__s, int __accept1, int __accept2) >{ > > while (*__s != '\0' && *__s != __accept1 && *__s != __accept2) > ++__s; > return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s; >} > >extern __inline char *__strpbrk_c3 (__const char *__s, int __accept1, > int __accept2, int __accept3); >extern __inline char * >__strpbrk_c3 (__const char *__s, int __accept1, int __accept2, > int __accept3) >{ > > while (*__s != '\0' && *__s != __accept1 && *__s != __accept2 > && *__s != __accept3) > ++__s; > return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s; >} ># 1173 "/usr/include/bits/string2.h" 3 4 >extern __inline char *__strtok_r_1c (char *__s, char __sep, char **__nextp); >extern __inline char * >__strtok_r_1c (char *__s, char __sep, char **__nextp) >{ > char *__result; > if (__s == ((void *)0)) > __s = *__nextp; > while (*__s == __sep) > ++__s; > __result = ((void *)0); > if (*__s != '\0') > { > __result = __s++; > while (*__s != '\0') > if (*__s++ == __sep) > { > __s[-1] = '\0'; > break; > } > *__nextp = __s; > } > return __result; >} ># 1205 "/usr/include/bits/string2.h" 3 4 >extern char *__strsep_g (char **__stringp, __const char *__delim); ># 1223 "/usr/include/bits/string2.h" 3 4 >extern __inline char *__strsep_1c (char **__s, char __reject); >extern __inline char * >__strsep_1c (char **__s, char __reject) >{ > register char *__retval = *__s; > 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)) > *(*__s)++ = '\0'; > return __retval; >} > >extern __inline char *__strsep_2c (char **__s, char __reject1, char __reject2); >extern __inline char * >__strsep_2c (char **__s, char __reject1, char __reject2) >{ > register char *__retval = *__s; > if (__retval != ((void *)0)) > { > register char *__cp = __retval; > while (1) > { > if (*__cp == '\0') > { > __cp = ((void *)0); > break; > } > if (*__cp == __reject1 || *__cp == __reject2) > { > *__cp++ = '\0'; > break; > } > ++__cp; > } > *__s = __cp; > } > return __retval; >} > >extern __inline char *__strsep_3c (char **__s, char __reject1, char __reject2, > char __reject3); >extern __inline char * >__strsep_3c (char **__s, char __reject1, char __reject2, char __reject3) >{ > register char *__retval = *__s; > if (__retval != ((void *)0)) > { > register char *__cp = __retval; > while (1) > { > if (*__cp == '\0') > { > __cp = ((void *)0); > break; > } > if (*__cp == __reject1 || *__cp == __reject2 || *__cp == __reject3) > { > *__cp++ = '\0'; > break; > } > ++__cp; > } > *__s = __cp; > } > return __retval; >} ># 1304 "/usr/include/bits/string2.h" 3 4 >extern char *__strdup (__const char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)); ># 1323 "/usr/include/bits/string2.h" 3 4 >extern char *__strndup (__const char *__string, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)); ># 424 "/usr/include/string.h" 2 3 4 ># 432 "/usr/include/string.h" 3 4 > ># 55 "./include/ruby/ruby.h" 2 ># 64 "./include/ruby/ruby.h" ># 1 "/usr/include/inttypes.h" 1 3 4 ># 28 "/usr/include/inttypes.h" 3 4 ># 1 "/usr/include/stdint.h" 1 3 4 ># 27 "/usr/include/stdint.h" 3 4 ># 1 "/usr/include/bits/wchar.h" 1 3 4 ># 28 "/usr/include/stdint.h" 2 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 29 "/usr/include/stdint.h" 2 3 4 ># 49 "/usr/include/stdint.h" 3 4 >typedef unsigned char uint8_t; >typedef unsigned short int uint16_t; > >typedef unsigned int uint32_t; > > > > > >__extension__ >typedef unsigned long long int uint64_t; > > > > > > >typedef signed char int_least8_t; >typedef short int int_least16_t; >typedef int int_least32_t; > > > >__extension__ >typedef long long int int_least64_t; > > > >typedef unsigned char uint_least8_t; >typedef unsigned short int uint_least16_t; >typedef unsigned int uint_least32_t; > > > >__extension__ >typedef unsigned long long int uint_least64_t; > > > > > > >typedef signed char int_fast8_t; > > > > > >typedef int int_fast16_t; >typedef int int_fast32_t; >__extension__ >typedef long long int int_fast64_t; > > > >typedef unsigned char uint_fast8_t; > > > > > >typedef unsigned int uint_fast16_t; >typedef unsigned int uint_fast32_t; >__extension__ >typedef unsigned long long int uint_fast64_t; ># 126 "/usr/include/stdint.h" 3 4 >typedef int intptr_t; > > >typedef unsigned int uintptr_t; ># 138 "/usr/include/stdint.h" 3 4 >__extension__ >typedef long long int intmax_t; >__extension__ >typedef unsigned long long int uintmax_t; ># 29 "/usr/include/inttypes.h" 2 3 4 > > > > > > >typedef int __gwchar_t; ># 274 "/usr/include/inttypes.h" 3 4 > ># 288 "/usr/include/inttypes.h" 3 4 >typedef struct > { > long long int quot; > long long int rem; > } imaxdiv_t; > > > > > >extern intmax_t imaxabs (intmax_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t __denom) > __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern intmax_t strtoimax (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)); > > >extern uintmax_t strtoumax (__const char *__restrict __nptr, > char ** __restrict __endptr, int __base) __attribute__ ((__nothrow__)); > > >extern intmax_t wcstoimax (__const __gwchar_t *__restrict __nptr, > __gwchar_t **__restrict __endptr, int __base) > __attribute__ ((__nothrow__)); > > >extern uintmax_t wcstoumax (__const __gwchar_t *__restrict __nptr, > __gwchar_t ** __restrict __endptr, int __base) > __attribute__ ((__nothrow__)); ># 379 "/usr/include/inttypes.h" 3 4 >__extension__ >extern long long int __strtoll_internal (__const char *__restrict __nptr, > char **__restrict __endptr, > int __base, int __group) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; > >extern __inline intmax_t >__attribute__ ((__nothrow__)) strtoimax (__const char *__restrict nptr, char **__restrict endptr, int base) > >{ > return __strtoll_internal (nptr, endptr, base, 0); >} > >__extension__ >extern unsigned long long int __strtoull_internal (__const char * > __restrict __nptr, > char ** > __restrict __endptr, > int __base, > int __group) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; > >extern __inline uintmax_t >__attribute__ ((__nothrow__)) strtoumax (__const char *__restrict nptr, char **__restrict endptr, int base) > >{ > return __strtoull_internal (nptr, endptr, base, 0); >} > >__extension__ >extern long long int __wcstoll_internal (__const __gwchar_t * > __restrict __nptr, > __gwchar_t **__restrict __endptr, > int __base, int __group) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; > >extern __inline intmax_t >__attribute__ ((__nothrow__)) wcstoimax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base) > >{ > return __wcstoll_internal (nptr, endptr, base, 0); >} > > >__extension__ >extern unsigned long long int __wcstoull_internal (__const __gwchar_t * > __restrict __nptr, > __gwchar_t ** > __restrict __endptr, > int __base, > int __group) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; > >extern __inline uintmax_t >__attribute__ ((__nothrow__)) wcstoumax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base) > >{ > return __wcstoull_internal (nptr, endptr, base, 0); >} > > > > > ># 65 "./include/ruby/ruby.h" 2 > > ># 1 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include/stddef.h" 1 3 4 ># 152 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include/stddef.h" 3 4 >typedef int ptrdiff_t; ># 68 "./include/ruby/ruby.h" 2 ># 1 "/usr/include/stdio.h" 1 3 4 ># 30 "/usr/include/stdio.h" 3 4 > > > > ># 1 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include/stddef.h" 1 3 4 ># 35 "/usr/include/stdio.h" 2 3 4 ># 45 "/usr/include/stdio.h" 3 4 >struct _IO_FILE; > > > >typedef struct _IO_FILE FILE; > > > > > ># 65 "/usr/include/stdio.h" 3 4 >typedef struct _IO_FILE __FILE; ># 75 "/usr/include/stdio.h" 3 4 ># 1 "/usr/include/libio.h" 1 3 4 ># 32 "/usr/include/libio.h" 3 4 ># 1 "/usr/include/_G_config.h" 1 3 4 ># 15 "/usr/include/_G_config.h" 3 4 ># 1 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include/stddef.h" 1 3 4 ># 16 "/usr/include/_G_config.h" 2 3 4 > > > > ># 1 "/usr/include/wchar.h" 1 3 4 ># 78 "/usr/include/wchar.h" 3 4 >typedef struct >{ > int __count; > union > { > > unsigned int __wch; > > > > char __wchb[4]; > } __value; >} __mbstate_t; ># 21 "/usr/include/_G_config.h" 2 3 4 > >typedef struct >{ > __off_t __pos; > __mbstate_t __state; >} _G_fpos_t; >typedef struct >{ > __off64_t __pos; > __mbstate_t __state; >} _G_fpos64_t; ># 53 "/usr/include/_G_config.h" 3 4 >typedef int _G_int16_t __attribute__ ((__mode__ (__HI__))); >typedef int _G_int32_t __attribute__ ((__mode__ (__SI__))); >typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__))); >typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__))); ># 33 "/usr/include/libio.h" 2 3 4 ># 53 "/usr/include/libio.h" 3 4 ># 1 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include/stdarg.h" 1 3 4 ># 43 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include/stdarg.h" 3 4 >typedef __builtin_va_list __gnuc_va_list; ># 54 "/usr/include/libio.h" 2 3 4 ># 170 "/usr/include/libio.h" 3 4 >struct _IO_jump_t; struct _IO_FILE; ># 180 "/usr/include/libio.h" 3 4 >typedef void _IO_lock_t; > > > > > >struct _IO_marker { > struct _IO_marker *_next; > struct _IO_FILE *_sbuf; > > > > int _pos; ># 203 "/usr/include/libio.h" 3 4 >}; > > >enum __codecvt_result >{ > __codecvt_ok, > __codecvt_partial, > __codecvt_error, > __codecvt_noconv >}; ># 271 "/usr/include/libio.h" 3 4 >struct _IO_FILE { > int _flags; > > > > > char* _IO_read_ptr; > char* _IO_read_end; > char* _IO_read_base; > char* _IO_write_base; > char* _IO_write_ptr; > char* _IO_write_end; > char* _IO_buf_base; > char* _IO_buf_end; > > char *_IO_save_base; > char *_IO_backup_base; > char *_IO_save_end; > > struct _IO_marker *_markers; > > struct _IO_FILE *_chain; > > int _fileno; > > > > int _flags2; > > __off_t _old_offset; > > > > unsigned short _cur_column; > signed char _vtable_offset; > char _shortbuf[1]; > > > > _IO_lock_t *_lock; ># 319 "/usr/include/libio.h" 3 4 > __off64_t _offset; ># 328 "/usr/include/libio.h" 3 4 > void *__pad1; > void *__pad2; > void *__pad3; > void *__pad4; > size_t __pad5; > > int _mode; > > char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; > >}; > > >typedef struct _IO_FILE _IO_FILE; > > >struct _IO_FILE_plus; > >extern struct _IO_FILE_plus _IO_2_1_stdin_; >extern struct _IO_FILE_plus _IO_2_1_stdout_; >extern struct _IO_FILE_plus _IO_2_1_stderr_; ># 364 "/usr/include/libio.h" 3 4 >typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes); > > > > > > > >typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf, > size_t __n); > > > > > > > >typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w); > > >typedef int __io_close_fn (void *__cookie); > > > > >typedef __io_read_fn cookie_read_function_t; >typedef __io_write_fn cookie_write_function_t; >typedef __io_seek_fn cookie_seek_function_t; >typedef __io_close_fn cookie_close_function_t; > > >typedef struct >{ > __io_read_fn *read; > __io_write_fn *write; > __io_seek_fn *seek; > __io_close_fn *close; >} _IO_cookie_io_functions_t; >typedef _IO_cookie_io_functions_t cookie_io_functions_t; > >struct _IO_cookie_file; > > >extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write, > void *__cookie, _IO_cookie_io_functions_t __fns); > > > > > > > >extern int __underflow (_IO_FILE *); >extern int __uflow (_IO_FILE *); >extern int __overflow (_IO_FILE *, int); ># 458 "/usr/include/libio.h" 3 4 >extern int _IO_getc (_IO_FILE *__fp); >extern int _IO_putc (int __c, _IO_FILE *__fp); >extern int _IO_feof (_IO_FILE *__fp) __attribute__ ((__nothrow__)); >extern int _IO_ferror (_IO_FILE *__fp) __attribute__ ((__nothrow__)); > >extern int _IO_peekc_locked (_IO_FILE *__fp); > > > > > >extern void _IO_flockfile (_IO_FILE *) __attribute__ ((__nothrow__)); >extern void _IO_funlockfile (_IO_FILE *) __attribute__ ((__nothrow__)); >extern int _IO_ftrylockfile (_IO_FILE *) __attribute__ ((__nothrow__)); ># 488 "/usr/include/libio.h" 3 4 >extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict, > __gnuc_va_list, int *__restrict); >extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict, > __gnuc_va_list); >extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t); >extern size_t _IO_sgetn (_IO_FILE *, void *, size_t); > >extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int); >extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int); > >extern void _IO_free_backup_area (_IO_FILE *) __attribute__ ((__nothrow__)); ># 76 "/usr/include/stdio.h" 2 3 4 > > > > >typedef __gnuc_va_list va_list; ># 89 "/usr/include/stdio.h" 3 4 > > > > >typedef _G_fpos64_t fpos_t; > > > >typedef _G_fpos64_t fpos64_t; ># 141 "/usr/include/stdio.h" 3 4 ># 1 "/usr/include/bits/stdio_lim.h" 1 3 4 ># 142 "/usr/include/stdio.h" 2 3 4 > > > >extern struct _IO_FILE *stdin; >extern struct _IO_FILE *stdout; >extern struct _IO_FILE *stderr; > > > > > > > >extern int remove (__const char *__filename) __attribute__ ((__nothrow__)); > >extern int rename (__const char *__old, __const char *__new) __attribute__ ((__nothrow__)); > > > > >extern int renameat (int __oldfd, __const char *__old, int __newfd, > __const char *__new) __attribute__ ((__nothrow__)); > > > ># 175 "/usr/include/stdio.h" 3 4 >extern FILE *tmpfile (void) __asm__ ("" "tmpfile64") ; > > > > > > >extern FILE *tmpfile64 (void) ; > > > >extern char *tmpnam (char *__s) __attribute__ ((__nothrow__)) ; > > > > > >extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__)) ; ># 204 "/usr/include/stdio.h" 3 4 >extern char *tempnam (__const char *__dir, __const char *__pfx) > __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ; > > > > > > > > >extern int fclose (FILE *__stream); > > > > >extern int fflush (FILE *__stream); > ># 229 "/usr/include/stdio.h" 3 4 >extern int fflush_unlocked (FILE *__stream); ># 239 "/usr/include/stdio.h" 3 4 >extern int fcloseall (void); > > > > ># 260 "/usr/include/stdio.h" 3 4 >extern FILE *fopen (__const char *__restrict __filename, __const char *__restrict __modes) __asm__ ("" "fopen64") > > ; >extern FILE *freopen (__const char *__restrict __filename, __const char *__restrict __modes, FILE *__restrict __stream) __asm__ ("" "freopen64") > > > ; > > > > > > > >extern FILE *fopen64 (__const char *__restrict __filename, > __const char *__restrict __modes) ; >extern FILE *freopen64 (__const char *__restrict __filename, > __const char *__restrict __modes, > FILE *__restrict __stream) ; > > > > >extern FILE *fdopen (int __fd, __const char *__modes) __attribute__ ((__nothrow__)) ; > > > > > >extern FILE *fopencookie (void *__restrict __magic_cookie, > __const char *__restrict __modes, > _IO_cookie_io_functions_t __io_funcs) __attribute__ ((__nothrow__)) ; > > >extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes) > __attribute__ ((__nothrow__)) ; > > > > >extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__)) ; > > > > > > >extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__)); > > > >extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, > int __modes, size_t __n) __attribute__ ((__nothrow__)); > > > > > >extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, > size_t __size) __attribute__ ((__nothrow__)); > > >extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__)); > > > > > > > > >extern int fprintf (FILE *__restrict __stream, > __const char *__restrict __format, ...); > > > > >extern int printf (__const char *__restrict __format, ...); > >extern int sprintf (char *__restrict __s, > __const char *__restrict __format, ...) __attribute__ ((__nothrow__)); > > > > > >extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format, > __gnuc_va_list __arg); > > > > >extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg); > >extern int vsprintf (char *__restrict __s, __const char *__restrict __format, > __gnuc_va_list __arg) __attribute__ ((__nothrow__)); > > > > > >extern int snprintf (char *__restrict __s, size_t __maxlen, > __const char *__restrict __format, ...) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4))); > >extern int vsnprintf (char *__restrict __s, size_t __maxlen, > __const char *__restrict __format, __gnuc_va_list __arg) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0))); > > > > > > >extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f, > __gnuc_va_list __arg) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 0))) ; >extern int __asprintf (char **__restrict __ptr, > __const char *__restrict __fmt, ...) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))) ; >extern int asprintf (char **__restrict __ptr, > __const char *__restrict __fmt, ...) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))) ; > > > > > > > >extern int vdprintf (int __fd, __const char *__restrict __fmt, > __gnuc_va_list __arg) > __attribute__ ((__format__ (__printf__, 2, 0))); >extern int dprintf (int __fd, __const char *__restrict __fmt, ...) > __attribute__ ((__format__ (__printf__, 2, 3))); > > > > > > > > >extern int fscanf (FILE *__restrict __stream, > __const char *__restrict __format, ...) ; > > > > >extern int scanf (__const char *__restrict __format, ...) ; > >extern int sscanf (__const char *__restrict __s, > __const char *__restrict __format, ...) __attribute__ ((__nothrow__)); ># 441 "/usr/include/stdio.h" 3 4 > > > > > > > > >extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format, > __gnuc_va_list __arg) > __attribute__ ((__format__ (__scanf__, 2, 0))) ; > > > > > >extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg) > __attribute__ ((__format__ (__scanf__, 1, 0))) ; > > >extern int vsscanf (__const char *__restrict __s, > __const char *__restrict __format, __gnuc_va_list __arg) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__scanf__, 2, 0))); ># 500 "/usr/include/stdio.h" 3 4 > > > > > > > > > >extern int fgetc (FILE *__stream); >extern int getc (FILE *__stream); > > > > > >extern int getchar (void); > ># 528 "/usr/include/stdio.h" 3 4 >extern int getc_unlocked (FILE *__stream); >extern int getchar_unlocked (void); ># 539 "/usr/include/stdio.h" 3 4 >extern int fgetc_unlocked (FILE *__stream); > > > > > > > > > > > >extern int fputc (int __c, FILE *__stream); >extern int putc (int __c, FILE *__stream); > > > > > >extern int putchar (int __c); > ># 572 "/usr/include/stdio.h" 3 4 >extern int fputc_unlocked (int __c, FILE *__stream); > > > > > > > >extern int putc_unlocked (int __c, FILE *__stream); >extern int putchar_unlocked (int __c); > > > > > > >extern int getw (FILE *__stream); > > >extern int putw (int __w, FILE *__stream); > > > > > > > > >extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) > ; > > > > > > >extern char *gets (char *__s) ; > ># 618 "/usr/include/stdio.h" 3 4 >extern char *fgets_unlocked (char *__restrict __s, int __n, > FILE *__restrict __stream) ; ># 634 "/usr/include/stdio.h" 3 4 >extern __ssize_t __getdelim (char **__restrict __lineptr, > size_t *__restrict __n, int __delimiter, > FILE *__restrict __stream) ; >extern __ssize_t getdelim (char **__restrict __lineptr, > size_t *__restrict __n, int __delimiter, > FILE *__restrict __stream) ; > > > > > > > >extern __ssize_t getline (char **__restrict __lineptr, > size_t *__restrict __n, > FILE *__restrict __stream) ; > > > > > > > > >extern int fputs (__const char *__restrict __s, FILE *__restrict __stream); > > > > > >extern int puts (__const char *__s); > > > > > > >extern int ungetc (int __c, FILE *__stream); > > > > > > >extern size_t fread (void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __stream) ; > > > > >extern size_t fwrite (__const void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __s) ; > ># 695 "/usr/include/stdio.h" 3 4 >extern int fputs_unlocked (__const char *__restrict __s, > FILE *__restrict __stream); ># 706 "/usr/include/stdio.h" 3 4 >extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __stream) ; >extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __stream) ; > > > > > > > > >extern int fseek (FILE *__stream, long int __off, int __whence); > > > > >extern long int ftell (FILE *__stream) ; > > > > >extern void rewind (FILE *__stream); > ># 750 "/usr/include/stdio.h" 3 4 >extern int fseeko (FILE *__stream, __off64_t __off, int __whence) __asm__ ("" "fseeko64"); > > >extern __off64_t ftello (FILE *__stream) __asm__ ("" "ftello64"); > > > > > > > > ># 775 "/usr/include/stdio.h" 3 4 >extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos) __asm__ ("" "fgetpos64"); > >extern int fsetpos (FILE *__stream, __const fpos_t *__pos) __asm__ ("" "fsetpos64"); > > > > > > > > > >extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence); >extern __off64_t ftello64 (FILE *__stream) ; >extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos); >extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos); > > > > >extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__)); > >extern int feof (FILE *__stream) __attribute__ ((__nothrow__)) ; > >extern int ferror (FILE *__stream) __attribute__ ((__nothrow__)) ; > > > > >extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__)); >extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ; >extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ; > > > > > > > > >extern void perror (__const char *__s); > > > > > > ># 1 "/usr/include/bits/sys_errlist.h" 1 3 4 ># 27 "/usr/include/bits/sys_errlist.h" 3 4 >extern int sys_nerr; >extern __const char *__const sys_errlist[]; > > >extern int _sys_nerr; >extern __const char *__const _sys_errlist[]; ># 823 "/usr/include/stdio.h" 2 3 4 > > > > >extern int fileno (FILE *__stream) __attribute__ ((__nothrow__)) ; > > > > >extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ; ># 842 "/usr/include/stdio.h" 3 4 >extern FILE *popen (__const char *__command, __const char *__modes) ; > > > > > >extern int pclose (FILE *__stream); > > > > > >extern char *ctermid (char *__s) __attribute__ ((__nothrow__)); > > > > > >extern char *cuserid (char *__s); > > > > >struct obstack; > > >extern int obstack_printf (struct obstack *__restrict __obstack, > __const char *__restrict __format, ...) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))); >extern int obstack_vprintf (struct obstack *__restrict __obstack, > __const char *__restrict __format, > __gnuc_va_list __args) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 0))); > > > > > > > >extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__)); > > > >extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__)) ; > > >extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__)); ># 903 "/usr/include/stdio.h" 3 4 ># 1 "/usr/include/bits/stdio.h" 1 3 4 ># 36 "/usr/include/bits/stdio.h" 3 4 >extern __inline int >vprintf (__const char *__restrict __fmt, __gnuc_va_list __arg) >{ > return vfprintf (stdout, __fmt, __arg); >} > > > >extern __inline int >getchar (void) >{ > return _IO_getc (stdin); >} > > > > >extern __inline int >fgetc_unlocked (FILE *__fp) >{ > return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); >} > > > > > >extern __inline int >getc_unlocked (FILE *__fp) >{ > return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); >} > > >extern __inline int >getchar_unlocked (void) >{ > return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++); >} > > > > >extern __inline int >putchar (int __c) >{ > return _IO_putc (__c, stdout); >} > > > > >extern __inline int >fputc_unlocked (int __c, FILE *__stream) >{ > return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); >} > > > > > >extern __inline int >putc_unlocked (int __c, FILE *__stream) >{ > return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); >} > > >extern __inline int >putchar_unlocked (int __c) >{ > return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c))); >} > > > > > >extern __inline __ssize_t >getline (char **__lineptr, size_t *__n, FILE *__stream) >{ > return __getdelim (__lineptr, __n, '\n', __stream); >} > > > > > >extern __inline int >__attribute__ ((__nothrow__)) feof_unlocked (FILE *__stream) >{ > return (((__stream)->_flags & 0x10) != 0); >} > > >extern __inline int >__attribute__ ((__nothrow__)) ferror_unlocked (FILE *__stream) >{ > return (((__stream)->_flags & 0x20) != 0); >} ># 904 "/usr/include/stdio.h" 2 3 4 ># 912 "/usr/include/stdio.h" 3 4 > ># 69 "./include/ruby/ruby.h" 2 > ># 1 "./include/ruby/defines.h" 1 ># 59 "./include/ruby/defines.h" >void *ruby_xmalloc(size_t); >void *ruby_xmalloc2(size_t,size_t); >void *ruby_xcalloc(size_t,size_t); >void *ruby_xrealloc(void*,size_t); >void *ruby_xrealloc2(void*,size_t,size_t); >void ruby_xfree(void*); ># 71 "./include/ruby/ruby.h" 2 ># 81 "./include/ruby/ruby.h" >typedef unsigned long VALUE; >typedef unsigned long ID; ># 132 "./include/ruby/ruby.h" ># 1 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include-fixed/limits.h" 1 3 4 ># 11 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include-fixed/limits.h" 3 4 ># 1 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include-fixed/syslimits.h" 1 3 4 > > > > > > ># 1 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include-fixed/limits.h" 1 3 4 ># 122 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include-fixed/limits.h" 3 4 ># 1 "/usr/include/limits.h" 1 3 4 ># 145 "/usr/include/limits.h" 3 4 ># 1 "/usr/include/bits/posix1_lim.h" 1 3 4 ># 153 "/usr/include/bits/posix1_lim.h" 3 4 ># 1 "/usr/include/bits/local_lim.h" 1 3 4 ># 36 "/usr/include/bits/local_lim.h" 3 4 ># 1 "/usr/include/linux/limits.h" 1 3 4 ># 37 "/usr/include/bits/local_lim.h" 2 3 4 ># 154 "/usr/include/bits/posix1_lim.h" 2 3 4 ># 146 "/usr/include/limits.h" 2 3 4 > > > ># 1 "/usr/include/bits/posix2_lim.h" 1 3 4 ># 150 "/usr/include/limits.h" 2 3 4 > > > ># 1 "/usr/include/bits/xopen_lim.h" 1 3 4 ># 34 "/usr/include/bits/xopen_lim.h" 3 4 ># 1 "/usr/include/bits/stdio_lim.h" 1 3 4 ># 35 "/usr/include/bits/xopen_lim.h" 2 3 4 ># 154 "/usr/include/limits.h" 2 3 4 ># 123 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include-fixed/limits.h" 2 3 4 ># 8 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include-fixed/syslimits.h" 2 3 4 ># 12 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include-fixed/limits.h" 2 3 4 ># 133 "./include/ruby/ruby.h" 2 ># 182 "./include/ruby/ruby.h" >VALUE rb_int2inum(long); > > >VALUE rb_uint2inum(VALUE); > > > > >VALUE rb_ll2inum(long long); > >VALUE rb_ull2inum(unsigned long long); ># 264 "./include/ruby/ruby.h" >enum ruby_special_consts { > RUBY_Qfalse = 0, > RUBY_Qtrue = 2, > RUBY_Qnil = 4, > RUBY_Qundef = 6, > > RUBY_IMMEDIATE_MASK = 0x03, > RUBY_FIXNUM_FLAG = 0x01, > RUBY_SYMBOL_FLAG = 0x0e, > RUBY_SPECIAL_SHIFT = 8 >}; ># 289 "./include/ruby/ruby.h" >enum ruby_value_type { > RUBY_T_NONE = 0x00, > > RUBY_T_OBJECT = 0x01, > RUBY_T_CLASS = 0x02, > RUBY_T_MODULE = 0x03, > RUBY_T_FLOAT = 0x04, > RUBY_T_STRING = 0x05, > RUBY_T_REGEXP = 0x06, > RUBY_T_ARRAY = 0x07, > RUBY_T_HASH = 0x08, > RUBY_T_STRUCT = 0x09, > RUBY_T_BIGNUM = 0x0a, > RUBY_T_FILE = 0x0b, > RUBY_T_DATA = 0x0c, > RUBY_T_MATCH = 0x0d, > RUBY_T_COMPLEX = 0x0e, > RUBY_T_RATIONAL = 0x0f, > > RUBY_T_NIL = 0x11, > RUBY_T_TRUE = 0x12, > RUBY_T_FALSE = 0x13, > RUBY_T_SYMBOL = 0x14, > RUBY_T_FIXNUM = 0x15, > > RUBY_T_UNDEF = 0x1b, > RUBY_T_NODE = 0x1c, > RUBY_T_ICLASS = 0x1d, > RUBY_T_ZOMBIE = 0x1e, > > RUBY_T_MASK = 0x1f >}; ># 355 "./include/ruby/ruby.h" >void rb_check_type(VALUE,int); > > >VALUE rb_str_to_str(VALUE); >VALUE rb_string_value(volatile VALUE*); >char *rb_string_value_ptr(volatile VALUE*); >char *rb_string_value_cstr(volatile VALUE*); > > > > > >void rb_check_safe_obj(VALUE); >void rb_check_safe_str(VALUE); > > > > > > > >VALUE rb_str_export(VALUE); > > > > >VALUE rb_str_export_locale(VALUE); > >VALUE rb_get_path(VALUE); > > >VALUE rb_get_path_no_checksafe(VALUE); > > >void rb_secure(int); >int rb_safe_level(void); >void rb_set_safe_level(int); >void rb_set_safe_level_force(int); >void rb_secure_update(VALUE); > >VALUE rb_errinfo(void); >void rb_set_errinfo(VALUE); > >long rb_num2long(VALUE); >VALUE rb_num2ulong(VALUE); >static inline long >NUM2LONG(VALUE x) >{ > return (((long)(x))&RUBY_FIXNUM_FLAG) ? (((long)x)>>(int)1) : rb_num2long(x); >} ># 427 "./include/ruby/ruby.h" >long long rb_num2ll(VALUE); >unsigned long long rb_num2ull(VALUE); >static inline long long >NUM2LL(VALUE x) >{ > return (((long)(x))&RUBY_FIXNUM_FLAG) ? (((long)x)>>(int)1) : rb_num2ll(x); >} ># 451 "./include/ruby/ruby.h" >double rb_num2dbl(VALUE); > > >VALUE rb_uint2big(VALUE); >VALUE rb_int2big(long); > > > > > >static inline VALUE >INT2NUM(int v) >{ > if (!(((v) < (2147483647L>>1)+1) && ((v) >= (((long)(-2147483647L - 1L))>>(int)1)))) > return rb_int2big(v); > return ((VALUE)(((long)(v))<<1 | RUBY_FIXNUM_FLAG)); >} > >static inline VALUE >UINT2NUM(unsigned int v) >{ > if (!((v) < (2147483647L>>1)+1)) > return rb_uint2big(v); > return ((VALUE)(((long)(v))<<1 | RUBY_FIXNUM_FLAG)); >} > > >static inline VALUE >LONG2NUM(long v) >{ > if ((((v) < (2147483647L>>1)+1) && ((v) >= (((long)(-2147483647L - 1L))>>(int)1)))) return ((VALUE)(((long)(v))<<1 | RUBY_FIXNUM_FLAG)); > return rb_int2big(v); >} > >static inline VALUE >ULONG2NUM(unsigned long v) >{ > if (((v) < (2147483647L>>1)+1)) return ((VALUE)(((long)(v))<<1 | RUBY_FIXNUM_FLAG)); > return rb_uint2big(v); >} > > >char *rb_str2cstr(VALUE,long*); > > > > > > > >VALUE rb_newobj(void); ># 518 "./include/ruby/ruby.h" >struct RBasic { > VALUE flags; > VALUE klass; >}; > > >struct RObject { > struct RBasic basic; > union { > struct { > long numiv; > VALUE *ivptr; > struct st_table *iv_index_tbl; > } heap; > VALUE ary[3]; > } as; >}; ># 549 "./include/ruby/ruby.h" >typedef struct { > VALUE super; > struct st_table *iv_tbl; >} rb_classext_t; > >struct RClass { > struct RBasic basic; > rb_classext_t *ptr; > struct st_table *m_tbl; > struct st_table *iv_index_tbl; >}; ># 568 "./include/ruby/ruby.h" >struct RFloat { > struct RBasic basic; > double float_value; >}; > > > > > > >struct RString { > struct RBasic basic; > union { > struct { > long len; > char *ptr; > union { > long capa; > VALUE shared; > } aux; > } heap; > char ary[((sizeof(VALUE)*3)/sizeof(char)-1) + 1]; > } as; >}; ># 607 "./include/ruby/ruby.h" >struct RArray { > struct RBasic basic; > union { > struct { > long len; > union { > long capa; > VALUE shared; > } aux; > VALUE *ptr; > } heap; > VALUE ary[3]; > } as; >}; ># 635 "./include/ruby/ruby.h" >struct RRegexp { > struct RBasic basic; > struct re_pattern_buffer *ptr; > VALUE src; > unsigned long usecnt; >}; > > > > >struct RHash { > struct RBasic basic; > struct st_table *ntbl; > int iter_lev; > VALUE ifnone; >}; > > > > > > > >struct RFile { > struct RBasic basic; > struct rb_io_t *fptr; >}; > >struct RRational { > struct RBasic basic; > VALUE num; > VALUE den; >}; > >struct RComplex { > struct RBasic basic; > VALUE real; > VALUE imag; >}; > >struct RData { > struct RBasic basic; > void (*dmark)(void*); > void (*dfree)(void*); > void *data; >}; > > > > > > >typedef void (*RUBY_DATA_FUNC)(void*); > >VALUE rb_data_object_alloc(VALUE,void*,RUBY_DATA_FUNC,RUBY_DATA_FUNC); ># 706 "./include/ruby/ruby.h" >struct RStruct { > struct RBasic basic; > union { > struct { > long len; > VALUE *ptr; > } heap; > VALUE ary[3]; > } as; >}; ># 729 "./include/ruby/ruby.h" >struct RBignum { > struct RBasic basic; > union { > struct { > long len; > unsigned int *digits; > } heap; > unsigned int ary[((sizeof(VALUE)*3)/sizeof(unsigned int))]; > } as; >}; ># 841 "./include/ruby/ruby.h" >void rb_obj_infect(VALUE,VALUE); > >typedef int ruby_glob_func(const char*,VALUE, void*); >void rb_glob(const char*,void(*)(const char*,VALUE,void*),VALUE); >int ruby_glob(const char*,int,ruby_glob_func*,VALUE); >int ruby_brace_glob(const char*,int,ruby_glob_func*,VALUE); > >VALUE rb_define_class(const char*,VALUE); >VALUE rb_define_module(const char*); >VALUE rb_define_class_under(VALUE, const char*, VALUE); >VALUE rb_define_module_under(VALUE, const char*); > >void rb_include_module(VALUE,VALUE); >void rb_extend_object(VALUE,VALUE); > >struct rb_global_variable; > >typedef VALUE rb_gvar_getter_t(ID id, void *data, struct rb_global_variable *gvar); >typedef void rb_gvar_setter_t(VALUE val, ID id, void *data, struct rb_global_variable *gvar); >typedef void rb_gvar_marker_t(VALUE *var); > >VALUE rb_gvar_undef_getter(ID id, void *data, struct rb_global_variable *gvar); >void rb_gvar_undef_setter(VALUE val, ID id, void *data, struct rb_global_variable *gvar); >void rb_gvar_undef_marker(VALUE *var); > >VALUE rb_gvar_val_getter(ID id, void *data, struct rb_global_variable *gvar); >void rb_gvar_val_setter(VALUE val, ID id, void *data, struct rb_global_variable *gvar); >void rb_gvar_val_marker(VALUE *var); > >VALUE rb_gvar_var_getter(ID id, void *data, struct rb_global_variable *gvar); >void rb_gvar_var_setter(VALUE val, ID id, void *data, struct rb_global_variable *gvar); >void rb_gvar_var_marker(VALUE *var); > >void rb_gvar_readonly_setter(VALUE val, ID id, void *data, struct rb_global_variable *gvar); > >void rb_define_variable(const char*,VALUE*); >void rb_define_virtual_variable(const char*,VALUE(*)(),void(*)()); >void rb_define_hooked_variable(const char*,VALUE*,VALUE(*)(),void(*)()); >void rb_define_readonly_variable(const char*,VALUE*); >void rb_define_const(VALUE,const char*,VALUE); >void rb_define_global_const(const char*,VALUE); > > >void rb_define_method(VALUE,const char*,VALUE(*)(),int); >void rb_define_module_function(VALUE,const char*,VALUE(*)(),int); >void rb_define_global_function(const char*,VALUE(*)(),int); > >void rb_undef_method(VALUE,const char*); >void rb_define_alias(VALUE,const char*,const char*); >void rb_define_attr(VALUE,const char*,int,int); > >void rb_global_variable(VALUE*); >void rb_gc_register_mark_object(VALUE); >void rb_gc_register_address(VALUE*); >void rb_gc_unregister_address(VALUE*); > >ID rb_intern(const char*); >ID rb_intern2(const char*, long); >ID rb_intern_str(VALUE str); >const char *rb_id2name(ID); >ID rb_to_id(VALUE); >VALUE rb_id2str(ID); ># 928 "./include/ruby/ruby.h" >const char *rb_class2name(VALUE); >const char *rb_obj_classname(VALUE); > >void rb_p(VALUE); > >VALUE rb_eval_string(const char*); >VALUE rb_eval_string_protect(const char*, int*); >VALUE rb_eval_string_wrap(const char*, int*); >VALUE rb_funcall(VALUE, ID, int, ...); >VALUE rb_funcall2(VALUE, ID, int, const VALUE*); >VALUE rb_funcall3(VALUE, ID, int, const VALUE*); >int rb_scan_args(int, const VALUE*, const char*, ...); >VALUE rb_call_super(int, const VALUE*); > >VALUE rb_gv_set(const char*, VALUE); >VALUE rb_gv_get(const char*); >VALUE rb_iv_get(VALUE, const char*); >VALUE rb_iv_set(VALUE, const char*, VALUE); > >VALUE rb_equal(VALUE,VALUE); > >VALUE *rb_ruby_verbose_ptr(void); >VALUE *rb_ruby_debug_ptr(void); > > > >__attribute__ ((noreturn)) void rb_raise(VALUE, const char*, ...) __attribute__((format(printf, 2, 3))); >__attribute__ ((noreturn)) void rb_fatal(const char*, ...) __attribute__((format(printf, 1, 2))); >__attribute__ ((noreturn)) void rb_bug(const char*, ...) __attribute__((format(printf, 1, 2))); >__attribute__ ((noreturn)) void rb_sys_fail(const char*); >__attribute__ ((noreturn)) void rb_iter_break(void); >__attribute__ ((noreturn)) void rb_exit(int); >__attribute__ ((noreturn)) void rb_notimplement(void); > > >void rb_warning(const char*, ...) __attribute__((format(printf, 1, 2))); >void rb_compile_warning(const char *, int, const char*, ...) __attribute__((format(printf, 3, 4))); >void rb_sys_warning(const char*, ...) __attribute__((format(printf, 1, 2))); > >void rb_warn(const char*, ...) __attribute__((format(printf, 1, 2))); >void rb_compile_warn(const char *, int, const char*, ...) __attribute__((format(printf, 3, 4))); > >typedef VALUE rb_block_call_func(VALUE, VALUE, int, VALUE*); > >VALUE rb_each(VALUE); >VALUE rb_yield(VALUE); >VALUE rb_yield_values(int n, ...); >VALUE rb_yield_values2(int n, const VALUE *argv); >VALUE rb_yield_splat(VALUE); >int rb_block_given_p(void); >void rb_need_block(void); >VALUE rb_iterate(VALUE(*)(VALUE),VALUE,VALUE(*)(),VALUE); >VALUE rb_block_call(VALUE,ID,int,VALUE*,VALUE(*)(),VALUE); >VALUE rb_rescue(VALUE(*)(),VALUE,VALUE(*)(),VALUE); >VALUE rb_rescue2(VALUE(*)(),VALUE,VALUE(*)(),VALUE,...); >VALUE rb_ensure(VALUE(*)(),VALUE,VALUE(*)(),VALUE); >VALUE rb_catch(const char*,VALUE(*)(),VALUE); >VALUE rb_catch_obj(VALUE,VALUE(*)(),VALUE); >__attribute__ ((noreturn)) void rb_throw(const char*,VALUE); >__attribute__ ((noreturn)) void rb_throw_obj(VALUE,VALUE); > >VALUE rb_require(const char*); > > > > > >void ruby_init_stack(VALUE*); > > > > >void ruby_init(void); >void *ruby_options(int, char**); >int ruby_run_node(void *); > >extern VALUE rb_mKernel; >extern VALUE rb_mComparable; >extern VALUE rb_mEnumerable; >extern VALUE rb_mErrno; >extern VALUE rb_mFileTest; >extern VALUE rb_mGC; >extern VALUE rb_mMath; >extern VALUE rb_mProcess; > >extern VALUE rb_cBasicObject; >extern VALUE rb_cObject; >extern VALUE rb_cArray; >extern VALUE rb_cBignum; >extern VALUE rb_cBinding; >extern VALUE rb_cClass; >extern VALUE rb_cCont; >extern VALUE rb_cDir; >extern VALUE rb_cData; >extern VALUE rb_cFalseClass; >extern VALUE rb_cEncoding; >extern VALUE rb_cEnumerator; >extern VALUE rb_cFile; >extern VALUE rb_cFixnum; >extern VALUE rb_cFloat; >extern VALUE rb_cHash; >extern VALUE rb_cInteger; >extern VALUE rb_cIO; >extern VALUE rb_cMatch; >extern VALUE rb_cMethod; >extern VALUE rb_cModule; >extern VALUE rb_cNameErrorMesg; >extern VALUE rb_cNilClass; >extern VALUE rb_cNumeric; >extern VALUE rb_cProc; >extern VALUE rb_cRange; >extern VALUE rb_cRational; >extern VALUE rb_cComplex; >extern VALUE rb_cRegexp; >extern VALUE rb_cStat; >extern VALUE rb_cString; >extern VALUE rb_cStruct; >extern VALUE rb_cSymbol; >extern VALUE rb_cThread; >extern VALUE rb_cTime; >extern VALUE rb_cTrueClass; >extern VALUE rb_cUnboundMethod; > >extern VALUE rb_eException; >extern VALUE rb_eStandardError; >extern VALUE rb_eSystemExit; >extern VALUE rb_eInterrupt; >extern VALUE rb_eSignal; >extern VALUE rb_eFatal; >extern VALUE rb_eArgError; >extern VALUE rb_eEOFError; >extern VALUE rb_eIndexError; >extern VALUE rb_eStopIteration; >extern VALUE rb_eKeyError; >extern VALUE rb_eRangeError; >extern VALUE rb_eIOError; >extern VALUE rb_eRuntimeError; >extern VALUE rb_eSecurityError; >extern VALUE rb_eSystemCallError; >extern VALUE rb_eThreadError; >extern VALUE rb_eTypeError; >extern VALUE rb_eZeroDivError; >extern VALUE rb_eNotImpError; >extern VALUE rb_eNoMemError; >extern VALUE rb_eNoMethodError; >extern VALUE rb_eFloatDomainError; >extern VALUE rb_eLocalJumpError; >extern VALUE rb_eSysStackError; >extern VALUE rb_eRegexpError; >extern VALUE rb_eEncodingError; >extern VALUE rb_eEncCompatError; > >extern VALUE rb_eScriptError; >extern VALUE rb_eNameError; >extern VALUE rb_eSyntaxError; >extern VALUE rb_eLoadError; > >extern VALUE rb_stdin, rb_stdout, rb_stderr; > >static inline VALUE >rb_class_of(VALUE obj) >{ > if (((VALUE)(obj) & RUBY_IMMEDIATE_MASK)) { > if ((((long)(obj))&RUBY_FIXNUM_FLAG)) return rb_cFixnum; > if (obj == ((VALUE)RUBY_Qtrue)) return rb_cTrueClass; > if ((((VALUE)(obj)&~(~(VALUE)0<<RUBY_SPECIAL_SHIFT))==RUBY_SYMBOL_FLAG)) return rb_cSymbol; > } > else if (!(((VALUE)(obj) & ~((VALUE)RUBY_Qnil)) != 0)) { > if (obj == ((VALUE)RUBY_Qnil)) return rb_cNilClass; > if (obj == ((VALUE)RUBY_Qfalse)) return rb_cFalseClass; > } > return ((struct RBasic*)(obj))->klass; >} > >static inline int >rb_type(VALUE obj) >{ > if (((VALUE)(obj) & RUBY_IMMEDIATE_MASK)) { > if ((((long)(obj))&RUBY_FIXNUM_FLAG)) return RUBY_T_FIXNUM; > if (obj == ((VALUE)RUBY_Qtrue)) return RUBY_T_TRUE; > if ((((VALUE)(obj)&~(~(VALUE)0<<RUBY_SPECIAL_SHIFT))==RUBY_SYMBOL_FLAG)) return RUBY_T_SYMBOL; > if (obj == ((VALUE)RUBY_Qundef)) return RUBY_T_UNDEF; > } > else if (!(((VALUE)(obj) & ~((VALUE)RUBY_Qnil)) != 0)) { > if (obj == ((VALUE)RUBY_Qnil)) return RUBY_T_NIL; > if (obj == ((VALUE)RUBY_Qfalse)) return RUBY_T_FALSE; > } > return (((struct RBasic*)(obj))->flags & RUBY_T_MASK); >} > >static inline int >rb_special_const_p(VALUE obj) >{ > if ((((VALUE)(obj) & RUBY_IMMEDIATE_MASK) || !(((VALUE)(obj) & ~((VALUE)RUBY_Qnil)) != 0))) return ((VALUE)RUBY_Qtrue); > return ((VALUE)RUBY_Qfalse); >} > ># 1 "./include/ruby/missing.h" 1 ># 22 "./include/ruby/missing.h" ># 1 "/usr/include/sys/time.h" 1 3 4 ># 27 "/usr/include/sys/time.h" 3 4 ># 1 "/usr/include/time.h" 1 3 4 ># 28 "/usr/include/sys/time.h" 2 3 4 > ># 1 "/usr/include/bits/time.h" 1 3 4 ># 30 "/usr/include/sys/time.h" 2 3 4 ># 39 "/usr/include/sys/time.h" 3 4 > ># 57 "/usr/include/sys/time.h" 3 4 >struct timezone > { > int tz_minuteswest; > int tz_dsttime; > }; > >typedef struct timezone *__restrict __timezone_ptr_t; ># 73 "/usr/include/sys/time.h" 3 4 >extern int gettimeofday (struct timeval *__restrict __tv, > __timezone_ptr_t __tz) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > >extern int settimeofday (__const struct timeval *__tv, > __const struct timezone *__tz) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern int adjtime (__const struct timeval *__delta, > struct timeval *__olddelta) __attribute__ ((__nothrow__)); > > > > >enum __itimer_which > { > > ITIMER_REAL = 0, > > > ITIMER_VIRTUAL = 1, > > > > ITIMER_PROF = 2 > > }; > > > >struct itimerval > { > > struct timeval it_interval; > > struct timeval it_value; > }; > > > > >typedef enum __itimer_which __itimer_which_t; > > > > > > >extern int getitimer (__itimer_which_t __which, > struct itimerval *__value) __attribute__ ((__nothrow__)); > > > > >extern int setitimer (__itimer_which_t __which, > __const struct itimerval *__restrict __new, > struct itimerval *__restrict __old) __attribute__ ((__nothrow__)); > > > > >extern int utimes (__const char *__file, __const struct timeval __tvp[2]) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > >extern int lutimes (__const char *__file, __const struct timeval __tvp[2]) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int futimes (int __fd, __const struct timeval __tvp[2]) __attribute__ ((__nothrow__)); > > > > > > >extern int futimesat (int __fd, __const char *__file, > __const struct timeval __tvp[2]) __attribute__ ((__nothrow__)); ># 191 "/usr/include/sys/time.h" 3 4 > ># 23 "./include/ruby/missing.h" 2 ># 148 "./include/ruby/missing.h" ># 1 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include/stdarg.h" 1 3 4 ># 149 "./include/ruby/missing.h" 2 ># 158 "./include/ruby/missing.h" >extern size_t strlcpy(char *, const char*, size_t); > > > >extern size_t strlcat(char *, const char*, size_t); ># 1126 "./include/ruby/ruby.h" 2 ># 1 "./include/ruby/intern.h" 1 ># 29 "./include/ruby/intern.h" ># 1 "./include/ruby/st.h" 1 ># 24 "./include/ruby/st.h" ># 1 "/usr/lib/gcc/i486-linux-gnu/4.3.2/include/stddef.h" 1 3 4 ># 25 "./include/ruby/st.h" 2 > > > > > >typedef unsigned long st_data_t; ># 56 "./include/ruby/st.h" >typedef struct st_table st_table; > >typedef int st_compare_func(st_data_t, st_data_t); >typedef int st_hash_func(st_data_t); > >struct st_hash_type { > int (*compare)( ); > int (*hash)( ); >}; > >typedef st_data_t st_index_t; > > >struct st_table { > const struct st_hash_type *type; > st_index_t num_bins; > unsigned int entries_packed : 1; > > __extension__ > > st_index_t num_entries : (sizeof(st_index_t) * 8) - 1; > struct st_table_entry **bins; > struct st_table_entry *head; >}; > > > >enum st_retval {ST_CONTINUE, ST_STOP, ST_DELETE, ST_CHECK}; > >st_table *st_init_table(const struct st_hash_type *); >st_table *st_init_table_with_size(const struct st_hash_type *, int); >st_table *st_init_numtable(void); >st_table *st_init_numtable_with_size(int); >st_table *st_init_strtable(void); >st_table *st_init_strtable_with_size(int); >st_table *st_init_strcasetable(void); >st_table *st_init_strcasetable_with_size(int); >int st_delete(st_table *, st_data_t *, st_data_t *); >int st_delete_safe(st_table *, st_data_t *, st_data_t *, st_data_t); >int st_insert(st_table *, st_data_t, st_data_t); >int st_lookup(st_table *, st_data_t, st_data_t *); >int st_get_key(st_table *, st_data_t, st_data_t *); >int st_foreach(st_table *, int (*)(), st_data_t); >int st_reverse_foreach(st_table *, int (*)(), st_data_t); >void st_add_direct(st_table *, st_data_t, st_data_t); >void st_free_table(st_table *); >void st_cleanup_safe(st_table *, st_data_t); >void st_clear(st_table *); >st_table *st_copy(st_table *); >int st_numcmp(st_data_t, st_data_t); >int st_numhash(st_data_t); >int st_strcasecmp(const char *s1, const char *s2); >int st_strncasecmp(const char *s1, const char *s2, size_t n); ># 30 "./include/ruby/intern.h" 2 ># 39 "./include/ruby/intern.h" >void rb_mem_clear(register VALUE*, register long); >VALUE rb_assoc_new(VALUE, VALUE); >VALUE rb_check_array_type(VALUE); >VALUE rb_ary_new(void); >VALUE rb_ary_new2(long); >VALUE rb_ary_new3(long,...); >VALUE rb_ary_new4(long, const VALUE *); >VALUE rb_ary_tmp_new(long); >void rb_ary_free(VALUE); >VALUE rb_ary_freeze(VALUE); >VALUE rb_ary_aref(int, VALUE*, VALUE); >VALUE rb_ary_subseq(VALUE, long, long); >void rb_ary_store(VALUE, long, VALUE); >VALUE rb_ary_dup(VALUE); >VALUE rb_ary_to_ary(VALUE); >VALUE rb_ary_to_s(VALUE); >VALUE rb_ary_push(VALUE, VALUE); >VALUE rb_ary_pop(VALUE); >VALUE rb_ary_shift(VALUE); >VALUE rb_ary_unshift(VALUE, VALUE); >VALUE rb_ary_entry(VALUE, long); >VALUE rb_ary_each(VALUE); >VALUE rb_ary_join(VALUE, VALUE); >VALUE rb_ary_print_on(VALUE, VALUE); >VALUE rb_ary_reverse(VALUE); >VALUE rb_ary_sort(VALUE); >VALUE rb_ary_sort_bang(VALUE); >VALUE rb_ary_delete(VALUE, VALUE); >VALUE rb_ary_delete_at(VALUE, long); >VALUE rb_ary_clear(VALUE); >VALUE rb_ary_plus(VALUE, VALUE); >VALUE rb_ary_concat(VALUE, VALUE); >VALUE rb_ary_assoc(VALUE, VALUE); >VALUE rb_ary_rassoc(VALUE, VALUE); >VALUE rb_ary_includes(VALUE, VALUE); >VALUE rb_ary_cmp(VALUE, VALUE); >VALUE rb_ary_replace(VALUE copy, VALUE orig); >VALUE rb_get_values_at(VALUE, long, int, VALUE*, VALUE(*)(VALUE,long)); > >VALUE rb_big_clone(VALUE); >void rb_big_2comp(VALUE); >VALUE rb_big_norm(VALUE); >void rb_big_resize(VALUE big, long len); >VALUE rb_uint2big(VALUE); >VALUE rb_int2big(long); >VALUE rb_uint2inum(VALUE); >VALUE rb_int2inum(long); >VALUE rb_cstr_to_inum(const char*, int, int); >VALUE rb_str_to_inum(VALUE, int, int); >VALUE rb_cstr2inum(const char*, int); >VALUE rb_str2inum(VALUE, int); >VALUE rb_big2str(VALUE, int); >VALUE rb_big2str0(VALUE, int, int); >long rb_big2long(VALUE); > >VALUE rb_big2ulong(VALUE); > > >VALUE rb_ll2inum(long long); >VALUE rb_ull2inum(unsigned long long); >long long rb_big2ll(VALUE); >unsigned long long rb_big2ull(VALUE); > >void rb_quad_pack(char*,VALUE); >VALUE rb_quad_unpack(const char*,int); >int rb_uv_to_utf8(char[6],unsigned long); >VALUE rb_dbl2big(double); >double rb_big2dbl(VALUE); >VALUE rb_big_cmp(VALUE, VALUE); >VALUE rb_big_eq(VALUE, VALUE); >VALUE rb_big_plus(VALUE, VALUE); >VALUE rb_big_minus(VALUE, VALUE); >VALUE rb_big_mul(VALUE, VALUE); >VALUE rb_big_div(VALUE, VALUE); >VALUE rb_big_modulo(VALUE, VALUE); >VALUE rb_big_divmod(VALUE, VALUE); >VALUE rb_big_pow(VALUE, VALUE); >VALUE rb_big_and(VALUE, VALUE); >VALUE rb_big_or(VALUE, VALUE); >VALUE rb_big_xor(VALUE, VALUE); >VALUE rb_big_lshift(VALUE, VALUE); >VALUE rb_big_rshift(VALUE, VALUE); > >VALUE rb_rational_raw(VALUE, VALUE); > > >VALUE rb_rational_new(VALUE, VALUE); > > >VALUE rb_Rational(VALUE, VALUE); > > > >VALUE rb_complex_raw(VALUE, VALUE); > > >VALUE rb_complex_new(VALUE, VALUE); > > >VALUE rb_complex_polar(VALUE, VALUE); >VALUE rb_Complex(VALUE, VALUE); > > > >VALUE rb_class_boot(VALUE); >VALUE rb_class_new(VALUE); >VALUE rb_mod_init_copy(VALUE, VALUE); >VALUE rb_class_init_copy(VALUE, VALUE); >VALUE rb_singleton_class_clone(VALUE); >void rb_singleton_class_attached(VALUE,VALUE); >VALUE rb_make_metaclass(VALUE, VALUE); >void rb_check_inheritable(VALUE); >VALUE rb_class_inherited(VALUE, VALUE); >VALUE rb_define_class_id(ID, VALUE); >VALUE rb_module_new(void); >VALUE rb_define_module_id(ID); >VALUE rb_mod_included_modules(VALUE); >VALUE rb_mod_include_p(VALUE, VALUE); >VALUE rb_mod_ancestors(VALUE); >VALUE rb_class_instance_methods(int, VALUE*, VALUE); >VALUE rb_class_public_instance_methods(int, VALUE*, VALUE); >VALUE rb_class_protected_instance_methods(int, VALUE*, VALUE); >VALUE rb_class_private_instance_methods(int, VALUE*, VALUE); >VALUE rb_obj_singleton_methods(int, VALUE*, VALUE); >void rb_define_method_id(VALUE, ID, VALUE (*)(), int); >void rb_frozen_class_p(VALUE); >void rb_undef(VALUE, ID); >void rb_define_protected_method(VALUE, const char*, VALUE (*)(), int); >void rb_define_private_method(VALUE, const char*, VALUE (*)(), int); >void rb_define_singleton_method(VALUE, const char*, VALUE(*)(), int); >VALUE rb_singleton_class(VALUE); > >int rb_cmpint(VALUE, VALUE, VALUE); >__attribute__ ((noreturn)) void rb_cmperr(VALUE, VALUE); > >VALUE rb_fiber_new(VALUE (*)(), VALUE); >VALUE rb_fiber_resume(VALUE fib, int argc, VALUE *args); >VALUE rb_fiber_yield(int argc, VALUE *args); >VALUE rb_fiber_current(void); >VALUE rb_fiber_alive_p(VALUE); > > >VALUE rb_enumeratorize(VALUE, VALUE, int, VALUE *); > > > > > > >VALUE rb_exc_new(VALUE, const char*, long); >VALUE rb_exc_new2(VALUE, const char*); >VALUE rb_exc_new3(VALUE, VALUE); >__attribute__ ((noreturn)) void rb_loaderror(const char*, ...) __attribute__((format(printf, 1, 2))); >__attribute__ ((noreturn)) void rb_name_error(ID, const char*, ...) __attribute__((format(printf, 2, 3))); >__attribute__ ((noreturn)) void rb_invalid_str(const char*, const char*); >void rb_compile_error(const char*, int, const char*, ...) __attribute__((format(printf, 3, 4))); >void rb_compile_error_append(const char*, ...) __attribute__((format(printf, 1, 2))); >__attribute__ ((noreturn)) void rb_load_fail(const char*); >__attribute__ ((noreturn)) void rb_error_frozen(const char*); >void rb_check_frozen(VALUE); > >int rb_sourceline(void); >const char *rb_sourcefile(void); > > >typedef struct { > int maxfd; > fd_set *fdset; >} rb_fdset_t; > >void rb_fd_init(volatile rb_fdset_t *); >void rb_fd_term(rb_fdset_t *); >void rb_fd_zero(rb_fdset_t *); >void rb_fd_set(int, rb_fdset_t *); >void rb_fd_clr(int, rb_fdset_t *); >int rb_fd_isset(int, const rb_fdset_t *); >void rb_fd_copy(rb_fdset_t *, const fd_set *, int); >int rb_fd_select(int, rb_fdset_t *, rb_fdset_t *, rb_fdset_t *, struct timeval *); ># 237 "./include/ruby/intern.h" >__attribute__ ((noreturn)) void rb_exc_raise(VALUE); >__attribute__ ((noreturn)) void rb_exc_fatal(VALUE); >VALUE rb_f_exit(int,VALUE*); >VALUE rb_f_abort(int,VALUE*); >void rb_remove_method(VALUE, const char*); > > > >typedef VALUE (*rb_alloc_func_t)(VALUE); >void rb_define_alloc_func(VALUE, rb_alloc_func_t); >void rb_undef_alloc_func(VALUE); >rb_alloc_func_t rb_get_alloc_func(VALUE); >void rb_clear_cache(void); >void rb_clear_cache_by_class(VALUE); >void rb_alias(VALUE, ID, ID); >void rb_attr(VALUE,ID,int,int,int); >int rb_method_boundp(VALUE, ID, int); >int rb_method_basic_definition_p(VALUE, ID); >VALUE rb_eval_cmd(VALUE, VALUE, int); >int rb_obj_respond_to(VALUE, ID, int); >int rb_respond_to(VALUE, ID); >void rb_interrupt(void); >VALUE rb_apply(VALUE, ID, VALUE); >void rb_backtrace(void); >ID rb_frame_this_func(void); >VALUE rb_obj_instance_eval(int, VALUE*, VALUE); >VALUE rb_obj_instance_exec(int, VALUE*, VALUE); >VALUE rb_mod_module_eval(int, VALUE*, VALUE); >VALUE rb_mod_module_exec(int, VALUE*, VALUE); >void rb_load(VALUE, int); >void rb_load_protect(VALUE, int, int*); >__attribute__ ((noreturn)) void rb_jump_tag(int); >int rb_provided(const char*); >int rb_feature_provided(const char *, const char **); >void rb_provide(const char*); >VALUE rb_f_require(VALUE, VALUE); >VALUE rb_require_safe(VALUE, int); >void rb_obj_call_init(VALUE, int, VALUE*); >VALUE rb_class_new_instance(int, VALUE*, VALUE); >VALUE rb_block_proc(void); >VALUE rb_f_lambda(void); >VALUE rb_proc_new(VALUE (*)( ), VALUE); >VALUE rb_proc_call(VALUE, VALUE); >VALUE rb_proc_call_with_block(VALUE, int argc, VALUE *argv, VALUE); >int rb_proc_arity(VALUE); >VALUE rb_binding_new(void); >VALUE rb_obj_method(VALUE, VALUE); >VALUE rb_method_call(int, VALUE*, VALUE); >int rb_mod_method_arity(VALUE, ID); >int rb_obj_method_arity(VALUE, ID); >VALUE rb_protect(VALUE (*)(VALUE), VALUE, int*); >void rb_set_end_proc(void (*)(VALUE), VALUE); >void rb_mark_end_proc(void); >void rb_exec_end_proc(void); >void Init_jump(void); >void ruby_finalize(void); >__attribute__ ((noreturn)) void ruby_stop(int); >int ruby_cleanup(int); >void rb_gc_mark_threads(void); >void rb_thread_schedule(void); >void rb_thread_wait_fd(int); >int rb_thread_fd_writable(int); >void rb_thread_fd_close(int); >int rb_thread_alone(void); >void rb_thread_polling(void); >void rb_thread_sleep(int); >void rb_thread_sleep_forever(void); >VALUE rb_thread_stop(void); >VALUE rb_thread_wakeup(VALUE); >VALUE rb_thread_run(VALUE); >VALUE rb_thread_kill(VALUE); >VALUE rb_thread_create(VALUE (*)(), void*); >void rb_thread_signal_raise(void *, int); >void rb_thread_signal_exit(void *); >int rb_thread_select(int, fd_set *, fd_set *, fd_set *, struct timeval *); >void rb_thread_wait_for(struct timeval); >VALUE rb_thread_current(void); >VALUE rb_thread_main(void); >VALUE rb_thread_local_aref(VALUE, ID); >VALUE rb_thread_local_aset(VALUE, ID, VALUE); >void rb_thread_atfork(void); >void rb_thread_atfork_before_exec(void); >VALUE rb_exec_recursive(VALUE(*)(VALUE, VALUE, int),VALUE,VALUE); > >VALUE rb_file_s_expand_path(int, VALUE *); >VALUE rb_file_expand_path(VALUE, VALUE); >VALUE rb_file_s_absolute_path(int, VALUE *); >VALUE rb_file_absolute_path(VALUE, VALUE); >void rb_file_const(const char*, VALUE); >int rb_find_file_ext(VALUE*, const char* const*); >VALUE rb_find_file(VALUE); >char *rb_path_next(const char *); >char *rb_path_skip_prefix(const char *); >char *rb_path_last_separator(const char *); >char *rb_path_end(const char *); >VALUE rb_file_directory_p(VALUE,VALUE); > >void ruby_set_stack_size(size_t); >__attribute__ ((noreturn)) void rb_memerror(void); >int ruby_stack_check(void); >size_t ruby_stack_length(VALUE**); >int rb_during_gc(void); >void rb_gc_mark_locations(VALUE*, VALUE*); >void rb_mark_tbl(struct st_table*); >void rb_mark_set(struct st_table*); >void rb_mark_hash(struct st_table*); >void rb_gc_mark_maybe(VALUE); >void rb_gc_mark(VALUE); >void rb_gc_force_recycle(VALUE); >void rb_gc(void); >void rb_gc_copy_finalizer(VALUE,VALUE); >void rb_gc_finalize_deferred(void); >void rb_gc_call_finalizer_at_exit(void); >VALUE rb_gc_enable(void); >VALUE rb_gc_disable(void); >VALUE rb_gc_start(void); > >void st_foreach_safe(struct st_table *, int (*)(), st_data_t); >void rb_hash_foreach(VALUE, int (*)(), VALUE); >VALUE rb_hash(VALUE); >VALUE rb_hash_new(void); >VALUE rb_hash_dup(VALUE); >VALUE rb_hash_freeze(VALUE); >VALUE rb_hash_aref(VALUE, VALUE); >VALUE rb_hash_lookup(VALUE, VALUE); >VALUE rb_hash_lookup2(VALUE, VALUE, VALUE); >VALUE rb_hash_fetch(VALUE, VALUE); >VALUE rb_hash_aset(VALUE, VALUE, VALUE); >VALUE rb_hash_delete_if(VALUE); >VALUE rb_hash_delete(VALUE,VALUE); >struct st_table *rb_hash_tbl(VALUE); >int rb_path_check(const char*); >int rb_env_path_tainted(void); >VALUE rb_env_clear(void); > > >extern VALUE rb_fs; >extern VALUE rb_output_fs; >extern VALUE rb_rs; >extern VALUE rb_default_rs; >extern VALUE rb_output_rs; >VALUE rb_io_write(VALUE, VALUE); >VALUE rb_io_gets(VALUE); >VALUE rb_io_getbyte(VALUE); >VALUE rb_io_ungetc(VALUE, VALUE); >VALUE rb_io_ungetbyte(VALUE, VALUE); >VALUE rb_io_close(VALUE); >VALUE rb_io_flush(VALUE); >VALUE rb_io_eof(VALUE); >VALUE rb_io_binmode(VALUE); >VALUE rb_io_ascii8bit_binmode(VALUE); >VALUE rb_io_addstr(VALUE, VALUE); >VALUE rb_io_printf(int, VALUE*, VALUE); >VALUE rb_io_print(int, VALUE*, VALUE); >VALUE rb_io_puts(int, VALUE*, VALUE); >VALUE rb_io_fdopen(int, int, const char*); >VALUE rb_file_open(const char*, const char*); >VALUE rb_file_open_str(VALUE, const char*); >VALUE rb_gets(void); >void rb_write_error(const char*); >void rb_write_error2(const char*, long); >void rb_close_before_exec(int lowfd, int maxhint, VALUE noclose_fds); >int rb_pipe(int *pipes); > >VALUE rb_marshal_dump(VALUE, VALUE); >VALUE rb_marshal_load(VALUE); >void rb_marshal_define_compat(VALUE newclass, VALUE oldclass, VALUE (*dumper)(VALUE), VALUE (*loader)(VALUE, VALUE)); > >void rb_num_zerodiv(void); >VALUE rb_num_coerce_bin(VALUE, VALUE, ID); >VALUE rb_num_coerce_cmp(VALUE, VALUE, ID); >VALUE rb_num_coerce_relop(VALUE, VALUE, ID); >VALUE rb_float_new(double); >VALUE rb_num2fix(VALUE); >VALUE rb_fix2str(VALUE, int); >VALUE rb_dbl_cmp(double, double); > >int rb_eql(VALUE, VALUE); >VALUE rb_any_to_s(VALUE); >VALUE rb_inspect(VALUE); >VALUE rb_obj_is_instance_of(VALUE, VALUE); >VALUE rb_obj_is_kind_of(VALUE, VALUE); >VALUE rb_obj_alloc(VALUE); >VALUE rb_obj_clone(VALUE); >VALUE rb_obj_dup(VALUE); >VALUE rb_obj_init_copy(VALUE,VALUE); >VALUE rb_obj_taint(VALUE); >VALUE rb_obj_tainted(VALUE); >VALUE rb_obj_untaint(VALUE); >VALUE rb_obj_freeze(VALUE); >VALUE rb_obj_frozen_p(VALUE); >VALUE rb_obj_id(VALUE); >VALUE rb_obj_class(VALUE); >VALUE rb_class_real(VALUE); >VALUE rb_class_inherited_p(VALUE, VALUE); >VALUE rb_convert_type(VALUE,int,const char*,const char*); >VALUE rb_check_convert_type(VALUE,int,const char*,const char*); >VALUE rb_check_to_integer(VALUE, const char *); >VALUE rb_to_int(VALUE); >VALUE rb_Integer(VALUE); >VALUE rb_Float(VALUE); >VALUE rb_String(VALUE); >VALUE rb_Array(VALUE); >double rb_cstr_to_dbl(const char*, int); >double rb_str_to_dbl(VALUE, int); > >extern int ruby_sourceline; >extern char *ruby_sourcefile; >ID rb_id_attrset(ID); >void rb_gc_mark_parser(void); >int rb_is_const_id(ID); >int rb_is_instance_id(ID); >int rb_is_class_id(ID); >int rb_is_local_id(ID); >int rb_is_junk_id(ID); >int rb_symname_p(const char*); >int rb_sym_interned_p(VALUE); >void rb_gc_mark_symbols(void); >VALUE rb_backref_get(void); >void rb_backref_set(VALUE); >VALUE rb_lastline_get(void); >void rb_lastline_set(VALUE); >VALUE rb_sym_all_symbols(void); > >void rb_last_status_set(int status, pid_t pid); >VALUE rb_last_status_get(void); >struct rb_exec_arg { > int argc; > VALUE *argv; > const char *prog; > VALUE options; > VALUE redirect_fds; >}; >int rb_proc_exec_n(int, VALUE*, const char*); >int rb_proc_exec(const char*); >VALUE rb_exec_arg_init(int argc, VALUE *argv, int accept_shell, struct rb_exec_arg *e); >int rb_exec_arg_addopt(struct rb_exec_arg *e, VALUE key, VALUE val); >void rb_exec_arg_fixup(struct rb_exec_arg *e); >int rb_run_exec_options(const struct rb_exec_arg *e, struct rb_exec_arg *s); >int rb_exec(const struct rb_exec_arg*); >pid_t rb_fork(int*, int (*)(void*), void*, VALUE); >VALUE rb_f_exec(int,VALUE*); >pid_t rb_waitpid(pid_t pid, int *status, int flags); >void rb_syswait(pid_t pid); >pid_t rb_spawn(int, VALUE*); >VALUE rb_proc_times(VALUE); >VALUE rb_detach_process(pid_t pid); > >VALUE rb_range_new(VALUE, VALUE, int); >VALUE rb_range_beg_len(VALUE, long*, long*, long, int); > >unsigned long rb_genrand_int32(void); >double rb_genrand_real(void); >void rb_reset_random_seed(void); > > >int rb_memcicmp(const void*,const void*,long); >void rb_match_busy(VALUE); >VALUE rb_reg_nth_defined(int, VALUE); >VALUE rb_reg_nth_match(int, VALUE); >VALUE rb_reg_last_match(VALUE); >VALUE rb_reg_match_pre(VALUE); >VALUE rb_reg_match_post(VALUE); >VALUE rb_reg_match_last(VALUE); > >VALUE rb_reg_new_str(VALUE, int); >VALUE rb_reg_new(const char *, long, int); >VALUE rb_reg_match(VALUE, VALUE); >VALUE rb_reg_match2(VALUE); >int rb_reg_options(VALUE); >void rb_set_kcode(const char*); >const char* rb_get_kcode(void); > > >extern VALUE rb_argv0; >VALUE rb_get_argv(void); >void *rb_load_file(const char*); >void ruby_script(const char*); >void ruby_prog_init(void); >void ruby_set_argv(int, char**); >void *ruby_process_options(int, char**); >void ruby_init_loadpath(void); >void ruby_incpush(const char*); > >VALUE rb_f_kill(int, VALUE*); >void rb_gc_mark_trap_list(void); > > >void (*ruby_posix_signal(int, void (*)(int)))(int); > >void ruby_sig_finalize(void); >void rb_trap_exit(void); >void rb_trap_exec(void); >const char *ruby_signal_name(int); >void ruby_default_signal(int); > >VALUE rb_f_sprintf(int, const VALUE*); >VALUE rb_sprintf(const char*, ...) __attribute__((format(printf, 1, 2))); >VALUE rb_vsprintf(const char*, va_list); >VALUE rb_str_catf(VALUE, const char*, ...) __attribute__((format(printf, 2, 3))); >VALUE rb_str_vcatf(VALUE, const char*, va_list); >VALUE rb_str_format(int, const VALUE *, VALUE); > >VALUE rb_str_new(const char*, long); >VALUE rb_str_new_cstr(const char*); >VALUE rb_str_new2(const char*); >VALUE rb_str_new_shared(VALUE); >VALUE rb_str_new3(VALUE); >VALUE rb_str_new_frozen(VALUE); >VALUE rb_str_new4(VALUE); >VALUE rb_str_new_with_class(VALUE, const char*, long); >VALUE rb_str_new5(VALUE, const char*, long); >VALUE rb_tainted_str_new_cstr(const char*); >VALUE rb_tainted_str_new(const char*, long); >VALUE rb_tainted_str_new2(const char*); >VALUE rb_external_str_new(const char*, long); >VALUE rb_external_str_new_cstr(const char*); >VALUE rb_locale_str_new(const char*, long); >VALUE rb_locale_str_new_cstr(const char*); >VALUE rb_str_buf_new(long); >VALUE rb_str_buf_new_cstr(const char*); >VALUE rb_str_buf_new2(const char*); >VALUE rb_str_tmp_new(long); >VALUE rb_usascii_str_new(const char*, long); >VALUE rb_usascii_str_new_cstr(const char*); >VALUE rb_usascii_str_new2(const char*); >void rb_str_free(VALUE); >void rb_str_shared_replace(VALUE, VALUE); >VALUE rb_str_buf_append(VALUE, VALUE); >VALUE rb_str_buf_cat(VALUE, const char*, long); >VALUE rb_str_buf_cat2(VALUE, const char*); >VALUE rb_str_buf_cat_ascii(VALUE, const char*); >VALUE rb_obj_as_string(VALUE); >VALUE rb_check_string_type(VALUE); >VALUE rb_str_dup(VALUE); >VALUE rb_str_locktmp(VALUE); >VALUE rb_str_unlocktmp(VALUE); >VALUE rb_str_dup_frozen(VALUE); > >VALUE rb_str_plus(VALUE, VALUE); >VALUE rb_str_times(VALUE, VALUE); >long rb_str_sublen(VALUE, long); >VALUE rb_str_substr(VALUE, long, long); >VALUE rb_str_subseq(VALUE, long, long); >void rb_str_modify(VALUE); >VALUE rb_str_freeze(VALUE); >void rb_str_set_len(VALUE, long); >VALUE rb_str_resize(VALUE, long); >VALUE rb_str_cat(VALUE, const char*, long); >VALUE rb_str_cat2(VALUE, const char*); >VALUE rb_str_append(VALUE, VALUE); >VALUE rb_str_concat(VALUE, VALUE); >int rb_memhash(const void *ptr, long len); >int rb_str_hash(VALUE); >int rb_str_hash_cmp(VALUE,VALUE); >int rb_str_comparable(VALUE, VALUE); >int rb_str_cmp(VALUE, VALUE); >VALUE rb_str_equal(VALUE str1, VALUE str2); >VALUE rb_str_drop_bytes(VALUE, long); >void rb_str_update(VALUE, long, long, VALUE); >VALUE rb_str_inspect(VALUE); >VALUE rb_str_dump(VALUE); >VALUE rb_str_split(VALUE, const char*); >void rb_str_associate(VALUE, VALUE); >VALUE rb_str_associated(VALUE); >void rb_str_setter(VALUE, ID, VALUE*); >VALUE rb_str_intern(VALUE); >VALUE rb_sym_to_s(VALUE); >VALUE rb_str_length(VALUE); >size_t rb_str_capacity(VALUE); ># 666 "./include/ruby/intern.h" >VALUE rb_struct_new(VALUE, ...); >VALUE rb_struct_define(const char*, ...); >VALUE rb_struct_alloc(VALUE, VALUE); >VALUE rb_struct_initialize(VALUE, VALUE); >VALUE rb_struct_aref(VALUE, VALUE); >VALUE rb_struct_aset(VALUE, VALUE, VALUE); >VALUE rb_struct_getmember(VALUE, ID); >VALUE rb_struct_iv_get(VALUE, const char*); >VALUE rb_struct_s_members(VALUE); >VALUE rb_struct_members(VALUE); >VALUE rb_struct_alloc_noinit(VALUE); >VALUE rb_struct_define_without_accessor(const char *, VALUE, rb_alloc_func_t, ...); > >typedef void rb_unblock_function_t(void *); >typedef VALUE rb_blocking_function_t(void *); >void rb_thread_check_ints(void); >int rb_thread_interrupted(VALUE thval); >VALUE rb_thread_blocking_region(rb_blocking_function_t *func, void *data1, > rb_unblock_function_t *ubf, void *data2); > > >VALUE rb_mutex_new(void); >VALUE rb_mutex_locked_p(VALUE mutex); >VALUE rb_mutex_try_lock(VALUE mutex); >VALUE rb_mutex_lock(VALUE mutex); >VALUE rb_mutex_unlock(VALUE mutex); >VALUE rb_mutex_sleep(VALUE self, VALUE timeout); >VALUE rb_mutex_synchronize(VALUE mutex, VALUE (*func)(VALUE arg), VALUE arg); >VALUE rb_barrier_new(void); >VALUE rb_barrier_wait(VALUE self); >VALUE rb_barrier_release(VALUE self); >VALUE rb_barrier_destroy(VALUE self); > >VALUE rb_time_new(time_t, long); >VALUE rb_time_nano_new(time_t, long); > >VALUE rb_mod_name(VALUE); >VALUE rb_class_path(VALUE); >void rb_set_class_path(VALUE, VALUE, const char*); >VALUE rb_path2class(const char*); >void rb_name_class(VALUE, ID); >VALUE rb_class_name(VALUE); >void rb_autoload(VALUE, ID, const char*); >VALUE rb_autoload_load(VALUE, ID); >VALUE rb_autoload_p(VALUE, ID); >void rb_gc_mark_global_tbl(void); >VALUE rb_f_trace_var(int, VALUE*); >VALUE rb_f_untrace_var(int, VALUE*); >VALUE rb_f_global_variables(void); >void rb_alias_variable(ID, ID); >struct st_table* rb_generic_ivar_table(VALUE); >void rb_copy_generic_ivar(VALUE,VALUE); >void rb_mark_generic_ivar(VALUE); >void rb_mark_generic_ivar_tbl(void); >void rb_free_generic_ivar(VALUE); >VALUE rb_ivar_get(VALUE, ID); >VALUE rb_ivar_set(VALUE, ID, VALUE); >VALUE rb_ivar_defined(VALUE, ID); >void rb_ivar_foreach(VALUE, int (*)(), st_data_t); >VALUE rb_iv_set(VALUE, const char*, VALUE); >VALUE rb_iv_get(VALUE, const char*); >VALUE rb_attr_get(VALUE, ID); >VALUE rb_obj_instance_variables(VALUE); >VALUE rb_obj_remove_instance_variable(VALUE, VALUE); >void *rb_mod_const_at(VALUE, void*); >void *rb_mod_const_of(VALUE, void*); >VALUE rb_const_list(void*); >VALUE rb_mod_constants(int, VALUE *, VALUE); >VALUE rb_mod_remove_const(VALUE, VALUE); >int rb_const_defined(VALUE, ID); >int rb_const_defined_at(VALUE, ID); >int rb_const_defined_from(VALUE, ID); >VALUE rb_const_get(VALUE, ID); >VALUE rb_const_get_at(VALUE, ID); >VALUE rb_const_get_from(VALUE, ID); >void rb_const_set(VALUE, ID, VALUE); >VALUE rb_mod_const_missing(VALUE,VALUE); >VALUE rb_cvar_defined(VALUE, ID); >void rb_cvar_set(VALUE, ID, VALUE); >VALUE rb_cvar_get(VALUE, ID); >void rb_cv_set(VALUE, const char*, VALUE); >VALUE rb_cv_get(VALUE, const char*); >void rb_define_class_variable(VALUE, const char*, VALUE); >VALUE rb_mod_class_variables(VALUE); >VALUE rb_mod_remove_cvar(VALUE, VALUE); > >void ruby_show_version(void); >void ruby_show_copyright(void); > >ID rb_frame_callee(void); >VALUE rb_str_succ(VALUE); >VALUE rb_time_succ(VALUE); > >void rb_frame_pop(void); >int rb_frame_method_id_and_class(ID *idp, VALUE *klassp); ># 1127 "./include/ruby/ruby.h" 2 ># 1140 "./include/ruby/ruby.h" >void ruby_sysinit(int *, char ***); > > > >int ruby_native_thread_p(void); ># 1160 "./include/ruby/ruby.h" >typedef unsigned int rb_event_flag_t; >typedef void (*rb_event_hook_func_t)(rb_event_flag_t, VALUE data, VALUE, ID, VALUE klass); > >typedef struct rb_event_hook_struct { > rb_event_flag_t flag; > rb_event_hook_func_t func; > VALUE data; > struct rb_event_hook_struct *next; >} rb_event_hook_t; > >void rb_add_event_hook(rb_event_hook_func_t func, rb_event_flag_t events, > VALUE data); >int rb_remove_event_hook(rb_event_hook_func_t func); > > > > >int rb_isalnum(int c); >int rb_isalpha(int c); >int rb_isblank(int c); >int rb_iscntrl(int c); >int rb_isdigit(int c); >int rb_isgraph(int c); >int rb_islower(int c); >int rb_isprint(int c); >int rb_ispunct(int c); >int rb_isspace(int c); >int rb_isupper(int c); >int rb_isxdigit(int c); >int rb_tolower(int c); >int rb_toupper(int c); ># 1207 "./include/ruby/ruby.h" >int st_strcasecmp(const char *s1, const char *s2); >int st_strncasecmp(const char *s1, const char *s2, size_t n); > > > >unsigned long ruby_strtoul(const char *str, char **endptr, int base); ># 19 "parse.y" 2 > ># 1 "./include/ruby/encoding.h" 1 ># 16 "./include/ruby/encoding.h" ># 1 "./include/ruby/oniguruma.h" 1 ># 106 "./include/ruby/oniguruma.h" >typedef unsigned char OnigUChar; >typedef unsigned int OnigCodePoint; >typedef unsigned int OnigCtype; >typedef unsigned int OnigDistance; > > > >typedef unsigned int OnigCaseFoldType; > >extern OnigCaseFoldType OnigDefaultCaseFoldFlag; ># 135 "./include/ruby/oniguruma.h" >typedef struct { > int byte_len; > int code_len; > OnigCodePoint code[3]; >} OnigCaseFoldCodeItem; > >typedef struct { > OnigCodePoint esc; > OnigCodePoint anychar; > OnigCodePoint anytime; > OnigCodePoint zero_or_one_time; > OnigCodePoint one_or_more_time; > OnigCodePoint anychar_anytime; >} OnigMetaCharTableType; > >typedef int (*OnigApplyAllCaseFoldFunc)(OnigCodePoint from, OnigCodePoint* to, int to_len, void* arg); > >typedef struct OnigEncodingTypeST { > int (*precise_mbc_enc_len)(const OnigUChar* p,const OnigUChar* e, struct OnigEncodingTypeST* enc); > const char* name; > int max_enc_len; > int min_enc_len; > int (*is_mbc_newline)(const OnigUChar* p, const OnigUChar* end, struct OnigEncodingTypeST* enc); > OnigCodePoint (*mbc_to_code)(const OnigUChar* p, const OnigUChar* end, struct OnigEncodingTypeST* enc); > int (*code_to_mbclen)(OnigCodePoint code, struct OnigEncodingTypeST* enc); > int (*code_to_mbc)(OnigCodePoint code, OnigUChar *buf, struct OnigEncodingTypeST* enc); > int (*mbc_case_fold)(OnigCaseFoldType flag, const OnigUChar** pp, const OnigUChar* end, OnigUChar* to, struct OnigEncodingTypeST* enc); > int (*apply_all_case_fold)(OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg, struct OnigEncodingTypeST* enc); > int (*get_case_fold_codes_by_str)(OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem acs[], struct OnigEncodingTypeST* enc); > int (*property_name_to_ctype)(struct OnigEncodingTypeST* enc, OnigUChar* p, OnigUChar* end); > int (*is_code_ctype)(OnigCodePoint code, OnigCtype ctype, struct OnigEncodingTypeST* enc); > int (*get_ctype_code_range)(OnigCtype ctype, OnigCodePoint* sb_out, const OnigCodePoint* ranges[], struct OnigEncodingTypeST* enc); > OnigUChar* (*left_adjust_char_head)(const OnigUChar* start, const OnigUChar* p, const OnigUChar* end, struct OnigEncodingTypeST* enc); > int (*is_allowed_reverse_match)(const OnigUChar* p, const OnigUChar* end, struct OnigEncodingTypeST* enc); > int ruby_encoding_index; >} OnigEncodingType; > >typedef OnigEncodingType* OnigEncoding; > >extern OnigEncodingType OnigEncodingASCII; ># 244 "./include/ruby/oniguruma.h" >extern >int onigenc_mbclen_approximate (const OnigUChar* p,const OnigUChar* e, struct OnigEncodingTypeST* enc); ># 292 "./include/ruby/oniguruma.h" >extern >OnigUChar* onigenc_step_back (OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end, int n); > > > >extern >int onigenc_init (void); >extern >int onigenc_set_default_encoding (OnigEncoding enc); >extern >OnigEncoding onigenc_get_default_encoding (void); >extern >void onigenc_set_default_caseconv_table (const OnigUChar* table); >extern >OnigUChar* onigenc_get_right_adjust_char_head_with_prev (OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end, const OnigUChar** prev); >extern >OnigUChar* onigenc_get_prev_char_head (OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end); >extern >OnigUChar* onigenc_get_left_adjust_char_head (OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end); >extern >OnigUChar* onigenc_get_right_adjust_char_head (OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end); >extern >int onigenc_strlen (OnigEncoding enc, const OnigUChar* p, const OnigUChar* end); >extern >int onigenc_strlen_null (OnigEncoding enc, const OnigUChar* p); >extern >int onigenc_str_bytelen_null (OnigEncoding enc, const OnigUChar* p); ># 332 "./include/ruby/oniguruma.h" >typedef unsigned int OnigOptionType; ># 358 "./include/ruby/oniguruma.h" >typedef struct { > unsigned int op; > unsigned int op2; > unsigned int behavior; > OnigOptionType options; > OnigMetaCharTableType meta_char_table; >} OnigSyntaxType; > >extern const OnigSyntaxType OnigSyntaxASIS; >extern const OnigSyntaxType OnigSyntaxPosixBasic; >extern const OnigSyntaxType OnigSyntaxPosixExtended; >extern const OnigSyntaxType OnigSyntaxEmacs; >extern const OnigSyntaxType OnigSyntaxGrep; >extern const OnigSyntaxType OnigSyntaxGnuRegex; >extern const OnigSyntaxType OnigSyntaxJava; >extern const OnigSyntaxType OnigSyntaxPerl; >extern const OnigSyntaxType OnigSyntaxPerl_NG; >extern const OnigSyntaxType OnigSyntaxRuby; ># 390 "./include/ruby/oniguruma.h" >extern const OnigSyntaxType* OnigDefaultSyntax; ># 559 "./include/ruby/oniguruma.h" >typedef struct OnigCaptureTreeNodeStruct { > int group; > int beg; > int end; > int allocated; > int num_childs; > struct OnigCaptureTreeNodeStruct** childs; >} OnigCaptureTreeNode; > > >struct re_registers { > int allocated; > int num_regs; > int* beg; > int* end; > > OnigCaptureTreeNode* history_root; >}; ># 587 "./include/ruby/oniguruma.h" >typedef struct re_registers OnigRegion; > >typedef struct { > OnigEncoding enc; > OnigUChar* par; > OnigUChar* par_end; >} OnigErrorInfo; > >typedef struct { > int lower; > int upper; >} OnigRepeatRange; > >typedef void (*OnigWarnFunc) (const char* s); >extern void onig_null_warn (const char* s); ># 615 "./include/ruby/oniguruma.h" >typedef struct re_pattern_buffer { > > unsigned char* p; > unsigned int used; > unsigned int alloc; > > int state; > int num_mem; > int num_repeat; > int num_null_check; > int num_comb_exp_check; > int num_call; > unsigned int capture_history; > unsigned int bt_mem_start; > unsigned int bt_mem_end; > int stack_pop_level; > int repeat_range_alloc; > OnigRepeatRange* repeat_range; > > OnigEncoding enc; > OnigOptionType options; > const OnigSyntaxType* syntax; > OnigCaseFoldType case_fold_flag; > void* name_table; > > > int optimize; > int threshold_len; > int anchor; > OnigDistance anchor_dmin; > OnigDistance anchor_dmax; > int sub_anchor; > unsigned char *exact; > unsigned char *exact_end; > unsigned char map[256]; > int *int_map; > int *int_map_backward; > OnigDistance dmin; > OnigDistance dmax; > > > struct re_pattern_buffer* chain; >} OnigRegexType; > >typedef OnigRegexType* OnigRegex; > > > typedef OnigRegexType regex_t; > > > >typedef struct { > int num_of_elements; > OnigEncoding pattern_enc; > OnigEncoding target_enc; > OnigSyntaxType* syntax; > OnigOptionType option; > OnigCaseFoldType case_fold_flag; >} OnigCompileInfo; > > >extern >int onig_init (void); >extern >int onig_error_code_to_str (OnigUChar* s, int err_code, ...); >extern >void onig_set_warn_func (OnigWarnFunc f); >extern >void onig_set_verb_warn_func (OnigWarnFunc f); >extern >int onig_new (OnigRegex*, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigOptionType option, OnigEncoding enc, const OnigSyntaxType* syntax, OnigErrorInfo* einfo); >extern >int onig_new_deluxe (OnigRegex* reg, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigCompileInfo* ci, OnigErrorInfo* einfo); >extern >void onig_free (OnigRegex); >extern >int onig_recompile (OnigRegex, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigOptionType option, OnigEncoding enc, OnigSyntaxType* syntax, OnigErrorInfo* einfo); >extern >int onig_recompile_deluxe (OnigRegex reg, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigCompileInfo* ci, OnigErrorInfo* einfo); >extern >int onig_search (OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* start, const OnigUChar* range, OnigRegion* region, OnigOptionType option); >extern >int onig_match (OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* at, OnigRegion* region, OnigOptionType option); >extern >OnigRegion* onig_region_new (void); >extern >void onig_region_init (OnigRegion* region); >extern >void onig_region_free (OnigRegion* region, int free_self); >extern >void onig_region_copy (OnigRegion* to, OnigRegion* from); >extern >void onig_region_clear (OnigRegion* region); >extern >int onig_region_resize (OnigRegion* region, int n); >extern >int onig_region_set (OnigRegion* region, int at, int beg, int end); >extern >int onig_name_to_group_numbers (OnigRegex reg, const OnigUChar* name, const OnigUChar* name_end, int** nums); >extern >int onig_name_to_backref_number (OnigRegex reg, const OnigUChar* name, const OnigUChar* name_end, OnigRegion *region); >extern >int onig_foreach_name (OnigRegex reg, int (*func)(const OnigUChar*, const OnigUChar*,int,int*,OnigRegex,void*), void* arg); >extern >int onig_number_of_names (OnigRegex reg); >extern >int onig_number_of_captures (OnigRegex reg); >extern >int onig_number_of_capture_histories (OnigRegex reg); >extern >OnigCaptureTreeNode* onig_get_capture_tree (OnigRegion* region); >extern >int onig_capture_tree_traverse (OnigRegion* region, int at, int(*callback_func)(int,int,int,int,int,void*), void* arg); >extern >int onig_noname_group_capture_is_active (OnigRegex reg); >extern >OnigEncoding onig_get_encoding (OnigRegex reg); >extern >OnigOptionType onig_get_options (OnigRegex reg); >extern >OnigCaseFoldType onig_get_case_fold_flag (OnigRegex reg); >extern >const OnigSyntaxType* onig_get_syntax (OnigRegex reg); >extern >int onig_set_default_syntax (const OnigSyntaxType* syntax); >extern >void onig_copy_syntax (OnigSyntaxType* to, const OnigSyntaxType* from); >extern >unsigned int onig_get_syntax_op (OnigSyntaxType* syntax); >extern >unsigned int onig_get_syntax_op2 (OnigSyntaxType* syntax); >extern >unsigned int onig_get_syntax_behavior (OnigSyntaxType* syntax); >extern >OnigOptionType onig_get_syntax_options (OnigSyntaxType* syntax); >extern >void onig_set_syntax_op (OnigSyntaxType* syntax, unsigned int op); >extern >void onig_set_syntax_op2 (OnigSyntaxType* syntax, unsigned int op2); >extern >void onig_set_syntax_behavior (OnigSyntaxType* syntax, unsigned int behavior); >extern >void onig_set_syntax_options (OnigSyntaxType* syntax, OnigOptionType options); >extern >int onig_set_meta_char (OnigSyntaxType* syntax, unsigned int what, OnigCodePoint code); >extern >void onig_copy_encoding (OnigEncoding to, OnigEncoding from); >extern >OnigCaseFoldType onig_get_default_case_fold_flag (void); >extern >int onig_set_default_case_fold_flag (OnigCaseFoldType case_fold_flag); >extern >unsigned int onig_get_match_stack_limit_size (void); >extern >int onig_set_match_stack_limit_size (unsigned int size); >extern >int onig_end (void); >extern >const char* onig_version (void); >extern >const char* onig_copyright (void); ># 17 "./include/ruby/encoding.h" 2 ># 69 "./include/ruby/encoding.h" >typedef OnigEncodingType rb_encoding; > >int rb_enc_replicate(const char *, rb_encoding *); >int rb_define_dummy_encoding(const char *); > >int rb_enc_get_index(VALUE obj); >void rb_enc_set_index(VALUE obj, int encindex); >int rb_enc_find_index(const char *name); >int rb_to_encoding_index(VALUE); >rb_encoding* rb_to_encoding(VALUE); >rb_encoding* rb_enc_get(VALUE); >rb_encoding* rb_enc_compatible(VALUE,VALUE); >rb_encoding* rb_enc_check(VALUE,VALUE); >VALUE rb_enc_associate_index(VALUE, int); >VALUE rb_enc_associate(VALUE, rb_encoding*); >void rb_enc_copy(VALUE dst, VALUE src); > >VALUE rb_enc_str_new(const char*, long, rb_encoding*); >VALUE rb_enc_reg_new(const char*, long, rb_encoding*, int); >VALUE rb_enc_sprintf(rb_encoding *, const char*, ...) __attribute__((format(printf, 2, 3))); >VALUE rb_enc_vsprintf(rb_encoding *, const char*, va_list); >long rb_enc_strlen(const char*, const char*, rb_encoding*); >char* rb_enc_nth(const char*, const char*, int, rb_encoding*); >VALUE rb_obj_encoding(VALUE); >VALUE rb_enc_str_buf_cat(VALUE str, const char *ptr, long len, rb_encoding *enc); > >VALUE rb_external_str_new_with_enc(const char *ptr, long len, rb_encoding *); >VALUE rb_str_export_to_enc(VALUE, rb_encoding *); >VALUE rb_str_conv_enc(VALUE str, rb_encoding *from, rb_encoding *to); > > >rb_encoding* rb_enc_from_index(int idx); > > >rb_encoding * rb_enc_find(const char *name); ># 113 "./include/ruby/encoding.h" >int rb_enc_mbclen(const char *p, const char *e, rb_encoding *enc); > > >int rb_enc_precise_mbclen(const char *p, const char *e, rb_encoding *enc); > > > > > > > >int rb_enc_ascget(const char *p, const char *e, int *len, rb_encoding *enc); > > >unsigned int rb_enc_codepoint(const char *p, const char *e, rb_encoding *enc); > > > >int rb_enc_codelen(int code, rb_encoding *enc); ># 158 "./include/ruby/encoding.h" >int rb_enc_casefold(char *to, const char *p, const char *e, rb_encoding *enc); >int rb_enc_toupper(int c, rb_encoding *enc); >int rb_enc_tolower(int c, rb_encoding *enc); >ID rb_intern3(const char*, long, rb_encoding*); >ID rb_interned_id_p(const char *, long, rb_encoding *); >int rb_enc_symname_p(const char*, rb_encoding*); >int rb_enc_str_coderange(VALUE); >long rb_str_coderange_scan_restartable(const char*, const char*, rb_encoding*, int*); >int rb_enc_str_asciionly_p(VALUE); > >VALUE rb_enc_from_encoding(rb_encoding *enc); >rb_encoding *rb_ascii8bit_encoding(void); >rb_encoding *rb_utf8_encoding(void); >rb_encoding *rb_usascii_encoding(void); >rb_encoding *rb_locale_encoding(void); >rb_encoding *rb_filesystem_encoding(void); >rb_encoding *rb_default_external_encoding(void); >rb_encoding *rb_default_internal_encoding(void); >int rb_ascii8bit_encindex(void); >int rb_utf8_encindex(void); >int rb_usascii_encindex(void); >VALUE rb_enc_default_external(void); >VALUE rb_enc_default_internal(void); >void rb_enc_set_default_external(VALUE encoding); >void rb_enc_set_default_internal(VALUE encoding); >VALUE rb_locale_charmap(VALUE klass); >long rb_memsearch(const void*,long,const void*,long,rb_encoding*); > >extern VALUE rb_cEncoding; ># 198 "./include/ruby/encoding.h" >static inline int >rb_enc_dummy_p(rb_encoding *enc) >{ > return ((enc)->ruby_encoding_index & (1<<24)) != 0; >} > > > >typedef enum { > econv_invalid_byte_sequence, > econv_undefined_conversion, > econv_destination_buffer_full, > econv_source_buffer_empty, > econv_finished, > econv_after_output, > econv_incomplete_input >} rb_econv_result_t; > >typedef struct rb_econv_t rb_econv_t; > >VALUE rb_str_encode(VALUE str, VALUE to, int ecflags, VALUE ecopts); >int rb_econv_has_convpath_p(const char* from_encoding, const char* to_encoding); > >int rb_econv_prepare_opts(VALUE opthash, VALUE *ecopts); > >rb_econv_t *rb_econv_open(const char *source_encoding, const char *destination_encoding, int ecflags); >rb_econv_t *rb_econv_open_opts(const char *source_encoding, const char *destination_encoding, int ecflags, VALUE ecopts); > >rb_econv_result_t rb_econv_convert(rb_econv_t *ec, > const unsigned char **source_buffer_ptr, const unsigned char *source_buffer_end, > unsigned char **destination_buffer_ptr, unsigned char *destination_buffer_end, > int flags); >void rb_econv_close(rb_econv_t *ec); > > >int rb_econv_set_replacement(rb_econv_t *ec, const unsigned char *str, size_t len, const char *encname); > > >int rb_econv_decorate_at_first(rb_econv_t *ec, const char *decorator_name); >int rb_econv_decorate_at_last(rb_econv_t *ec, const char *decorator_name); > >VALUE rb_econv_open_exc(const char *senc, const char *denc, int ecflags); > > >int rb_econv_insert_output(rb_econv_t *ec, > const unsigned char *str, size_t len, const char *str_encoding); > > >const char *rb_econv_encoding_to_insert_output(rb_econv_t *ec); > > >void rb_econv_check_error(rb_econv_t *ec); > > >VALUE rb_econv_make_exception(rb_econv_t *ec); > >int rb_econv_putbackable(rb_econv_t *ec); >void rb_econv_putback(rb_econv_t *ec, unsigned char *p, int n); > > > >const char *rb_econv_asciicompat_encoding(const char *encname); > >VALUE rb_econv_str_convert(rb_econv_t *ec, VALUE src, int flags); >VALUE rb_econv_substr_convert(rb_econv_t *ec, VALUE src, long byteoff, long bytesize, int flags); >VALUE rb_econv_str_append(rb_econv_t *ec, VALUE src, VALUE dst, int flags); >VALUE rb_econv_substr_append(rb_econv_t *ec, VALUE src, long byteoff, long bytesize, VALUE dst, int flags); > >void rb_econv_binmode(rb_econv_t *ec); ># 21 "parse.y" 2 ># 1 "node.h" 1 ># 22 "node.h" >enum node_type { > NODE_METHOD, > > NODE_FBODY, > > NODE_CFUNC, > > NODE_SCOPE, > > NODE_BLOCK, > > NODE_IF, > > NODE_CASE, > > NODE_WHEN, > > NODE_OPT_N, > > NODE_WHILE, > > NODE_UNTIL, > > NODE_ITER, > > NODE_FOR, > > NODE_BREAK, > > NODE_NEXT, > > NODE_REDO, > > NODE_RETRY, > > NODE_BEGIN, > > NODE_RESCUE, > > NODE_RESBODY, > > NODE_ENSURE, > > NODE_AND, > > NODE_OR, > > NODE_MASGN, > > NODE_LASGN, > > NODE_DASGN, > > NODE_DASGN_CURR, > > NODE_GASGN, > > NODE_IASGN, > > NODE_IASGN2, > > NODE_CDECL, > > NODE_CVASGN, > > NODE_CVDECL, > > NODE_OP_ASGN1, > > NODE_OP_ASGN2, > > NODE_OP_ASGN_AND, > > NODE_OP_ASGN_OR, > > NODE_CALL, > > NODE_FCALL, > > NODE_VCALL, > > NODE_SUPER, > > NODE_ZSUPER, > > NODE_ARRAY, > > NODE_ZARRAY, > > NODE_VALUES, > > NODE_HASH, > > NODE_RETURN, > > NODE_YIELD, > > NODE_LVAR, > > NODE_DVAR, > > NODE_GVAR, > > NODE_IVAR, > > NODE_CONST, > > NODE_CVAR, > > NODE_NTH_REF, > > NODE_BACK_REF, > > NODE_MATCH, > > NODE_MATCH2, > > NODE_MATCH3, > > NODE_LIT, > > NODE_STR, > > NODE_DSTR, > > NODE_XSTR, > > NODE_DXSTR, > > NODE_EVSTR, > > NODE_DREGX, > > NODE_DREGX_ONCE, > > NODE_ARGS, > > NODE_ARGS_AUX, > > NODE_OPT_ARG, > > NODE_POSTARG, > > NODE_ARGSCAT, > > NODE_ARGSPUSH, > > NODE_SPLAT, > > NODE_TO_ARY, > > NODE_BLOCK_ARG, > > NODE_BLOCK_PASS, > > NODE_DEFN, > > NODE_DEFS, > > NODE_ALIAS, > > NODE_VALIAS, > > NODE_UNDEF, > > NODE_CLASS, > > NODE_MODULE, > > NODE_SCLASS, > > NODE_COLON2, > > NODE_COLON3, > > NODE_DOT2, > > NODE_DOT3, > > NODE_FLIP2, > > NODE_FLIP3, > > NODE_ATTRSET, > > NODE_SELF, > > NODE_NIL, > > NODE_TRUE, > > NODE_FALSE, > > NODE_ERRINFO, > > NODE_DEFINED, > > NODE_POSTEXE, > > NODE_ALLOCA, > > NODE_BMETHOD, > > NODE_MEMO, > > NODE_IFUNC, > > NODE_DSYM, > > NODE_ATTRASGN, > > NODE_PRELUDE, > > NODE_LAMBDA, > > NODE_OPTBLOCK, > > NODE_LAST > >}; > >typedef struct RNode { > unsigned long flags; > char *nd_file; > union { > struct RNode *node; > ID id; > VALUE value; > VALUE (*cfunc)(); > ID *tbl; > } u1; > union { > struct RNode *node; > ID id; > long argc; > VALUE value; > } u2; > union { > struct RNode *node; > ID id; > long state; > struct global_entry *entry; > long cnt; > VALUE value; > } u3; >} NODE; ># 486 "node.h" >VALUE rb_parser_new(void); >VALUE rb_parser_end_seen_p(VALUE); >VALUE rb_parser_encoding(VALUE); > >NODE *rb_parser_compile_cstr(volatile VALUE, const char*, const char*, int, int); >NODE *rb_parser_compile_string(volatile VALUE, const char*, VALUE, int); >NODE *rb_parser_compile_file(volatile VALUE, const char*, VALUE, int); > >NODE *rb_compile_cstr(const char*, const char*, int, int); >NODE *rb_compile_string(const char*, VALUE, int); >NODE *rb_compile_file(const char*, VALUE, int); > >void rb_add_method(VALUE, ID, NODE *, int); >NODE *rb_node_newnode(enum node_type,VALUE,VALUE,VALUE); > >NODE* rb_method_node(VALUE klass, ID id); >int rb_node_arity(NODE* node); > >struct global_entry *rb_global_entry(ID); >VALUE rb_gvar_get(struct global_entry *); >VALUE rb_gvar_set(struct global_entry *, VALUE); >VALUE rb_gvar_defined(struct global_entry *); ># 22 "parse.y" 2 ># 1 "parse.h" 1 ># 288 "parse.h" >typedef union YYSTYPE >{ > VALUE val; > NODE *node; > ID id; > int num; >} > > YYSTYPE; ># 23 "parse.y" 2 ># 1 "id.h" 1 ># 38 "id.h" >enum ruby_method_ids { ># 73 "id.h" > idPLUS = '+', > idMINUS = '-', > idMULT = '*', > idDIV = '/', > idMOD = '%', > idLT = '<', > idLTLT = 338, > idLE = 329, > idGT = '>', > idGE = 328, > idEq = 325, > idEqq = 326, > idNeq = 327, > idNot = '!', > idBackquote = '`', > idEqTilde = 332, > idAREF = 336, > idASET = 337, > idLAST_TOKEN = 376 >> 3, > tIntern, > tMethodMissing, > tLength, > tGets, > tSucc, > tEach, > tLambda, > tSend, > t__send__, > tInitialize, > > > > > tLAST_ID, > > > > > > idIntern = ((tIntern<<3)|0x00), > idMethodMissing = ((tMethodMissing<<3)|0x00), > idLength = ((tLength<<3)|0x00), > idGets = ((tGets<<3)|0x00), > idSucc = ((tSucc<<3)|0x00), > idEach = ((tEach<<3)|0x00), > idLambda = ((tLambda<<3)|0x00), > idSend = ((tSend<<3)|0x00), > id__send__ = ((t__send__<<3)|0x00), > idInitialize = ((tInitialize<<3)|0x00) >}; > > >struct ruby_method_ids_check { > > >int checking_for_tUPLUS[321 == 321 ? 1 : -1]; >int checking_for_tUMINUS[322 == 322 ? 1 : -1]; >int checking_for_tPOW[323 == 323 ? 1 : -1]; >int checking_for_tCMP[324 == 324 ? 1 : -1]; >int checking_for_tEQ[325 == 325 ? 1 : -1]; >int checking_for_tEQQ[326 == 326 ? 1 : -1]; >int checking_for_tNEQ[327 == 327 ? 1 : -1]; >int checking_for_tGEQ[328 == 328 ? 1 : -1]; >int checking_for_tLEQ[329 == 329 ? 1 : -1]; >int checking_for_tANDOP[330 == 330 ? 1 : -1]; >int checking_for_tOROP[331 == 331 ? 1 : -1]; >int checking_for_tMATCH[332 == 332 ? 1 : -1]; >int checking_for_tNMATCH[333 == 333 ? 1 : -1]; >int checking_for_tDOT2[334 == 334 ? 1 : -1]; >int checking_for_tDOT3[335 == 335 ? 1 : -1]; >int checking_for_tAREF[336 == 336 ? 1 : -1]; >int checking_for_tASET[337 == 337 ? 1 : -1]; >int checking_for_tLSHFT[338 == 338 ? 1 : -1]; >int checking_for_tRSHFT[339 == 339 ? 1 : -1]; >int checking_for_tLAMBDA[352 == 352 ? 1 : -1]; >int checking_for_idNULL[365 == 365 ? 1 : -1]; >int checking_for_idRespond_to[366 == 366 ? 1 : -1]; >int checking_for_idIFUNC[367 == 367 ? 1 : -1]; >int checking_for_idCFUNC[368 == 368 ? 1 : -1]; >int checking_for_idThrowState[369 == 369 ? 1 : -1]; >int checking_for_id_core_set_method_alias[370 == 370 ? 1 : -1]; >int checking_for_id_core_set_variable_alias[371 == 371 ? 1 : -1]; >int checking_for_id_core_undef_method[372 == 372 ? 1 : -1]; >int checking_for_id_core_define_method[373 == 373 ? 1 : -1]; >int checking_for_id_core_define_singleton_method[374 == 374 ? 1 : -1]; >int checking_for_id_core_set_postexe[375 == 375 ? 1 : -1]; >int checking_for_tLAST_TOKEN[376 == 376 ? 1 : -1]; >}; ># 24 "parse.y" 2 ># 1 "regenc.h" 1 ># 42 "regenc.h" >typedef struct { > OnigCodePoint from; > OnigCodePoint to; >} OnigPairCaseFoldCodes; ># 98 "regenc.h" >typedef struct { > OnigUChar *name; > int ctype; > short int len; >} PosixBracketEntryType; ># 114 "regenc.h" >extern int onigenc_ascii_apply_all_case_fold (OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg, OnigEncoding enc); >extern int onigenc_ascii_get_case_fold_codes_by_str (OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[], OnigEncoding enc); >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); >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[]); >extern int onigenc_not_support_get_ctype_code_range (OnigCtype ctype, OnigCodePoint* sb_out, const OnigCodePoint* ranges[], OnigEncoding enc); >extern int onigenc_is_mbc_newline_0x0a (const OnigUChar* p, const OnigUChar* end, OnigEncoding enc); > > > >extern int onigenc_ascii_mbc_case_fold (OnigCaseFoldType flag, const OnigUChar** p, const OnigUChar* end, OnigUChar* lower, OnigEncoding enc); >extern int onigenc_single_byte_mbc_enc_len (const OnigUChar* p, const OnigUChar* e, OnigEncoding enc); >extern OnigCodePoint onigenc_single_byte_mbc_to_code (const OnigUChar* p, const OnigUChar* end, OnigEncoding enc); >extern int onigenc_single_byte_code_to_mbclen (OnigCodePoint code, OnigEncoding enc); >extern int onigenc_single_byte_code_to_mbc (OnigCodePoint code, OnigUChar *buf, OnigEncoding enc); >extern OnigUChar* onigenc_single_byte_left_adjust_char_head (const OnigUChar* start, const OnigUChar* s, const OnigUChar* end, OnigEncoding enc); >extern int onigenc_always_true_is_allowed_reverse_match (const OnigUChar* s, const OnigUChar* end, OnigEncoding enc); >extern int onigenc_always_false_is_allowed_reverse_match (const OnigUChar* s, const OnigUChar* end, OnigEncoding enc); >extern int onigenc_ascii_is_code_ctype (OnigCodePoint code, unsigned int ctype, OnigEncoding enc); > > >extern OnigCodePoint onigenc_mbn_mbc_to_code (OnigEncoding enc, const OnigUChar* p, const OnigUChar* end); >extern int onigenc_mbn_mbc_case_fold (OnigEncoding enc, OnigCaseFoldType flag, const OnigUChar** p, const OnigUChar* end, OnigUChar* lower); >extern int onigenc_mb2_code_to_mbclen (OnigCodePoint code, OnigEncoding enc); >extern int onigenc_mb2_code_to_mbc (OnigEncoding enc, OnigCodePoint code, OnigUChar *buf); >extern int onigenc_minimum_property_name_to_ctype (OnigEncoding enc, OnigUChar* p, OnigUChar* end); >extern int onigenc_unicode_property_name_to_ctype (OnigEncoding enc, OnigUChar* p, OnigUChar* end); >extern int onigenc_mb2_is_code_ctype (OnigEncoding enc, OnigCodePoint code, unsigned int ctype); >extern int onigenc_mb4_code_to_mbclen (OnigCodePoint code, OnigEncoding enc); >extern int onigenc_mb4_code_to_mbc (OnigEncoding enc, OnigCodePoint code, OnigUChar *buf); >extern int onigenc_mb4_is_code_ctype (OnigEncoding enc, OnigCodePoint code, unsigned int ctype); > > > >extern int onigenc_unicode_is_code_ctype (OnigCodePoint code, unsigned int ctype, OnigEncoding enc); >extern int onigenc_utf16_32_get_ctype_code_range (OnigCtype ctype, OnigCodePoint *sb_out, const OnigCodePoint* ranges[], OnigEncoding enc); >extern int onigenc_unicode_ctype_code_range (int ctype, const OnigCodePoint* ranges[]); >extern int onigenc_unicode_get_case_fold_codes_by_str (OnigEncoding enc, OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[]); >extern int onigenc_unicode_mbc_case_fold (OnigEncoding enc, OnigCaseFoldType flag, const OnigUChar** pp, const OnigUChar* end, OnigUChar* fold); >extern int onigenc_unicode_apply_all_case_fold (OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg, OnigEncoding enc); > > > > > > > >extern const OnigUChar OnigEncISO_8859_1_ToLowerCaseTable[]; >extern const OnigUChar OnigEncISO_8859_1_ToUpperCaseTable[]; > >extern int >onigenc_with_ascii_strncmp (OnigEncoding enc, const OnigUChar* p, const OnigUChar* end, const OnigUChar* sascii , int n); >extern OnigUChar* >onigenc_step (OnigEncoding enc, const OnigUChar* p, const OnigUChar* end, int n); > > >extern int onig_is_in_code_range (const OnigUChar* p, OnigCodePoint code); > >extern OnigEncoding OnigEncDefaultCharEncoding; >extern const OnigUChar OnigEncAsciiToLowerCaseTable[]; >extern const OnigUChar OnigEncAsciiToUpperCaseTable[]; >extern const unsigned short OnigEncAsciiCtypeTable[]; ># 25 "parse.y" 2 > ># 1 "/usr/include/errno.h" 1 3 4 ># 32 "/usr/include/errno.h" 3 4 > > > > ># 1 "/usr/include/bits/errno.h" 1 3 4 ># 25 "/usr/include/bits/errno.h" 3 4 ># 1 "/usr/include/linux/errno.h" 1 3 4 > > > ># 1 "/usr/include/asm/errno.h" 1 3 4 ># 1 "/usr/include/asm-generic/errno.h" 1 3 4 > > > ># 1 "/usr/include/asm-generic/errno-base.h" 1 3 4 ># 5 "/usr/include/asm-generic/errno.h" 2 3 4 ># 1 "/usr/include/asm/errno.h" 2 3 4 ># 5 "/usr/include/linux/errno.h" 2 3 4 ># 26 "/usr/include/bits/errno.h" 2 3 4 ># 43 "/usr/include/bits/errno.h" 3 4 >extern int *__errno_location (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); ># 37 "/usr/include/errno.h" 2 3 4 ># 55 "/usr/include/errno.h" 3 4 >extern char *program_invocation_name, *program_invocation_short_name; > > > > ># 69 "/usr/include/errno.h" 3 4 >typedef int error_t; ># 27 "parse.y" 2 ># 1 "/usr/include/ctype.h" 1 3 4 ># 30 "/usr/include/ctype.h" 3 4 > ># 48 "/usr/include/ctype.h" 3 4 >enum >{ > _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)), > _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)), > _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)), > _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)), > _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)), > _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)), > _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)), > _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)), > _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)), > _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)), > _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)), > _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8)) >}; ># 81 "/usr/include/ctype.h" 3 4 >extern __const unsigned short int **__ctype_b_loc (void) > __attribute__ ((__const)); >extern __const __int32_t **__ctype_tolower_loc (void) > __attribute__ ((__const)); >extern __const __int32_t **__ctype_toupper_loc (void) > __attribute__ ((__const)); ># 96 "/usr/include/ctype.h" 3 4 > > > > > > >extern int isalnum (int) __attribute__ ((__nothrow__)); >extern int isalpha (int) __attribute__ ((__nothrow__)); >extern int iscntrl (int) __attribute__ ((__nothrow__)); >extern int isdigit (int) __attribute__ ((__nothrow__)); >extern int islower (int) __attribute__ ((__nothrow__)); >extern int isgraph (int) __attribute__ ((__nothrow__)); >extern int isprint (int) __attribute__ ((__nothrow__)); >extern int ispunct (int) __attribute__ ((__nothrow__)); >extern int isspace (int) __attribute__ ((__nothrow__)); >extern int isupper (int) __attribute__ ((__nothrow__)); >extern int isxdigit (int) __attribute__ ((__nothrow__)); > > > >extern int tolower (int __c) __attribute__ ((__nothrow__)); > > >extern int toupper (int __c) __attribute__ ((__nothrow__)); > > > > > > > > >extern int isblank (int) __attribute__ ((__nothrow__)); > > > > > > >extern int isctype (int __c, int __mask) __attribute__ ((__nothrow__)); > > > > > > >extern int isascii (int __c) __attribute__ ((__nothrow__)); > > > >extern int toascii (int __c) __attribute__ ((__nothrow__)); > > > >extern int _toupper (int) __attribute__ ((__nothrow__)); >extern int _tolower (int) __attribute__ ((__nothrow__)); ># 190 "/usr/include/ctype.h" 3 4 >extern __inline int >__attribute__ ((__nothrow__)) tolower (int __c) >{ > return __c >= -128 && __c < 256 ? (*__ctype_tolower_loc ())[__c] : __c; >} > >extern __inline int >__attribute__ ((__nothrow__)) toupper (int __c) >{ > return __c >= -128 && __c < 256 ? (*__ctype_toupper_loc ())[__c] : __c; >} ># 247 "/usr/include/ctype.h" 3 4 >extern int isalnum_l (int, __locale_t) __attribute__ ((__nothrow__)); >extern int isalpha_l (int, __locale_t) __attribute__ ((__nothrow__)); >extern int iscntrl_l (int, __locale_t) __attribute__ ((__nothrow__)); >extern int isdigit_l (int, __locale_t) __attribute__ ((__nothrow__)); >extern int islower_l (int, __locale_t) __attribute__ ((__nothrow__)); >extern int isgraph_l (int, __locale_t) __attribute__ ((__nothrow__)); >extern int isprint_l (int, __locale_t) __attribute__ ((__nothrow__)); >extern int ispunct_l (int, __locale_t) __attribute__ ((__nothrow__)); >extern int isspace_l (int, __locale_t) __attribute__ ((__nothrow__)); >extern int isupper_l (int, __locale_t) __attribute__ ((__nothrow__)); >extern int isxdigit_l (int, __locale_t) __attribute__ ((__nothrow__)); > >extern int isblank_l (int, __locale_t) __attribute__ ((__nothrow__)); > > > >extern int __tolower_l (int __c, __locale_t __l) __attribute__ ((__nothrow__)); >extern int tolower_l (int __c, __locale_t __l) __attribute__ ((__nothrow__)); > > >extern int __toupper_l (int __c, __locale_t __l) __attribute__ ((__nothrow__)); >extern int toupper_l (int __c, __locale_t __l) __attribute__ ((__nothrow__)); ># 323 "/usr/include/ctype.h" 3 4 > ># 28 "parse.y" 2 ># 39 "parse.y" >static ID register_symid(ID, const char *, long, rb_encoding *); > ># 1 "id.c" 1 ># 16 "id.c" >static void >Init_id(void) >{ > > > rb_encoding *enc = rb_usascii_encoding(); > > register_symid(365, "", strlen(""), enc); > register_symid(367, "<IFUNC>", strlen("<IFUNC>"), enc), > register_symid(368, "<CFUNC>", strlen("<CFUNC>"), enc), > register_symid(366, "respond_to?", strlen("respond_to?"), enc), > register_symid(369, "#__ThrowState__", strlen("#__ThrowState__"), enc), > > register_symid(370, "core#set_method_alias", strlen("core#set_method_alias"), enc), > register_symid(371, "core#set_variable_alias", strlen("core#set_variable_alias"), enc), > register_symid(372, "core#undef_method", strlen("core#undef_method"), enc), > register_symid(373, "core#define_method", strlen("core#define_method"), enc), > register_symid(374, "core#define_singleton_method", strlen("core#define_singleton_method"), enc), > register_symid(375, "core#set_postexe", strlen("core#set_postexe"), enc), > > register_symid(idEach, "each", strlen("each"), enc); > register_symid(idLength, "length", strlen("length"), enc); > register_symid(idLambda, "lambda", strlen("lambda"), enc); > register_symid(idIntern, "intern", strlen("intern"), enc); > register_symid(idGets, "gets", strlen("gets"), enc); > register_symid(idSucc, "succ", strlen("succ"), enc); > register_symid(idMethodMissing, "method_missing", strlen("method_missing"), enc); > > > > > register_symid(idSend, "send", strlen("send"), enc); > register_symid(id__send__, "__send__", strlen("__send__"), enc); > register_symid(idInitialize, "initialize", strlen("initialize"), enc); >} ># 42 "parse.y" 2 ># 58 "parse.y" >enum lex_state_e { > EXPR_BEG, > EXPR_END, > EXPR_ENDARG, > EXPR_ARG, > EXPR_CMDARG, > EXPR_MID, > EXPR_FNAME, > EXPR_DOT, > EXPR_CLASS, > EXPR_VALUE >}; > > >typedef unsigned long long stack_type; ># 92 "parse.y" >struct vtable { > ID *tbl; > int pos; > int capa; > struct vtable *prev; >}; > >struct local_vars { > struct vtable *args; > struct vtable *vars; > struct local_vars *prev; >}; > > > > > > > >static int >vtable_size(const struct vtable *tbl) >{ > if (((VALUE)(tbl) & ~(VALUE)3)) { > return tbl->pos; > } > else { > return 0; > } >} > > > >static struct vtable * >vtable_alloc(struct vtable *prev) >{ > struct vtable *tbl = (struct vtable*)ruby_xmalloc(sizeof(struct vtable)); > tbl->pos = 0; > tbl->capa = 8; > tbl->tbl = (ID*)ruby_xmalloc2((tbl->capa),sizeof(ID)); > tbl->prev = prev; > if (0) printf("vtable_alloc: %p\n", (void *)tbl); > return tbl; >} > >static void >vtable_free(struct vtable *tbl) >{ > if (0)printf("vtable_free: %p\n", (void *)tbl); > if (((VALUE)(tbl) & ~(VALUE)3)) { > if (tbl->tbl) { > ruby_xfree(tbl->tbl); > } > ruby_xfree(tbl); > } >} > >static void >vtable_add(struct vtable *tbl, ID id) >{ > if (!((VALUE)(tbl) & ~(VALUE)3)) { > rb_bug("vtable_add: vtable is not allocated (%p)", (void *)tbl); > } > if (0) printf("vtable_add: %p, %s\n", (void *)tbl, rb_id2name(id)); > > if (tbl->pos == tbl->capa) { > tbl->capa = tbl->capa * 2; > (tbl->tbl)=(ID*)ruby_xrealloc2((char*)(tbl->tbl),(tbl->capa),sizeof(ID)); > } > tbl->tbl[tbl->pos++] = id; >} > >static int >vtable_included(const struct vtable * tbl, ID id) >{ > int i; > > if (((VALUE)(tbl) & ~(VALUE)3)) { > for (i = 0; i < tbl->pos; i++) { > if (tbl->tbl[i] == id) { > return 1; > } > } > } > return 0; >} > > >typedef struct token_info { > const char *token; > int linenum; > int column; > int nonspc; > struct token_info *next; >} token_info; ># 197 "parse.y" >struct parser_params { > int is_ripper; > NODE *heap; > > YYSTYPE *parser_yylval; > VALUE eofp; > > NODE *parser_lex_strterm; > enum lex_state_e parser_lex_state; > stack_type parser_cond_stack; > stack_type parser_cmdarg_stack; > int parser_class_nest; > int parser_paren_nest; > int parser_lpar_beg; > int parser_in_single; > int parser_in_def; > int parser_compile_for_eval; > VALUE parser_cur_mid; > int parser_in_defined; > char *parser_tokenbuf; > int parser_tokidx; > int parser_toksiz; > VALUE parser_lex_input; > VALUE parser_lex_lastline; > VALUE parser_lex_nextline; > const char *parser_lex_pbeg; > const char *parser_lex_p; > const char *parser_lex_pend; > int parser_heredoc_end; > int parser_command_start; > NODE *parser_deferred_nodes; > int parser_lex_gets_ptr; > VALUE (*parser_lex_gets)(struct parser_params*,VALUE); > struct local_vars *parser_lvtbl; > int parser_ruby__end__seen; > int line_count; > int has_shebang; > char *parser_ruby_sourcefile; > int parser_ruby_sourceline; > rb_encoding *enc; > rb_encoding *utf8; > > int parser_yydebug; > > > > NODE *parser_eval_tree_begin; > NODE *parser_eval_tree; > VALUE debug_lines; > VALUE coverage; > int nerr; > > token_info *parser_token_info; ># 263 "parse.y" >}; ># 275 "parse.y" >void *rb_parser_malloc(struct parser_params *, size_t); >void *rb_parser_realloc(struct parser_params *, void *, size_t); >void *rb_parser_calloc(struct parser_params *, size_t, size_t); >void rb_parser_free(struct parser_params *, void *); > > >static int parser_yyerror(struct parser_params*, const char*); ># 325 "parse.y" >static int yylex(void*, void*); > > > > >static NODE* node_newnode(struct parser_params *, enum node_type, VALUE, VALUE, VALUE); > > >static NODE *cond_gen(struct parser_params*,NODE*); > >static NODE *logop_gen(struct parser_params*,enum node_type,NODE*,NODE*); > > >static NODE *newline_node(NODE*); >static void fixpos(NODE*,NODE*); > >static int value_expr_gen(struct parser_params*,NODE*); >static void void_expr_gen(struct parser_params*,NODE*); >static NODE *remove_begin(NODE*); > > > >static void void_stmts_gen(struct parser_params*,NODE*); > >static void reduce_nodes_gen(struct parser_params*,NODE**); > >static void block_dup_check_gen(struct parser_params*,NODE*,NODE*); > > >static NODE *block_append_gen(struct parser_params*,NODE*,NODE*); > >static NODE *list_append_gen(struct parser_params*,NODE*,NODE*); > >static NODE *list_concat_gen(struct parser_params*,NODE*,NODE*); > >static NODE *arg_append_gen(struct parser_params*,NODE*,NODE*); > >static NODE *arg_concat_gen(struct parser_params*,NODE*,NODE*); > >static NODE *literal_concat_gen(struct parser_params*,NODE*,NODE*); > >static NODE *new_evstr_gen(struct parser_params*,NODE*); > >static NODE *evstr2dstr_gen(struct parser_params*,NODE*); > >static NODE *splat_array(NODE*); > >static NODE *call_bin_op_gen(struct parser_params*,NODE*,ID,NODE*); > >static NODE *call_uni_op_gen(struct parser_params*,NODE*,ID); > > >static NODE *new_args_gen(struct parser_params*,NODE*,NODE*,ID,NODE*,ID); > >static void shadowing_lvar_gen(struct parser_params*,ID); > > >static NODE *negate_lit(NODE*); >static NODE *ret_args_gen(struct parser_params*,NODE*); > >static NODE *arg_blk_pass(NODE*,NODE*); >static NODE *new_yield_gen(struct parser_params*,NODE*); > > >static NODE *gettable_gen(struct parser_params*,ID); > >static NODE *assignable_gen(struct parser_params*,ID,NODE*); > >static void new_bv_gen(struct parser_params*,ID); > >static NODE *aryset_gen(struct parser_params*,NODE*,NODE*); > >static NODE *attrset_gen(struct parser_params*,NODE*,ID); > > >static void rb_backref_error_gen(struct parser_params*,NODE*); > >static NODE *node_assign_gen(struct parser_params*,NODE*,NODE*); > > >static NODE *match_op_gen(struct parser_params*,NODE*,NODE*); > > >static void local_push_gen(struct parser_params*,int); > >static void local_pop_gen(struct parser_params*); > >static int local_var_gen(struct parser_params*, ID); > >static int arg_var_gen(struct parser_params*, ID); > >static int local_id_gen(struct parser_params*, ID); > >static ID *local_tbl_gen(struct parser_params*); > >static ID internal_id_gen(struct parser_params*); > > >static void dyna_push_gen(struct parser_params*); > >static void dyna_pop_gen(struct parser_params*); > >static int dyna_in_block_gen(struct parser_params*); > > >static int dvar_defined_gen(struct parser_params*,ID); > >static int dvar_curr_gen(struct parser_params*,ID); > > >static void fixup_nodes(NODE **); > >extern int rb_dvar_defined(ID); >extern int rb_local_defined(ID); >extern int rb_parse_in_eval(void); > >static VALUE reg_compile_gen(struct parser_params*, VALUE, int); > >static void reg_fragment_setenc_gen(struct parser_params*, VALUE, int); > >static void reg_fragment_check_gen(struct parser_params*, VALUE, int); > >static NODE *reg_named_capture_assign_gen(struct parser_params* parser, VALUE regexp, NODE *match); > >int rb_enc_symname2_p(const char *, int, rb_encoding *); > > > >static int lvar_defined_gen(struct parser_params*, ID); ># 590 "parse.y" >static void token_info_push(struct parser_params*, const char *token); >static void token_info_pop(struct parser_params*, const char *token); ># 941 "parse.c" ># 949 "parse.c" >typedef unsigned char yytype_uint8; > > > > > > >typedef signed char yytype_int8; > > > > > > > >typedef unsigned short int yytype_uint16; > > > > > >typedef short int yytype_int16; ># 1101 "parse.c" >union yyalloc >{ > yytype_int16 yyss; > YYSTYPE yyvs; > }; ># 1174 "parse.c" >static const yytype_uint8 yytranslate[] = >{ > 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, > 148, 2, 2, 2, 2, 2, 2, 2, 2, 2, > 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, > 2, 2, 147, 123, 2, 2, 2, 121, 116, 2, > 143, 144, 119, 117, 141, 118, 140, 120, 2, 2, > 2, 2, 2, 2, 2, 2, 2, 2, 111, 146, > 113, 109, 112, 110, 2, 2, 2, 2, 2, 2, > 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, > 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, > 2, 139, 2, 145, 115, 2, 142, 2, 2, 2, > 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, > 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, > 2, 2, 2, 137, 114, 138, 124, 2, 2, 2, > 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, > 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, > 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, > 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, > 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, > 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, > 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, > 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, > 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, > 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, > 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, > 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, > 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, > 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, > 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, > 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, > 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, > 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, > 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, > 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, > 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, > 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, > 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, > 105, 106, 107, 108, 122, 125, 126, 127, 128, 129, > 130, 131, 132, 133, 134, 135, 136 >}; > > > > >static const yytype_uint16 yyprhs[] = >{ > 0, 0, 3, 4, 7, 12, 15, 17, 19, 23, > 26, 27, 32, 36, 40, 44, 47, 51, 55, 59, > 63, 67, 68, 74, 79, 83, 87, 91, 98, 104, > 110, 116, 120, 124, 128, 132, 134, 136, 140, 144, > 148, 151, 153, 155, 157, 159, 162, 165, 168, 170, > 175, 180, 181, 187, 190, 194, 199, 205, 210, 216, > 219, 222, 224, 228, 230, 234, 236, 239, 243, 249, > 252, 257, 260, 265, 267, 271, 273, 277, 280, 284, > 286, 290, 292, 297, 301, 305, 309, 313, 316, 318, > 320, 325, 329, 333, 337, 341, 344, 346, 348, 350, > 353, 355, 359, 361, 363, 365, 367, 369, 371, 373, > 375, 377, 379, 380, 385, 387, 389, 391, 393, 395, > 397, 399, 401, 403, 405, 407, 409, 411, 413, 415, > 417, 419, 421, 423, 425, 427, 429, 431, 433, 435, > 437, 439, 441, 443, 445, 447, 449, 451, 453, 455, > 457, 459, 461, 463, 465, 467, 469, 471, 473, 475, > 477, 479, 481, 483, 485, 487, 489, 491, 493, 495, > 497, 499, 501, 503, 505, 507, 509, 511, 513, 515, > 517, 519, 521, 523, 525, 529, 535, 539, 545, 552, > 558, 564, 570, 576, 581, 585, 589, 593, 597, 601, > 605, 609, 613, 617, 622, 627, 630, 633, 637, 641, > 645, 649, 653, 657, 661, 665, 669, 673, 677, 681, > 685, 688, 691, 695, 699, 703, 707, 708, 713, 720, > 722, 724, 726, 729, 734, 737, 741, 743, 745, 747, > 749, 751, 754, 757, 762, 764, 765, 768, 771, 774, > 776, 778, 780, 783, 787, 792, 796, 801, 804, 806, > 808, 810, 812, 814, 816, 818, 820, 822, 823, 828, > 829, 834, 838, 842, 845, 849, 853, 855, 860, 864, > 866, 867, 874, 879, 883, 886, 888, 891, 894, 901, > 908, 909, 910, 918, 919, 920, 928, 934, 939, 940, > 941, 951, 952, 959, 960, 961, 970, 971, 977, 978, > 985, 986, 987, 997, 999, 1001, 1003, 1005, 1007, 1009, > 1011, 1013, 1015, 1017, 1019, 1021, 1023, 1025, 1027, 1029, > 1031, 1033, 1036, 1038, 1040, 1042, 1048, 1050, 1053, 1055, > 1057, 1059, 1063, 1065, 1069, 1071, 1076, 1083, 1087, 1093, > 1096, 1101, 1103, 1107, 1114, 1123, 1128, 1135, 1140, 1143, > 1150, 1153, 1158, 1165, 1168, 1173, 1176, 1181, 1183, 1185, > 1187, 1191, 1193, 1198, 1200, 1203, 1205, 1209, 1211, 1213, > 1214, 1218, 1223, 1225, 1229, 1233, 1234, 1240, 1243, 1248, > 1253, 1256, 1261, 1266, 1270, 1274, 1278, 1281, 1283, 1288, > 1289, 1295, 1296, 1302, 1308, 1310, 1312, 1319, 1321, 1323, > 1325, 1327, 1330, 1332, 1335, 1337, 1339, 1341, 1343, 1345, > 1347, 1349, 1352, 1356, 1360, 1364, 1368, 1372, 1373, 1377, > 1379, 1382, 1386, 1390, 1391, 1395, 1396, 1399, 1400, 1403, > 1405, 1406, 1410, 1411, 1416, 1418, 1420, 1422, 1424, 1427, > 1429, 1431, 1433, 1435, 1439, 1441, 1443, 1446, 1449, 1451, > 1453, 1455, 1457, 1459, 1461, 1463, 1465, 1467, 1469, 1471, > 1473, 1475, 1477, 1479, 1481, 1483, 1484, 1489, 1492, 1496, > 1499, 1506, 1515, 1520, 1527, 1532, 1539, 1542, 1547, 1554, > 1557, 1562, 1565, 1570, 1572, 1573, 1575, 1577, 1579, 1581, > 1583, 1585, 1587, 1591, 1593, 1597, 1601, 1605, 1607, 1611, > 1613, 1617, 1619, 1621, 1624, 1626, 1628, 1630, 1633, 1636, > 1638, 1640, 1641, 1646, 1648, 1651, 1653, 1657, 1661, 1664, > 1666, 1668, 1670, 1672, 1674, 1676, 1678, 1680, 1682, 1684, > 1686, 1688, 1689, 1691, 1692, 1694, 1697, 1700, 1701, 1703, > 1705, 1707, 1709, 1711, 1714 >}; > > >static const yytype_int16 yyrhs[] = >{ > 150, 0, -1, -1, 151, 153, -1, 153, 252, 228, > 255, -1, 154, 307, -1, 314, -1, 155, -1, 154, > 313, 155, -1, 1, 155, -1, -1, 45, 177, 156, > 177, -1, 45, 54, 54, -1, 45, 54, 64, -1, > 45, 54, 63, -1, 6, 178, -1, 155, 40, 159, > -1, 155, 41, 159, -1, 155, 42, 159, -1, 155, > 43, 159, -1, 155, 44, 155, -1, -1, 47, 157, > 137, 153, 138, -1, 48, 137, 153, 138, -1, 172, > 109, 160, -1, 165, 109, 160, -1, 279, 87, 160, > -1, 213, 139, 188, 310, 87, 160, -1, 213, 140, > 52, 87, 160, -1, 213, 140, 56, 87, 160, -1, > 213, 85, 52, 87, 160, -1, 280, 87, 160, -1, > 172, 109, 195, -1, 165, 109, 184, -1, 165, 109, > 195, -1, 158, -1, 160, -1, 158, 37, 158, -1, > 158, 38, 158, -1, 39, 308, 158, -1, 123, 160, > -1, 182, -1, 158, -1, 164, -1, 161, -1, 30, > 189, -1, 21, 189, -1, 22, 189, -1, 245, -1, > 245, 140, 304, 190, -1, 245, 85, 304, 190, -1, > -1, 94, 163, 234, 153, 138, -1, 303, 190, -1, > 303, 190, 162, -1, 213, 140, 304, 190, -1, 213, > 140, 304, 190, 162, -1, 213, 85, 304, 190, -1, > 213, 85, 304, 190, 162, -1, 32, 190, -1, 31, > 190, -1, 167, -1, 89, 166, 309, -1, 167, -1, > 89, 166, 309, -1, 169, -1, 169, 168, -1, 169, > 95, 171, -1, 169, 95, 171, 141, 170, -1, 169, > 95, -1, 169, 95, 141, 170, -1, 95, 171, -1, > 95, 171, 141, 170, -1, 95, -1, 95, 141, 170, > -1, 171, -1, 89, 166, 309, -1, 168, 141, -1, > 169, 168, 141, -1, 168, -1, 170, 141, 168, -1, > 277, -1, 213, 139, 188, 310, -1, 213, 140, 52, > -1, 213, 85, 52, -1, 213, 140, 56, -1, 213, > 85, 56, -1, 86, 56, -1, 280, -1, 277, -1, > 213, 139, 188, 310, -1, 213, 140, 52, -1, 213, > 85, 52, -1, 213, 140, 56, -1, 213, 85, 56, > -1, 86, 56, -1, 280, -1, 52, -1, 56, -1, > 86, 173, -1, 173, -1, 213, 85, 173, -1, 52, > -1, 56, -1, 53, -1, 180, -1, 181, -1, 175, > -1, 273, -1, 176, -1, 275, -1, 177, -1, -1, > 178, 141, 179, 177, -1, 114, -1, 115, -1, 116, > -1, 69, -1, 70, -1, 71, -1, 77, -1, 78, > -1, 112, -1, 73, -1, 113, -1, 74, -1, 72, > -1, 83, -1, 84, -1, 117, -1, 118, -1, 119, > -1, 95, -1, 120, -1, 121, -1, 68, -1, 123, > -1, 124, -1, 66, -1, 67, -1, 81, -1, 82, > -1, 142, -1, 49, -1, 50, -1, 51, -1, 47, > -1, 48, -1, 45, -1, 37, -1, 7, -1, 21, > -1, 16, -1, 3, -1, 5, -1, 46, -1, 26, > -1, 15, -1, 14, -1, 10, -1, 9, -1, 36, > -1, 20, -1, 25, -1, 4, -1, 22, -1, 34, > -1, 39, -1, 38, -1, 23, -1, 8, -1, 24, > -1, 30, -1, 33, -1, 32, -1, 13, -1, 35, > -1, 6, -1, 17, -1, 31, -1, 11, -1, 12, > -1, 18, -1, 19, -1, 172, 109, 182, -1, 172, > 109, 182, 44, 182, -1, 279, 87, 182, -1, 279, > 87, 182, 44, 182, -1, 213, 139, 188, 310, 87, > 182, -1, 213, 140, 52, 87, 182, -1, 213, 140, > 56, 87, 182, -1, 213, 85, 52, 87, 182, -1, > 213, 85, 56, 87, 182, -1, 86, 56, 87, 182, > -1, 280, 87, 182, -1, 182, 79, 182, -1, 182, > 80, 182, -1, 182, 117, 182, -1, 182, 118, 182, > -1, 182, 119, 182, -1, 182, 120, 182, -1, 182, > 121, 182, -1, 182, 68, 182, -1, 122, 59, 68, > 182, -1, 122, 60, 68, 182, -1, 66, 182, -1, > 67, 182, -1, 182, 114, 182, -1, 182, 115, 182, > -1, 182, 116, 182, -1, 182, 69, 182, -1, 182, > 112, 182, -1, 182, 73, 182, -1, 182, 113, 182, > -1, 182, 74, 182, -1, 182, 70, 182, -1, 182, > 71, 182, -1, 182, 72, 182, -1, 182, 77, 182, > -1, 182, 78, 182, -1, 123, 182, -1, 124, 182, > -1, 182, 83, 182, -1, 182, 84, 182, -1, 182, > 75, 182, -1, 182, 76, 182, -1, -1, 46, 308, > 183, 182, -1, 182, 110, 182, 308, 111, 182, -1, > 196, -1, 182, -1, 314, -1, 194, 311, -1, 194, > 141, 301, 311, -1, 301, 311, -1, 143, 188, 309, > -1, 314, -1, 186, -1, 314, -1, 189, -1, 164, > -1, 194, 193, -1, 301, 193, -1, 194, 141, 301, > 193, -1, 192, -1, -1, 191, 189, -1, 96, 184, > -1, 141, 192, -1, 141, -1, 314, -1, 184, -1, > 95, 184, -1, 194, 141, 184, -1, 194, 141, 95, > 184, -1, 194, 141, 184, -1, 194, 141, 95, 184, > -1, 95, 184, -1, 256, -1, 257, -1, 260, -1, > 261, -1, 262, -1, 265, -1, 278, -1, 280, -1, > 53, -1, -1, 214, 197, 152, 224, -1, -1, 90, > 158, 198, 309, -1, 89, 153, 144, -1, 213, 85, > 56, -1, 86, 56, -1, 92, 185, 145, -1, 93, > 300, 138, -1, 30, -1, 31, 143, 189, 309, -1, > 31, 143, 309, -1, 31, -1, -1, 46, 308, 143, > 199, 158, 309, -1, 39, 143, 158, 309, -1, 39, > 143, 309, -1, 303, 247, -1, 246, -1, 246, 247, > -1, 97, 239, -1, 215, 159, 225, 153, 227, 224, > -1, 216, 159, 225, 153, 228, 224, -1, -1, -1, > 217, 200, 159, 226, 201, 153, 224, -1, -1, -1, > 218, 202, 159, 226, 203, 153, 224, -1, 219, 159, > 307, 250, 224, -1, 219, 307, 250, 224, -1, -1, > -1, 220, 229, 25, 204, 159, 226, 205, 153, 224, > -1, -1, 221, 174, 281, 206, 152, 224, -1, -1, > -1, 221, 83, 158, 207, 312, 208, 152, 224, -1, > -1, 222, 174, 209, 152, 224, -1, -1, 223, 175, > 210, 283, 152, 224, -1, -1, -1, 223, 298, 306, > 211, 175, 212, 283, 152, 224, -1, 21, -1, 22, > -1, 23, -1, 24, -1, 196, -1, 7, -1, 11, > -1, 12, -1, 18, -1, 19, -1, 16, -1, 20, > -1, 3, -1, 4, -1, 5, -1, 10, -1, 312, > -1, 13, -1, 312, 13, -1, 312, -1, 27, -1, > 228, -1, 14, 159, 225, 153, 227, -1, 314, -1, > 15, 153, -1, 172, -1, 165, -1, 286, -1, 89, > 232, 309, -1, 230, -1, 231, 141, 230, -1, 231, > -1, 231, 141, 95, 286, -1, 231, 141, 95, 286, > 141, 231, -1, 231, 141, 95, -1, 231, 141, 95, > 141, 231, -1, 95, 286, -1, 95, 286, 141, 231, > -1, 95, -1, 95, 141, 231, -1, 288, 141, 291, > 141, 294, 297, -1, 288, 141, 291, 141, 294, 141, > 288, 297, -1, 288, 141, 291, 297, -1, 288, 141, > 291, 141, 288, 297, -1, 288, 141, 294, 297, -1, > 288, 141, -1, 288, 141, 294, 141, 288, 297, -1, > 288, 297, -1, 291, 141, 294, 297, -1, 291, 141, > 294, 141, 288, 297, -1, 291, 297, -1, 291, 141, > 288, 297, -1, 294, 297, -1, 294, 141, 288, 297, > -1, 296, -1, 314, -1, 235, -1, 114, 236, 114, > -1, 76, -1, 114, 233, 236, 114, -1, 314, -1, > 146, 237, -1, 238, -1, 237, 141, 238, -1, 52, > -1, 285, -1, -1, 240, 241, 242, -1, 143, 284, > 236, 309, -1, 284, -1, 107, 153, 138, -1, 29, > 153, 10, -1, -1, 28, 244, 234, 153, 10, -1, > 164, 243, -1, 245, 140, 304, 187, -1, 245, 85, > 304, 187, -1, 303, 186, -1, 213, 140, 304, 187, > -1, 213, 85, 304, 186, -1, 213, 85, 305, -1, > 213, 140, 186, -1, 213, 85, 186, -1, 32, 186, > -1, 32, -1, 213, 139, 188, 310, -1, -1, 137, > 248, 234, 153, 138, -1, -1, 26, 249, 234, 153, > 10, -1, 17, 194, 225, 153, 251, -1, 228, -1, > 250, -1, 8, 253, 254, 225, 153, 252, -1, 314, > -1, 184, -1, 195, -1, 314, -1, 88, 172, -1, > 314, -1, 9, 153, -1, 314, -1, 276, -1, 273, > -1, 275, -1, 258, -1, 62, -1, 259, -1, 258, > 259, -1, 99, 267, 106, -1, 100, 268, 106, -1, > 101, 268, 65, -1, 102, 147, 106, -1, 102, 263, > 106, -1, -1, 263, 264, 147, -1, 269, -1, 264, > 269, -1, 103, 147, 106, -1, 103, 266, 106, -1, > -1, 266, 61, 147, -1, -1, 267, 269, -1, -1, > 268, 269, -1, 61, -1, -1, 105, 270, 272, -1, > -1, 104, 271, 153, 138, -1, 54, -1, 55, -1, > 57, -1, 280, -1, 98, 274, -1, 175, -1, 55, > -1, 54, -1, 57, -1, 98, 268, 106, -1, 59, > -1, 60, -1, 122, 59, -1, 122, 60, -1, 52, > -1, 55, -1, 54, -1, 56, -1, 57, -1, 34, > -1, 33, -1, 35, -1, 36, -1, 50, -1, 49, > -1, 51, -1, 277, -1, 277, -1, 63, -1, 64, > -1, 312, -1, -1, 113, 282, 159, 312, -1, 1, > 312, -1, 143, 284, 309, -1, 284, 312, -1, 288, > 141, 292, 141, 294, 297, -1, 288, 141, 292, 141, > 294, 141, 288, 297, -1, 288, 141, 292, 297, -1, > 288, 141, 292, 141, 288, 297, -1, 288, 141, 294, > 297, -1, 288, 141, 294, 141, 288, 297, -1, 288, > 297, -1, 292, 141, 294, 297, -1, 292, 141, 294, > 141, 288, 297, -1, 292, 297, -1, 292, 141, 288, > 297, -1, 294, 297, -1, 294, 141, 288, 297, -1, > 296, -1, -1, 56, -1, 55, -1, 54, -1, 57, > -1, 285, -1, 52, -1, 286, -1, 89, 232, 309, > -1, 287, -1, 288, 141, 287, -1, 52, 109, 184, > -1, 52, 109, 213, -1, 290, -1, 291, 141, 290, > -1, 289, -1, 292, 141, 289, -1, 119, -1, 95, > -1, 293, 52, -1, 293, -1, 116, -1, 96, -1, > 295, 52, -1, 141, 296, -1, 314, -1, 278, -1, > -1, 143, 299, 158, 309, -1, 314, -1, 301, 311, > -1, 302, -1, 301, 141, 302, -1, 184, 88, 184, > -1, 58, 184, -1, 52, -1, 56, -1, 53, -1, > 52, -1, 56, -1, 53, -1, 180, -1, 52, -1, > 53, -1, 180, -1, 140, -1, 85, -1, -1, 313, > -1, -1, 148, -1, 308, 144, -1, 308, 145, -1, > -1, 148, -1, 141, -1, 146, -1, 148, -1, 312, > -1, 313, 146, -1, -1 >}; > > >static const yytype_uint16 yyrline[] = >{ > 0, 763, 763, 763, 793, 826, 837, 846, 854, 862, > 868, 868, 876, 884, 895, 905, 913, 922, 931, 944, > 957, 967, 966, 988, 1000, 1009, 1019, 1048, 1069, 1086, > 1103, 1120, 1130, 1139, 1148, 1157, 1160, 1161, 1169, 1177, > 1185, 1193, 1196, 1208, 1209, 1210, 1218, 1226, 1236, 1237, > 1246, 1258, 1257, 1279, 1288, 1300, 1309, 1321, 1330, 1342, > 1351, 1362, 1363, 1373, 1374, 1384, 1392, 1400, 1408, 1416, > 1424, 1432, 1440, 1448, 1456, 1466, 1467, 1477, 1485, 1495, > 1503, 1513, 1521, 1529, 1537, 1545, 1553, 1565, 1575, 1587, > 1595, 1603, 1611, 1619, 1627, 1640, 1653, 1664, 1672, 1675, > 1683, 1691, 1701, 1702, 1703, 1704, 1714, 1726, 1727, 1730, > 1738, 1741, 1749, 1749, 1759, 1760, 1761, 1762, 1763, 1764, > 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, > 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, > 1785, 1786, 1787, 1790, 1790, 1790, 1791, 1791, 1792, 1792, > 1792, 1793, 1793, 1793, 1793, 1794, 1794, 1794, 1794, 1795, > 1795, 1795, 1796, 1796, 1796, 1796, 1797, 1797, 1797, 1797, > 1798, 1798, 1798, 1798, 1799, 1799, 1799, 1799, 1800, 1800, > 1800, 1800, 1801, 1801, 1804, 1813, 1823, 1852, 1883, 1904, > 1921, 1938, 1955, 1966, 1977, 1988, 2002, 2016, 2024, 2032, > 2040, 2048, 2056, 2064, 2073, 2082, 2090, 2098, 2106, 2114, > 2122, 2130, 2138, 2146, 2154, 2162, 2170, 2178, 2186, 2197, > 2205, 2213, 2221, 2229, 2237, 2245, 2253, 2253, 2263, 2273, > 2279, 2291, 2292, 2296, 2304, 2314, 2324, 2325, 2328, 2329, > 2332, 2340, 2348, 2358, 2367, 2376, 2376, 2388, 2398, 2402, > 2406, 2412, 2420, 2428, 2442, 2458, 2472, 2487, 2497, 2498, > 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2514, 2513, 2538, > 2538, 2547, 2555, 2563, 2571, 2584, 2592, 2600, 2608, 2616, > 2624, 2624, 2634, 2642, 2650, 2661, 2662, 2673, 2677, 2689, > 2701, 2701, 2701, 2712, 2712, 2712, 2723, 2734, 2743, 2745, > 2742, 2809, 2808, 2830, 2835, 2829, 2857, 2856, 2878, 2877, > 2904, 2905, 2904, 2929, 2937, 2945, 2953, 2963, 2975, 2982, > 2989, 2996, 3003, 3010, 3017, 3024, 3031, 3038, 3045, 3052, > 3057, 3058, 3065, 3070, 3073, 3074, 3087, 3088, 3098, 3099, > 3102, 3110, 3120, 3128, 3138, 3146, 3154, 3162, 3170, 3178, > 3186, 3197, 3205, 3215, 3223, 3231, 3239, 3247, 3255, 3264, > 3272, 3280, 3288, 3296, 3304, 3312, 3320, 3328, 3338, 3339, > 3345, 3354, 3363, 3374, 3375, 3385, 3392, 3401, 3409, 3415, > 3415, 3437, 3445, 3455, 3459, 3466, 3465, 3486, 3502, 3511, > 3522, 3531, 3541, 3551, 3559, 3570, 3581, 3589, 3597, 3612, > 3611, 3633, 3632, 3653, 3665, 3666, 3669, 3688, 3691, 3699, > 3707, 3710, 3714, 3717, 3725, 3728, 3729, 3737, 3740, 3757, > 3758, 3759, 3769, 3779, 3806, 3848, 3856, 3863, 3870, 3880, > 3888, 3898, 3906, 3913, 3920, 3931, 3938, 3949, 3956, 3966, > 3968, 3967, 3984, 3983, 4005, 4013, 4021, 4029, 4032, 4044, > 4045, 4046, 4047, 4050, 4081, 4082, 4083, 4091, 4101, 4102, > 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4112, > 4115, 4125, 4135, 4136, 4139, 4148, 4147, 4155, 4167, 4179, > 4185, 4193, 4201, 4209, 4217, 4225, 4233, 4241, 4249, 4257, > 4265, 4273, 4281, 4289, 4298, 4307, 4316, 4325, 4334, 4345, > 4346, 4358, 4366, 4385, 4392, 4405, 4419, 4433, 4441, 4457, > 4465, 4481, 4482, 4485, 4497, 4508, 4509, 4512, 4528, 4532, > 4542, 4552, 4552, 4581, 4582, 4592, 4599, 4609, 4617, 4627, > 4628, 4629, 4632, 4633, 4634, 4635, 4638, 4639, 4640, 4643, > 4648, 4655, 4656, 4659, 4660, 4663, 4666, 4669, 4670, 4671, > 4674, 4675, 4678, 4679, 4683 >}; > > > > > >static const char *const yytname[] = >{ > "$end", "error", "$undefined", "keyword_class", "keyword_module", > "keyword_def", "keyword_undef", "keyword_begin", "keyword_rescue", > "keyword_ensure", "keyword_end", "keyword_if", "keyword_unless", > "keyword_then", "keyword_elsif", "keyword_else", "keyword_case", > "keyword_when", "keyword_while", "keyword_until", "keyword_for", > "keyword_break", "keyword_next", "keyword_redo", "keyword_retry", > "keyword_in", "keyword_do", "keyword_do_cond", "keyword_do_block", > "keyword_do_LAMBDA", "keyword_return", "keyword_yield", "keyword_super", > "keyword_self", "keyword_nil", "keyword_true", "keyword_false", > "keyword_and", "keyword_or", "keyword_not", "modifier_if", > "modifier_unless", "modifier_while", "modifier_until", "modifier_rescue", > "keyword_alias", "keyword_defined", "keyword_BEGIN", "keyword_END", > "keyword__LINE__", "keyword__FILE__", "keyword__ENCODING__", > "tIDENTIFIER", "tFID", "tGVAR", "tIVAR", "tCONSTANT", "tCVAR", "tLABEL", > "tINTEGER", "tFLOAT", "tSTRING_CONTENT", "tCHAR", "tNTH_REF", > "tBACK_REF", "tREGEXP_END", "tUPLUS", "tUMINUS", "tPOW", "tCMP", "tEQ", > "tEQQ", "tNEQ", "tGEQ", "tLEQ", "tANDOP", "tOROP", "tMATCH", "tNMATCH", > "tDOT2", "tDOT3", "tAREF", "tASET", "tLSHFT", "tRSHFT", "tCOLON2", > "tCOLON3", "tOP_ASGN", "tASSOC", "tLPAREN", "tLPAREN_ARG", "tRPAREN", > "tLBRACK", "tLBRACE", "tLBRACE_ARG", "tSTAR", "tAMPER", "tLAMBDA", > "tSYMBEG", "tSTRING_BEG", "tXSTRING_BEG", "tREGEXP_BEG", "tWORDS_BEG", > "tQWORDS_BEG", "tSTRING_DBEG", "tSTRING_DVAR", "tSTRING_END", "tLAMBEG", > "tLOWEST", "'='", "'?'", "':'", "'>'", "'<'", "'|'", "'^'", "'&'", "'+'", > "'-'", "'*'", "'/'", "'%'", "tUMINUS_NUM", "'!'", "'~'", "idNULL", > "idRespond_to", "idIFUNC", "idCFUNC", "idThrowState", > "id_core_set_method_alias", "id_core_set_variable_alias", > "id_core_undef_method", "id_core_define_method", > "id_core_define_singleton_method", "id_core_set_postexe", "tLAST_TOKEN", > "'{'", "'}'", "'['", "'.'", "','", "'`'", "'('", "')'", "']'", "';'", > "' '", "'\\n'", "$accept", "program", "@1", "bodystmt", "compstmt", > "stmts", "stmt", "@2", "@3", "expr", "expr_value", "command_call", > "block_command", "cmd_brace_block", "@4", "command", "mlhs", > "mlhs_inner", "mlhs_basic", "mlhs_item", "mlhs_head", "mlhs_post", > "mlhs_node", "lhs", "cname", "cpath", "fname", "fsym", "fitem", > "undef_list", "@5", "op", "reswords", "arg", "@6", "arg_value", > "aref_args", "paren_args", "opt_paren_args", "opt_call_args", > "call_args", "command_args", "@7", "block_arg", "opt_block_arg", "args", > "mrhs", "primary", "@8", "@9", "@10", "@11", "@12", "@13", "@14", "@15", > "@16", "@17", "@18", "@19", "@20", "@21", "@22", "@23", "primary_value", > "k_begin", "k_if", "k_unless", "k_while", "k_until", "k_case", "k_for", > "k_class", "k_module", "k_def", "k_end", "then", "do", "if_tail", > "opt_else", "for_var", "f_marg", "f_marg_list", "f_margs", "block_param", > "opt_block_param", "block_param_def", "opt_bv_decl", "bv_decls", "bvar", > "lambda", "@24", "f_larglist", "lambda_body", "do_block", "@25", > "block_call", "method_call", "brace_block", "@26", "@27", "case_body", > "cases", "opt_rescue", "exc_list", "exc_var", "opt_ensure", "literal", > "strings", "string", "string1", "xstring", "regexp", "words", > "word_list", "word", "qwords", "qword_list", "string_contents", > "xstring_contents", "string_content", "@28", "@29", "string_dvar", > "symbol", "sym", "dsym", "numeric", "variable", "var_ref", "var_lhs", > "backref", "superclass", "@30", "f_arglist", "f_args", "f_bad_arg", > "f_norm_arg", "f_arg_item", "f_arg", "f_opt", "f_block_opt", > "f_block_optarg", "f_optarg", "restarg_mark", "f_rest_arg", > "blkarg_mark", "f_block_arg", "opt_f_block_arg", "singleton", "@31", > "assoc_list", "assocs", "assoc", "operation", "operation2", "operation3", > "dot_or_colon", "opt_terms", "opt_nl", "rparen", "rbracket", "trailer", > "term", "terms", "none", 0 >}; ># 1607 "parse.c" >static const yytype_uint16 yyr1[] = >{ > 0, 149, 151, 150, 152, 153, 154, 154, 154, 154, > 156, 155, 155, 155, 155, 155, 155, 155, 155, 155, > 155, 157, 155, 155, 155, 155, 155, 155, 155, 155, > 155, 155, 155, 155, 155, 155, 158, 158, 158, 158, > 158, 158, 159, 160, 160, 160, 160, 160, 161, 161, > 161, 163, 162, 164, 164, 164, 164, 164, 164, 164, > 164, 165, 165, 166, 166, 167, 167, 167, 167, 167, > 167, 167, 167, 167, 167, 168, 168, 169, 169, 170, > 170, 171, 171, 171, 171, 171, 171, 171, 171, 172, > 172, 172, 172, 172, 172, 172, 172, 173, 173, 174, > 174, 174, 175, 175, 175, 175, 175, 176, 176, 177, > 177, 178, 179, 178, 180, 180, 180, 180, 180, 180, > 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, > 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, > 180, 180, 180, 181, 181, 181, 181, 181, 181, 181, > 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, > 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, > 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, > 181, 181, 181, 181, 182, 182, 182, 182, 182, 182, > 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, > 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, > 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, > 182, 182, 182, 182, 182, 182, 183, 182, 182, 182, > 184, 185, 185, 185, 185, 186, 187, 187, 188, 188, > 189, 189, 189, 189, 189, 191, 190, 192, 193, 193, > 193, 194, 194, 194, 194, 195, 195, 195, 196, 196, > 196, 196, 196, 196, 196, 196, 196, 197, 196, 198, > 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, > 199, 196, 196, 196, 196, 196, 196, 196, 196, 196, > 200, 201, 196, 202, 203, 196, 196, 196, 204, 205, > 196, 206, 196, 207, 208, 196, 209, 196, 210, 196, > 211, 212, 196, 196, 196, 196, 196, 213, 214, 215, > 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, > 225, 225, 226, 226, 227, 227, 228, 228, 229, 229, > 230, 230, 231, 231, 232, 232, 232, 232, 232, 232, > 232, 232, 232, 233, 233, 233, 233, 233, 233, 233, > 233, 233, 233, 233, 233, 233, 233, 233, 234, 234, > 235, 235, 235, 236, 236, 237, 237, 238, 238, 240, > 239, 241, 241, 242, 242, 244, 243, 245, 245, 245, > 246, 246, 246, 246, 246, 246, 246, 246, 246, 248, > 247, 249, 247, 250, 251, 251, 252, 252, 253, 253, > 253, 254, 254, 255, 255, 256, 256, 256, 257, 258, > 258, 258, 259, 260, 261, 262, 262, 263, 263, 264, > 264, 265, 265, 266, 266, 267, 267, 268, 268, 269, > 270, 269, 271, 269, 272, 272, 272, 272, 273, 274, > 274, 274, 274, 275, 276, 276, 276, 276, 277, 277, > 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, > 278, 279, 280, 280, 281, 282, 281, 281, 283, 283, > 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, > 284, 284, 284, 284, 284, 285, 285, 285, 285, 286, > 286, 287, 287, 288, 288, 289, 290, 291, 291, 292, > 292, 293, 293, 294, 294, 295, 295, 296, 297, 297, > 298, 299, 298, 300, 300, 301, 301, 302, 302, 303, > 303, 303, 304, 304, 304, 304, 305, 305, 305, 306, > 306, 307, 307, 308, 308, 309, 310, 311, 311, 311, > 312, 312, 313, 313, 314 >}; > > >static const yytype_uint8 yyr2[] = >{ > 0, 2, 0, 2, 4, 2, 1, 1, 3, 2, > 0, 4, 3, 3, 3, 2, 3, 3, 3, 3, > 3, 0, 5, 4, 3, 3, 3, 6, 5, 5, > 5, 3, 3, 3, 3, 1, 1, 3, 3, 3, > 2, 1, 1, 1, 1, 2, 2, 2, 1, 4, > 4, 0, 5, 2, 3, 4, 5, 4, 5, 2, > 2, 1, 3, 1, 3, 1, 2, 3, 5, 2, > 4, 2, 4, 1, 3, 1, 3, 2, 3, 1, > 3, 1, 4, 3, 3, 3, 3, 2, 1, 1, > 4, 3, 3, 3, 3, 2, 1, 1, 1, 2, > 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, > 1, 1, 0, 4, 1, 1, 1, 1, 1, 1, > 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, > 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, > 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, > 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, > 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, > 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, > 1, 1, 1, 1, 3, 5, 3, 5, 6, 5, > 5, 5, 5, 4, 3, 3, 3, 3, 3, 3, > 3, 3, 3, 4, 4, 2, 2, 3, 3, 3, > 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, > 2, 2, 3, 3, 3, 3, 0, 4, 6, 1, > 1, 1, 2, 4, 2, 3, 1, 1, 1, 1, > 1, 2, 2, 4, 1, 0, 2, 2, 2, 1, > 1, 1, 2, 3, 4, 3, 4, 2, 1, 1, > 1, 1, 1, 1, 1, 1, 1, 0, 4, 0, > 4, 3, 3, 2, 3, 3, 1, 4, 3, 1, > 0, 6, 4, 3, 2, 1, 2, 2, 6, 6, > 0, 0, 7, 0, 0, 7, 5, 4, 0, 0, > 9, 0, 6, 0, 0, 8, 0, 5, 0, 6, > 0, 0, 9, 1, 1, 1, 1, 1, 1, 1, > 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, > 1, 2, 1, 1, 1, 5, 1, 2, 1, 1, > 1, 3, 1, 3, 1, 4, 6, 3, 5, 2, > 4, 1, 3, 6, 8, 4, 6, 4, 2, 6, > 2, 4, 6, 2, 4, 2, 4, 1, 1, 1, > 3, 1, 4, 1, 2, 1, 3, 1, 1, 0, > 3, 4, 1, 3, 3, 0, 5, 2, 4, 4, > 2, 4, 4, 3, 3, 3, 2, 1, 4, 0, > 5, 0, 5, 5, 1, 1, 6, 1, 1, 1, > 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, > 1, 2, 3, 3, 3, 3, 3, 0, 3, 1, > 2, 3, 3, 0, 3, 0, 2, 0, 2, 1, > 0, 3, 0, 4, 1, 1, 1, 1, 2, 1, > 1, 1, 1, 3, 1, 1, 2, 2, 1, 1, > 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, > 1, 1, 1, 1, 1, 0, 4, 2, 3, 2, > 6, 8, 4, 6, 4, 6, 2, 4, 6, 2, > 4, 2, 4, 1, 0, 1, 1, 1, 1, 1, > 1, 1, 3, 1, 3, 3, 3, 1, 3, 1, > 3, 1, 1, 2, 1, 1, 1, 2, 2, 1, > 1, 0, 4, 1, 2, 1, 3, 3, 2, 1, > 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, > 1, 0, 1, 0, 1, 2, 2, 0, 1, 1, > 1, 1, 1, 2, 0 >}; > > > > >static const yytype_uint16 yydefact[] = >{ > 2, 0, 0, 1, 0, 325, 326, 327, 0, 318, > 319, 320, 323, 321, 322, 324, 313, 314, 315, 316, > 276, 245, 245, 464, 463, 465, 466, 543, 0, 543, > 21, 0, 468, 467, 469, 458, 531, 460, 459, 461, > 462, 454, 455, 419, 472, 473, 0, 0, 0, 0, > 0, 554, 554, 73, 379, 437, 435, 437, 437, 427, > 433, 0, 0, 0, 3, 541, 7, 35, 36, 44, > 43, 0, 61, 0, 65, 75, 0, 41, 229, 0, > 267, 0, 0, 290, 293, 541, 0, 0, 0, 0, > 48, 285, 258, 259, 418, 420, 260, 261, 262, 263, > 416, 417, 415, 470, 264, 0, 265, 245, 6, 9, > 153, 164, 154, 177, 150, 170, 160, 159, 180, 181, > 175, 158, 157, 152, 178, 182, 183, 162, 151, 165, > 169, 171, 163, 156, 172, 179, 174, 173, 166, 176, > 161, 149, 168, 167, 148, 155, 146, 147, 143, 144, > 145, 102, 104, 103, 138, 139, 135, 117, 118, 119, > 126, 123, 125, 120, 121, 140, 141, 127, 128, 132, > 122, 124, 114, 115, 116, 129, 130, 131, 133, 134, > 136, 137, 142, 107, 109, 111, 15, 105, 106, 108, > 110, 313, 314, 276, 0, 0, 0, 0, 0, 0, > 0, 240, 0, 230, 251, 46, 244, 554, 0, 470, > 0, 265, 554, 525, 47, 45, 543, 60, 0, 554, > 396, 59, 543, 544, 0, 0, 10, 226, 0, 0, > 279, 397, 205, 0, 0, 206, 273, 0, 0, 543, > 63, 269, 0, 547, 547, 231, 0, 0, 547, 523, > 543, 0, 0, 0, 71, 317, 0, 81, 88, 287, > 494, 451, 450, 452, 449, 0, 448, 0, 0, 0, > 0, 0, 0, 0, 456, 457, 40, 220, 221, 550, > 551, 5, 552, 542, 0, 0, 0, 0, 0, 0, > 0, 385, 387, 0, 77, 0, 69, 66, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 554, 0, 0, 42, > 0, 0, 0, 0, 541, 0, 542, 0, 339, 338, > 0, 0, 470, 265, 97, 98, 0, 0, 100, 0, > 0, 470, 265, 306, 173, 166, 176, 161, 143, 144, > 145, 102, 103, 521, 308, 520, 0, 0, 0, 401, > 399, 286, 421, 0, 0, 390, 53, 284, 112, 528, > 273, 252, 247, 0, 0, 249, 241, 250, 0, 554, > 0, 0, 0, 249, 242, 543, 0, 278, 246, 543, > 239, 238, 543, 283, 39, 12, 14, 13, 0, 280, > 0, 0, 0, 0, 0, 0, 543, 271, 62, 543, > 274, 549, 548, 232, 549, 234, 275, 524, 0, 87, > 456, 457, 79, 74, 0, 0, 554, 0, 500, 497, > 496, 495, 498, 0, 512, 516, 515, 511, 494, 0, > 382, 499, 501, 503, 554, 509, 554, 514, 554, 0, > 493, 439, 442, 440, 453, 438, 422, 436, 423, 424, > 425, 426, 0, 429, 431, 0, 432, 0, 0, 553, > 8, 16, 17, 18, 19, 20, 37, 38, 554, 0, > 25, 33, 0, 34, 543, 0, 67, 78, 24, 184, > 251, 32, 202, 210, 215, 216, 217, 212, 214, 224, > 225, 218, 219, 195, 196, 222, 223, 543, 211, 213, > 207, 208, 209, 197, 198, 199, 200, 201, 532, 537, > 533, 538, 395, 245, 393, 543, 532, 534, 533, 535, > 394, 245, 0, 554, 330, 0, 329, 0, 0, 0, > 0, 0, 0, 273, 0, 554, 0, 298, 303, 97, > 98, 99, 0, 475, 301, 474, 0, 554, 0, 0, > 0, 494, 540, 539, 310, 532, 533, 245, 245, 554, > 554, 26, 186, 31, 194, 51, 54, 0, 184, 527, > 0, 253, 248, 554, 536, 533, 543, 532, 533, 526, > 277, 545, 235, 282, 11, 0, 227, 0, 23, 0, > 554, 193, 64, 270, 547, 0, 72, 84, 86, 543, > 532, 533, 0, 500, 0, 351, 342, 344, 543, 340, > 554, 0, 0, 380, 0, 486, 519, 0, 489, 513, > 0, 491, 517, 0, 0, 428, 430, 434, 203, 204, > 371, 554, 0, 369, 368, 257, 0, 76, 70, 0, > 0, 0, 0, 0, 392, 57, 0, 398, 0, 0, > 237, 391, 55, 236, 328, 268, 554, 554, 407, 554, > 331, 554, 333, 291, 332, 294, 0, 0, 297, 536, > 272, 543, 532, 533, 0, 0, 477, 0, 0, 97, > 98, 101, 543, 0, 543, 494, 0, 0, 0, 389, > 50, 388, 49, 0, 0, 0, 554, 113, 254, 243, > 0, 398, 0, 0, 543, 22, 233, 80, 82, 505, > 543, 0, 349, 0, 502, 0, 543, 373, 0, 0, > 504, 554, 554, 518, 554, 510, 554, 554, 0, 444, > 445, 446, 441, 447, 500, 554, 0, 554, 507, 554, > 554, 367, 0, 0, 255, 68, 185, 0, 30, 191, > 192, 58, 546, 0, 28, 189, 29, 190, 56, 408, > 409, 554, 410, 0, 554, 336, 0, 0, 334, 0, > 0, 0, 296, 0, 0, 398, 0, 304, 0, 0, > 398, 307, 522, 543, 0, 479, 311, 0, 0, 187, > 0, 0, 281, 341, 352, 0, 347, 343, 377, 374, > 375, 378, 381, 384, 383, 0, 482, 0, 484, 0, > 490, 0, 487, 492, 443, 0, 0, 370, 358, 360, > 0, 363, 0, 365, 386, 256, 228, 27, 188, 0, > 0, 412, 337, 0, 4, 414, 0, 288, 289, 0, > 0, 253, 554, 299, 0, 476, 302, 478, 309, 494, > 402, 400, 0, 0, 350, 0, 345, 0, 554, 554, > 554, 554, 0, 506, 372, 554, 554, 554, 508, 554, > 554, 0, 411, 0, 89, 96, 0, 413, 0, 292, > 295, 404, 405, 403, 0, 0, 0, 52, 348, 0, > 376, 483, 0, 480, 485, 488, 273, 0, 0, 355, > 0, 357, 364, 0, 361, 366, 95, 0, 554, 0, > 554, 554, 0, 305, 0, 346, 554, 536, 272, 554, > 554, 554, 554, 536, 94, 543, 532, 533, 406, 335, > 300, 312, 481, 356, 0, 353, 359, 362, 398, 554, > 354 >}; > > >static const yytype_int16 yydefgoto[] = >{ > -1, 1, 2, 542, 543, 65, 66, 408, 228, 67, > 330, 68, 69, 586, 716, 70, 71, 239, 72, 73, > 74, 433, 75, 202, 348, 349, 183, 184, 185, 186, > 587, 539, 188, 77, 410, 204, 242, 532, 671, 399, > 400, 217, 218, 206, 386, 207, 493, 78, 328, 419, > 605, 332, 790, 333, 791, 694, 904, 698, 695, 864, > 569, 571, 708, 869, 233, 80, 81, 82, 83, 84, > 85, 86, 87, 88, 89, 675, 545, 683, 787, 788, > 341, 626, 627, 628, 755, 652, 653, 736, 819, 820, > 259, 260, 449, 633, 292, 488, 90, 91, 377, 580, > 579, 552, 903, 677, 781, 850, 854, 92, 93, 94, > 95, 96, 97, 98, 271, 472, 99, 273, 267, 265, > 465, 644, 643, 752, 100, 266, 101, 102, 209, 104, > 210, 211, 564, 697, 706, 707, 451, 452, 453, 454, > 455, 758, 759, 456, 457, 458, 459, 743, 635, 366, > 570, 247, 212, 213, 234, 609, 534, 574, 281, 396, > 397, 667, 423, 546, 336, 108 >}; > > > > >static const yytype_int16 yypact[] = >{ > -747, 103, 2364, -747, 6711, -747, -747, -747, 6222, -747, > -747, -747, -747, -747, -747, -747, 6820, 6820, -747, -747, > 6820, 3057, 2631, -747, -747, -747, -747, 282, 6082, -24, > -747, 64, -747, -747, -747, 5317, 2773, -747, -747, 5445, > -747, -747, -747, -747, -747, -747, 8019, 8019, 74, 4131, > 8128, 7038, 7365, 6487, -747, 5942, -747, -747, -747, 142, > 154, 84, 8237, 8019, -747, 473, 925, 71, -747, -747, > 238, 234, -747, 205, 8346, -747, 268, 2472, 31, 46, > -747, 8128, 8128, -747, -747, 4792, 8451, 8556, 8661, 5189, > 14, 70, -747, -747, 290, -747, -747, -747, -747, -747, > -747, -747, -747, 26, -747, 366, 355, 210, -747, 925, > -747, -747, -747, -747, -747, -747, -747, -747, -747, -747, > -747, -747, -747, -747, -747, -747, -747, -747, -747, -747, > -747, -747, -747, -747, -747, -747, -747, -747, -747, -747, > -747, -747, -747, -747, -747, -747, -747, -747, -747, -747, > -747, -747, -747, -747, -747, -747, -747, -747, -747, -747, > -747, -747, -747, -747, -747, -747, -747, -747, -747, -747, > -747, -747, -747, -747, -747, -747, -747, -747, -747, -747, > -747, -747, -747, -747, -747, -747, 321, -747, -747, -747, > -747, -747, -747, -747, 328, 8019, 433, 4262, 8019, 8019, > 8019, -747, 403, 2472, 440, -747, -747, 418, 300, 13, > 457, 24, 437, -747, -747, -747, 4670, -747, 6820, 6820, > -747, -747, 4923, -747, 8128, 438, -747, 436, 449, 4393, > 452, 463, -747, 346, 210, 546, 451, 4131, 474, -24, > 525, 71, 477, 165, 276, -747, 440, 498, 276, -747, > -24, 582, 250, 8766, 501, -747, 374, 384, 394, -747, > 933, -747, -747, -747, -747, 595, -747, 659, 673, 76, > 552, 721, 553, 43, 584, 596, -747, -747, -747, -747, > -747, -747, -747, 5045, 8128, 8128, 8128, 8128, 6711, 8128, > 8128, -747, -747, 7474, -747, 4131, 6599, 524, 7474, 8019, > 8019, 8019, 8019, 8019, 8019, 8019, 8019, 8019, 8019, 8019, > 8019, 8019, 8019, 8019, 8019, 8019, 8019, 8019, 8019, 8019, > 8019, 8019, 8019, 8019, 8019, 9033, 6820, 9111, 3431, 71, > 119, 119, 8128, 8128, 473, 652, 528, 614, -747, -747, > 424, 654, 56, 92, 335, 344, 8128, 131, -747, 42, > 444, -747, -747, -747, 33, 35, 53, 217, 227, 235, > 265, 298, 333, -747, -747, -747, 358, 10047, 10047, -747, > -747, -747, -747, 8237, 8237, -747, 587, -747, -747, -747, > 305, -747, -747, 8019, 8019, 6929, -747, -747, 9189, 6820, > 9267, 8019, 8019, 7147, -747, -24, 540, -747, -747, -24, > -747, -747, 242, -747, -747, -747, -747, -747, 6222, -747, > 8019, 4393, 555, 9189, 9267, 8019, -24, -747, 556, -24, > -747, 7256, -747, -747, 7365, -747, -747, -747, 436, 470, > -747, -747, -747, 557, 8766, 9345, 6820, 9423, 585, -747, > -747, -747, -747, 843, -747, -747, -747, -747, 835, 49, > -747, -747, -747, -747, 564, -747, 565, 658, 572, 662, > -747, -747, -747, -747, -747, -747, -747, -747, -747, -747, > -747, -747, 21, -747, -747, 569, -747, 8019, 8019, -747, > 925, -747, -747, -747, -747, -747, -747, -747, 38, 8019, > -747, 577, 578, -747, -24, 8766, 581, -747, -747, 2225, > -747, -747, 546, 2143, 2143, 2143, 2143, 1115, 1115, 2614, > 2024, 2143, 2143, 1738, 1738, 718, 718, 1856, 1115, 1115, > 619, 619, 692, 274, 274, 546, 546, 546, 3199, 5687, > 3285, 5801, -747, 463, -747, -24, 460, -747, 471, -747, > -747, 2915, 715, 734, -747, 3577, 713, 3869, 175, 175, > 652, 7583, 715, 96, 9501, 6820, 9579, -747, 71, -747, > 470, -747, 473, -747, -747, -747, 9657, 6820, 9735, 3431, > 8128, 1108, -747, -747, -747, -747, -747, 996, 996, 38, > 38, -747, 2242, -747, 2472, -747, -747, 6222, 10104, -747, > 8019, 440, -747, 437, 5573, 2489, -24, 367, 390, -747, > -747, -747, -747, -747, -747, 8128, 2472, 605, -747, 463, > 463, 2472, -7, -747, 276, 8766, 557, 500, 267, -24, > 48, 50, 8019, -747, 843, 592, -747, 603, -24, -747, > 600, 4539, 4393, -747, 835, -747, -747, 835, -747, -747, > 634, -747, -747, 4393, 865, -747, -747, -747, 546, 546, > -747, 411, 4539, -747, -747, 607, 7692, -747, 557, 8766, > 8019, 644, 8237, 8019, -747, 587, 612, 544, 8237, 8237, > -747, -747, 587, -747, -747, -747, 7801, 744, -747, 413, > -747, 744, -747, -747, -747, -747, 715, 208, -747, 62, > 85, -24, 117, 120, 8128, 473, -747, 8128, 3431, 500, > 267, -747, -24, 715, 242, 835, 3431, 473, 6362, -747, > -747, -747, -747, 4539, 4393, 8019, 38, -747, -747, -747, > 8019, 432, 8019, 8019, 242, -747, -747, -747, 465, -747, > -24, 788, 620, 854, -747, 885, -24, -747, 756, 631, > -747, 629, 633, -747, 639, -747, 642, 639, 657, -747, > -747, -747, -747, -747, 681, 600, 683, 665, -747, 666, > 676, -747, 789, 8019, 680, 557, 2472, 8019, -747, 2472, > 2472, -747, -747, 8237, -747, 2472, -747, 2472, -747, 577, > -747, 710, -747, 4000, 814, -747, 8128, 715, -747, 715, > 4539, 4539, -747, 7910, 3723, 133, 175, -747, 473, 715, > -747, -747, -747, -24, 715, -747, -747, 822, 696, 2472, > 4393, 8019, -747, -747, 700, 788, 621, -747, -747, 705, > -747, -747, -747, -747, -747, 835, -747, 634, -747, 634, > -747, 634, -747, -747, -747, 8871, 736, -747, 1125, -747, > 1125, -747, 634, -747, -747, 711, 2472, -747, 2472, 8976, > 119, -747, -747, 4539, -747, -747, 119, -747, -747, 715, > 715, -747, 505, -747, 3431, -747, -747, -747, -747, 1108, > -747, -747, 717, 788, 700, 788, 716, 885, 639, 720, > 639, 639, 807, 487, -747, 725, 726, 639, -747, 728, > 639, 815, -747, 522, 384, 394, 3431, -747, 3577, -747, > -747, -747, -747, -747, 4539, 715, 3431, -747, 700, 788, > -747, -747, 634, -747, -747, -747, -747, 9813, 1125, -747, > 634, -747, -747, 634, -747, -747, 470, 9891, 6820, 9969, > 734, 413, 715, -747, 715, 700, 639, 727, 730, 639, > 738, 639, 639, 212, 267, -24, 152, 187, -747, -747, > -747, -747, -747, -747, 634, -747, -747, -747, 193, 639, > -747 >}; > > >static const yytype_int16 yypgoto[] = >{ > -747, -747, -747, -537, 976, -747, 20, -747, -747, -14, > 30, -45, -747, -133, -747, 22, 772, -149, 9, -69, > -747, -400, -4, 1540, -303, 793, -54, -747, -12, -747, > -747, 0, -747, 802, -747, -48, -747, -16, -29, -313, > 81, 55, -747, -245, -192, -41, -272, -34, -747, -747, > -747, -747, -747, -747, -747, -747, -747, -747, -747, -747, > -747, -747, -747, -747, -2, -747, -747, -747, -747, -747, > -747, -747, -747, -747, -747, -31, -319, -519, -49, -607, > -747, -664, -641, 260, -747, -487, -747, -532, -747, 8, > -747, -747, -747, -747, -747, -747, -747, -747, 795, -747, > -747, -528, -747, -42, -747, -747, -747, -747, -747, -747, > 799, -747, -747, -747, -747, -747, -747, -747, -747, 513, > -208, -747, -747, -747, -5, -747, 29, -747, 1251, 816, > 747, 1369, -747, -747, 47, -235, -673, -393, -569, -40, > -576, -746, 69, 278, -747, -474, -747, -249, 959, -747, > -747, -747, -6, -288, 162, -261, -747, -747, -56, -20, > 17, -563, -217, -44, 850, 752 >}; > > > > > > >static const yytype_int16 yytable[] = >{ > 79, 264, 79, 189, 246, 297, 220, 224, 187, 227, > 243, 460, 547, 535, 208, 208, 226, 276, 208, 255, > 394, 282, 686, 189, 109, 450, 501, 425, 187, 335, > 685, 427, 703, 721, 616, 364, 241, 190, 201, 201, > 255, 282, 201, 562, 561, 244, 248, 79, 208, 254, > 629, 256, 255, 255, 255, 187, 728, 190, 240, 467, > 208, 745, 821, 473, 533, 740, 541, 329, 329, 817, > 784, 329, 256, -83, 789, -85, 596, 221, 631, 208, > 208, -89, 461, 208, 340, 350, 350, -92, 416, 187, > 814, 375, 713, 714, 888, 658, 369, 205, 214, 367, > -471, 215, -62, 3, 475, 599, 577, 578, 289, 290, > -94, 392, 331, -471, 650, 334, -317, -96, -464, 756, > -463, -95, -89, 619, 223, 462, 463, 533, 795, 541, > 236, 325, 544, -96, -76, -89, 599, 461, -465, 800, > 592, 469, -91, 274, 275, -93, 494, 379, 592, 476, > 381, 382, 651, 610, 368, 563, 632, -83, -90, -85, > 742, 799, 376, 746, 107, -91, 107, -81, 645, 804, > -317, -317, 888, -464, 874, -463, 610, 760, 107, 107, > 462, 463, 107, 559, 432, 326, 327, 560, 279, -83, > 280, -85, -83, -465, -85, 79, -83, -81, -85, 460, > -93, 229, 682, -84, 821, -532, -90, 370, 402, 817, > 404, 107, 107, 630, 208, 220, 208, 208, 375, 255, > 208, 544, 208, 836, 107, -92, -86, 79, -533, 810, > 428, 629, 732, -88, 908, 79, 369, -87, 201, 403, > 201, 201, 691, 107, 107, 491, 240, 107, 490, 745, > 500, 256, 492, 498, 702, 901, 418, 492, -83, 765, > 740, -85, 255, 701, 646, 279, 291, 280, 935, 740, > 329, 329, 329, 329, -82, 486, 487, 863, 550, 289, > 290, 79, 208, 208, 208, 208, 79, 208, 208, 270, > 282, 208, 496, 79, 256, 610, 208, 395, -91, 398, > -91, 272, -466, 480, 240, 565, 421, 610, 485, 430, > 431, 540, -468, 422, 481, 482, 483, 484, 329, 329, > -467, 279, 460, 280, 208, 531, 79, 905, 581, 583, > 208, 208, 558, -93, 902, -93, 589, 591, 629, -90, > 629, -90, 299, 293, 208, 246, 294, 370, 201, 793, > -469, 879, -272, 219, 279, -532, 280, -466, -92, 107, > -92, -529, 548, 549, 886, 432, 889, -468, 794, 934, > -530, 208, 208, 591, 540, -467, 246, 298, 107, 593, > 107, 107, 958, -458, 107, 388, 107, 208, 531, 56, > 223, 107, 415, 322, 323, 324, 604, 726, 540, 107, > 255, 719, 761, 189, 780, -469, -272, -272, 187, 79, > -533, 201, 600, 531, -95, 614, 602, 424, -461, 603, > -458, 540, 629, 876, 422, 222, 432, 786, 783, -461, > 223, 413, 256, 612, 208, 531, 613, 190, -458, 389, > 390, 655, 374, 572, 940, 107, 107, 107, 107, 107, > 107, 107, 107, 373, 722, 107, 460, 107, 201, 435, > 107, 255, 378, 754, -96, 439, 440, 441, 442, -470, > 803, 222, -529, -461, -458, -458, -91, 723, -529, -265, > 629, -530, 629, -461, -461, 389, 414, -530, 107, 380, > 107, -398, 405, 256, 107, 107, -88, 661, 573, -93, > 443, 406, 407, 500, 684, 684, 444, 445, 107, 554, > 687, 657, 383, 436, 437, 666, 629, 664, 696, 811, > 783, 688, 551, -470, -470, 670, -536, 446, 384, 566, > 447, 896, 771, -265, -265, 107, 107, 898, 415, 778, > 540, -90, 718, 79, 391, 79, 727, 668, 709, 711, > -398, 107, 540, 208, 531, -273, 704, 735, 669, 385, > -95, 670, 670, 555, 556, 208, 531, 79, 208, -91, > 268, 269, 917, 107, 729, 717, 666, 201, 393, 409, > -93, 255, 189, 567, 568, -536, 411, 187, 665, 201, > 432, 724, -87, 664, 670, 216, 672, 744, 107, 666, > 747, -83, -398, 208, -398, -398, 219, 927, 764, -273, > -273, 757, -85, 256, 299, 945, 190, 768, 417, 279, > 460, 280, 420, 774, 776, 255, 567, 568, 779, 79, > 79, 773, 710, 712, -61, 492, 426, -536, 429, -536, > -536, 79, 434, -532, 623, 734, 439, 440, 441, 442, > 79, 797, 477, -90, 806, 792, 461, 256, 470, 474, > 208, 928, 929, 805, 478, 497, 208, 208, 610, 551, > 553, 666, 801, 623, 479, 439, 440, 441, 442, 557, > 329, 585, 666, 329, 601, -82, 623, 299, 439, 440, > 441, 442, 208, 608, 622, 208, 79, -76, 615, 462, > 463, 464, 312, 313, 79, 634, 637, 107, 187, 107, > 639, 79, 79, 640, 642, 845, 647, 107, -251, 656, > 461, 802, 659, 443, 796, 674, 680, 798, 847, 107, > 445, 107, 107, 731, 461, 319, 320, 321, 322, 323, > 324, 812, 676, 725, 733, 861, 735, 813, -252, 105, > 446, 105, 684, 822, 865, 767, 857, 772, 858, 783, > 299, 815, 875, 462, 463, 466, 823, 107, 866, 824, > 825, 208, 329, 868, 827, 312, 313, 462, 463, 468, > 829, 79, 461, 831, 208, 878, 299, 880, 79, 79, > 835, 881, 79, 107, 107, 834, 105, 837, 849, 844, > 887, 255, 890, 245, 249, 107, 838, 840, 79, 320, > 321, 322, 323, 324, 107, 255, 856, 842, 203, 203, > 867, -253, 203, 853, 107, 462, 463, 471, 899, 900, > 107, 107, 870, 883, 871, 320, 321, 322, 323, 324, > 623, 873, 439, 440, 441, 442, 877, 893, 232, 235, > 884, 79, -254, 203, 203, 907, 107, 909, 338, 107, > 107, 912, 79, 916, 277, 278, 918, 920, 107, 923, > -532, 926, 936, -533, 933, 107, 107, 624, 939, 954, > 941, 353, 949, 942, 730, 910, 371, 438, 948, 439, > 440, 441, 442, 372, 79, 623, 79, 439, 440, 441, > 442, 950, 79, 951, 79, 365, 623, 885, 439, 440, > 441, 442, 741, 540, 959, 283, 906, 531, 0, 749, > 750, 0, 751, 0, 443, 666, 208, 531, 44, 45, > 444, 445, 624, 0, 0, 107, 0, 818, 625, 439, > 440, 441, 442, 624, 105, 107, 0, 0, 107, 816, > 201, 446, 107, 107, 447, 0, 107, 0, 0, 387, > 0, 0, 0, 0, 387, 284, 285, 286, 287, 288, > 0, 401, 107, 0, 0, 0, 105, 0, 64, 0, > 0, 0, 0, 0, 105, 438, 0, 439, 440, 441, > 442, 0, 0, 0, 0, 0, -554, 203, 0, 0, > 203, 203, 277, 0, -554, -554, -554, 0, 0, -554, > -554, -554, 0, -554, 0, 107, 0, 0, 203, 0, > 203, 203, 443, -554, 0, 238, 107, 0, 444, 445, > 105, 0, 0, -554, -554, 105, -554, -554, -554, -554, > -554, 0, 105, 0, 0, 0, 0, 0, 0, 446, > 0, 0, 447, 0, 0, 0, 0, 0, 107, 0, > 107, 0, 0, 0, 0, 0, 107, 0, 107, 0, > 0, 0, 0, 0, 0, 105, 448, 0, 401, 0, > 0, -554, 0, 0, 0, 0, 0, 0, 0, 0, > 107, 0, 0, 0, 0, 203, 0, 0, 0, 0, > 499, 502, 503, 504, 505, 506, 507, 508, 509, 510, > 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, > 521, 522, 523, 524, 525, 526, 527, 0, 203, 0, > 0, 0, 0, 0, -554, 0, -554, 0, 0, 219, > -554, 401, -554, 0, -554, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 105, 0, > 438, 0, 439, 440, 441, 442, 0, 0, 0, 0, > 0, 0, 0, 238, 0, 582, 584, 754, 0, 439, > 440, 441, 442, 299, 0, 588, 203, 203, 401, 0, > 0, 203, 0, 582, 584, 203, 0, 443, 312, 313, > 0, 0, 0, 444, 445, 412, 636, 0, 636, 0, > 636, 0, 606, 238, 443, 0, 0, 611, 0, 0, > 444, 445, 0, 203, 446, 0, 203, 447, 0, 317, > 318, 319, 320, 321, 322, 323, 324, 0, 203, 0, > 654, 446, 0, 0, 447, 0, 0, 0, 0, 0, > 0, 705, 0, 103, 0, 103, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 238, 0, 0, 0, 0, 0, 0, 0, 648, > 649, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 203, 105, 673, 105, 678, 0, 0, 0, 0, > 103, 0, 0, 0, 257, 0, 0, 401, 0, 0, > 0, 0, 0, 0, 0, 0, 105, 0, 0, 401, > 0, 0, 0, 0, 0, 257, 0, 0, 0, 673, > 673, 654, 654, 0, 0, 0, 0, 342, 351, 351, > 351, 0, 0, 0, 0, 387, 0, 0, 0, 0, > 0, 0, 0, 203, 0, 0, 0, 203, 0, 0, > 0, 0, 673, 0, 0, 0, 0, 0, 0, 203, > 0, 106, 0, 106, 0, 0, 0, 0, 105, 105, > 0, 0, 737, 0, 0, 0, 0, 607, 0, 0, > 105, 0, 203, 0, 0, 0, 0, 0, 0, 105, > 0, 0, 0, 737, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 638, 0, 641, 106, 0, > 0, 0, 258, 0, 203, 0, 0, 0, 782, 785, > 0, 785, 0, 785, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 258, 0, 105, 0, 0, 103, 0, > 0, 0, 0, 105, 0, 343, 352, 352, 203, 0, > 105, 105, 766, 0, 769, 770, 0, 0, 654, 0, > 775, 777, 0, 0, 0, 0, 0, 0, 203, 0, > 103, 0, 0, 0, 0, 0, 0, 0, 103, 0, > 0, 0, 0, 636, 636, 0, 636, 0, 636, 636, > 0, 0, 0, 0, 257, 0, 0, 737, 0, 636, > 0, 636, 636, 0, 0, 0, 0, 809, 0, 0, > 0, 679, 769, 681, 775, 777, 0, 0, 0, 0, > 105, 0, 0, 851, 103, 0, 855, 105, 105, 103, > 0, 105, 76, 0, 76, 0, 103, 257, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 105, 0, 0, > 0, 0, 0, 0, 0, 203, 106, 0, 0, 846, > 0, 0, 0, 0, 0, 848, 0, 0, 0, 103, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, > 0, 0, 0, 0, 0, 203, 0, 0, 106, 0, > 105, 0, 0, 0, 0, 0, 106, 738, 739, 0, > 0, 105, 0, 848, 785, 0, 0, 0, 0, 748, > 0, 0, 258, 0, 0, 0, 339, 0, 762, 0, > 636, 636, 636, 636, 0, 0, 0, 636, 636, 636, > 0, 636, 636, 105, 0, 105, 0, 0, 0, 0, > 0, 105, 106, 105, 0, 0, 0, 106, 0, 0, > 0, 0, 103, 0, 106, 258, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 401, 0, 678, 785, 0, 257, 0, 0, 636, 807, > 808, 636, 636, 636, 636, 0, 0, 106, 0, 0, > 826, 828, 0, 830, 0, 832, 833, 0, 0, 0, > 0, 636, 0, 0, 0, 0, 839, 0, 841, 843, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 203, 0, 0, 0, 0, 0, 0, 76, 0, 0, > 0, 0, 0, 0, 0, 0, 257, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 852, > 0, 0, 0, 0, 0, 0, 859, 860, 0, 76, > 862, 0, 0, 0, 0, 0, 0, 76, 0, 0, > 106, 0, 0, 0, 0, 0, 872, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 103, 0, 103, 0, > 0, 0, 0, 258, 0, 0, 299, 300, 301, 302, > 303, 304, 305, 306, 307, 308, 309, -555, -555, 0, > 103, 312, 313, 76, 0, 0, 0, 0, 76, 897, > 0, 0, 0, 0, 0, 76, 0, 911, 913, 914, > 915, 0, 0, 0, 919, 921, 922, 0, 924, 925, > 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, > 0, 0, 0, 0, 258, 0, 257, 0, 76, 0, > 0, 0, 930, 0, 931, 0, 0, 0, 0, 0, > 932, 0, 103, 103, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 103, 952, 0, 0, 953, 955, > 956, 957, 0, 103, 0, 0, 0, 0, 0, 0, > 257, 0, 0, 0, 106, 0, 106, 0, 960, 0, > 0, 0, 0, 0, 299, 300, 301, 302, 303, 304, > 305, 306, 307, 308, 309, 310, 311, 0, 106, 312, > 313, 0, 0, 0, 0, 0, 0, 0, 0, 103, > 0, 76, 0, 0, 0, 0, 0, 103, 0, 0, > 0, 0, 0, 0, 103, 103, 314, 0, 315, 316, > 317, 318, 319, 320, 321, 322, 323, 324, 0, 0, > 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 106, 106, 0, 0, 223, 0, 0, 0, 0, 0, > 0, 0, 106, 753, 0, 0, 0, 0, 0, 0, > 0, 106, 0, 0, 0, 0, 0, 0, 258, 0, > 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, > 0, 103, 103, 0, 0, 103, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 103, 0, 0, 0, 0, 0, 106, 0, 0, > 0, 0, 0, 0, 0, 106, 0, 0, 0, 0, > 0, 0, 106, 106, 0, 76, 351, 76, 0, 0, > 0, 0, 299, 300, 301, 302, 303, 304, 305, 306, > 894, 308, 309, 0, 103, 0, 0, 312, 313, 76, > 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 315, 316, 317, 318, > 319, 320, 321, 322, 323, 324, 0, 103, 0, 103, > 0, 0, 106, 0, 0, 103, 0, 103, 0, 106, > 106, 0, 0, 106, 0, 0, 0, 0, 0, 0, > 0, 76, 76, 0, 0, 0, 0, 0, 0, 106, > 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, > 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 352, 0, 0, 0, 0, 0, > 0, 299, -555, -555, -555, -555, 304, 305, 895, 0, > -555, -555, 106, 0, 0, 0, 312, 313, 0, 0, > 0, 0, 0, 106, 0, 0, 0, 0, 76, 0, > 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, > 0, 0, 0, 76, 76, 315, 316, 317, 318, 319, > 320, 321, 322, 323, 324, 106, 0, 106, 0, 660, > 0, 0, 0, 106, 0, 106, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 715, 0, 0, 0, > 0, 0, 0, 299, 300, 301, 302, 303, 304, 305, > 306, 307, 308, 309, 310, 311, 0, 0, 312, 313, > 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, > 309, 310, 311, 76, 0, 312, 313, 0, 0, 0, > 76, 76, 0, 0, 76, 314, 0, 315, 316, 317, > 318, 319, 320, 321, 322, 323, 324, 0, 0, 0, > 76, 0, 314, 0, 315, 316, 317, 318, 319, 320, > 321, 322, 323, 324, -554, 4, -230, 5, 6, 7, > 8, 9, 0, 0, 0, 10, 11, 0, 0, 0, > 12, 0, 13, 14, 15, 16, 17, 18, 19, 892, > 0, 0, 0, 76, 20, 21, 22, 23, 24, 25, > 26, 0, 0, 27, 76, 0, 0, 0, 0, 28, > 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, > 39, 40, 0, 41, 42, 0, 43, 44, 45, 0, > 46, 47, 0, 0, 0, 0, 76, 0, 76, 0, > 0, 0, 0, 0, 76, 0, 76, 0, 0, 0, > 48, 0, 0, 49, 50, 0, 51, 52, 0, 53, > 0, 54, 55, 56, 57, 58, 59, 60, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 61, 62, 63, -272, > 0, 0, 0, 0, 0, 0, 0, -272, -272, -272, > 0, 0, -272, -272, -272, 0, -272, 0, 0, 0, > -554, 0, -554, 0, 0, 0, -272, -272, -272, 0, > 0, 0, 0, 0, 0, 0, -272, -272, 0, -272, > -272, -272, -272, -272, 0, 0, 0, 0, 0, 0, > 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, > 309, 310, 311, 0, 0, 312, 313, -272, -272, -272, > -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, > 0, 0, -272, -272, -272, 0, 663, -272, 0, 0, > 0, 0, 314, -272, 315, 316, 317, 318, 319, 320, > 321, 322, 323, 324, 0, 0, -272, 0, -94, -272, > -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, > -272, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, -272, -272, -272, > -272, -397, 0, -272, -272, -272, 0, -272, 0, -397, > -397, -397, 0, 0, -397, -397, -397, 0, -397, 0, > 0, 0, 0, 0, 0, 0, 0, -397, -397, -397, > 0, 0, 0, 0, 0, 0, 0, 0, -397, -397, > 0, -397, -397, -397, -397, -397, 0, 0, 0, 0, > 0, 0, 299, 300, 301, 302, 303, 304, 305, 0, > 0, 308, 309, 0, 0, 0, 0, 312, 313, -397, > -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, > -397, -397, 0, 0, -397, -397, -397, 0, 0, -397, > 0, 0, 0, 0, 0, -397, 315, 316, 317, 318, > 319, 320, 321, 322, 323, 324, 0, 0, 0, 0, > 0, -397, 0, -397, -397, -397, -397, -397, -397, -397, > -397, -397, -397, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, -397, -397, > -397, -397, -397, -266, 219, -397, -397, -397, 0, -397, > 0, -266, -266, -266, 0, 0, -266, -266, -266, 0, > -266, 0, 0, 0, 0, 0, 0, 0, 0, 0, > -266, -266, -266, 0, 0, 0, 0, 0, 0, 0, > -266, -266, 0, -266, -266, -266, -266, -266, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, -266, -266, -266, -266, -266, -266, -266, -266, -266, > -266, -266, -266, -266, 0, 0, -266, -266, -266, 0, > 0, -266, 0, 0, 0, 0, 0, -266, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > -266, 0, 0, -266, -266, -266, -266, -266, -266, -266, > -266, -266, -266, -266, -266, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, -266, -266, -266, -266, -554, 0, -266, -266, -266, > 0, -266, 0, -554, -554, -554, 0, 0, -554, -554, > -554, 0, -554, 0, 0, 0, 0, 0, 0, 0, > 0, -554, -554, -554, 0, 0, 0, 0, 0, 0, > 0, 0, -554, -554, 0, -554, -554, -554, -554, -554, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, -554, -554, -554, -554, -554, -554, -554, > -554, -554, -554, -554, -554, -554, 0, 0, -554, -554, > -554, 0, 0, -554, 0, 0, 0, 0, 0, -554, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, -554, 0, -554, -554, -554, > -554, -554, -554, -554, -554, -554, -554, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, -554, -554, -554, -554, -554, -279, 219, -554, > -554, -554, 0, -554, 0, -279, -279, -279, 0, 0, > -279, -279, -279, 0, -279, 0, 0, 0, 0, 0, > 0, 0, 0, 0, -279, -279, 0, 0, 0, 0, > 0, 0, 0, 0, -279, -279, 0, -279, -279, -279, > -279, -279, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, -279, -279, -279, -279, -279, > -279, -279, -279, -279, -279, -279, -279, -279, 0, 0, > -279, -279, -279, 0, 0, -279, 0, 0, 0, 0, > 0, -279, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, -279, 0, -279, > -279, -279, -279, -279, -279, -279, -279, -279, -279, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, -279, -279, -279, -279, -536, > 216, -279, -279, -279, 0, -279, 0, -536, -536, -536, > 0, 0, 0, -536, -536, 0, -536, 0, 0, 0, > 0, 0, 0, 0, 0, -536, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, -536, -536, 0, -536, > -536, -536, -536, -536, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, -536, -536, -536, > -536, -536, -536, -536, -536, -536, -536, -536, -536, -536, > 0, 0, -536, -536, -536, -272, 662, 0, 0, 0, > 0, 0, 0, -272, -272, -272, 0, 0, 0, -272, > -272, 0, -272, 0, 0, 0, 0, 0, -92, -536, > 0, -536, -536, -536, -536, -536, -536, -536, -536, -536, > -536, 0, -272, -272, 0, -272, -272, -272, -272, -272, > 0, 0, 0, 0, 0, 0, -536, -536, -536, -536, > -84, 0, 0, -536, 0, -536, 0, -536, 0, 0, > 0, 0, 0, -272, -272, -272, -272, -272, -272, -272, > -272, -272, -272, -272, -272, -272, 0, 0, -272, -272, > -272, 0, 663, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, -94, -272, 0, -272, -272, -272, > -272, -272, -272, -272, -272, -272, -272, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, -272, -272, -272, -86, 0, 0, -272, > 0, -272, 4, -272, 5, 6, 7, 8, 9, -554, > -554, -554, 10, 11, 0, 0, -554, 12, 0, 13, > 14, 15, 16, 17, 18, 19, 0, 0, 0, 0, > 0, 20, 21, 22, 23, 24, 25, 26, 0, 0, > 27, 0, 0, 0, 0, 0, 28, 29, 30, 31, > 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, > 41, 42, 0, 43, 44, 45, 0, 46, 47, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, > 49, 50, 0, 51, 52, 0, 53, 0, 54, 55, > 56, 57, 58, 59, 60, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 61, 62, 63, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, -554, 4, -554, > 5, 6, 7, 8, 9, 0, 0, -554, 10, 11, > 0, -554, -554, 12, 0, 13, 14, 15, 16, 17, > 18, 19, 0, 0, 0, 0, 0, 20, 21, 22, > 23, 24, 25, 26, 0, 0, 27, 0, 0, 0, > 0, 0, 28, 29, 30, 31, 32, 33, 34, 35, > 36, 37, 38, 39, 40, 0, 41, 42, 0, 43, > 44, 45, 0, 46, 47, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 48, 0, 0, 49, 50, 0, 51, > 52, 0, 53, 0, 54, 55, 56, 57, 58, 59, > 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, > 62, 63, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, -554, 4, -554, 5, 6, 7, 8, > 9, 0, 0, -554, 10, 11, 0, 0, -554, 12, > -554, 13, 14, 15, 16, 17, 18, 19, 0, 0, > 0, 0, 0, 20, 21, 22, 23, 24, 25, 26, > 0, 0, 27, 0, 0, 0, 0, 0, 28, 29, > 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, > 40, 0, 41, 42, 0, 43, 44, 45, 0, 46, > 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, > 0, 0, 49, 50, 0, 51, 52, 0, 53, 0, > 54, 55, 56, 57, 58, 59, 60, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 61, 62, 63, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, -554, > 4, -554, 5, 6, 7, 8, 9, 0, 0, -554, > 10, 11, 0, 0, -554, 12, 0, 13, 14, 15, > 16, 17, 18, 19, 0, 0, 0, 0, 0, 20, > 21, 22, 23, 24, 25, 26, 0, 0, 27, 0, > 0, 0, 0, 0, 28, 29, 30, 31, 32, 33, > 34, 35, 36, 37, 38, 39, 40, 0, 41, 42, > 0, 43, 44, 45, 0, 46, 47, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 48, 0, 0, 49, 50, > 0, 51, 52, 0, 53, 0, 54, 55, 56, 57, > 58, 59, 60, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 61, 62, 63, 0, 0, 0, 0, 0, 0, > 0, 4, 0, 5, 6, 7, 8, 9, 0, -554, > -554, 10, 11, 0, 0, -554, 12, -554, 13, 14, > 15, 16, 17, 18, 19, 0, 0, 0, 0, 0, > 20, 21, 22, 23, 24, 25, 26, 0, 0, 27, > 0, 0, 0, 0, 0, 28, 29, 30, 31, 32, > 33, 34, 35, 36, 37, 38, 39, 40, 0, 41, > 42, 0, 43, 44, 45, 0, 46, 47, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 48, 0, 0, 49, > 50, 0, 51, 52, 0, 53, 0, 54, 55, 56, > 57, 58, 59, 60, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 61, 62, 63, 0, 0, 0, 0, 0, > 0, 0, 4, 0, 5, 6, 7, 8, 9, 0, > 0, 0, 10, 11, 0, 0, -554, 12, -554, 13, > 14, 15, 16, 17, 18, 19, 0, 0, 0, 0, > 0, 20, 21, 22, 23, 24, 25, 26, 0, 0, > 27, 0, 0, 0, 0, 0, 28, 29, 30, 31, > 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, > 41, 42, 0, 43, 44, 45, 0, 46, 47, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, > 237, 50, 0, 51, 52, 0, 53, 0, 54, 55, > 56, 57, 58, 59, 60, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 61, 62, 63, 0, 0, 0, 0, > 0, 0, 0, 4, 0, 5, 6, 7, 8, 9, > 0, 0, 0, 10, 11, -554, 0, -554, 12, -554, > 13, 14, 15, 16, 17, 18, 19, 0, 0, 0, > 0, 0, 20, 21, 22, 23, 24, 25, 26, 0, > 0, 27, 0, 0, 0, 0, 0, 28, 29, 30, > 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, > 0, 41, 42, 0, 43, 44, 45, 0, 46, 47, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, > 0, 49, 50, 0, 51, 52, 0, 53, 0, 54, > 55, 56, 57, 58, 59, 60, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 61, 62, 63, 0, 0, 0, > 0, 0, 0, 0, 4, 0, 5, 6, 7, 8, > 9, 0, 0, 0, 10, 11, -554, 0, -554, 12, > -554, 13, 14, 15, 16, 17, 18, 19, 0, 0, > 0, 0, 0, 20, 21, 22, 23, 24, 25, 26, > 0, 0, 27, 0, 0, 0, 0, 0, 28, 29, > 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, > 40, 0, 41, 42, 0, 43, 44, 45, 0, 46, > 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, > 0, 0, 49, 50, 0, 51, 52, 0, 53, 0, > 54, 55, 56, 57, 58, 59, 60, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 61, 62, 63, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, -554, 0, 0, 0, 0, 0, 0, 0, -554, > 4, -554, 5, 6, 7, 8, 9, 0, 0, -554, > 10, 11, 0, 0, 0, 12, 0, 13, 14, 15, > 16, 17, 18, 19, 0, 0, 0, 0, 0, 20, > 21, 22, 23, 24, 25, 26, 0, 0, 27, 0, > 0, 0, 0, 0, 28, 29, 30, 31, 32, 33, > 34, 35, 36, 37, 38, 39, 40, 0, 41, 42, > 0, 43, 44, 45, 0, 46, 47, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 48, 0, 0, 49, 50, > 0, 51, 52, 0, 53, 0, 54, 55, 56, 57, > 58, 59, 60, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 61, 62, 63, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 5, 6, 7, 0, 9, 0, 0, > 0, 10, 11, 0, 0, -554, 12, -554, 13, 14, > 15, 191, 192, 18, 19, 0, 0, 0, 0, 0, > 193, 21, 22, 23, 24, 25, 26, 0, 0, 194, > 0, 0, 0, 0, 0, 0, 29, 0, 0, 32, > 33, 34, 35, 36, 37, 38, 39, 40, 195, 41, > 42, 0, 43, 44, 45, 0, 46, 47, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 196, 0, 0, 197, > 50, 0, 51, 52, 0, 198, 199, 54, 55, 56, > 57, 58, 59, 60, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 61, 200, 63, 5, 6, 7, 0, 9, > 0, 0, 0, 10, 11, 0, 0, 0, 12, 0, > 13, 14, 15, 16, 17, 18, 19, 0, 223, 0, > 0, 0, 20, 21, 22, 23, 24, 25, 26, 0, > 0, 27, 0, 0, 0, 0, 0, 0, 29, 0, > 0, 32, 33, 34, 35, 36, 37, 38, 39, 40, > 0, 41, 42, 0, 43, 44, 45, 0, 46, 47, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 196, 0, > 0, 197, 50, 0, 51, 52, 0, 0, 0, 54, > 55, 56, 57, 58, 59, 60, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 61, 62, 63, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 5, 6, 7, 0, > 9, 0, 0, 0, 10, 11, 0, 0, 279, 12, > 280, 13, 14, 15, 16, 17, 18, 19, 0, 0, > 0, 0, 0, 20, 21, 22, 23, 24, 25, 26, > 0, 0, 27, 0, 0, 0, 0, 0, 0, 29, > 0, 0, 32, 33, 34, 35, 36, 37, 38, 39, > 40, 0, 41, 42, 0, 43, 44, 45, 0, 46, > 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 196, > 0, 0, 197, 50, 0, 51, 52, 0, 0, 0, > 54, 55, 56, 57, 58, 59, 60, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 61, 62, 63, 5, 6, > 7, 8, 9, 0, 0, 0, 10, 11, 0, 0, > 0, 12, 0, 13, 14, 15, 16, 17, 18, 19, > 0, 223, 0, 0, 0, 20, 21, 22, 23, 24, > 25, 26, 0, 0, 27, 0, 0, 0, 0, 0, > 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, > 38, 39, 40, 0, 41, 42, 0, 43, 44, 45, > 0, 46, 47, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 48, 0, 0, 49, 50, 0, 51, 52, 0, > 53, 0, 54, 55, 56, 57, 58, 59, 60, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 61, 62, 63, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 479, 110, 111, 112, 113, 114, 115, 116, 117, > 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, > 128, 129, 130, 131, 132, 133, 0, 0, 0, 134, > 135, 136, 354, 355, 356, 357, 141, 142, 143, 0, > 0, 0, 0, 0, 144, 145, 146, 147, 358, 359, > 360, 361, 152, 37, 38, 362, 40, 0, 0, 0, > 0, 0, 0, 0, 0, 154, 155, 156, 157, 158, > 159, 160, 161, 162, 0, 0, 163, 164, 0, 0, > 165, 166, 167, 168, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 169, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 170, 171, 172, 173, 174, 175, 176, 177, 178, > 179, 0, 180, 181, 0, 0, 0, 0, 0, 0, > -529, -529, -529, 0, -529, 0, 0, 0, -529, -529, > 0, 182, 363, -529, 0, -529, -529, -529, -529, -529, > -529, -529, 0, -529, 0, 0, 0, -529, -529, -529, > -529, -529, -529, -529, 0, 0, -529, 0, 0, 0, > 0, 0, 0, -529, 0, 0, -529, -529, -529, -529, > -529, -529, -529, -529, -529, -529, -529, -529, 0, -529, > -529, -529, 0, -529, -529, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, -529, 0, 0, -529, -529, 0, -529, > -529, 0, -529, -529, -529, -529, -529, -529, -529, -529, > -529, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, -529, > -529, -529, 0, 0, 0, 0, 0, 0, -530, -530, > -530, 0, -530, 0, -529, 0, -530, -530, 0, 0, > -529, -530, 0, -530, -530, -530, -530, -530, -530, -530, > 0, -530, 0, 0, 0, -530, -530, -530, -530, -530, > -530, -530, 0, 0, -530, 0, 0, 0, 0, 0, > 0, -530, 0, 0, -530, -530, -530, -530, -530, -530, > -530, -530, -530, -530, -530, -530, 0, -530, -530, -530, > 0, -530, -530, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, -530, 0, 0, -530, -530, 0, -530, -530, 0, > -530, -530, -530, -530, -530, -530, -530, -530, -530, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, -530, -530, -530, > 0, 0, 0, 0, 0, 0, -532, -532, -532, 0, > -532, 0, -530, 0, -532, -532, 0, 0, -530, -532, > 0, -532, -532, -532, -532, -532, -532, -532, 0, 0, > 0, 0, 0, -532, -532, -532, -532, -532, -532, -532, > 0, 0, -532, 0, 0, 0, 0, 0, 0, -532, > 0, 0, -532, -532, -532, -532, -532, -532, -532, -532, > -532, -532, -532, -532, 0, -532, -532, -532, 0, -532, > -532, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, -532, > 720, 0, -532, -532, 0, -532, -532, 0, -532, -532, > -532, -532, -532, -532, -532, -532, -532, 0, 0, 0, > 0, 0, -92, 0, 0, 0, 0, 0, 0, 0, > -534, -534, -534, 0, -534, -532, -532, -532, -534, -534, > 0, 0, 0, -534, 0, -534, -534, -534, -534, -534, > -534, -534, 0, 0, 0, 0, -532, -534, -534, -534, > -534, -534, -534, -534, 0, 0, -534, 0, 0, 0, > 0, 0, 0, -534, 0, 0, -534, -534, -534, -534, > -534, -534, -534, -534, -534, -534, -534, -534, 0, -534, > -534, -534, 0, -534, -534, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, -534, 0, 0, -534, -534, 0, -534, > -534, 0, -534, -534, -534, -534, -534, -534, -534, -534, > -534, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, -535, -535, -535, 0, -535, -534, > -534, -534, -535, -535, 0, 0, 0, -535, 0, -535, > -535, -535, -535, -535, -535, -535, 0, 0, 0, 0, > -534, -535, -535, -535, -535, -535, -535, -535, 0, 0, > -535, 0, 0, 0, 0, 0, 0, -535, 0, 0, > -535, -535, -535, -535, -535, -535, -535, -535, -535, -535, > -535, -535, 0, -535, -535, -535, 0, -535, -535, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, -535, 0, 0, > -535, -535, 0, -535, -535, 0, -535, -535, -535, -535, > -535, -535, -535, -535, -535, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, -535, -535, -535, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, -535, 110, 111, 112, 113, 114, > 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, > 125, 126, 127, 128, 129, 130, 131, 132, 133, 0, > 0, 0, 134, 135, 136, 137, 138, 139, 140, 141, > 142, 143, 0, 0, 0, 0, 0, 144, 145, 146, > 147, 148, 149, 150, 151, 152, 261, 262, 153, 263, > 0, 0, 0, 0, 0, 0, 0, 0, 154, 155, > 156, 157, 158, 159, 160, 161, 162, 0, 0, 163, > 164, 0, 0, 165, 166, 167, 168, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 169, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 170, 171, 172, 173, 174, 175, > 176, 177, 178, 179, 0, 180, 181, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 182, 110, 111, 112, 113, 114, > 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, > 125, 126, 127, 128, 129, 130, 131, 132, 133, 0, > 0, 0, 134, 135, 136, 137, 138, 139, 140, 141, > 142, 143, 0, 0, 0, 0, 0, 144, 145, 146, > 147, 148, 149, 150, 151, 152, 225, 0, 153, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 154, 155, > 156, 157, 158, 159, 160, 161, 162, 0, 0, 163, > 164, 0, 0, 165, 166, 167, 168, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 169, 0, 0, > 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 170, 171, 172, 173, 174, 175, > 176, 177, 178, 179, 0, 180, 181, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 182, 110, 111, 112, 113, 114, > 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, > 125, 126, 127, 128, 129, 130, 131, 132, 133, 0, > 0, 0, 134, 135, 136, 137, 138, 139, 140, 141, > 142, 143, 0, 0, 0, 0, 0, 144, 145, 146, > 147, 148, 149, 150, 151, 152, 0, 0, 153, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 154, 155, > 156, 157, 158, 159, 160, 161, 162, 0, 0, 163, > 164, 0, 0, 165, 166, 167, 168, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 169, 0, 0, > 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 170, 171, 172, 173, 174, 175, > 176, 177, 178, 179, 0, 180, 181, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 182, 110, 111, 112, 113, 114, > 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, > 125, 126, 127, 128, 129, 130, 131, 132, 133, 0, > 0, 0, 134, 135, 136, 137, 138, 139, 140, 141, > 142, 143, 0, 0, 0, 0, 0, 144, 145, 146, > 147, 148, 149, 150, 151, 152, 0, 0, 153, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 154, 155, > 156, 157, 158, 159, 160, 161, 162, 0, 0, 163, > 164, 0, 0, 165, 166, 167, 168, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 169, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 170, 171, 172, 173, 174, 175, > 176, 177, 178, 179, 0, 180, 181, 0, 0, 0, > 5, 6, 7, 0, 9, 0, 0, 0, 10, 11, > 0, 0, 0, 12, 182, 13, 14, 15, 191, 192, > 18, 19, 0, 0, 0, 0, 0, 193, 230, 231, > 23, 24, 25, 26, 0, 0, 194, 0, 0, 0, > 0, 0, 0, 250, 0, 0, 32, 33, 34, 35, > 36, 37, 38, 39, 40, 0, 41, 42, 0, 43, > 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 251, 0, 0, 197, 50, 0, 51, > 52, 0, 0, 0, 54, 55, 56, 57, 58, 59, > 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 5, 6, 7, 0, 9, 0, 0, 252, > 10, 11, 0, 0, 0, 12, 0, 13, 14, 15, > 191, 192, 18, 19, 0, 0, 0, 0, 253, 193, > 230, 231, 23, 24, 25, 26, 0, 0, 194, 0, > 0, 0, 0, 0, 0, 250, 0, 0, 32, 33, > 34, 35, 36, 37, 38, 39, 40, 0, 41, 42, > 0, 43, 44, 45, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 251, 0, 0, 197, 50, > 0, 51, 52, 0, 0, 0, 54, 55, 56, 57, > 58, 59, 60, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 5, 6, 7, 8, 9, 0, > 0, 252, 10, 11, 0, 0, 0, 12, 0, 13, > 14, 15, 16, 17, 18, 19, 0, 0, 0, 0, > 495, 20, 21, 22, 23, 24, 25, 26, 0, 0, > 27, 0, 0, 0, 0, 0, 28, 29, 30, 31, > 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, > 41, 42, 0, 43, 44, 45, 0, 46, 47, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, > 49, 50, 0, 51, 52, 0, 53, 0, 54, 55, > 56, 57, 58, 59, 60, 0, 0, 0, 0, 0, > 0, 0, 0, 5, 6, 7, 0, 9, 0, 0, > 0, 10, 11, 61, 62, 63, 12, 0, 13, 14, > 15, 191, 192, 18, 19, 0, 0, 0, 0, 0, > 193, 21, 22, 23, 24, 25, 26, 0, 0, 194, > 0, 0, 0, 0, 0, 0, 29, 0, 0, 32, > 33, 34, 35, 36, 37, 38, 39, 40, 195, 41, > 42, 0, 43, 44, 45, 0, 46, 47, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 196, 0, 0, 197, > 50, 0, 51, 52, 0, 198, 199, 54, 55, 56, > 57, 58, 59, 60, 0, 0, 0, 0, 0, 0, > 0, 0, 5, 6, 7, 0, 9, 0, 0, 0, > 10, 11, 61, 200, 63, 12, 0, 13, 14, 15, > 191, 192, 18, 19, 0, 0, 0, 0, 0, 193, > 230, 231, 23, 24, 25, 26, 0, 0, 194, 0, > 0, 0, 0, 0, 0, 29, 0, 0, 32, 33, > 34, 35, 36, 37, 38, 39, 40, 195, 41, 42, > 0, 43, 44, 45, 0, 46, 47, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 196, 0, 0, 197, 50, > 0, 51, 52, 0, 590, 199, 54, 55, 56, 57, > 58, 59, 60, 0, 0, 0, 0, 0, 0, 0, > 0, 5, 6, 7, 0, 9, 0, 0, 0, 10, > 11, 61, 200, 63, 12, 0, 13, 14, 15, 191, > 192, 18, 19, 0, 0, 0, 0, 0, 193, 230, > 231, 23, 24, 25, 26, 0, 0, 194, 0, 0, > 0, 0, 0, 0, 29, 0, 0, 32, 33, 34, > 35, 36, 37, 38, 39, 40, 195, 41, 42, 0, > 43, 44, 45, 0, 46, 47, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 196, 0, 0, 197, 50, 0, > 51, 52, 0, 198, 0, 54, 55, 56, 57, 58, > 59, 60, 0, 0, 0, 0, 0, 0, 0, 0, > 5, 6, 7, 0, 9, 0, 0, 0, 10, 11, > 61, 200, 63, 12, 0, 13, 14, 15, 191, 192, > 18, 19, 0, 0, 0, 0, 0, 193, 230, 231, > 23, 24, 25, 26, 0, 0, 194, 0, 0, 0, > 0, 0, 0, 29, 0, 0, 32, 33, 34, 35, > 36, 37, 38, 39, 40, 195, 41, 42, 0, 43, > 44, 45, 0, 46, 47, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 196, 0, 0, 197, 50, 0, 51, > 52, 0, 0, 199, 54, 55, 56, 57, 58, 59, > 60, 0, 0, 0, 0, 0, 0, 0, 0, 5, > 6, 7, 0, 9, 0, 0, 0, 10, 11, 61, > 200, 63, 12, 0, 13, 14, 15, 191, 192, 18, > 19, 0, 0, 0, 0, 0, 193, 230, 231, 23, > 24, 25, 26, 0, 0, 194, 0, 0, 0, 0, > 0, 0, 29, 0, 0, 32, 33, 34, 35, 36, > 37, 38, 39, 40, 195, 41, 42, 0, 43, 44, > 45, 0, 46, 47, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 196, 0, 0, 197, 50, 0, 51, 52, > 0, 590, 0, 54, 55, 56, 57, 58, 59, 60, > 0, 0, 0, 0, 0, 0, 0, 0, 5, 6, > 7, 0, 9, 0, 0, 0, 10, 11, 61, 200, > 63, 12, 0, 13, 14, 15, 191, 192, 18, 19, > 0, 0, 0, 0, 0, 193, 230, 231, 23, 24, > 25, 26, 0, 0, 194, 0, 0, 0, 0, 0, > 0, 29, 0, 0, 32, 33, 34, 35, 36, 37, > 38, 39, 40, 195, 41, 42, 0, 43, 44, 45, > 0, 46, 47, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 196, 0, 0, 197, 50, 0, 51, 52, 0, > 0, 0, 54, 55, 56, 57, 58, 59, 60, 0, > 0, 0, 0, 0, 0, 0, 0, 5, 6, 7, > 0, 9, 0, 0, 0, 10, 11, 61, 200, 63, > 12, 0, 13, 14, 15, 16, 17, 18, 19, 0, > 0, 0, 0, 0, 20, 21, 22, 23, 24, 25, > 26, 0, 0, 194, 0, 0, 0, 0, 0, 0, > 29, 0, 0, 32, 33, 34, 35, 36, 37, 38, > 39, 40, 0, 41, 42, 0, 43, 44, 45, 0, > 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 196, 0, 0, 197, 50, 0, 51, 52, 0, 489, > 0, 54, 55, 56, 57, 58, 59, 60, 0, 0, > 0, 0, 0, 0, 0, 0, 5, 6, 7, 0, > 9, 0, 0, 0, 10, 11, 61, 200, 63, 12, > 0, 13, 14, 15, 191, 192, 18, 19, 0, 0, > 0, 0, 0, 193, 230, 231, 23, 24, 25, 26, > 0, 0, 194, 0, 0, 0, 0, 0, 0, 29, > 0, 0, 32, 33, 34, 35, 36, 37, 38, 39, > 40, 0, 41, 42, 0, 43, 44, 45, 0, 46, > 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 196, > 0, 0, 197, 50, 0, 51, 52, 0, 198, 0, > 54, 55, 56, 57, 58, 59, 60, 0, 0, 0, > 0, 0, 0, 0, 0, 5, 6, 7, 0, 9, > 0, 0, 0, 10, 11, 61, 200, 63, 12, 0, > 13, 14, 15, 191, 192, 18, 19, 0, 0, 0, > 0, 0, 193, 230, 231, 23, 24, 25, 26, 0, > 0, 194, 0, 0, 0, 0, 0, 0, 29, 0, > 0, 32, 33, 34, 35, 36, 37, 38, 39, 40, > 0, 41, 42, 0, 43, 44, 45, 0, 46, 47, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 196, 0, > 0, 197, 50, 0, 51, 52, 0, 763, 0, 54, > 55, 56, 57, 58, 59, 60, 0, 0, 0, 0, > 0, 0, 0, 0, 5, 6, 7, 0, 9, 0, > 0, 0, 10, 11, 61, 200, 63, 12, 0, 13, > 14, 15, 191, 192, 18, 19, 0, 0, 0, 0, > 0, 193, 230, 231, 23, 24, 25, 26, 0, 0, > 194, 0, 0, 0, 0, 0, 0, 29, 0, 0, > 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, > 41, 42, 0, 43, 44, 45, 0, 46, 47, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 196, 0, 0, > 197, 50, 0, 51, 52, 0, 489, 0, 54, 55, > 56, 57, 58, 59, 60, 0, 0, 0, 0, 0, > 0, 0, 0, 5, 6, 7, 0, 9, 0, 0, > 0, 10, 11, 61, 200, 63, 12, 0, 13, 14, > 15, 191, 192, 18, 19, 0, 0, 0, 0, 0, > 193, 230, 231, 23, 24, 25, 26, 0, 0, 194, > 0, 0, 0, 0, 0, 0, 29, 0, 0, 32, > 33, 34, 35, 36, 37, 38, 39, 40, 0, 41, > 42, 0, 43, 44, 45, 0, 46, 47, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 196, 0, 0, 197, > 50, 0, 51, 52, 0, 590, 0, 54, 55, 56, > 57, 58, 59, 60, 0, 0, 0, 0, 0, 0, > 0, 0, 5, 6, 7, 0, 9, 0, 0, 0, > 10, 11, 61, 200, 63, 12, 0, 13, 14, 15, > 191, 192, 18, 19, 0, 0, 0, 0, 0, 193, > 230, 231, 23, 24, 25, 26, 0, 0, 194, 0, > 0, 0, 0, 0, 0, 29, 0, 0, 32, 33, > 34, 35, 36, 37, 38, 39, 40, 0, 41, 42, > 0, 43, 44, 45, 0, 46, 47, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 196, 0, 0, 197, 50, > 0, 51, 52, 0, 0, 0, 54, 55, 56, 57, > 58, 59, 60, 0, 0, 0, 0, 0, 0, 0, > 0, 5, 6, 7, 0, 9, 0, 0, 0, 10, > 11, 61, 200, 63, 12, 0, 13, 14, 15, 16, > 17, 18, 19, 0, 0, 0, 0, 0, 20, 21, > 22, 23, 24, 25, 26, 0, 0, 27, 0, 0, > 0, 0, 0, 0, 29, 0, 0, 32, 33, 34, > 35, 36, 37, 38, 39, 40, 0, 41, 42, 0, > 43, 44, 45, 0, 46, 47, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 196, 0, 0, 197, 50, 0, > 51, 52, 0, 0, 0, 54, 55, 56, 57, 58, > 59, 60, 0, 0, 0, 0, 0, 0, 0, 0, > 5, 6, 7, 0, 9, 0, 0, 0, 10, 11, > 61, 62, 63, 12, 0, 13, 14, 15, 16, 17, > 18, 19, 0, 0, 0, 0, 0, 20, 21, 22, > 23, 24, 25, 26, 0, 0, 194, 0, 0, 0, > 0, 0, 0, 29, 0, 0, 32, 33, 34, 35, > 36, 37, 38, 39, 40, 0, 41, 42, 0, 43, > 44, 45, 0, 46, 47, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 196, 0, 0, 197, 50, 0, 51, > 52, 0, 0, 0, 54, 55, 56, 57, 58, 59, > 60, 0, 0, 0, 0, 0, 0, 0, 0, 5, > 6, 7, 0, 9, 0, 0, 0, 10, 11, 61, > 200, 63, 12, 0, 13, 14, 15, 191, 192, 18, > 19, 0, 0, 0, 0, 0, 193, 230, 231, 23, > 24, 25, 26, 0, 0, 194, 0, 0, 0, 0, > 0, 0, 250, 0, 0, 32, 33, 34, 35, 36, > 37, 38, 39, 40, 0, 41, 42, 0, 43, 44, > 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 251, 0, 0, 295, 50, 0, 51, 52, > 0, 296, 0, 54, 55, 56, 57, 58, 59, 60, > 0, 0, 0, 0, 5, 6, 7, 0, 9, 0, > 0, 0, 10, 11, 0, 0, 0, 12, 252, 13, > 14, 15, 191, 192, 18, 19, 0, 0, 0, 0, > 0, 193, 230, 231, 23, 24, 25, 26, 0, 0, > 194, 0, 0, 0, 0, 0, 0, 250, 0, 0, > 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, > 41, 42, 0, 43, 44, 45, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 337, 0, 0, > 49, 50, 0, 51, 52, 0, 53, 0, 54, 55, > 56, 57, 58, 59, 60, 0, 0, 0, 0, 5, > 6, 7, 0, 9, 0, 0, 0, 10, 11, 0, > 0, 0, 12, 252, 13, 14, 15, 191, 192, 18, > 19, 0, 0, 0, 0, 0, 193, 230, 231, 23, > 24, 25, 26, 0, 0, 194, 0, 0, 0, 0, > 0, 0, 250, 0, 0, 32, 33, 34, 344, 36, > 37, 38, 345, 40, 0, 41, 42, 0, 43, 44, > 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 346, > 0, 0, 347, 0, 0, 197, 50, 0, 51, 52, > 0, 0, 0, 54, 55, 56, 57, 58, 59, 60, > 0, 0, 0, 0, 5, 6, 7, 0, 9, 0, > 0, 0, 10, 11, 0, 0, 0, 12, 252, 13, > 14, 15, 191, 192, 18, 19, 0, 0, 0, 0, > 0, 193, 230, 231, 23, 24, 25, 26, 0, 0, > 194, 0, 0, 0, 0, 0, 0, 250, 0, 0, > 32, 33, 34, 344, 36, 37, 38, 345, 40, 0, > 41, 42, 0, 43, 44, 45, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 347, 0, 0, > 197, 50, 0, 51, 52, 0, 0, 0, 54, 55, > 56, 57, 58, 59, 60, 0, 0, 0, 0, 5, > 6, 7, 0, 9, 0, 0, 0, 10, 11, 0, > 0, 0, 12, 252, 13, 14, 15, 191, 192, 18, > 19, 0, 0, 0, 0, 0, 193, 230, 231, 23, > 24, 25, 26, 0, 0, 194, 0, 0, 0, 0, > 0, 0, 250, 0, 0, 32, 33, 34, 35, 36, > 37, 38, 39, 40, 0, 41, 42, 0, 43, 44, > 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 251, 0, 0, 295, 50, 0, 51, 52, > 0, 0, 0, 54, 55, 56, 57, 58, 59, 60, > 0, 0, 0, 0, 5, 6, 7, 0, 9, 0, > 0, 0, 10, 11, 0, 0, 0, 12, 252, 13, > 14, 15, 191, 192, 18, 19, 0, 0, 0, 0, > 0, 193, 230, 231, 23, 24, 25, 26, 0, 0, > 194, 0, 0, 0, 0, 0, 0, 250, 0, 0, > 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, > 41, 42, 0, 43, 44, 45, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 882, 0, 0, > 197, 50, 0, 51, 52, 0, 0, 0, 54, 55, > 56, 57, 58, 59, 60, 0, 0, 0, 0, 5, > 6, 7, 0, 9, 0, 0, 0, 10, 11, 0, > 0, 0, 12, 252, 13, 14, 15, 191, 192, 18, > 19, 0, 0, 0, 0, 0, 193, 230, 231, 23, > 24, 25, 26, 0, 0, 194, 0, 0, 0, 0, > 0, 0, 250, 0, 0, 32, 33, 34, 35, 36, > 37, 38, 39, 40, 0, 41, 42, 0, 43, 44, > 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 891, 0, 0, 197, 50, 0, 51, 52, > 0, 0, 0, 54, 55, 56, 57, 58, 59, 60, > 0, 0, 0, 0, 0, 528, 529, 0, 0, 530, > 0, 0, 0, 0, 0, 0, 0, 0, 252, 154, > 155, 156, 157, 158, 159, 160, 161, 162, 0, 0, > 163, 164, 0, 0, 165, 166, 167, 168, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 169, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 170, 171, 172, 173, 174, > 175, 176, 177, 178, 179, 0, 180, 181, 0, 0, > 0, 0, 0, 536, 537, 0, 0, 538, 0, 0, > 0, 0, 0, 0, 0, 182, 219, 154, 155, 156, > 157, 158, 159, 160, 161, 162, 0, 0, 163, 164, > 0, 0, 165, 166, 167, 168, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 169, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 170, 171, 172, 173, 174, 175, 176, > 177, 178, 179, 0, 180, 181, 0, 0, 0, 0, > 0, 594, 529, 0, 0, 595, 0, 0, 0, 0, > 0, 0, 0, 182, 219, 154, 155, 156, 157, 158, > 159, 160, 161, 162, 0, 0, 163, 164, 0, 0, > 165, 166, 167, 168, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 169, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 170, 171, 172, 173, 174, 175, 176, 177, 178, > 179, 0, 180, 181, 0, 0, 0, 0, 0, 597, > 537, 0, 0, 598, 0, 0, 0, 0, 0, 0, > 0, 182, 219, 154, 155, 156, 157, 158, 159, 160, > 161, 162, 0, 0, 163, 164, 0, 0, 165, 166, > 167, 168, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 169, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, > 171, 172, 173, 174, 175, 176, 177, 178, 179, 0, > 180, 181, 0, 0, 0, 0, 0, 617, 529, 0, > 0, 618, 0, 0, 0, 0, 0, 0, 0, 182, > 219, 154, 155, 156, 157, 158, 159, 160, 161, 162, > 0, 0, 163, 164, 0, 0, 165, 166, 167, 168, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 169, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 170, 171, 172, > 173, 174, 175, 176, 177, 178, 179, 0, 180, 181, > 0, 0, 0, 0, 0, 620, 537, 0, 0, 621, > 0, 0, 0, 0, 0, 0, 0, 182, 219, 154, > 155, 156, 157, 158, 159, 160, 161, 162, 0, 0, > 163, 164, 0, 0, 165, 166, 167, 168, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 169, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 170, 171, 172, 173, 174, > 175, 176, 177, 178, 179, 0, 180, 181, 0, 0, > 0, 0, 0, 689, 529, 0, 0, 690, 0, 0, > 0, 0, 0, 0, 0, 182, 219, 154, 155, 156, > 157, 158, 159, 160, 161, 162, 0, 0, 163, 164, > 0, 0, 165, 166, 167, 168, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 169, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 170, 171, 172, 173, 174, 175, 176, > 177, 178, 179, 0, 180, 181, 0, 0, 0, 0, > 0, 692, 537, 0, 0, 693, 0, 0, 0, 0, > 0, 0, 0, 182, 219, 154, 155, 156, 157, 158, > 159, 160, 161, 162, 0, 0, 163, 164, 0, 0, > 165, 166, 167, 168, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 169, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 170, 171, 172, 173, 174, 175, 176, 177, 178, > 179, 0, 180, 181, 0, 0, 0, 0, 0, 699, > 529, 0, 0, 700, 0, 0, 0, 0, 0, 0, > 0, 182, 219, 154, 155, 156, 157, 158, 159, 160, > 161, 162, 0, 0, 163, 164, 0, 0, 165, 166, > 167, 168, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 169, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, > 171, 172, 173, 174, 175, 176, 177, 178, 179, 0, > 180, 181, 0, 0, 0, 0, 0, 575, 537, 0, > 0, 576, 0, 0, 0, 0, 0, 0, 0, 182, > 219, 154, 155, 156, 157, 158, 159, 160, 161, 162, > 0, 0, 163, 164, 0, 0, 165, 166, 167, 168, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 169, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 170, 171, 172, > 173, 174, 175, 176, 177, 178, 179, 0, 180, 181, > 0, 0, 0, 0, 0, 937, 529, 0, 0, 938, > 0, 0, 0, 0, 0, 0, 0, 182, 219, 154, > 155, 156, 157, 158, 159, 160, 161, 162, 0, 0, > 163, 164, 0, 0, 165, 166, 167, 168, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 169, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 170, 171, 172, 173, 174, > 175, 176, 177, 178, 179, 0, 180, 181, 0, 0, > 0, 0, 0, 943, 529, 0, 0, 944, 0, 0, > 0, 0, 0, 0, 0, 182, 219, 154, 155, 156, > 157, 158, 159, 160, 161, 162, 0, 0, 163, 164, > 0, 0, 165, 166, 167, 168, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 169, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 170, 171, 172, 173, 174, 175, 176, > 177, 178, 179, 0, 180, 181, 0, 0, 0, 0, > 0, 946, 537, 0, 0, 947, 0, 0, 0, 0, > 0, 0, 0, 182, 219, 154, 155, 156, 157, 158, > 159, 160, 161, 162, 0, 0, 163, 164, 0, 0, > 165, 166, 167, 168, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 169, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 170, 171, 172, 173, 174, 175, 176, 177, 178, > 179, 0, 180, 181, 0, 0, 0, 0, 0, 575, > 537, 0, 0, 576, 0, 0, 0, 0, 0, 0, > 0, 182, 219, 154, 155, 156, 157, 158, 159, 160, > 161, 162, 0, 0, 163, 164, 0, 0, 165, 166, > 167, 168, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 169, 0, 0, 0, 0, 0, 660, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, > 171, 172, 173, 174, 175, 176, 177, 178, 179, 0, > 180, 181, 299, 300, 301, 302, 303, 304, 305, 306, > 307, 308, 309, 310, 311, 0, 0, 312, 313, 182, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 314, 0, 315, 316, 317, 318, > 319, 320, 321, 322, 323, 324 >}; > >static const yytype_int16 yycheck[] = >{ > 2, 55, 4, 8, 52, 74, 22, 27, 8, 29, > 51, 260, 331, 326, 16, 17, 28, 62, 20, 53, > 212, 65, 550, 28, 4, 260, 298, 244, 28, 85, > 549, 248, 569, 596, 434, 89, 50, 8, 16, 17, > 74, 85, 20, 1, 347, 51, 52, 49, 50, 53, > 443, 53, 86, 87, 88, 55, 619, 28, 49, 267, > 62, 637, 735, 271, 325, 634, 327, 81, 82, 733, > 677, 85, 74, 25, 681, 25, 389, 22, 29, 81, > 82, 25, 61, 85, 86, 87, 88, 25, 237, 89, > 731, 107, 579, 580, 840, 495, 26, 16, 17, 85, > 87, 20, 109, 0, 61, 393, 367, 368, 37, 38, > 25, 87, 82, 87, 76, 85, 85, 25, 85, 651, > 85, 25, 109, 436, 148, 104, 105, 388, 691, 390, > 56, 85, 13, 109, 141, 109, 424, 61, 85, 702, > 385, 65, 25, 59, 60, 25, 295, 195, 393, 106, > 198, 199, 114, 414, 140, 113, 107, 109, 25, 109, > 634, 698, 107, 637, 2, 13, 4, 141, 147, 706, > 139, 140, 918, 140, 815, 140, 437, 651, 16, 17, > 104, 105, 20, 52, 253, 139, 140, 56, 146, 141, > 148, 141, 144, 140, 144, 197, 148, 141, 148, 448, > 13, 137, 27, 141, 877, 143, 13, 137, 222, 873, > 224, 49, 50, 448, 216, 231, 218, 219, 234, 253, > 222, 13, 224, 755, 62, 13, 141, 229, 143, 716, > 250, 624, 625, 141, 875, 237, 26, 141, 216, 222, > 218, 219, 555, 81, 82, 293, 237, 85, 293, 825, > 298, 253, 293, 298, 567, 862, 239, 298, 141, 659, > 829, 141, 296, 566, 472, 146, 28, 148, 909, 838, > 284, 285, 286, 287, 141, 289, 290, 796, 334, 37, > 38, 283, 284, 285, 286, 287, 288, 289, 290, 147, > 334, 293, 296, 295, 296, 556, 298, 216, 146, 218, > 148, 147, 85, 283, 295, 349, 141, 568, 288, 59, > 60, 327, 85, 148, 284, 285, 286, 287, 332, 333, > 85, 146, 571, 148, 326, 325, 328, 864, 373, 374, > 332, 333, 346, 146, 862, 148, 384, 385, 731, 146, > 733, 148, 68, 109, 346, 393, 141, 137, 326, 141, > 85, 825, 85, 143, 146, 143, 148, 140, 146, 197, > 148, 26, 332, 333, 838, 434, 840, 140, 687, 906, > 26, 373, 374, 421, 390, 140, 424, 109, 216, 385, > 218, 219, 945, 85, 222, 85, 224, 389, 388, 99, > 148, 229, 87, 119, 120, 121, 408, 614, 414, 237, > 434, 593, 651, 408, 676, 140, 139, 140, 408, 411, > 143, 389, 395, 413, 109, 421, 399, 141, 85, 402, > 85, 437, 815, 816, 148, 143, 495, 14, 15, 85, > 148, 85, 434, 416, 436, 435, 419, 408, 140, 139, > 140, 489, 87, 85, 918, 283, 284, 285, 286, 287, > 288, 289, 290, 87, 87, 293, 705, 295, 436, 85, > 298, 495, 141, 52, 109, 54, 55, 56, 57, 85, > 705, 143, 137, 140, 139, 140, 109, 87, 143, 85, > 873, 137, 875, 139, 140, 139, 140, 143, 326, 56, > 328, 26, 54, 495, 332, 333, 141, 517, 140, 109, > 89, 63, 64, 551, 548, 549, 95, 96, 346, 85, > 551, 494, 109, 139, 140, 535, 909, 533, 562, 87, > 15, 552, 17, 139, 140, 541, 26, 116, 88, 85, > 119, 850, 665, 139, 140, 373, 374, 856, 87, 672, > 556, 109, 590, 545, 87, 547, 615, 87, 577, 578, > 85, 389, 568, 555, 554, 85, 570, 146, 87, 141, > 109, 577, 578, 139, 140, 567, 566, 569, 570, 109, > 57, 58, 85, 411, 622, 587, 596, 555, 141, 143, > 109, 615, 587, 139, 140, 85, 137, 587, 533, 567, > 659, 605, 141, 609, 610, 143, 541, 637, 436, 619, > 640, 141, 137, 605, 139, 140, 143, 85, 656, 139, > 140, 651, 141, 615, 68, 928, 587, 662, 144, 146, > 869, 148, 145, 668, 669, 659, 139, 140, 676, 631, > 632, 87, 577, 578, 109, 676, 138, 137, 56, 139, > 140, 643, 141, 143, 52, 628, 54, 55, 56, 57, > 652, 695, 68, 109, 708, 686, 61, 659, 106, 106, > 662, 139, 140, 707, 68, 141, 668, 669, 929, 17, > 56, 691, 703, 52, 146, 54, 55, 56, 57, 25, > 694, 94, 702, 697, 144, 141, 52, 68, 54, 55, > 56, 57, 694, 138, 109, 697, 698, 141, 141, 104, > 105, 106, 83, 84, 706, 141, 141, 545, 708, 547, > 52, 713, 714, 141, 52, 763, 147, 555, 141, 141, > 61, 704, 141, 89, 694, 10, 13, 697, 773, 567, > 96, 569, 570, 141, 61, 116, 117, 118, 119, 120, > 121, 724, 8, 138, 141, 793, 146, 730, 141, 2, > 116, 4, 796, 736, 798, 111, 787, 145, 789, 15, > 68, 141, 141, 104, 105, 106, 10, 605, 799, 138, > 141, 773, 786, 804, 141, 83, 84, 104, 105, 106, > 141, 783, 61, 141, 786, 825, 68, 827, 790, 791, > 109, 831, 794, 631, 632, 138, 49, 114, 88, 10, > 840, 835, 842, 51, 52, 643, 141, 141, 810, 117, > 118, 119, 120, 121, 652, 849, 786, 141, 16, 17, > 803, 141, 20, 9, 662, 104, 105, 106, 859, 860, > 668, 669, 10, 835, 138, 117, 118, 119, 120, 121, > 52, 141, 54, 55, 56, 57, 141, 849, 46, 47, > 114, 853, 141, 51, 52, 138, 694, 141, 86, 697, > 698, 141, 864, 56, 62, 63, 141, 141, 706, 141, > 143, 56, 912, 143, 905, 713, 714, 89, 918, 141, > 920, 88, 931, 923, 624, 877, 91, 52, 930, 54, > 55, 56, 57, 94, 896, 52, 898, 54, 55, 56, > 57, 932, 904, 934, 906, 89, 52, 838, 54, 55, > 56, 57, 634, 929, 954, 65, 869, 917, -1, 54, > 55, -1, 57, -1, 89, 945, 928, 927, 63, 64, > 95, 96, 89, -1, -1, 773, -1, 52, 95, 54, > 55, 56, 57, 89, 197, 783, -1, -1, 786, 95, > 928, 116, 790, 791, 119, -1, 794, -1, -1, 207, > -1, -1, -1, -1, 212, 40, 41, 42, 43, 44, > -1, 219, 810, -1, -1, -1, 229, -1, 2, -1, > -1, -1, -1, -1, 237, 52, -1, 54, 55, 56, > 57, -1, -1, -1, -1, -1, 0, 195, -1, -1, > 198, 199, 200, -1, 8, 9, 10, -1, -1, 13, > 14, 15, -1, 17, -1, 853, -1, -1, 216, -1, > 218, 219, 89, 27, -1, 49, 864, -1, 95, 96, > 283, -1, -1, 37, 38, 288, 40, 41, 42, 43, > 44, -1, 295, -1, -1, -1, -1, -1, -1, 116, > -1, -1, 119, -1, -1, -1, -1, -1, 896, -1, > 898, -1, -1, -1, -1, -1, 904, -1, 906, -1, > -1, -1, -1, -1, -1, 328, 143, -1, 326, -1, > -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, > 928, -1, -1, -1, -1, 293, -1, -1, -1, -1, > 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, > 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, > 318, 319, 320, 321, 322, 323, 324, -1, 326, -1, > -1, -1, -1, -1, 138, -1, 140, -1, -1, 143, > 144, 389, 146, -1, 148, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, 411, -1, > 52, -1, 54, 55, 56, 57, -1, -1, -1, -1, > -1, -1, -1, 197, -1, 373, 374, 52, -1, 54, > 55, 56, 57, 68, -1, 383, 384, 385, 436, -1, > -1, 389, -1, 391, 392, 393, -1, 89, 83, 84, > -1, -1, -1, 95, 96, 229, 454, -1, 456, -1, > 458, -1, 410, 237, 89, -1, -1, 415, -1, -1, > 95, 96, -1, 421, 116, -1, 424, 119, -1, 114, > 115, 116, 117, 118, 119, 120, 121, -1, 436, -1, > 488, 116, -1, -1, 119, -1, -1, -1, -1, -1, > -1, 143, -1, 2, -1, 4, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, 295, -1, -1, -1, -1, -1, -1, -1, 477, > 478, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, 489, 545, 541, 547, 543, -1, -1, -1, -1, > 49, -1, -1, -1, 53, -1, -1, 555, -1, -1, > -1, -1, -1, -1, -1, -1, 569, -1, -1, 567, > -1, -1, -1, -1, -1, 74, -1, -1, -1, 577, > 578, 579, 580, -1, -1, -1, -1, 86, 87, 88, > 89, -1, -1, -1, -1, 593, -1, -1, -1, -1, > -1, -1, -1, 551, -1, -1, -1, 555, -1, -1, > -1, -1, 610, -1, -1, -1, -1, -1, -1, 567, > -1, 2, -1, 4, -1, -1, -1, -1, 631, 632, > -1, -1, 630, -1, -1, -1, -1, 411, -1, -1, > 643, -1, 590, -1, -1, -1, -1, -1, -1, 652, > -1, -1, -1, 651, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, 456, -1, 458, 49, -1, > -1, -1, 53, -1, 622, -1, -1, -1, 676, 677, > -1, 679, -1, 681, -1, -1, -1, -1, -1, -1, > -1, -1, -1, 74, -1, 698, -1, -1, 197, -1, > -1, -1, -1, 706, -1, 86, 87, 88, 656, -1, > 713, 714, 660, -1, 662, 663, -1, -1, 716, -1, > 668, 669, -1, -1, -1, -1, -1, -1, 676, -1, > 229, -1, -1, -1, -1, -1, -1, -1, 237, -1, > -1, -1, -1, 741, 742, -1, 744, -1, 746, 747, > -1, -1, -1, -1, 253, -1, -1, 755, -1, 757, > -1, 759, 760, -1, -1, -1, -1, 715, -1, -1, > -1, 545, 720, 547, 722, 723, -1, -1, -1, -1, > 783, -1, -1, 781, 283, -1, 784, 790, 791, 288, > -1, 794, 2, -1, 4, -1, 295, 296, -1, -1, > -1, -1, -1, -1, -1, -1, -1, 810, -1, -1, > -1, -1, -1, -1, -1, 763, 197, -1, -1, 767, > -1, -1, -1, -1, -1, 773, -1, -1, -1, 328, > -1, -1, -1, -1, -1, -1, -1, -1, -1, 49, > -1, -1, -1, -1, -1, 793, -1, -1, 229, -1, > 853, -1, -1, -1, -1, -1, 237, 631, 632, -1, > -1, 864, -1, 811, 862, -1, -1, -1, -1, 643, > -1, -1, 253, -1, -1, -1, 86, -1, 652, -1, > 878, 879, 880, 881, -1, -1, -1, 885, 886, 887, > -1, 889, 890, 896, -1, 898, -1, -1, -1, -1, > -1, 904, 283, 906, -1, -1, -1, 288, -1, -1, > -1, -1, 411, -1, 295, 296, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > 928, -1, 930, 931, -1, 434, -1, -1, 936, 713, > 714, 939, 940, 941, 942, -1, -1, 328, -1, -1, > 741, 742, -1, 744, -1, 746, 747, -1, -1, -1, > -1, 959, -1, -1, -1, -1, 757, -1, 759, 760, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > 928, -1, -1, -1, -1, -1, -1, 197, -1, -1, > -1, -1, -1, -1, -1, -1, 495, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, 783, > -1, -1, -1, -1, -1, -1, 790, 791, -1, 229, > 794, -1, -1, -1, -1, -1, -1, 237, -1, -1, > 411, -1, -1, -1, -1, -1, 810, -1, -1, -1, > -1, -1, -1, -1, -1, -1, 545, -1, 547, -1, > -1, -1, -1, 434, -1, -1, 68, 69, 70, 71, > 72, 73, 74, 75, 76, 77, 78, 79, 80, -1, > 569, 83, 84, 283, -1, -1, -1, -1, 288, 853, > -1, -1, -1, -1, -1, 295, -1, 878, 879, 880, > 881, -1, -1, -1, 885, 886, 887, -1, 889, 890, > 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, > -1, -1, -1, -1, 495, -1, 615, -1, 328, -1, > -1, -1, 896, -1, 898, -1, -1, -1, -1, -1, > 904, -1, 631, 632, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, 643, 936, -1, -1, 939, 940, > 941, 942, -1, 652, -1, -1, -1, -1, -1, -1, > 659, -1, -1, -1, 545, -1, 547, -1, 959, -1, > -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, > 74, 75, 76, 77, 78, 79, 80, -1, 569, 83, > 84, -1, -1, -1, -1, -1, -1, -1, -1, 698, > -1, 411, -1, -1, -1, -1, -1, 706, -1, -1, > -1, -1, -1, -1, 713, 714, 110, -1, 112, 113, > 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, > -1, -1, -1, -1, 615, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > 631, 632, -1, -1, 148, -1, -1, -1, -1, -1, > -1, -1, 643, 644, -1, -1, -1, -1, -1, -1, > -1, 652, -1, -1, -1, -1, -1, -1, 659, -1, > -1, -1, -1, -1, 783, -1, -1, -1, -1, -1, > -1, 790, 791, -1, -1, 794, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, 810, -1, -1, -1, -1, -1, 698, -1, -1, > -1, -1, -1, -1, -1, 706, -1, -1, -1, -1, > -1, -1, 713, 714, -1, 545, 835, 547, -1, -1, > -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, > 849, 77, 78, -1, 853, -1, -1, 83, 84, 569, > -1, -1, -1, -1, -1, 864, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, > 116, 117, 118, 119, 120, 121, -1, 896, -1, 898, > -1, -1, 783, -1, -1, 904, -1, 906, -1, 790, > 791, -1, -1, 794, -1, -1, -1, -1, -1, -1, > -1, 631, 632, -1, -1, -1, -1, -1, -1, 810, > -1, -1, -1, 643, -1, -1, -1, -1, -1, -1, > -1, -1, 652, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, 835, -1, -1, -1, -1, -1, > -1, 68, 69, 70, 71, 72, 73, 74, 849, -1, > 77, 78, 853, -1, -1, -1, 83, 84, -1, -1, > -1, -1, -1, 864, -1, -1, -1, -1, 698, -1, > -1, -1, -1, -1, -1, -1, 706, -1, -1, -1, > -1, -1, -1, 713, 714, 112, 113, 114, 115, 116, > 117, 118, 119, 120, 121, 896, -1, 898, -1, 44, > -1, -1, -1, 904, -1, 906, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, > -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, > 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, > 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, > 78, 79, 80, 783, -1, 83, 84, -1, -1, -1, > 790, 791, -1, -1, 794, 110, -1, 112, 113, 114, > 115, 116, 117, 118, 119, 120, 121, -1, -1, -1, > 810, -1, 110, -1, 112, 113, 114, 115, 116, 117, > 118, 119, 120, 121, 0, 1, 141, 3, 4, 5, > 6, 7, -1, -1, -1, 11, 12, -1, -1, -1, > 16, -1, 18, 19, 20, 21, 22, 23, 24, 849, > -1, -1, -1, 853, 30, 31, 32, 33, 34, 35, > 36, -1, -1, 39, 864, -1, -1, -1, -1, 45, > 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, > 56, 57, -1, 59, 60, -1, 62, 63, 64, -1, > 66, 67, -1, -1, -1, -1, 896, -1, 898, -1, > -1, -1, -1, -1, 904, -1, 906, -1, -1, -1, > 86, -1, -1, 89, 90, -1, 92, 93, -1, 95, > -1, 97, 98, 99, 100, 101, 102, 103, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, 122, 123, 124, 0, > -1, -1, -1, -1, -1, -1, -1, 8, 9, 10, > -1, -1, 13, 14, 15, -1, 17, -1, -1, -1, > 146, -1, 148, -1, -1, -1, 27, 28, 29, -1, > -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, > 41, 42, 43, 44, -1, -1, -1, -1, -1, -1, > 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, > 78, 79, 80, -1, -1, 83, 84, 68, 69, 70, > 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, > -1, -1, 83, 84, 85, -1, 87, 88, -1, -1, > -1, -1, 110, 94, 112, 113, 114, 115, 116, 117, > 118, 119, 120, 121, -1, -1, 107, -1, 109, 110, > 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, > 121, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, 138, 139, 140, > 141, 0, -1, 144, 145, 146, -1, 148, -1, 8, > 9, 10, -1, -1, 13, 14, 15, -1, 17, -1, > -1, -1, -1, -1, -1, -1, -1, 26, 27, 28, > -1, -1, -1, -1, -1, -1, -1, -1, 37, 38, > -1, 40, 41, 42, 43, 44, -1, -1, -1, -1, > -1, -1, 68, 69, 70, 71, 72, 73, 74, -1, > -1, 77, 78, -1, -1, -1, -1, 83, 84, 68, > 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, > 79, 80, -1, -1, 83, 84, 85, -1, -1, 88, > -1, -1, -1, -1, -1, 94, 112, 113, 114, 115, > 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, > -1, 110, -1, 112, 113, 114, 115, 116, 117, 118, > 119, 120, 121, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, 137, 138, > 139, 140, 141, 0, 143, 144, 145, 146, -1, 148, > -1, 8, 9, 10, -1, -1, 13, 14, 15, -1, > 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, > 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, > 37, 38, -1, 40, 41, 42, 43, 44, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, 68, 69, 70, 71, 72, 73, 74, 75, 76, > 77, 78, 79, 80, -1, -1, 83, 84, 85, -1, > -1, 88, -1, -1, -1, -1, -1, 94, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > 107, -1, -1, 110, 111, 112, 113, 114, 115, 116, > 117, 118, 119, 120, 121, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, 138, 139, 140, 141, 0, -1, 144, 145, 146, > -1, 148, -1, 8, 9, 10, -1, -1, 13, 14, > 15, -1, 17, -1, -1, -1, -1, -1, -1, -1, > -1, 26, 27, 28, -1, -1, -1, -1, -1, -1, > -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, > 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, > 85, -1, -1, 88, -1, -1, -1, -1, -1, 94, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, 110, -1, 112, 113, 114, > 115, 116, 117, 118, 119, 120, 121, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, 137, 138, 139, 140, 141, 0, 143, 144, > 145, 146, -1, 148, -1, 8, 9, 10, -1, -1, > 13, 14, 15, -1, 17, -1, -1, -1, -1, -1, > -1, -1, -1, -1, 27, 28, -1, -1, -1, -1, > -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, > 43, 44, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, > 73, 74, 75, 76, 77, 78, 79, 80, -1, -1, > 83, 84, 85, -1, -1, 88, -1, -1, -1, -1, > -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, 110, -1, 112, > 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, 138, 139, 140, 141, 0, > 143, 144, 145, 146, -1, 148, -1, 8, 9, 10, > -1, -1, -1, 14, 15, -1, 17, -1, -1, -1, > -1, -1, -1, -1, -1, 26, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, > 41, 42, 43, 44, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, > 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, > -1, -1, 83, 84, 85, 0, 87, -1, -1, -1, > -1, -1, -1, 8, 9, 10, -1, -1, -1, 14, > 15, -1, 17, -1, -1, -1, -1, -1, 109, 110, > -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, > 121, -1, 37, 38, -1, 40, 41, 42, 43, 44, > -1, -1, -1, -1, -1, -1, 137, 138, 139, 140, > 141, -1, -1, 144, -1, 146, -1, 148, -1, -1, > -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, > 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, > 85, -1, 87, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, 109, 110, -1, 112, 113, 114, > 115, 116, 117, 118, 119, 120, 121, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, 138, 139, 140, 141, -1, -1, 144, > -1, 146, 1, 148, 3, 4, 5, 6, 7, 8, > 9, 10, 11, 12, -1, -1, 15, 16, -1, 18, > 19, 20, 21, 22, 23, 24, -1, -1, -1, -1, > -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, > 39, -1, -1, -1, -1, -1, 45, 46, 47, 48, > 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, > 59, 60, -1, 62, 63, 64, -1, 66, 67, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, 86, -1, -1, > 89, 90, -1, 92, 93, -1, 95, -1, 97, 98, > 99, 100, 101, 102, 103, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, 122, 123, 124, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, 146, 1, 148, > 3, 4, 5, 6, 7, -1, -1, 10, 11, 12, > -1, 14, 15, 16, -1, 18, 19, 20, 21, 22, > 23, 24, -1, -1, -1, -1, -1, 30, 31, 32, > 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, > -1, -1, 45, 46, 47, 48, 49, 50, 51, 52, > 53, 54, 55, 56, 57, -1, 59, 60, -1, 62, > 63, 64, -1, 66, 67, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, 86, -1, -1, 89, 90, -1, 92, > 93, -1, 95, -1, 97, 98, 99, 100, 101, 102, > 103, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, > 123, 124, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, 146, 1, 148, 3, 4, 5, 6, > 7, -1, -1, 10, 11, 12, -1, -1, 15, 16, > 17, 18, 19, 20, 21, 22, 23, 24, -1, -1, > -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, > -1, -1, 39, -1, -1, -1, -1, -1, 45, 46, > 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, > 57, -1, 59, 60, -1, 62, 63, 64, -1, 66, > 67, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, 86, > -1, -1, 89, 90, -1, 92, 93, -1, 95, -1, > 97, 98, 99, 100, 101, 102, 103, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, 122, 123, 124, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, 146, > 1, 148, 3, 4, 5, 6, 7, -1, -1, 10, > 11, 12, -1, -1, 15, 16, -1, 18, 19, 20, > 21, 22, 23, 24, -1, -1, -1, -1, -1, 30, > 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, > -1, -1, -1, -1, 45, 46, 47, 48, 49, 50, > 51, 52, 53, 54, 55, 56, 57, -1, 59, 60, > -1, 62, 63, 64, -1, 66, 67, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, 86, -1, -1, 89, 90, > -1, 92, 93, -1, 95, -1, 97, 98, 99, 100, > 101, 102, 103, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, 122, 123, 124, -1, -1, -1, -1, -1, -1, > -1, 1, -1, 3, 4, 5, 6, 7, -1, 9, > 10, 11, 12, -1, -1, 146, 16, 148, 18, 19, > 20, 21, 22, 23, 24, -1, -1, -1, -1, -1, > 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, > -1, -1, -1, -1, -1, 45, 46, 47, 48, 49, > 50, 51, 52, 53, 54, 55, 56, 57, -1, 59, > 60, -1, 62, 63, 64, -1, 66, 67, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, 86, -1, -1, 89, > 90, -1, 92, 93, -1, 95, -1, 97, 98, 99, > 100, 101, 102, 103, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, 122, 123, 124, -1, -1, -1, -1, -1, > -1, -1, 1, -1, 3, 4, 5, 6, 7, -1, > -1, -1, 11, 12, -1, -1, 146, 16, 148, 18, > 19, 20, 21, 22, 23, 24, -1, -1, -1, -1, > -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, > 39, -1, -1, -1, -1, -1, 45, 46, 47, 48, > 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, > 59, 60, -1, 62, 63, 64, -1, 66, 67, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, 86, -1, -1, > 89, 90, -1, 92, 93, -1, 95, -1, 97, 98, > 99, 100, 101, 102, 103, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, 122, 123, 124, -1, -1, -1, -1, > -1, -1, -1, 1, -1, 3, 4, 5, 6, 7, > -1, -1, -1, 11, 12, 144, -1, 146, 16, 148, > 18, 19, 20, 21, 22, 23, 24, -1, -1, -1, > -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, > -1, 39, -1, -1, -1, -1, -1, 45, 46, 47, > 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, > -1, 59, 60, -1, 62, 63, 64, -1, 66, 67, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, 86, -1, > -1, 89, 90, -1, 92, 93, -1, 95, -1, 97, > 98, 99, 100, 101, 102, 103, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, 122, 123, 124, -1, -1, -1, > -1, -1, -1, -1, 1, -1, 3, 4, 5, 6, > 7, -1, -1, -1, 11, 12, 144, -1, 146, 16, > 148, 18, 19, 20, 21, 22, 23, 24, -1, -1, > -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, > -1, -1, 39, -1, -1, -1, -1, -1, 45, 46, > 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, > 57, -1, 59, 60, -1, 62, 63, 64, -1, 66, > 67, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, 86, > -1, -1, 89, 90, -1, 92, 93, -1, 95, -1, > 97, 98, 99, 100, 101, 102, 103, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, 122, 123, 124, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, 138, -1, -1, -1, -1, -1, -1, -1, 146, > 1, 148, 3, 4, 5, 6, 7, -1, -1, 10, > 11, 12, -1, -1, -1, 16, -1, 18, 19, 20, > 21, 22, 23, 24, -1, -1, -1, -1, -1, 30, > 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, > -1, -1, -1, -1, 45, 46, 47, 48, 49, 50, > 51, 52, 53, 54, 55, 56, 57, -1, 59, 60, > -1, 62, 63, 64, -1, 66, 67, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, 86, -1, -1, 89, 90, > -1, 92, 93, -1, 95, -1, 97, 98, 99, 100, > 101, 102, 103, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, 122, 123, 124, -1, -1, -1, -1, -1, -1, > -1, -1, -1, 3, 4, 5, -1, 7, -1, -1, > -1, 11, 12, -1, -1, 146, 16, 148, 18, 19, > 20, 21, 22, 23, 24, -1, -1, -1, -1, -1, > 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, > -1, -1, -1, -1, -1, -1, 46, -1, -1, 49, > 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, > 60, -1, 62, 63, 64, -1, 66, 67, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, 86, -1, -1, 89, > 90, -1, 92, 93, -1, 95, 96, 97, 98, 99, > 100, 101, 102, 103, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, 122, 123, 124, 3, 4, 5, -1, 7, > -1, -1, -1, 11, 12, -1, -1, -1, 16, -1, > 18, 19, 20, 21, 22, 23, 24, -1, 148, -1, > -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, > -1, 39, -1, -1, -1, -1, -1, -1, 46, -1, > -1, 49, 50, 51, 52, 53, 54, 55, 56, 57, > -1, 59, 60, -1, 62, 63, 64, -1, 66, 67, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, 86, -1, > -1, 89, 90, -1, 92, 93, -1, -1, -1, 97, > 98, 99, 100, 101, 102, 103, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, 122, 123, 124, -1, -1, -1, > -1, -1, -1, -1, -1, -1, 3, 4, 5, -1, > 7, -1, -1, -1, 11, 12, -1, -1, 146, 16, > 148, 18, 19, 20, 21, 22, 23, 24, -1, -1, > -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, > -1, -1, 39, -1, -1, -1, -1, -1, -1, 46, > -1, -1, 49, 50, 51, 52, 53, 54, 55, 56, > 57, -1, 59, 60, -1, 62, 63, 64, -1, 66, > 67, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, 86, > -1, -1, 89, 90, -1, 92, 93, -1, -1, -1, > 97, 98, 99, 100, 101, 102, 103, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, 122, 123, 124, 3, 4, > 5, 6, 7, -1, -1, -1, 11, 12, -1, -1, > -1, 16, -1, 18, 19, 20, 21, 22, 23, 24, > -1, 148, -1, -1, -1, 30, 31, 32, 33, 34, > 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, > 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, > 55, 56, 57, -1, 59, 60, -1, 62, 63, 64, > -1, 66, 67, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, 86, -1, -1, 89, 90, -1, 92, 93, -1, > 95, -1, 97, 98, 99, 100, 101, 102, 103, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, 122, 123, 124, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, 146, 3, 4, 5, 6, 7, 8, 9, 10, > 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, > 21, 22, 23, 24, 25, 26, -1, -1, -1, 30, > 31, 32, 33, 34, 35, 36, 37, 38, 39, -1, > -1, -1, -1, -1, 45, 46, 47, 48, 49, 50, > 51, 52, 53, 54, 55, 56, 57, -1, -1, -1, > -1, -1, -1, -1, -1, 66, 67, 68, 69, 70, > 71, 72, 73, 74, -1, -1, 77, 78, -1, -1, > 81, 82, 83, 84, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, > 121, -1, 123, 124, -1, -1, -1, -1, -1, -1, > 3, 4, 5, -1, 7, -1, -1, -1, 11, 12, > -1, 142, 143, 16, -1, 18, 19, 20, 21, 22, > 23, 24, -1, 26, -1, -1, -1, 30, 31, 32, > 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, > -1, -1, -1, 46, -1, -1, 49, 50, 51, 52, > 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, > 63, 64, -1, 66, 67, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, 86, -1, -1, 89, 90, -1, 92, > 93, -1, 95, 96, 97, 98, 99, 100, 101, 102, > 103, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, > 123, 124, -1, -1, -1, -1, -1, -1, 3, 4, > 5, -1, 7, -1, 137, -1, 11, 12, -1, -1, > 143, 16, -1, 18, 19, 20, 21, 22, 23, 24, > -1, 26, -1, -1, -1, 30, 31, 32, 33, 34, > 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, > -1, 46, -1, -1, 49, 50, 51, 52, 53, 54, > 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, > -1, 66, 67, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, 86, -1, -1, 89, 90, -1, 92, 93, -1, > 95, 96, 97, 98, 99, 100, 101, 102, 103, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, 122, 123, 124, > -1, -1, -1, -1, -1, -1, 3, 4, 5, -1, > 7, -1, 137, -1, 11, 12, -1, -1, 143, 16, > -1, 18, 19, 20, 21, 22, 23, 24, -1, -1, > -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, > -1, -1, 39, -1, -1, -1, -1, -1, -1, 46, > -1, -1, 49, 50, 51, 52, 53, 54, 55, 56, > 57, 58, 59, 60, -1, 62, 63, 64, -1, 66, > 67, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, 86, > 87, -1, 89, 90, -1, 92, 93, -1, 95, 96, > 97, 98, 99, 100, 101, 102, 103, -1, -1, -1, > -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, > 3, 4, 5, -1, 7, 122, 123, 124, 11, 12, > -1, -1, -1, 16, -1, 18, 19, 20, 21, 22, > 23, 24, -1, -1, -1, -1, 143, 30, 31, 32, > 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, > -1, -1, -1, 46, -1, -1, 49, 50, 51, 52, > 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, > 63, 64, -1, 66, 67, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, 86, -1, -1, 89, 90, -1, 92, > 93, -1, 95, 96, 97, 98, 99, 100, 101, 102, > 103, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, 3, 4, 5, -1, 7, 122, > 123, 124, 11, 12, -1, -1, -1, 16, -1, 18, > 19, 20, 21, 22, 23, 24, -1, -1, -1, -1, > 143, 30, 31, 32, 33, 34, 35, 36, -1, -1, > 39, -1, -1, -1, -1, -1, -1, 46, -1, -1, > 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, > 59, 60, -1, 62, 63, 64, -1, 66, 67, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, 86, -1, -1, > 89, 90, -1, 92, 93, -1, 95, 96, 97, 98, > 99, 100, 101, 102, 103, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, 122, 123, 124, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, 143, 3, 4, 5, 6, 7, > 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, > 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, > -1, -1, 30, 31, 32, 33, 34, 35, 36, 37, > 38, 39, -1, -1, -1, -1, -1, 45, 46, 47, > 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, > -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, > 68, 69, 70, 71, 72, 73, 74, -1, -1, 77, > 78, -1, -1, 81, 82, 83, 84, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, 95, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, > 118, 119, 120, 121, -1, 123, 124, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, 142, 3, 4, 5, 6, 7, > 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, > 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, > -1, -1, 30, 31, 32, 33, 34, 35, 36, 37, > 38, 39, -1, -1, -1, -1, -1, 45, 46, 47, > 48, 49, 50, 51, 52, 53, 54, -1, 56, -1, > -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, > 68, 69, 70, 71, 72, 73, 74, -1, -1, 77, > 78, -1, -1, 81, 82, 83, 84, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, 95, -1, -1, > 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, > 118, 119, 120, 121, -1, 123, 124, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, 142, 3, 4, 5, 6, 7, > 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, > 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, > -1, -1, 30, 31, 32, 33, 34, 35, 36, 37, > 38, 39, -1, -1, -1, -1, -1, 45, 46, 47, > 48, 49, 50, 51, 52, 53, -1, -1, 56, -1, > -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, > 68, 69, 70, 71, 72, 73, 74, -1, -1, 77, > 78, -1, -1, 81, 82, 83, 84, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, 95, -1, -1, > 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, > 118, 119, 120, 121, -1, 123, 124, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, 142, 3, 4, 5, 6, 7, > 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, > 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, > -1, -1, 30, 31, 32, 33, 34, 35, 36, 37, > 38, 39, -1, -1, -1, -1, -1, 45, 46, 47, > 48, 49, 50, 51, 52, 53, -1, -1, 56, -1, > -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, > 68, 69, 70, 71, 72, 73, 74, -1, -1, 77, > 78, -1, -1, 81, 82, 83, 84, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, 95, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, > 118, 119, 120, 121, -1, 123, 124, -1, -1, -1, > 3, 4, 5, -1, 7, -1, -1, -1, 11, 12, > -1, -1, -1, 16, 142, 18, 19, 20, 21, 22, > 23, 24, -1, -1, -1, -1, -1, 30, 31, 32, > 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, > -1, -1, -1, 46, -1, -1, 49, 50, 51, 52, > 53, 54, 55, 56, 57, -1, 59, 60, -1, 62, > 63, 64, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, 86, -1, -1, 89, 90, -1, 92, > 93, -1, -1, -1, 97, 98, 99, 100, 101, 102, > 103, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, 3, 4, 5, -1, 7, -1, -1, 122, > 11, 12, -1, -1, -1, 16, -1, 18, 19, 20, > 21, 22, 23, 24, -1, -1, -1, -1, 141, 30, > 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, > -1, -1, -1, -1, -1, 46, -1, -1, 49, 50, > 51, 52, 53, 54, 55, 56, 57, -1, 59, 60, > -1, 62, 63, 64, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, 86, -1, -1, 89, 90, > -1, 92, 93, -1, -1, -1, 97, 98, 99, 100, > 101, 102, 103, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, 3, 4, 5, 6, 7, -1, > -1, 122, 11, 12, -1, -1, -1, 16, -1, 18, > 19, 20, 21, 22, 23, 24, -1, -1, -1, -1, > 141, 30, 31, 32, 33, 34, 35, 36, -1, -1, > 39, -1, -1, -1, -1, -1, 45, 46, 47, 48, > 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, > 59, 60, -1, 62, 63, 64, -1, 66, 67, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, 86, -1, -1, > 89, 90, -1, 92, 93, -1, 95, -1, 97, 98, > 99, 100, 101, 102, 103, -1, -1, -1, -1, -1, > -1, -1, -1, 3, 4, 5, -1, 7, -1, -1, > -1, 11, 12, 122, 123, 124, 16, -1, 18, 19, > 20, 21, 22, 23, 24, -1, -1, -1, -1, -1, > 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, > -1, -1, -1, -1, -1, -1, 46, -1, -1, 49, > 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, > 60, -1, 62, 63, 64, -1, 66, 67, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, 86, -1, -1, 89, > 90, -1, 92, 93, -1, 95, 96, 97, 98, 99, > 100, 101, 102, 103, -1, -1, -1, -1, -1, -1, > -1, -1, 3, 4, 5, -1, 7, -1, -1, -1, > 11, 12, 122, 123, 124, 16, -1, 18, 19, 20, > 21, 22, 23, 24, -1, -1, -1, -1, -1, 30, > 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, > -1, -1, -1, -1, -1, 46, -1, -1, 49, 50, > 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, > -1, 62, 63, 64, -1, 66, 67, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, 86, -1, -1, 89, 90, > -1, 92, 93, -1, 95, 96, 97, 98, 99, 100, > 101, 102, 103, -1, -1, -1, -1, -1, -1, -1, > -1, 3, 4, 5, -1, 7, -1, -1, -1, 11, > 12, 122, 123, 124, 16, -1, 18, 19, 20, 21, > 22, 23, 24, -1, -1, -1, -1, -1, 30, 31, > 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, > -1, -1, -1, -1, 46, -1, -1, 49, 50, 51, > 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, > 62, 63, 64, -1, 66, 67, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, 86, -1, -1, 89, 90, -1, > 92, 93, -1, 95, -1, 97, 98, 99, 100, 101, > 102, 103, -1, -1, -1, -1, -1, -1, -1, -1, > 3, 4, 5, -1, 7, -1, -1, -1, 11, 12, > 122, 123, 124, 16, -1, 18, 19, 20, 21, 22, > 23, 24, -1, -1, -1, -1, -1, 30, 31, 32, > 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, > -1, -1, -1, 46, -1, -1, 49, 50, 51, 52, > 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, > 63, 64, -1, 66, 67, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, 86, -1, -1, 89, 90, -1, 92, > 93, -1, -1, 96, 97, 98, 99, 100, 101, 102, > 103, -1, -1, -1, -1, -1, -1, -1, -1, 3, > 4, 5, -1, 7, -1, -1, -1, 11, 12, 122, > 123, 124, 16, -1, 18, 19, 20, 21, 22, 23, > 24, -1, -1, -1, -1, -1, 30, 31, 32, 33, > 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, > -1, -1, 46, -1, -1, 49, 50, 51, 52, 53, > 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, > 64, -1, 66, 67, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, 86, -1, -1, 89, 90, -1, 92, 93, > -1, 95, -1, 97, 98, 99, 100, 101, 102, 103, > -1, -1, -1, -1, -1, -1, -1, -1, 3, 4, > 5, -1, 7, -1, -1, -1, 11, 12, 122, 123, > 124, 16, -1, 18, 19, 20, 21, 22, 23, 24, > -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, > 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, > -1, 46, -1, -1, 49, 50, 51, 52, 53, 54, > 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, > -1, 66, 67, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, 86, -1, -1, 89, 90, -1, 92, 93, -1, > -1, -1, 97, 98, 99, 100, 101, 102, 103, -1, > -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, > -1, 7, -1, -1, -1, 11, 12, 122, 123, 124, > 16, -1, 18, 19, 20, 21, 22, 23, 24, -1, > -1, -1, -1, -1, 30, 31, 32, 33, 34, 35, > 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, > 46, -1, -1, 49, 50, 51, 52, 53, 54, 55, > 56, 57, -1, 59, 60, -1, 62, 63, 64, -1, > 66, 67, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > 86, -1, -1, 89, 90, -1, 92, 93, -1, 95, > -1, 97, 98, 99, 100, 101, 102, 103, -1, -1, > -1, -1, -1, -1, -1, -1, 3, 4, 5, -1, > 7, -1, -1, -1, 11, 12, 122, 123, 124, 16, > -1, 18, 19, 20, 21, 22, 23, 24, -1, -1, > -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, > -1, -1, 39, -1, -1, -1, -1, -1, -1, 46, > -1, -1, 49, 50, 51, 52, 53, 54, 55, 56, > 57, -1, 59, 60, -1, 62, 63, 64, -1, 66, > 67, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, 86, > -1, -1, 89, 90, -1, 92, 93, -1, 95, -1, > 97, 98, 99, 100, 101, 102, 103, -1, -1, -1, > -1, -1, -1, -1, -1, 3, 4, 5, -1, 7, > -1, -1, -1, 11, 12, 122, 123, 124, 16, -1, > 18, 19, 20, 21, 22, 23, 24, -1, -1, -1, > -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, > -1, 39, -1, -1, -1, -1, -1, -1, 46, -1, > -1, 49, 50, 51, 52, 53, 54, 55, 56, 57, > -1, 59, 60, -1, 62, 63, 64, -1, 66, 67, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, 86, -1, > -1, 89, 90, -1, 92, 93, -1, 95, -1, 97, > 98, 99, 100, 101, 102, 103, -1, -1, -1, -1, > -1, -1, -1, -1, 3, 4, 5, -1, 7, -1, > -1, -1, 11, 12, 122, 123, 124, 16, -1, 18, > 19, 20, 21, 22, 23, 24, -1, -1, -1, -1, > -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, > 39, -1, -1, -1, -1, -1, -1, 46, -1, -1, > 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, > 59, 60, -1, 62, 63, 64, -1, 66, 67, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, 86, -1, -1, > 89, 90, -1, 92, 93, -1, 95, -1, 97, 98, > 99, 100, 101, 102, 103, -1, -1, -1, -1, -1, > -1, -1, -1, 3, 4, 5, -1, 7, -1, -1, > -1, 11, 12, 122, 123, 124, 16, -1, 18, 19, > 20, 21, 22, 23, 24, -1, -1, -1, -1, -1, > 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, > -1, -1, -1, -1, -1, -1, 46, -1, -1, 49, > 50, 51, 52, 53, 54, 55, 56, 57, -1, 59, > 60, -1, 62, 63, 64, -1, 66, 67, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, 86, -1, -1, 89, > 90, -1, 92, 93, -1, 95, -1, 97, 98, 99, > 100, 101, 102, 103, -1, -1, -1, -1, -1, -1, > -1, -1, 3, 4, 5, -1, 7, -1, -1, -1, > 11, 12, 122, 123, 124, 16, -1, 18, 19, 20, > 21, 22, 23, 24, -1, -1, -1, -1, -1, 30, > 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, > -1, -1, -1, -1, -1, 46, -1, -1, 49, 50, > 51, 52, 53, 54, 55, 56, 57, -1, 59, 60, > -1, 62, 63, 64, -1, 66, 67, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, 86, -1, -1, 89, 90, > -1, 92, 93, -1, -1, -1, 97, 98, 99, 100, > 101, 102, 103, -1, -1, -1, -1, -1, -1, -1, > -1, 3, 4, 5, -1, 7, -1, -1, -1, 11, > 12, 122, 123, 124, 16, -1, 18, 19, 20, 21, > 22, 23, 24, -1, -1, -1, -1, -1, 30, 31, > 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, > -1, -1, -1, -1, 46, -1, -1, 49, 50, 51, > 52, 53, 54, 55, 56, 57, -1, 59, 60, -1, > 62, 63, 64, -1, 66, 67, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, 86, -1, -1, 89, 90, -1, > 92, 93, -1, -1, -1, 97, 98, 99, 100, 101, > 102, 103, -1, -1, -1, -1, -1, -1, -1, -1, > 3, 4, 5, -1, 7, -1, -1, -1, 11, 12, > 122, 123, 124, 16, -1, 18, 19, 20, 21, 22, > 23, 24, -1, -1, -1, -1, -1, 30, 31, 32, > 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, > -1, -1, -1, 46, -1, -1, 49, 50, 51, 52, > 53, 54, 55, 56, 57, -1, 59, 60, -1, 62, > 63, 64, -1, 66, 67, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, 86, -1, -1, 89, 90, -1, 92, > 93, -1, -1, -1, 97, 98, 99, 100, 101, 102, > 103, -1, -1, -1, -1, -1, -1, -1, -1, 3, > 4, 5, -1, 7, -1, -1, -1, 11, 12, 122, > 123, 124, 16, -1, 18, 19, 20, 21, 22, 23, > 24, -1, -1, -1, -1, -1, 30, 31, 32, 33, > 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, > -1, -1, 46, -1, -1, 49, 50, 51, 52, 53, > 54, 55, 56, 57, -1, 59, 60, -1, 62, 63, > 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, 86, -1, -1, 89, 90, -1, 92, 93, > -1, 95, -1, 97, 98, 99, 100, 101, 102, 103, > -1, -1, -1, -1, 3, 4, 5, -1, 7, -1, > -1, -1, 11, 12, -1, -1, -1, 16, 122, 18, > 19, 20, 21, 22, 23, 24, -1, -1, -1, -1, > -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, > 39, -1, -1, -1, -1, -1, -1, 46, -1, -1, > 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, > 59, 60, -1, 62, 63, 64, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, 86, -1, -1, > 89, 90, -1, 92, 93, -1, 95, -1, 97, 98, > 99, 100, 101, 102, 103, -1, -1, -1, -1, 3, > 4, 5, -1, 7, -1, -1, -1, 11, 12, -1, > -1, -1, 16, 122, 18, 19, 20, 21, 22, 23, > 24, -1, -1, -1, -1, -1, 30, 31, 32, 33, > 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, > -1, -1, 46, -1, -1, 49, 50, 51, 52, 53, > 54, 55, 56, 57, -1, 59, 60, -1, 62, 63, > 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, 83, > -1, -1, 86, -1, -1, 89, 90, -1, 92, 93, > -1, -1, -1, 97, 98, 99, 100, 101, 102, 103, > -1, -1, -1, -1, 3, 4, 5, -1, 7, -1, > -1, -1, 11, 12, -1, -1, -1, 16, 122, 18, > 19, 20, 21, 22, 23, 24, -1, -1, -1, -1, > -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, > 39, -1, -1, -1, -1, -1, -1, 46, -1, -1, > 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, > 59, 60, -1, 62, 63, 64, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, 86, -1, -1, > 89, 90, -1, 92, 93, -1, -1, -1, 97, 98, > 99, 100, 101, 102, 103, -1, -1, -1, -1, 3, > 4, 5, -1, 7, -1, -1, -1, 11, 12, -1, > -1, -1, 16, 122, 18, 19, 20, 21, 22, 23, > 24, -1, -1, -1, -1, -1, 30, 31, 32, 33, > 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, > -1, -1, 46, -1, -1, 49, 50, 51, 52, 53, > 54, 55, 56, 57, -1, 59, 60, -1, 62, 63, > 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, 86, -1, -1, 89, 90, -1, 92, 93, > -1, -1, -1, 97, 98, 99, 100, 101, 102, 103, > -1, -1, -1, -1, 3, 4, 5, -1, 7, -1, > -1, -1, 11, 12, -1, -1, -1, 16, 122, 18, > 19, 20, 21, 22, 23, 24, -1, -1, -1, -1, > -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, > 39, -1, -1, -1, -1, -1, -1, 46, -1, -1, > 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, > 59, 60, -1, 62, 63, 64, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, 86, -1, -1, > 89, 90, -1, 92, 93, -1, -1, -1, 97, 98, > 99, 100, 101, 102, 103, -1, -1, -1, -1, 3, > 4, 5, -1, 7, -1, -1, -1, 11, 12, -1, > -1, -1, 16, 122, 18, 19, 20, 21, 22, 23, > 24, -1, -1, -1, -1, -1, 30, 31, 32, 33, > 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, > -1, -1, 46, -1, -1, 49, 50, 51, 52, 53, > 54, 55, 56, 57, -1, 59, 60, -1, 62, 63, > 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, 86, -1, -1, 89, 90, -1, 92, 93, > -1, -1, -1, 97, 98, 99, 100, 101, 102, 103, > -1, -1, -1, -1, -1, 52, 53, -1, -1, 56, > -1, -1, -1, -1, -1, -1, -1, -1, 122, 66, > 67, 68, 69, 70, 71, 72, 73, 74, -1, -1, > 77, 78, -1, -1, 81, 82, 83, 84, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, 95, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, > 117, 118, 119, 120, 121, -1, 123, 124, -1, -1, > -1, -1, -1, 52, 53, -1, -1, 56, -1, -1, > -1, -1, -1, -1, -1, 142, 143, 66, 67, 68, > 69, 70, 71, 72, 73, 74, -1, -1, 77, 78, > -1, -1, 81, 82, 83, 84, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, > 119, 120, 121, -1, 123, 124, -1, -1, -1, -1, > -1, 52, 53, -1, -1, 56, -1, -1, -1, -1, > -1, -1, -1, 142, 143, 66, 67, 68, 69, 70, > 71, 72, 73, 74, -1, -1, 77, 78, -1, -1, > 81, 82, 83, 84, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, > 121, -1, 123, 124, -1, -1, -1, -1, -1, 52, > 53, -1, -1, 56, -1, -1, -1, -1, -1, -1, > -1, 142, 143, 66, 67, 68, 69, 70, 71, 72, > 73, 74, -1, -1, 77, 78, -1, -1, 81, 82, > 83, 84, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, 112, > 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, > 123, 124, -1, -1, -1, -1, -1, 52, 53, -1, > -1, 56, -1, -1, -1, -1, -1, -1, -1, 142, > 143, 66, 67, 68, 69, 70, 71, 72, 73, 74, > -1, -1, 77, 78, -1, -1, 81, 82, 83, 84, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > 95, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, > 115, 116, 117, 118, 119, 120, 121, -1, 123, 124, > -1, -1, -1, -1, -1, 52, 53, -1, -1, 56, > -1, -1, -1, -1, -1, -1, -1, 142, 143, 66, > 67, 68, 69, 70, 71, 72, 73, 74, -1, -1, > 77, 78, -1, -1, 81, 82, 83, 84, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, 95, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, > 117, 118, 119, 120, 121, -1, 123, 124, -1, -1, > -1, -1, -1, 52, 53, -1, -1, 56, -1, -1, > -1, -1, -1, -1, -1, 142, 143, 66, 67, 68, > 69, 70, 71, 72, 73, 74, -1, -1, 77, 78, > -1, -1, 81, 82, 83, 84, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, > 119, 120, 121, -1, 123, 124, -1, -1, -1, -1, > -1, 52, 53, -1, -1, 56, -1, -1, -1, -1, > -1, -1, -1, 142, 143, 66, 67, 68, 69, 70, > 71, 72, 73, 74, -1, -1, 77, 78, -1, -1, > 81, 82, 83, 84, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, > 121, -1, 123, 124, -1, -1, -1, -1, -1, 52, > 53, -1, -1, 56, -1, -1, -1, -1, -1, -1, > -1, 142, 143, 66, 67, 68, 69, 70, 71, 72, > 73, 74, -1, -1, 77, 78, -1, -1, 81, 82, > 83, 84, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, 112, > 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, > 123, 124, -1, -1, -1, -1, -1, 52, 53, -1, > -1, 56, -1, -1, -1, -1, -1, -1, -1, 142, > 143, 66, 67, 68, 69, 70, 71, 72, 73, 74, > -1, -1, 77, 78, -1, -1, 81, 82, 83, 84, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > 95, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, > 115, 116, 117, 118, 119, 120, 121, -1, 123, 124, > -1, -1, -1, -1, -1, 52, 53, -1, -1, 56, > -1, -1, -1, -1, -1, -1, -1, 142, 143, 66, > 67, 68, 69, 70, 71, 72, 73, 74, -1, -1, > 77, 78, -1, -1, 81, 82, 83, 84, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, 95, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, > 117, 118, 119, 120, 121, -1, 123, 124, -1, -1, > -1, -1, -1, 52, 53, -1, -1, 56, -1, -1, > -1, -1, -1, -1, -1, 142, 143, 66, 67, 68, > 69, 70, 71, 72, 73, 74, -1, -1, 77, 78, > -1, -1, 81, 82, 83, 84, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, > 119, 120, 121, -1, 123, 124, -1, -1, -1, -1, > -1, 52, 53, -1, -1, 56, -1, -1, -1, -1, > -1, -1, -1, 142, 143, 66, 67, 68, 69, 70, > 71, 72, 73, 74, -1, -1, 77, 78, -1, -1, > 81, 82, 83, 84, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, > 121, -1, 123, 124, -1, -1, -1, -1, -1, 52, > 53, -1, -1, 56, -1, -1, -1, -1, -1, -1, > -1, 142, 143, 66, 67, 68, 69, 70, 71, 72, > 73, 74, -1, -1, 77, 78, -1, -1, 81, 82, > 83, 84, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, 95, -1, -1, -1, -1, -1, 44, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, 112, > 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, > 123, 124, 68, 69, 70, 71, 72, 73, 74, 75, > 76, 77, 78, 79, 80, -1, -1, 83, 84, 142, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, 110, -1, 112, 113, 114, 115, > 116, 117, 118, 119, 120, 121 >}; > > > >static const yytype_uint16 yystos[] = >{ > 0, 150, 151, 0, 1, 3, 4, 5, 6, 7, > 11, 12, 16, 18, 19, 20, 21, 22, 23, 24, > 30, 31, 32, 33, 34, 35, 36, 39, 45, 46, > 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, > 57, 59, 60, 62, 63, 64, 66, 67, 86, 89, > 90, 92, 93, 95, 97, 98, 99, 100, 101, 102, > 103, 122, 123, 124, 153, 154, 155, 158, 160, 161, > 164, 165, 167, 168, 169, 171, 172, 182, 196, 213, > 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, > 245, 246, 256, 257, 258, 259, 260, 261, 262, 265, > 273, 275, 276, 277, 278, 279, 280, 303, 314, 155, > 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, > 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, > 23, 24, 25, 26, 30, 31, 32, 33, 34, 35, > 36, 37, 38, 39, 45, 46, 47, 48, 49, 50, > 51, 52, 53, 56, 66, 67, 68, 69, 70, 71, > 72, 73, 74, 77, 78, 81, 82, 83, 84, 95, > 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, > 123, 124, 142, 175, 176, 177, 178, 180, 181, 273, > 275, 21, 22, 30, 39, 58, 86, 89, 95, 96, > 123, 164, 172, 182, 184, 189, 192, 194, 213, 277, > 279, 280, 301, 302, 189, 189, 143, 190, 191, 143, > 186, 190, 143, 148, 308, 54, 177, 308, 157, 137, > 31, 32, 182, 213, 303, 182, 56, 89, 153, 166, > 167, 158, 185, 194, 301, 314, 184, 300, 301, 314, > 46, 86, 122, 141, 171, 196, 213, 277, 280, 239, > 240, 54, 55, 57, 175, 268, 274, 267, 268, 268, > 147, 263, 147, 266, 59, 60, 160, 182, 182, 146, > 148, 307, 312, 313, 40, 41, 42, 43, 44, 37, > 38, 28, 243, 109, 141, 89, 95, 168, 109, 68, > 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, > 79, 80, 83, 84, 110, 112, 113, 114, 115, 116, > 117, 118, 119, 120, 121, 85, 139, 140, 197, 158, > 159, 159, 200, 202, 159, 307, 313, 86, 165, 172, > 213, 229, 277, 280, 52, 56, 83, 86, 173, 174, > 213, 277, 280, 174, 33, 34, 35, 36, 49, 50, > 51, 52, 56, 143, 175, 278, 298, 85, 140, 26, > 137, 247, 259, 87, 87, 186, 190, 247, 141, 184, > 56, 184, 184, 109, 88, 141, 193, 314, 85, 139, > 140, 87, 87, 141, 193, 189, 308, 309, 189, 188, > 189, 314, 158, 309, 158, 54, 63, 64, 156, 143, > 183, 137, 153, 85, 140, 87, 166, 144, 309, 198, > 145, 141, 148, 311, 141, 311, 138, 311, 308, 56, > 59, 60, 168, 170, 141, 85, 139, 140, 52, 54, > 55, 56, 57, 89, 95, 96, 116, 119, 143, 241, > 284, 285, 286, 287, 288, 289, 292, 293, 294, 295, > 296, 61, 104, 105, 106, 269, 106, 269, 106, 65, > 106, 106, 264, 269, 106, 61, 106, 68, 68, 146, > 155, 159, 159, 159, 159, 155, 158, 158, 244, 95, > 160, 184, 194, 195, 166, 141, 171, 141, 160, 182, > 184, 195, 182, 182, 182, 182, 182, 182, 182, 182, > 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, > 182, 182, 182, 182, 182, 182, 182, 182, 52, 53, > 56, 180, 186, 304, 305, 188, 52, 53, 56, 180, > 186, 304, 152, 153, 13, 225, 312, 225, 159, 159, > 307, 17, 250, 56, 85, 139, 140, 25, 158, 52, > 56, 173, 1, 113, 281, 312, 85, 139, 140, 209, > 299, 210, 85, 140, 306, 52, 56, 304, 304, 249, > 248, 160, 182, 160, 182, 94, 162, 179, 182, 184, > 95, 184, 192, 301, 52, 56, 188, 52, 56, 302, > 309, 144, 309, 309, 177, 199, 182, 153, 138, 304, > 304, 182, 309, 309, 301, 141, 170, 52, 56, 188, > 52, 56, 109, 52, 89, 95, 230, 231, 232, 286, > 284, 29, 107, 242, 141, 297, 314, 141, 297, 52, > 141, 297, 52, 271, 270, 147, 269, 147, 182, 182, > 76, 114, 234, 235, 314, 184, 141, 309, 170, 141, > 44, 308, 87, 87, 186, 190, 308, 310, 87, 87, > 186, 187, 190, 314, 10, 224, 8, 252, 314, 153, > 13, 153, 27, 226, 312, 226, 250, 194, 224, 52, > 56, 188, 52, 56, 204, 207, 312, 282, 206, 52, > 56, 173, 188, 152, 158, 143, 283, 284, 211, 187, > 190, 187, 190, 234, 234, 44, 163, 177, 184, 193, > 87, 310, 87, 87, 158, 138, 311, 168, 310, 184, > 232, 141, 286, 141, 309, 146, 236, 314, 153, 153, > 287, 292, 294, 296, 288, 289, 294, 288, 153, 54, > 55, 57, 272, 280, 52, 233, 236, 288, 290, 291, > 294, 296, 153, 95, 184, 170, 182, 111, 160, 182, > 182, 162, 145, 87, 160, 182, 160, 182, 162, 184, > 195, 253, 314, 15, 228, 314, 14, 227, 228, 228, > 201, 203, 224, 141, 225, 310, 159, 312, 159, 152, > 310, 224, 309, 284, 152, 312, 175, 153, 153, 182, > 234, 87, 309, 309, 231, 141, 95, 230, 52, 237, > 238, 285, 309, 10, 138, 141, 297, 141, 297, 141, > 297, 141, 297, 297, 138, 109, 236, 114, 141, 297, > 141, 297, 141, 297, 10, 184, 182, 160, 182, 88, > 254, 314, 153, 9, 255, 314, 159, 224, 224, 153, > 153, 184, 153, 226, 208, 312, 224, 309, 224, 212, > 10, 138, 153, 141, 231, 141, 286, 141, 288, 294, > 288, 288, 86, 213, 114, 291, 294, 288, 290, 294, > 288, 86, 172, 213, 277, 280, 225, 153, 225, 224, > 224, 228, 250, 251, 205, 152, 283, 138, 231, 141, > 238, 297, 141, 297, 297, 297, 56, 85, 141, 297, > 141, 297, 297, 141, 297, 297, 56, 85, 139, 140, > 153, 153, 153, 224, 152, 231, 288, 52, 56, 288, > 294, 288, 288, 52, 56, 188, 52, 56, 252, 227, > 224, 224, 297, 297, 141, 297, 297, 297, 310, 288, > 297 >}; ># 4265 "parse.c" >static void >yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct parser_params *parser) ># 4275 "parse.c" >{ > if (!yyvaluep) > return; > ((void) (parser)); > > > > > ((void) (yyoutput)); > > switch (yytype) > { > default: > break; > } >} ># 4299 "parse.c" >static void >yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct parser_params *parser) ># 4309 "parse.c" >{ > if (yytype < 149) > fprintf (yyoutput, "token %s (", yytname[yytype]); > else > fprintf (yyoutput, "nterm %s (", yytname[yytype]); > > yy_symbol_value_print (yyoutput, yytype, yyvaluep, parser); > fprintf (yyoutput, ")"); >} ># 4326 "parse.c" >static void >yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) > > > > > > >{ > fprintf (stderr, "Stack now"); > for (; bottom <= top; ++bottom) > fprintf (stderr, " %d", *bottom); > fprintf (stderr, "\n"); >} ># 4354 "parse.c" >static void >yy_reduce_print (YYSTYPE *yyvsp, int yyrule, struct parser_params *parser) > > > > > > > >{ > int yynrhs = yyr2[yyrule]; > int yyi; > unsigned long int yylno = yyrline[yyrule]; > fprintf (stderr, "Reducing stack by rule %d (line %lu):\n", > yyrule - 1, yylno); > > for (yyi = 0; yyi < yynrhs; yyi++) > { > fprintf (stderr, " $%d = ", yyi + 1); > yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], > &(yyvsp[(yyi + 1) - (yynrhs)]) > , parser); > fprintf (stderr, "\n"); > } >} ># 4478 "parse.c" >static unsigned int >yytnamerr (char *yyres, const char *yystr) >{ > if (*yystr == '"') > { > unsigned int yyn = 0; > char const *yyp = yystr; > > for (;;) > switch (*++yyp) > { > case '\'': > case ',': > goto do_not_strip_quotes; > > case '\\': > if (*++yyp != '\\') > goto do_not_strip_quotes; > > default: > if (yyres) > yyres[yyn] = *yyp; > yyn++; > break; > > case '"': > if (yyres) > yyres[yyn] = '\0'; > return yyn; > } > do_not_strip_quotes: ; > } > > if (! yyres) > return strlen (yystr); > > return __builtin_stpcpy (yyres, yystr) - yyres; >} ># 4525 "parse.c" >static unsigned int >yysyntax_error (char *yyresult, int yystate, int yychar) >{ > int yyn = yypact[yystate]; > > if (! (-747 < yyn && yyn <= 10225)) > return 0; > else > { > int yytype = ((unsigned int) (yychar) <= 376 ? yytranslate[yychar] : 2); > unsigned int yysize0 = yytnamerr (0, yytname[yytype]); > unsigned int yysize = yysize0; > unsigned int yysize1; > int yysize_overflow = 0; > enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; > char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; > int yyx; ># 4552 "parse.c" > char *yyfmt; > char const *yyf; > static char const yyunexpected[] = "syntax error, unexpected %s"; > static char const yyexpecting[] = ", expecting %s"; > static char const yyor[] = " or %s"; > char yyformat[sizeof yyunexpected > + sizeof yyexpecting - 1 > + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) > * (sizeof yyor - 1))]; > char const *yyprefix = yyexpecting; > > > > int yyxbegin = yyn < 0 ? -yyn : 0; > > > int yychecklim = 10225 - yyn + 1; > int yyxend = yychecklim < 149 ? yychecklim : 149; > int yycount = 1; > > yyarg[0] = yytname[yytype]; > yyfmt = __builtin_stpcpy (yyformat, yyunexpected); > > for (yyx = yyxbegin; yyx < yyxend; ++yyx) > if (yycheck[yyx + yyn] == yyx && yyx != 1) > { > if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) > { > yycount = 1; > yysize = yysize0; > yyformat[sizeof yyunexpected - 1] = '\0'; > break; > } > yyarg[yycount++] = yytname[yyx]; > yysize1 = yysize + yytnamerr (0, yytname[yyx]); > yysize_overflow |= (yysize1 < yysize); > yysize = yysize1; > yyfmt = __builtin_stpcpy (yyfmt, yyprefix); > yyprefix = yyor; > } > > yyf = yyformat; > yysize1 = yysize + strlen (yyf); > yysize_overflow |= (yysize1 < yysize); > yysize = yysize1; > > if (yysize_overflow) > return ((unsigned int) -1); > > if (yyresult) > { > > > > char *yyp = yyresult; > int yyi = 0; > while ((*yyp = *yyf) != '\0') > { > if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) > { > yyp += yytnamerr (yyp, yyarg[yyi++]); > yyf += 2; > } > else > { > yyp++; > yyf++; > } > } > } > return yysize; > } >} ># 4635 "parse.c" >static void >yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, struct parser_params *parser) ># 4645 "parse.c" >{ > ((void) (yyvaluep)); > ((void) (parser)); > > if (!yymsg) > yymsg = "Deleting"; > do { if ((parser->parser_yydebug)) { fprintf (stderr, "%s ", yymsg); yy_symbol_print (stderr, yytype, yyvaluep, parser); fprintf (stderr, "\n"); } } while ((0)); > > switch (yytype) > { > > default: > break; > } >} ># 4672 "parse.c" >int ruby_yyparse (struct parser_params *parser); ># 4700 "parse.c" >int >ruby_yyparse (struct parser_params *parser) > > > > > > >{ > >int yychar; > > >YYSTYPE yylval; > > >int yynerrs; > > int yystate; > int yyn; > int yyresult; > > int yyerrstatus; > > int yytoken = 0; > > > char yymsgbuf[128]; > char *yymsg = yymsgbuf; > unsigned int yymsg_alloc = sizeof yymsgbuf; ># 4741 "parse.c" > yytype_int16 yyssa[200]; > yytype_int16 *yyss = yyssa; > yytype_int16 *yyssp; > > > YYSTYPE yyvsa[200]; > YYSTYPE *yyvs = yyvsa; > YYSTYPE *yyvsp; > > > > > > unsigned int yystacksize = 200; > > > > YYSTYPE yyval; > > > > > int yylen = 0; > > do { if ((parser->parser_yydebug)) fprintf (stderr, "Starting parse\n"); } while ((0)); > > yystate = 0; > yyerrstatus = 0; > yynerrs = 0; > yychar = (-2); > > > > > > > yyssp = yyss; > yyvsp = yyvs; > > goto yysetstate; > > > > > yynewstate: > > > yyssp++; > > yysetstate: > *yyssp = yystate; > > if (yyss + yystacksize - 1 <= yyssp) > { > > unsigned int yysize = yyssp - yyss + 1; ># 4825 "parse.c" > if (10000 <= yystacksize) > goto yyexhaustedlab; > yystacksize *= 2; > if (10000 < yystacksize) > yystacksize = 10000; > > { > yytype_int16 *yyss1 = yyss; > union yyalloc *yyptr = > (union yyalloc *) rb_parser_malloc(parser, ((yystacksize) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) + (sizeof (union yyalloc) - 1))); > if (! yyptr) > goto yyexhaustedlab; > 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)); > 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)); > > > if (yyss1 != yyssa) > rb_parser_free(parser, yyss1); > } > > > > yyssp = yyss + yysize - 1; > yyvsp = yyvs + yysize - 1; > > > do { if ((parser->parser_yydebug)) fprintf (stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize); } while ((0)); > > > if (yyss + yystacksize - 1 <= yyssp) > goto yyabortlab; > } > > do { if ((parser->parser_yydebug)) fprintf (stderr, "Entering state %d\n", yystate); } while ((0)); > > goto yybackup; > > > > >yybackup: > > > > > > yyn = yypact[yystate]; > if (yyn == -747) > goto yydefault; > > > > > if (yychar == (-2)) > { > do { if ((parser->parser_yydebug)) fprintf (stderr, "Reading a token: "); } while ((0)); > yychar = yylex (&yylval, parser); > } > > if (yychar <= 0) > { > yychar = yytoken = 0; > do { if ((parser->parser_yydebug)) fprintf (stderr, "Now at end of input.\n"); } while ((0)); > } > else > { > yytoken = ((unsigned int) (yychar) <= 376 ? yytranslate[yychar] : 2); > do { if ((parser->parser_yydebug)) { fprintf (stderr, "%s ", "Next token is"); yy_symbol_print (stderr, yytoken, &yylval, parser); fprintf (stderr, "\n"); } } while ((0)); > } > > > > yyn += yytoken; > if (yyn < 0 || 10225 < yyn || yycheck[yyn] != yytoken) > goto yydefault; > yyn = yytable[yyn]; > if (yyn <= 0) > { > if (yyn == 0 || yyn == -555) > goto yyerrlab; > yyn = -yyn; > goto yyreduce; > } > > if (yyn == 3) > goto yyacceptlab; > > > > if (yyerrstatus) > yyerrstatus--; > > > do { if ((parser->parser_yydebug)) { fprintf (stderr, "%s ", "Shifting"); yy_symbol_print (stderr, yytoken, &yylval, parser); fprintf (stderr, "\n"); } } while ((0)); > > > if (yychar != 0) > yychar = (-2); > > yystate = yyn; > *++yyvsp = yylval; > > goto yynewstate; > > > > > >yydefault: > yyn = yydefact[yystate]; > if (yyn == 0) > goto yyerrlab; > goto yyreduce; > > > > > >yyreduce: > > yylen = yyr2[yyn]; ># 4955 "parse.c" > yyval = yyvsp[1-yylen]; > > > do { if ((parser->parser_yydebug)) yy_reduce_print (yyvsp, yyn, parser); } while ((0)); > switch (yyn) > { > case 2: ># 763 "parse.y" > { > (parser->parser_lex_state) = EXPR_BEG; > > local_push_gen(parser,(parser->parser_compile_for_eval)); > > > ;} > break; > > case 3: ># 771 "parse.y" > { > > if ((yyvsp[(2) - (2)].node) && !(parser->parser_compile_for_eval)) { > > 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)))); > else { > NODE *node = (yyvsp[(2) - (2)].node); > while (node->u3.node) { > node = node->u3.node; > } > void_expr_gen(parser, ((node->u1.node) = remove_begin(node->u1.node))); > } > } > (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)); > local_pop_gen(parser); > > > > > ;} > break; > > case 4: ># 797 "parse.y" > { > > (yyval.node) = (yyvsp[(1) - (4)].node); > if ((yyvsp[(2) - (4)].node)) { > (yyval.node) = node_newnode(parser, (NODE_RESCUE), (VALUE)((yyvsp[(1) - (4)].node)), (VALUE)((yyvsp[(2) - (4)].node)), (VALUE)((yyvsp[(3) - (4)].node))); > } > else if ((yyvsp[(3) - (4)].node)) { > rb_compile_warn((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "else without rescue is useless"); > (yyval.node) = block_append_gen(parser,(yyval.node),(yyvsp[(3) - (4)].node)); > } > if ((yyvsp[(4) - (4)].node)) { > if ((yyval.node)) { > (yyval.node) = node_newnode(parser, (NODE_ENSURE), (VALUE)((yyval.node)), (VALUE)(0), (VALUE)((yyvsp[(4) - (4)].node))); > } > else { > (yyval.node) = block_append_gen(parser,(yyvsp[(4) - (4)].node),node_newnode(parser, (NODE_NIL), (VALUE)(0), (VALUE)(0), (VALUE)(0))); > } > } > fixpos((yyval.node), (yyvsp[(1) - (4)].node)); > > > > > > > > ;} > break; > > case 5: ># 827 "parse.y" > { > > void_stmts_gen(parser, (yyvsp[(1) - (2)].node)); > fixup_nodes(&(parser->parser_deferred_nodes)); > > > (yyval.node) = (yyvsp[(1) - (2)].node); > ;} > break; > > case 6: ># 838 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_BEGIN), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > > > > > ;} > break; > > case 7: ># 847 "parse.y" > { > > (yyval.node) = newline_node((yyvsp[(1) - (1)].node)); > > > > ;} > break; > > case 8: ># 855 "parse.y" > { > > (yyval.node) = block_append_gen(parser,(yyvsp[(1) - (3)].node),newline_node((yyvsp[(3) - (3)].node))); > > > > ;} > break; > > case 9: ># 863 "parse.y" > { > (yyval.node) = remove_begin((yyvsp[(2) - (2)].node)); > ;} > break; > > case 10: ># 868 "parse.y" > {(parser->parser_lex_state) = EXPR_FNAME;;} > break; > > case 11: ># 869 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_ALIAS), (VALUE)((yyvsp[(2) - (4)].node)), (VALUE)((yyvsp[(4) - (4)].node)), (VALUE)(0)); > > > > ;} > break; > > case 12: ># 877 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_VALIAS), (VALUE)((yyvsp[(2) - (3)].id)), (VALUE)((yyvsp[(3) - (3)].id)), (VALUE)(0)); > > > > ;} > break; > > case 13: ># 885 "parse.y" > { > > char buf[3]; > > sprintf(buf, "$%c", (char)(yyvsp[(3) - (3)].node)->u2.argc); > (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)); > > > > ;} > break; > > case 14: ># 896 "parse.y" > { > > parser_yyerror(parser, "can't make alias for the number variables"); > (yyval.node) = node_newnode(parser, (NODE_BEGIN), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > > > > > ;} > break; > > case 15: ># 906 "parse.y" > { > > (yyval.node) = (yyvsp[(2) - (2)].node); > > > > ;} > break; > > case 16: ># 914 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_IF), (VALUE)(cond_gen(parser, (yyvsp[(3) - (3)].node))), (VALUE)(remove_begin((yyvsp[(1) - (3)].node))), (VALUE)(0)); > fixpos((yyval.node), (yyvsp[(3) - (3)].node)); > > > > ;} > break; > > case 17: ># 923 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_IF), (VALUE)(cond_gen(parser, (yyvsp[(3) - (3)].node))), (VALUE)(0), (VALUE)(remove_begin((yyvsp[(1) - (3)].node)))); > fixpos((yyval.node), (yyvsp[(3) - (3)].node)); > > > > ;} > break; > > case 18: ># 932 "parse.y" > { > > if ((yyvsp[(1) - (3)].node) && ((int) (((((struct RNode*)((yyvsp[(1) - (3)].node))))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_BEGIN) { > (yyval.node) = node_newnode(parser, (NODE_WHILE), (VALUE)(cond_gen(parser, (yyvsp[(3) - (3)].node))), (VALUE)((yyvsp[(1) - (3)].node)->u2.node), (VALUE)(0)); > } > else { > (yyval.node) = node_newnode(parser, (NODE_WHILE), (VALUE)(cond_gen(parser, (yyvsp[(3) - (3)].node))), (VALUE)((yyvsp[(1) - (3)].node)), (VALUE)(1)); > } > > > > ;} > break; > > case 19: ># 945 "parse.y" > { > > if ((yyvsp[(1) - (3)].node) && ((int) (((((struct RNode*)((yyvsp[(1) - (3)].node))))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_BEGIN) { > (yyval.node) = node_newnode(parser, (NODE_UNTIL), (VALUE)(cond_gen(parser, (yyvsp[(3) - (3)].node))), (VALUE)((yyvsp[(1) - (3)].node)->u2.node), (VALUE)(0)); > } > else { > (yyval.node) = node_newnode(parser, (NODE_UNTIL), (VALUE)(cond_gen(parser, (yyvsp[(3) - (3)].node))), (VALUE)((yyvsp[(1) - (3)].node)), (VALUE)(1)); > } > > > > ;} > break; > > case 20: ># 958 "parse.y" > { > > NODE *resq = node_newnode(parser, (NODE_RESBODY), (VALUE)(0), (VALUE)(remove_begin((yyvsp[(3) - (3)].node))), (VALUE)(0)); > (yyval.node) = node_newnode(parser, (NODE_RESCUE), (VALUE)(remove_begin((yyvsp[(1) - (3)].node))), (VALUE)(resq), (VALUE)(0)); > > > > ;} > break; > > case 21: ># 967 "parse.y" > { > if ((parser->parser_in_def) || (parser->parser_in_single)) { > parser_yyerror(parser, "BEGIN in method"); > } > > > > > ;} > break; > > case 22: ># 977 "parse.y" > { > > (parser->parser_eval_tree_begin) = block_append_gen(parser,(parser->parser_eval_tree_begin),(yyvsp[(4) - (5)].node)); > > > > (yyval.node) = node_newnode(parser, (NODE_BEGIN), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > > > > ;} > break; > > case 23: ># 989 "parse.y" > { > if ((parser->parser_in_def) || (parser->parser_in_single)) { > rb_compile_warn((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "END in method; use at_exit"); > } > > (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)); > > > > > ;} > break; > > case 24: ># 1001 "parse.y" > { > > value_expr_gen(parser, ((yyvsp[(3) - (3)].node)) = remove_begin((yyvsp[(3) - (3)].node))); > (yyval.node) = node_assign_gen(parser, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); > > > > ;} > break; > > case 25: ># 1010 "parse.y" > { > > value_expr_gen(parser, ((yyvsp[(3) - (3)].node)) = remove_begin((yyvsp[(3) - (3)].node))); > (yyvsp[(1) - (3)].node)->u2.node = (yyvsp[(3) - (3)].node); > (yyval.node) = (yyvsp[(1) - (3)].node); > > > > ;} > break; > > case 26: ># 1020 "parse.y" > { > > value_expr_gen(parser, ((yyvsp[(3) - (3)].node)) = remove_begin((yyvsp[(3) - (3)].node))); > if ((yyvsp[(1) - (3)].node)) { > ID vid = (yyvsp[(1) - (3)].node)->u1.id; > if ((yyvsp[(2) - (3)].id) == 331) { > (yyvsp[(1) - (3)].node)->u2.node = (yyvsp[(3) - (3)].node); > (yyval.node) = node_newnode(parser, (NODE_OP_ASGN_OR), (VALUE)(gettable_gen(parser,vid)), (VALUE)((yyvsp[(1) - (3)].node)), (VALUE)(0)); > if (((((vid)>376)) && (((vid)&0x07) == 0x03 || ((vid)&0x07) == 0x01 || ((vid)&0x07) == 0x06))) { > (yyval.node)->u3.id = vid; > } > } > else if ((yyvsp[(2) - (3)].id) == 330) { > (yyvsp[(1) - (3)].node)->u2.node = (yyvsp[(3) - (3)].node); > (yyval.node) = node_newnode(parser, (NODE_OP_ASGN_AND), (VALUE)(gettable_gen(parser,vid)), (VALUE)((yyvsp[(1) - (3)].node)), (VALUE)(0)); > } > else { > (yyval.node) = (yyvsp[(1) - (3)].node); > (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)))); > } > } > else { > (yyval.node) = node_newnode(parser, (NODE_BEGIN), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > } > > > > ;} > break; > > case 27: ># 1049 "parse.y" > { > > NODE *args; > > value_expr_gen(parser, ((yyvsp[(6) - (6)].node)) = remove_begin((yyvsp[(6) - (6)].node))); > if (!(yyvsp[(3) - (6)].node)) (yyvsp[(3) - (6)].node) = node_newnode(parser, (NODE_ZARRAY), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > args = arg_concat_gen(parser,(yyvsp[(6) - (6)].node),(yyvsp[(3) - (6)].node)); > if ((yyvsp[(5) - (6)].id) == 331) { > (yyvsp[(5) - (6)].id) = 0; > } > else if ((yyvsp[(5) - (6)].id) == 330) { > (yyvsp[(5) - (6)].id) = 1; > } > (yyval.node) = node_newnode(parser, (NODE_OP_ASGN1), (VALUE)((yyvsp[(1) - (6)].node)), (VALUE)((yyvsp[(5) - (6)].id)), (VALUE)(args)); > fixpos((yyval.node), (yyvsp[(1) - (6)].node)); > > > > > ;} > break; > > case 28: ># 1070 "parse.y" > { > > value_expr_gen(parser, ((yyvsp[(5) - (5)].node)) = remove_begin((yyvsp[(5) - (5)].node))); > if ((yyvsp[(4) - (5)].id) == 331) { > (yyvsp[(4) - (5)].id) = 0; > } > else if ((yyvsp[(4) - (5)].id) == 330) { > (yyvsp[(4) - (5)].id) = 1; > } > (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)))))); > fixpos((yyval.node), (yyvsp[(1) - (5)].node)); > > > > > ;} > break; > > case 29: ># 1087 "parse.y" > { > > value_expr_gen(parser, ((yyvsp[(5) - (5)].node)) = remove_begin((yyvsp[(5) - (5)].node))); > if ((yyvsp[(4) - (5)].id) == 331) { > (yyvsp[(4) - (5)].id) = 0; > } > else if ((yyvsp[(4) - (5)].id) == 330) { > (yyvsp[(4) - (5)].id) = 1; > } > (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)))))); > fixpos((yyval.node), (yyvsp[(1) - (5)].node)); > > > > > ;} > break; > > case 30: ># 1104 "parse.y" > { > > value_expr_gen(parser, ((yyvsp[(5) - (5)].node)) = remove_begin((yyvsp[(5) - (5)].node))); > if ((yyvsp[(4) - (5)].id) == 331) { > (yyvsp[(4) - (5)].id) = 0; > } > else if ((yyvsp[(4) - (5)].id) == 330) { > (yyvsp[(4) - (5)].id) = 1; > } > (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)))))); > fixpos((yyval.node), (yyvsp[(1) - (5)].node)); > > > > > ;} > break; > > case 31: ># 1121 "parse.y" > { > > rb_backref_error_gen(parser,(yyvsp[(1) - (3)].node)); > (yyval.node) = node_newnode(parser, (NODE_BEGIN), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > > > > > ;} > break; > > case 32: ># 1131 "parse.y" > { > > value_expr_gen(parser, ((yyvsp[(3) - (3)].node)) = remove_begin((yyvsp[(3) - (3)].node))); > (yyval.node) = node_assign_gen(parser, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); > > > > ;} > break; > > case 33: ># 1140 "parse.y" > { > > (yyvsp[(1) - (3)].node)->u2.node = (yyvsp[(3) - (3)].node); > (yyval.node) = (yyvsp[(1) - (3)].node); > > > > ;} > break; > > case 34: ># 1149 "parse.y" > { > > (yyvsp[(1) - (3)].node)->u2.node = (yyvsp[(3) - (3)].node); > (yyval.node) = (yyvsp[(1) - (3)].node); > > > > ;} > break; > > case 37: ># 1162 "parse.y" > { > > (yyval.node) = logop_gen(parser, NODE_AND, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); > > > > ;} > break; > > case 38: ># 1170 "parse.y" > { > > (yyval.node) = logop_gen(parser, NODE_OR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); > > > > ;} > break; > > case 39: ># 1178 "parse.y" > { > > (yyval.node) = call_uni_op_gen(parser, cond_gen(parser, (yyvsp[(3) - (3)].node)),'!'); > > > > ;} > break; > > case 40: ># 1186 "parse.y" > { > > (yyval.node) = call_uni_op_gen(parser, cond_gen(parser, (yyvsp[(2) - (2)].node)),'!'); > > > > ;} > break; > > case 42: ># 1197 "parse.y" > { > > value_expr_gen(parser, ((yyvsp[(1) - (1)].node)) = remove_begin((yyvsp[(1) - (1)].node))); > (yyval.node) = (yyvsp[(1) - (1)].node); > if (!(yyval.node)) (yyval.node) = node_newnode(parser, (NODE_NIL), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > > > > ;} > break; > > case 45: ># 1211 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_RETURN), (VALUE)(ret_args_gen(parser, (yyvsp[(2) - (2)].node))), (VALUE)(0), (VALUE)(0)); > > > > ;} > break; > > case 46: ># 1219 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_BREAK), (VALUE)(ret_args_gen(parser, (yyvsp[(2) - (2)].node))), (VALUE)(0), (VALUE)(0)); > > > > ;} > break; > > case 47: ># 1227 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_NEXT), (VALUE)(ret_args_gen(parser, (yyvsp[(2) - (2)].node))), (VALUE)(0), (VALUE)(0)); > > > > ;} > break; > > case 49: ># 1238 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_CALL), (VALUE)((yyvsp[(1) - (4)].node)), (VALUE)((yyvsp[(3) - (4)].id)), (VALUE)((yyvsp[(4) - (4)].node))); > > > > > ;} > break; > > case 50: ># 1247 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_CALL), (VALUE)((yyvsp[(1) - (4)].node)), (VALUE)((yyvsp[(3) - (4)].id)), (VALUE)((yyvsp[(4) - (4)].node))); > > > > > ;} > break; > > case 51: ># 1258 "parse.y" > { > > dyna_push_gen(parser); > (yyval.num) = (parser->parser_ruby_sourceline); > > > ;} > break; > > case 52: ># 1268 "parse.y" > { > > (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)); > ((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))); > dyna_pop_gen(parser); > > > > ;} > break; > > case 53: ># 1280 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_FCALL), (VALUE)(0), (VALUE)((yyvsp[(1) - (2)].id)), (VALUE)((yyvsp[(2) - (2)].node))); > fixpos((yyval.node), (yyvsp[(2) - (2)].node)); > > > > ;} > break; > > case 54: ># 1289 "parse.y" > { > > block_dup_check_gen(parser,(yyvsp[(2) - (3)].node),(yyvsp[(3) - (3)].node)); > (yyvsp[(3) - (3)].node)->u3.node = node_newnode(parser, (NODE_FCALL), (VALUE)(0), (VALUE)((yyvsp[(1) - (3)].id)), (VALUE)((yyvsp[(2) - (3)].node))); > (yyval.node) = (yyvsp[(3) - (3)].node); > fixpos((yyval.node), (yyvsp[(2) - (3)].node)); > > > > > ;} > break; > > case 55: ># 1301 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_CALL), (VALUE)((yyvsp[(1) - (4)].node)), (VALUE)((yyvsp[(3) - (4)].id)), (VALUE)((yyvsp[(4) - (4)].node))); > fixpos((yyval.node), (yyvsp[(1) - (4)].node)); > > > > ;} > break; > > case 56: ># 1310 "parse.y" > { > > block_dup_check_gen(parser,(yyvsp[(4) - (5)].node),(yyvsp[(5) - (5)].node)); > (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))); > (yyval.node) = (yyvsp[(5) - (5)].node); > fixpos((yyval.node), (yyvsp[(1) - (5)].node)); > > > > > ;} > break; > > case 57: ># 1322 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_CALL), (VALUE)((yyvsp[(1) - (4)].node)), (VALUE)((yyvsp[(3) - (4)].id)), (VALUE)((yyvsp[(4) - (4)].node))); > fixpos((yyval.node), (yyvsp[(1) - (4)].node)); > > > > ;} > break; > > case 58: ># 1331 "parse.y" > { > > block_dup_check_gen(parser,(yyvsp[(4) - (5)].node),(yyvsp[(5) - (5)].node)); > (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))); > (yyval.node) = (yyvsp[(5) - (5)].node); > fixpos((yyval.node), (yyvsp[(1) - (5)].node)); > > > > > ;} > break; > > case 59: ># 1343 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_SUPER), (VALUE)(0), (VALUE)(0), (VALUE)((yyvsp[(2) - (2)].node))); > fixpos((yyval.node), (yyvsp[(2) - (2)].node)); > > > > ;} > break; > > case 60: ># 1352 "parse.y" > { > > (yyval.node) = new_yield_gen(parser, (yyvsp[(2) - (2)].node)); > fixpos((yyval.node), (yyvsp[(2) - (2)].node)); > > > > ;} > break; > > case 62: ># 1364 "parse.y" > { > > (yyval.node) = (yyvsp[(2) - (3)].node); > > > > ;} > break; > > case 64: ># 1375 "parse.y" > { > > (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)); > > > > ;} > break; > > case 65: ># 1385 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_MASGN), (VALUE)((yyvsp[(1) - (1)].node)), (VALUE)(0), (VALUE)(0)); > > > > ;} > break; > > case 66: ># 1393 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_MASGN), (VALUE)(list_append_gen(parser,(yyvsp[(1) - (2)].node),(yyvsp[(2) - (2)].node))), (VALUE)(0), (VALUE)(0)); > > > > ;} > break; > > case 67: ># 1401 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_MASGN), (VALUE)((yyvsp[(1) - (3)].node)), (VALUE)(0), (VALUE)((yyvsp[(3) - (3)].node))); > > > > ;} > break; > > case 68: ># 1409 "parse.y" > { > > (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)))); > > > > ;} > break; > > case 69: ># 1417 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_MASGN), (VALUE)((yyvsp[(1) - (2)].node)), (VALUE)(0), (VALUE)(-1)); > > > > ;} > break; > > case 70: ># 1425 "parse.y" > { > > (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)))); > > > > ;} > break; > > case 71: ># 1433 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_MASGN), (VALUE)(0), (VALUE)(0), (VALUE)((yyvsp[(2) - (2)].node))); > > > > ;} > break; > > case 72: ># 1441 "parse.y" > { > > (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)))); > > > > ;} > break; > > case 73: ># 1449 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_MASGN), (VALUE)(0), (VALUE)(0), (VALUE)(-1)); > > > > ;} > break; > > case 74: ># 1457 "parse.y" > { > > (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)))); > > > > ;} > break; > > case 76: ># 1468 "parse.y" > { > > (yyval.node) = (yyvsp[(2) - (3)].node); > > > > ;} > break; > > case 77: ># 1478 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_ARRAY), (VALUE)((yyvsp[(1) - (2)].node)), (VALUE)(1), (VALUE)(0)); > > > > ;} > break; > > case 78: ># 1486 "parse.y" > { > > (yyval.node) = list_append_gen(parser,(yyvsp[(1) - (3)].node),(yyvsp[(2) - (3)].node)); > > > > ;} > break; > > case 79: ># 1496 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_ARRAY), (VALUE)((yyvsp[(1) - (1)].node)), (VALUE)(1), (VALUE)(0)); > > > > ;} > break; > > case 80: ># 1504 "parse.y" > { > > (yyval.node) = list_append_gen(parser,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node)); > > > > ;} > break; > > case 81: ># 1514 "parse.y" > { > > (yyval.node) = assignable_gen(parser, (yyvsp[(1) - (1)].id), 0); > > > > ;} > break; > > case 82: ># 1522 "parse.y" > { > > (yyval.node) = aryset_gen(parser, (yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].node)); > > > > ;} > break; > > case 83: ># 1530 "parse.y" > { > > (yyval.node) = attrset_gen(parser, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].id)); > > > > ;} > break; > > case 84: ># 1538 "parse.y" > { > > (yyval.node) = attrset_gen(parser, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].id)); > > > > ;} > break; > > case 85: ># 1546 "parse.y" > { > > (yyval.node) = attrset_gen(parser, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].id)); > > > > ;} > break; > > case 86: ># 1554 "parse.y" > { > > if ((parser->parser_in_def) || (parser->parser_in_single)) > parser_yyerror(parser, "dynamic constant assignment"); > (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)))); > > > > > > ;} > break; > > case 87: ># 1566 "parse.y" > { > > if ((parser->parser_in_def) || (parser->parser_in_single)) > parser_yyerror(parser, "dynamic constant assignment"); > (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)))); > > > > ;} > break; > > case 88: ># 1576 "parse.y" > { > > rb_backref_error_gen(parser,(yyvsp[(1) - (1)].node)); > (yyval.node) = node_newnode(parser, (NODE_BEGIN), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > > > > > ;} > break; > > case 89: ># 1588 "parse.y" > { > > if (!((yyval.node) = assignable_gen(parser, (yyvsp[(1) - (1)].id), 0))) (yyval.node) = node_newnode(parser, (NODE_BEGIN), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > > > > ;} > break; > > case 90: ># 1596 "parse.y" > { > > (yyval.node) = aryset_gen(parser, (yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].node)); > > > > ;} > break; > > case 91: ># 1604 "parse.y" > { > > (yyval.node) = attrset_gen(parser, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].id)); > > > > ;} > break; > > case 92: ># 1612 "parse.y" > { > > (yyval.node) = attrset_gen(parser, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].id)); > > > > ;} > break; > > case 93: ># 1620 "parse.y" > { > > (yyval.node) = attrset_gen(parser, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].id)); > > > > ;} > break; > > case 94: ># 1628 "parse.y" > { > > if ((parser->parser_in_def) || (parser->parser_in_single)) > parser_yyerror(parser, "dynamic constant assignment"); > (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)))); > > > > > > > ;} > break; > > case 95: ># 1641 "parse.y" > { > > if ((parser->parser_in_def) || (parser->parser_in_single)) > parser_yyerror(parser, "dynamic constant assignment"); > (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)))); > > > > > > > ;} > break; > > case 96: ># 1654 "parse.y" > { > > rb_backref_error_gen(parser,(yyvsp[(1) - (1)].node)); > (yyval.node) = node_newnode(parser, (NODE_BEGIN), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > > > > ;} > break; > > case 97: ># 1665 "parse.y" > { > > parser_yyerror(parser, "class/module name must be CONSTANT"); > > > > ;} > break; > > case 99: ># 1676 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_COLON3), (VALUE)(0), (VALUE)((yyvsp[(2) - (2)].id)), (VALUE)(0)); > > > > ;} > break; > > case 100: ># 1684 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_COLON2), (VALUE)(0), (VALUE)((yyval.node)), (VALUE)(0)); > > > > ;} > break; > > case 101: ># 1692 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_COLON2), (VALUE)((yyvsp[(1) - (3)].node)), (VALUE)((yyvsp[(3) - (3)].id)), (VALUE)(0)); > > > > ;} > break; > > case 105: ># 1705 "parse.y" > { > > (parser->parser_lex_state) = EXPR_END; > (yyval.id) = (yyvsp[(1) - (1)].id); > > > > > ;} > break; > > case 106: ># 1715 "parse.y" > { > > (parser->parser_lex_state) = EXPR_END; > (yyval.id) = (yyvsp[(1) - (1)].id); > > > > > ;} > break; > > case 109: ># 1731 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_LIT), (VALUE)((((VALUE)((yyvsp[(1) - (1)].id))<<RUBY_SPECIAL_SHIFT)|RUBY_SYMBOL_FLAG)), (VALUE)(0), (VALUE)(0)); > > > > ;} > break; > > case 111: ># 1742 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_UNDEF), (VALUE)(0), (VALUE)((yyvsp[(1) - (1)].node)), (VALUE)(0)); > > > > ;} > break; > > case 112: ># 1749 "parse.y" > {(parser->parser_lex_state) = EXPR_FNAME;;} > break; > > case 113: ># 1750 "parse.y" > { > > (yyval.node) = block_append_gen(parser,(yyvsp[(1) - (4)].node),node_newnode(parser, (NODE_UNDEF), (VALUE)(0), (VALUE)((yyvsp[(4) - (4)].node)), (VALUE)(0))); > > > > ;} > break; > > case 114: ># 1759 "parse.y" > { (yyval.id) = '|'; ;} > break; > > case 115: ># 1760 "parse.y" > { (yyval.id) = '^'; ;} > break; > > case 116: ># 1761 "parse.y" > { (yyval.id) = '&'; ;} > break; > > case 117: ># 1762 "parse.y" > { (yyval.id) = 324; ;} > break; > > case 118: ># 1763 "parse.y" > { (yyval.id) = 325; ;} > break; > > case 119: ># 1764 "parse.y" > { (yyval.id) = 326; ;} > break; > > case 120: ># 1765 "parse.y" > { (yyval.id) = 332; ;} > break; > > case 121: ># 1766 "parse.y" > { (yyval.id) = 333; ;} > break; > > case 122: ># 1767 "parse.y" > { (yyval.id) = '>'; ;} > break; > > case 123: ># 1768 "parse.y" > { (yyval.id) = 328; ;} > break; > > case 124: ># 1769 "parse.y" > { (yyval.id) = '<'; ;} > break; > > case 125: ># 1770 "parse.y" > { (yyval.id) = 329; ;} > break; > > case 126: ># 1771 "parse.y" > { (yyval.id) = 327; ;} > break; > > case 127: ># 1772 "parse.y" > { (yyval.id) = 338; ;} > break; > > case 128: ># 1773 "parse.y" > { (yyval.id) = 339; ;} > break; > > case 129: ># 1774 "parse.y" > { (yyval.id) = '+'; ;} > break; > > case 130: ># 1775 "parse.y" > { (yyval.id) = '-'; ;} > break; > > case 131: ># 1776 "parse.y" > { (yyval.id) = '*'; ;} > break; > > case 132: ># 1777 "parse.y" > { (yyval.id) = '*'; ;} > break; > > case 133: ># 1778 "parse.y" > { (yyval.id) = '/'; ;} > break; > > case 134: ># 1779 "parse.y" > { (yyval.id) = '%'; ;} > break; > > case 135: ># 1780 "parse.y" > { (yyval.id) = 323; ;} > break; > > case 136: ># 1781 "parse.y" > { (yyval.id) = '!'; ;} > break; > > case 137: ># 1782 "parse.y" > { (yyval.id) = '~'; ;} > break; > > case 138: ># 1783 "parse.y" > { (yyval.id) = 321; ;} > break; > > case 139: ># 1784 "parse.y" > { (yyval.id) = 322; ;} > break; > > case 140: ># 1785 "parse.y" > { (yyval.id) = 336; ;} > break; > > case 141: ># 1786 "parse.y" > { (yyval.id) = 337; ;} > break; > > case 142: ># 1787 "parse.y" > { (yyval.id) = '`'; ;} > break; > > case 184: ># 1805 "parse.y" > { > > value_expr_gen(parser, ((yyvsp[(3) - (3)].node)) = remove_begin((yyvsp[(3) - (3)].node))); > (yyval.node) = node_assign_gen(parser, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); > > > > ;} > break; > > case 185: ># 1814 "parse.y" > { > > value_expr_gen(parser, ((yyvsp[(3) - (5)].node)) = remove_begin((yyvsp[(3) - (5)].node))); > (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)); > (yyval.node) = node_assign_gen(parser, (yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].node)); > > > > ;} > break; > > case 186: ># 1824 "parse.y" > { > > value_expr_gen(parser, ((yyvsp[(3) - (3)].node)) = remove_begin((yyvsp[(3) - (3)].node))); > if ((yyvsp[(1) - (3)].node)) { > ID vid = (yyvsp[(1) - (3)].node)->u1.id; > if ((yyvsp[(2) - (3)].id) == 331) { > (yyvsp[(1) - (3)].node)->u2.node = (yyvsp[(3) - (3)].node); > (yyval.node) = node_newnode(parser, (NODE_OP_ASGN_OR), (VALUE)(gettable_gen(parser,vid)), (VALUE)((yyvsp[(1) - (3)].node)), (VALUE)(0)); > if (((((vid)>376)) && (((vid)&0x07) == 0x03 || ((vid)&0x07) == 0x01 || ((vid)&0x07) == 0x06))) { > (yyval.node)->u3.id = vid; > } > } > else if ((yyvsp[(2) - (3)].id) == 330) { > (yyvsp[(1) - (3)].node)->u2.node = (yyvsp[(3) - (3)].node); > (yyval.node) = node_newnode(parser, (NODE_OP_ASGN_AND), (VALUE)(gettable_gen(parser,vid)), (VALUE)((yyvsp[(1) - (3)].node)), (VALUE)(0)); > } > else { > (yyval.node) = (yyvsp[(1) - (3)].node); > (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)))); > } > } > else { > (yyval.node) = node_newnode(parser, (NODE_BEGIN), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > } > > > > ;} > break; > > case 187: ># 1853 "parse.y" > { > > value_expr_gen(parser, ((yyvsp[(3) - (5)].node)) = remove_begin((yyvsp[(3) - (5)].node))); > (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)); > if ((yyvsp[(1) - (5)].node)) { > ID vid = (yyvsp[(1) - (5)].node)->u1.id; > if ((yyvsp[(2) - (5)].id) == 331) { > (yyvsp[(1) - (5)].node)->u2.node = (yyvsp[(3) - (5)].node); > (yyval.node) = node_newnode(parser, (NODE_OP_ASGN_OR), (VALUE)(gettable_gen(parser,vid)), (VALUE)((yyvsp[(1) - (5)].node)), (VALUE)(0)); > if (((((vid)>376)) && (((vid)&0x07) == 0x03 || ((vid)&0x07) == 0x01 || ((vid)&0x07) == 0x06))) { > (yyval.node)->u3.id = vid; > } > } > else if ((yyvsp[(2) - (5)].id) == 330) { > (yyvsp[(1) - (5)].node)->u2.node = (yyvsp[(3) - (5)].node); > (yyval.node) = node_newnode(parser, (NODE_OP_ASGN_AND), (VALUE)(gettable_gen(parser,vid)), (VALUE)((yyvsp[(1) - (5)].node)), (VALUE)(0)); > } > else { > (yyval.node) = (yyvsp[(1) - (5)].node); > (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)))); > } > } > else { > (yyval.node) = node_newnode(parser, (NODE_BEGIN), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > } > > > > > ;} > break; > > case 188: ># 1884 "parse.y" > { > > NODE *args; > > value_expr_gen(parser, ((yyvsp[(6) - (6)].node)) = remove_begin((yyvsp[(6) - (6)].node))); > if (!(yyvsp[(3) - (6)].node)) (yyvsp[(3) - (6)].node) = node_newnode(parser, (NODE_ZARRAY), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > args = arg_concat_gen(parser,(yyvsp[(6) - (6)].node),(yyvsp[(3) - (6)].node)); > if ((yyvsp[(5) - (6)].id) == 331) { > (yyvsp[(5) - (6)].id) = 0; > } > else if ((yyvsp[(5) - (6)].id) == 330) { > (yyvsp[(5) - (6)].id) = 1; > } > (yyval.node) = node_newnode(parser, (NODE_OP_ASGN1), (VALUE)((yyvsp[(1) - (6)].node)), (VALUE)((yyvsp[(5) - (6)].id)), (VALUE)(args)); > fixpos((yyval.node), (yyvsp[(1) - (6)].node)); > > > > > ;} > break; > > case 189: ># 1905 "parse.y" > { > > value_expr_gen(parser, ((yyvsp[(5) - (5)].node)) = remove_begin((yyvsp[(5) - (5)].node))); > if ((yyvsp[(4) - (5)].id) == 331) { > (yyvsp[(4) - (5)].id) = 0; > } > else if ((yyvsp[(4) - (5)].id) == 330) { > (yyvsp[(4) - (5)].id) = 1; > } > (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)))))); > fixpos((yyval.node), (yyvsp[(1) - (5)].node)); > > > > > ;} > break; > > case 190: ># 1922 "parse.y" > { > > value_expr_gen(parser, ((yyvsp[(5) - (5)].node)) = remove_begin((yyvsp[(5) - (5)].node))); > if ((yyvsp[(4) - (5)].id) == 331) { > (yyvsp[(4) - (5)].id) = 0; > } > else if ((yyvsp[(4) - (5)].id) == 330) { > (yyvsp[(4) - (5)].id) = 1; > } > (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)))))); > fixpos((yyval.node), (yyvsp[(1) - (5)].node)); > > > > > ;} > break; > > case 191: ># 1939 "parse.y" > { > > value_expr_gen(parser, ((yyvsp[(5) - (5)].node)) = remove_begin((yyvsp[(5) - (5)].node))); > if ((yyvsp[(4) - (5)].id) == 331) { > (yyvsp[(4) - (5)].id) = 0; > } > else if ((yyvsp[(4) - (5)].id) == 330) { > (yyvsp[(4) - (5)].id) = 1; > } > (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)))))); > fixpos((yyval.node), (yyvsp[(1) - (5)].node)); > > > > > ;} > break; > > case 192: ># 1956 "parse.y" > { > > parser_yyerror(parser, "constant re-assignment"); > (yyval.node) = node_newnode(parser, (NODE_BEGIN), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > > > > > > ;} > break; > > case 193: ># 1967 "parse.y" > { > > parser_yyerror(parser, "constant re-assignment"); > (yyval.node) = node_newnode(parser, (NODE_BEGIN), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > > > > > > ;} > break; > > case 194: ># 1978 "parse.y" > { > > rb_backref_error_gen(parser,(yyvsp[(1) - (3)].node)); > (yyval.node) = node_newnode(parser, (NODE_BEGIN), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > > > > > > ;} > break; > > case 195: ># 1989 "parse.y" > { > > value_expr_gen(parser, ((yyvsp[(1) - (3)].node)) = remove_begin((yyvsp[(1) - (3)].node))); > value_expr_gen(parser, ((yyvsp[(3) - (3)].node)) = remove_begin((yyvsp[(3) - (3)].node))); > (yyval.node) = node_newnode(parser, (NODE_DOT2), (VALUE)((yyvsp[(1) - (3)].node)), (VALUE)((yyvsp[(3) - (3)].node)), (VALUE)(0)); > 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) && > ((int) (((((struct RNode*)((yyvsp[(3) - (3)].node))))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_LIT && (((long)((yyvsp[(3) - (3)].node)->u1.value))&RUBY_FIXNUM_FLAG)) { > (parser->parser_deferred_nodes) = list_append_gen(parser,(parser->parser_deferred_nodes),(yyval.node)); > } > > > > ;} > break; > > case 196: ># 2003 "parse.y" > { > > value_expr_gen(parser, ((yyvsp[(1) - (3)].node)) = remove_begin((yyvsp[(1) - (3)].node))); > value_expr_gen(parser, ((yyvsp[(3) - (3)].node)) = remove_begin((yyvsp[(3) - (3)].node))); > (yyval.node) = node_newnode(parser, (NODE_DOT3), (VALUE)((yyvsp[(1) - (3)].node)), (VALUE)((yyvsp[(3) - (3)].node)), (VALUE)(0)); > 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) && > ((int) (((((struct RNode*)((yyvsp[(3) - (3)].node))))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_LIT && (((long)((yyvsp[(3) - (3)].node)->u1.value))&RUBY_FIXNUM_FLAG)) { > (parser->parser_deferred_nodes) = list_append_gen(parser,(parser->parser_deferred_nodes),(yyval.node)); > } > > > > ;} > break; > > case 197: ># 2017 "parse.y" > { > > (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),'+',(yyvsp[(3) - (3)].node)); > > > > ;} > break; > > case 198: ># 2025 "parse.y" > { > > (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),'-',(yyvsp[(3) - (3)].node)); > > > > ;} > break; > > case 199: ># 2033 "parse.y" > { > > (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),'*',(yyvsp[(3) - (3)].node)); > > > > ;} > break; > > case 200: ># 2041 "parse.y" > { > > (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),'/',(yyvsp[(3) - (3)].node)); > > > > ;} > break; > > case 201: ># 2049 "parse.y" > { > > (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),'%',(yyvsp[(3) - (3)].node)); > > > > ;} > break; > > case 202: ># 2057 "parse.y" > { > > (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),323,(yyvsp[(3) - (3)].node)); > > > > ;} > break; > > case 203: ># 2065 "parse.y" > { > > (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)); > > > > > ;} > break; > > case 204: ># 2074 "parse.y" > { > > (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)); > > > > > ;} > break; > > case 205: ># 2083 "parse.y" > { > > (yyval.node) = call_uni_op_gen(parser, (yyvsp[(2) - (2)].node),321); > > > > ;} > break; > > case 206: ># 2091 "parse.y" > { > > (yyval.node) = call_uni_op_gen(parser, (yyvsp[(2) - (2)].node),322); > > > > ;} > break; > > case 207: ># 2099 "parse.y" > { > > (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),'|',(yyvsp[(3) - (3)].node)); > > > > ;} > break; > > case 208: ># 2107 "parse.y" > { > > (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),'^',(yyvsp[(3) - (3)].node)); > > > > ;} > break; > > case 209: ># 2115 "parse.y" > { > > (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),'&',(yyvsp[(3) - (3)].node)); > > > > ;} > break; > > case 210: ># 2123 "parse.y" > { > > (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),324,(yyvsp[(3) - (3)].node)); > > > > ;} > break; > > case 211: ># 2131 "parse.y" > { > > (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),'>',(yyvsp[(3) - (3)].node)); > > > > ;} > break; > > case 212: ># 2139 "parse.y" > { > > (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),328,(yyvsp[(3) - (3)].node)); > > > > ;} > break; > > case 213: ># 2147 "parse.y" > { > > (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),'<',(yyvsp[(3) - (3)].node)); > > > > ;} > break; > > case 214: ># 2155 "parse.y" > { > > (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),329,(yyvsp[(3) - (3)].node)); > > > > ;} > break; > > case 215: ># 2163 "parse.y" > { > > (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),325,(yyvsp[(3) - (3)].node)); > > > > ;} > break; > > case 216: ># 2171 "parse.y" > { > > (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),326,(yyvsp[(3) - (3)].node)); > > > > ;} > break; > > case 217: ># 2179 "parse.y" > { > > (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),327,(yyvsp[(3) - (3)].node)); > > > > ;} > break; > > case 218: ># 2187 "parse.y" > { > > (yyval.node) = match_op_gen(parser, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); > 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) { > (yyval.node) = reg_named_capture_assign_gen(parser,(yyvsp[(1) - (3)].node)->u1.value,(yyval.node)); > } > > > > ;} > break; > > case 219: ># 2198 "parse.y" > { > > (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),333,(yyvsp[(3) - (3)].node)); > > > > ;} > break; > > case 220: ># 2206 "parse.y" > { > > (yyval.node) = call_uni_op_gen(parser, cond_gen(parser, (yyvsp[(2) - (2)].node)),'!'); > > > > ;} > break; > > case 221: ># 2214 "parse.y" > { > > (yyval.node) = call_uni_op_gen(parser, (yyvsp[(2) - (2)].node),'~'); > > > > ;} > break; > > case 222: ># 2222 "parse.y" > { > > (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),338,(yyvsp[(3) - (3)].node)); > > > > ;} > break; > > case 223: ># 2230 "parse.y" > { > > (yyval.node) = call_bin_op_gen(parser, (yyvsp[(1) - (3)].node),339,(yyvsp[(3) - (3)].node)); > > > > ;} > break; > > case 224: ># 2238 "parse.y" > { > > (yyval.node) = logop_gen(parser, NODE_AND, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); > > > > ;} > break; > > case 225: ># 2246 "parse.y" > { > > (yyval.node) = logop_gen(parser, NODE_OR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); > > > > ;} > break; > > case 226: ># 2253 "parse.y" > {(parser->parser_in_defined) = 1;;} > break; > > case 227: ># 2254 "parse.y" > { > > (parser->parser_in_defined) = 0; > (yyval.node) = node_newnode(parser, (NODE_DEFINED), (VALUE)((yyvsp[(4) - (4)].node)), (VALUE)(0), (VALUE)(0)); > > > > > ;} > break; > > case 228: ># 2264 "parse.y" > { > > value_expr_gen(parser, ((yyvsp[(1) - (6)].node)) = remove_begin((yyvsp[(1) - (6)].node))); > (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))); > fixpos((yyval.node), (yyvsp[(1) - (6)].node)); > > > > ;} > break; > > case 229: ># 2274 "parse.y" > { > (yyval.node) = (yyvsp[(1) - (1)].node); > ;} > break; > > case 230: ># 2280 "parse.y" > { > > value_expr_gen(parser, ((yyvsp[(1) - (1)].node)) = remove_begin((yyvsp[(1) - (1)].node))); > (yyval.node) = (yyvsp[(1) - (1)].node); > if (!(yyval.node)) (yyval.node) = node_newnode(parser, (NODE_NIL), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > > > > ;} > break; > > case 232: ># 2293 "parse.y" > { > (yyval.node) = (yyvsp[(1) - (2)].node); > ;} > break; > > case 233: ># 2297 "parse.y" > { > > (yyval.node) = arg_append_gen(parser,(yyvsp[(1) - (4)].node),node_newnode(parser, (NODE_HASH), (VALUE)((yyvsp[(3) - (4)].node)), (VALUE)(0), (VALUE)(0))); > > > > ;} > break; > > case 234: ># 2305 "parse.y" > { > > (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)); > > > > ;} > break; > > case 235: ># 2315 "parse.y" > { > > (yyval.node) = (yyvsp[(2) - (3)].node); > > > > ;} > break; > > case 240: ># 2333 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_ARRAY), (VALUE)((yyvsp[(1) - (1)].node)), (VALUE)(1), (VALUE)(0)); > > > > ;} > break; > > case 241: ># 2341 "parse.y" > { > > (yyval.node) = arg_blk_pass((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node)); > > > > ;} > break; > > case 242: ># 2349 "parse.y" > { > > (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)); > (yyval.node) = arg_blk_pass((yyval.node), (yyvsp[(2) - (2)].node)); > > > > > ;} > break; > > case 243: ># 2359 "parse.y" > { > > (yyval.node) = arg_append_gen(parser,(yyvsp[(1) - (4)].node),node_newnode(parser, (NODE_HASH), (VALUE)((yyvsp[(3) - (4)].node)), (VALUE)(0), (VALUE)(0))); > (yyval.node) = arg_blk_pass((yyval.node), (yyvsp[(4) - (4)].node)); > > > > ;} > break; > > case 245: ># 2376 "parse.y" > { > (yyval.num) = (parser->parser_cmdarg_stack); > ((parser->parser_cmdarg_stack) = ((parser->parser_cmdarg_stack)<<1)|((1)&1)); > ;} > break; > > case 246: ># 2381 "parse.y" > { > > (parser->parser_cmdarg_stack) = (yyvsp[(1) - (2)].num); > (yyval.node) = (yyvsp[(2) - (2)].node); > ;} > break; > > case 247: ># 2389 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_BLOCK_PASS), (VALUE)(0), (VALUE)((yyvsp[(2) - (2)].node)), (VALUE)(0)); > > > > ;} > break; > > case 248: ># 2399 "parse.y" > { > (yyval.node) = (yyvsp[(2) - (2)].node); > ;} > break; > > case 249: ># 2403 "parse.y" > { > (yyval.node) = 0; > ;} > break; > > case 250: ># 2407 "parse.y" > { > (yyval.node) = 0; > ;} > break; > > case 251: ># 2413 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_ARRAY), (VALUE)((yyvsp[(1) - (1)].node)), (VALUE)(1), (VALUE)(0)); > > > > ;} > break; > > case 252: ># 2421 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_SPLAT), (VALUE)((yyvsp[(2) - (2)].node)), (VALUE)(0), (VALUE)(0)); > > > > ;} > break; > > case 253: ># 2429 "parse.y" > { > > NODE *n1; > if ((n1 = splat_array((yyvsp[(1) - (3)].node))) != 0) { > (yyval.node) = list_append_gen(parser,n1,(yyvsp[(3) - (3)].node)); > } > else { > (yyval.node) = arg_append_gen(parser,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node)); > } > > > > ;} > break; > > case 254: ># 2443 "parse.y" > { > > NODE *n1; > if ((((int) (((((struct RNode*)((yyvsp[(4) - (4)].node))))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_ARRAY) && (n1 = splat_array((yyvsp[(1) - (4)].node))) != 0) { > (yyval.node) = list_concat_gen(parser,n1,(yyvsp[(4) - (4)].node)); > } > else { > (yyval.node) = arg_concat_gen(parser,(yyvsp[(1) - (4)].node),(yyvsp[(4) - (4)].node)); > } > > > > ;} > break; > > case 255: ># 2459 "parse.y" > { > > NODE *n1; > if ((n1 = splat_array((yyvsp[(1) - (3)].node))) != 0) { > (yyval.node) = list_append_gen(parser,n1,(yyvsp[(3) - (3)].node)); > } > else { > (yyval.node) = arg_append_gen(parser,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node)); > } > > > > ;} > break; > > case 256: ># 2473 "parse.y" > { > > NODE *n1; > if (((int) (((((struct RNode*)((yyvsp[(4) - (4)].node))))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_ARRAY && > (n1 = splat_array((yyvsp[(1) - (4)].node))) != 0) { > (yyval.node) = list_concat_gen(parser,n1,(yyvsp[(4) - (4)].node)); > } > else { > (yyval.node) = arg_concat_gen(parser,(yyvsp[(1) - (4)].node),(yyvsp[(4) - (4)].node)); > } > > > > ;} > break; > > case 257: ># 2488 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_SPLAT), (VALUE)((yyvsp[(2) - (2)].node)), (VALUE)(0), (VALUE)(0)); > > > > ;} > break; > > case 266: ># 2506 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_FCALL), (VALUE)(0), (VALUE)((yyvsp[(1) - (1)].id)), (VALUE)(0)); > > > > ;} > break; > > case 267: ># 2514 "parse.y" > { > > (yyval.num) = (parser->parser_ruby_sourceline); > > > ;} > break; > > case 268: ># 2522 "parse.y" > { > > if ((yyvsp[(3) - (4)].node) == ((void *)0)) { > (yyval.node) = node_newnode(parser, (NODE_NIL), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > } > else { > if (((int) (((((struct RNode*)((yyvsp[(3) - (4)].node))))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_RESCUE || > ((int) (((((struct RNode*)((yyvsp[(3) - (4)].node))))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_ENSURE) > ((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))); > (yyval.node) = node_newnode(parser, (NODE_BEGIN), (VALUE)(0), (VALUE)((yyvsp[(3) - (4)].node)), (VALUE)(0)); > } > ((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))); > > > > ;} > break; > > case 269: ># 2538 "parse.y" > {(parser->parser_lex_state) = EXPR_ENDARG;;} > break; > > case 270: ># 2539 "parse.y" > { > rb_compile_warning((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "(...) interpreted as grouped expression"); > > (yyval.node) = (yyvsp[(2) - (4)].node); > > > > ;} > break; > > case 271: ># 2548 "parse.y" > { > > (yyval.node) = (yyvsp[(2) - (3)].node); > > > > ;} > break; > > case 272: ># 2556 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_COLON2), (VALUE)((yyvsp[(1) - (3)].node)), (VALUE)((yyvsp[(3) - (3)].id)), (VALUE)(0)); > > > > ;} > break; > > case 273: ># 2564 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_COLON3), (VALUE)(0), (VALUE)((yyvsp[(2) - (2)].id)), (VALUE)(0)); > > > > ;} > break; > > case 274: ># 2572 "parse.y" > { > > if ((yyvsp[(2) - (3)].node) == 0) { > (yyval.node) = node_newnode(parser, (NODE_ZARRAY), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > } > else { > (yyval.node) = (yyvsp[(2) - (3)].node); > } > > > > ;} > break; > > case 275: ># 2585 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_HASH), (VALUE)((yyvsp[(2) - (3)].node)), (VALUE)(0), (VALUE)(0)); > > > > ;} > break; > > case 276: ># 2593 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_RETURN), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > > > > ;} > break; > > case 277: ># 2601 "parse.y" > { > > (yyval.node) = new_yield_gen(parser, (yyvsp[(3) - (4)].node)); > > > > ;} > break; > > case 278: ># 2609 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_YIELD), (VALUE)(0), (VALUE)(0), (VALUE)(((VALUE)RUBY_Qfalse))); > > > > ;} > break; > > case 279: ># 2617 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_YIELD), (VALUE)(0), (VALUE)(0), (VALUE)(((VALUE)RUBY_Qfalse))); > > > > ;} > break; > > case 280: ># 2624 "parse.y" > {(parser->parser_in_defined) = 1;;} > break; > > case 281: ># 2625 "parse.y" > { > > (parser->parser_in_defined) = 0; > (yyval.node) = node_newnode(parser, (NODE_DEFINED), (VALUE)((yyvsp[(5) - (6)].node)), (VALUE)(0), (VALUE)(0)); > > > > > ;} > break; > > case 282: ># 2635 "parse.y" > { > > (yyval.node) = call_uni_op_gen(parser, cond_gen(parser, (yyvsp[(3) - (4)].node)),'!'); > > > > ;} > break; > > case 283: ># 2643 "parse.y" > { > > (yyval.node) = call_uni_op_gen(parser, cond_gen(parser, node_newnode(parser, (NODE_NIL), (VALUE)(0), (VALUE)(0), (VALUE)(0))),'!'); > > > > ;} > break; > > case 284: ># 2651 "parse.y" > { > > (yyvsp[(2) - (2)].node)->u3.node = node_newnode(parser, (NODE_FCALL), (VALUE)(0), (VALUE)((yyvsp[(1) - (2)].id)), (VALUE)(0)); > (yyval.node) = (yyvsp[(2) - (2)].node); > fixpos((yyvsp[(2) - (2)].node)->u3.node, (yyvsp[(2) - (2)].node)); > > > > > ;} > break; > > case 286: ># 2663 "parse.y" > { > > block_dup_check_gen(parser,(yyvsp[(1) - (2)].node)->u3.node,(yyvsp[(2) - (2)].node)); > (yyvsp[(2) - (2)].node)->u3.node = (yyvsp[(1) - (2)].node); > (yyval.node) = (yyvsp[(2) - (2)].node); > fixpos((yyval.node), (yyvsp[(1) - (2)].node)); > > > > ;} > break; > > case 287: ># 2674 "parse.y" > { > (yyval.node) = (yyvsp[(2) - (2)].node); > ;} > break; > > case 288: ># 2681 "parse.y" > { > > (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))); > fixpos((yyval.node), (yyvsp[(2) - (6)].node)); > > > > ;} > break; > > case 289: ># 2693 "parse.y" > { > > (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))); > fixpos((yyval.node), (yyvsp[(2) - (6)].node)); > > > > ;} > break; > > case 290: ># 2701 "parse.y" > {((parser->parser_cond_stack) = ((parser->parser_cond_stack)<<1)|((1)&1));;} > break; > > case 291: ># 2701 "parse.y" > {((parser->parser_cond_stack) = (parser->parser_cond_stack) >> 1);;} > break; > > case 292: ># 2704 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_WHILE), (VALUE)(cond_gen(parser, (yyvsp[(3) - (7)].node))), (VALUE)((yyvsp[(6) - (7)].node)), (VALUE)(1)); > fixpos((yyval.node), (yyvsp[(3) - (7)].node)); > > > > ;} > break; > > case 293: ># 2712 "parse.y" > {((parser->parser_cond_stack) = ((parser->parser_cond_stack)<<1)|((1)&1));;} > break; > > case 294: ># 2712 "parse.y" > {((parser->parser_cond_stack) = (parser->parser_cond_stack) >> 1);;} > break; > > case 295: ># 2715 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_UNTIL), (VALUE)(cond_gen(parser, (yyvsp[(3) - (7)].node))), (VALUE)((yyvsp[(6) - (7)].node)), (VALUE)(1)); > fixpos((yyval.node), (yyvsp[(3) - (7)].node)); > > > > ;} > break; > > case 296: ># 2726 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_CASE), (VALUE)((yyvsp[(2) - (5)].node)), (VALUE)((yyvsp[(4) - (5)].node)), (VALUE)(0)); > fixpos((yyval.node), (yyvsp[(2) - (5)].node)); > > > > ;} > break; > > case 297: ># 2735 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_CASE), (VALUE)(0), (VALUE)((yyvsp[(3) - (4)].node)), (VALUE)(0)); > > > > ;} > break; > > case 298: ># 2743 "parse.y" > {((parser->parser_cond_stack) = ((parser->parser_cond_stack)<<1)|((1)&1));;} > break; > > case 299: ># 2745 "parse.y" > {((parser->parser_cond_stack) = (parser->parser_cond_stack) >> 1);;} > break; > > case 300: ># 2748 "parse.y" > { ># 2759 "parse.y" > ID id = internal_id_gen(parser); > ID *tbl = (ID*)ruby_xmalloc2((2),sizeof(ID)); > NODE *m = node_newnode(parser, (NODE_ARGS_AUX), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > NODE *args, *scope; > > if (((int) (((((struct RNode*)((yyvsp[(2) - (9)].node))))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_MASGN) { > > > > > 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)); > 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)); > 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)))); ># 2784 "parse.y" > args = new_args_gen(parser, m,0,id,0,0); > } > else { > if (((int) (((((struct RNode*)((yyvsp[(2) - (9)].node))))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_LASGN || > ((int) (((((struct RNode*)((yyvsp[(2) - (9)].node))))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_DASGN || > ((int) (((((struct RNode*)((yyvsp[(2) - (9)].node))))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_DASGN_CURR) { > (yyvsp[(2) - (9)].node)->u2.node = node_newnode(parser, (NODE_DVAR), (VALUE)(id), (VALUE)(0), (VALUE)(0)); > m->u2.argc = 1; > m->u3.node = (yyvsp[(2) - (9)].node); > args = new_args_gen(parser, m,0,0,0,0); > } > else { > 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))); > args = new_args_gen(parser, m,0,id,0,0); > } > } > scope = node_newnode(parser, (NODE_SCOPE), (VALUE)(tbl), (VALUE)((yyvsp[(8) - (9)].node)), (VALUE)(args)); > tbl[0] = 1; tbl[1] = id; > (yyval.node) = node_newnode(parser, (NODE_FOR), (VALUE)(0), (VALUE)(scope), (VALUE)((yyvsp[(5) - (9)].node))); > fixpos((yyval.node), (yyvsp[(2) - (9)].node)); > > > > ;} > break; > > case 301: ># 2809 "parse.y" > { > if ((parser->parser_in_def) || (parser->parser_in_single)) > parser_yyerror(parser, "class definition in method body"); > > local_push_gen(parser,0); > (yyval.num) = (parser->parser_ruby_sourceline); > > > ;} > break; > > case 302: ># 2820 "parse.y" > { > > (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)))); > ((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))); > local_pop_gen(parser); > > > > ;} > break; > > case 303: ># 2830 "parse.y" > { > (yyval.num) = (parser->parser_in_def); > (parser->parser_in_def) = 0; > ;} > break; > > case 304: ># 2835 "parse.y" > { > (yyval.num) = (parser->parser_in_single); > (parser->parser_in_single) = 0; > > local_push_gen(parser,0); > > > ;} > break; > > case 305: ># 2845 "parse.y" > { > > (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)); > fixpos((yyval.node), (yyvsp[(3) - (8)].node)); > local_pop_gen(parser); > > > > (parser->parser_in_def) = (yyvsp[(4) - (8)].num); > (parser->parser_in_single) = (yyvsp[(6) - (8)].num); > ;} > break; > > case 306: ># 2857 "parse.y" > { > if ((parser->parser_in_def) || (parser->parser_in_single)) > parser_yyerror(parser, "module definition in method body"); > > local_push_gen(parser,0); > (yyval.num) = (parser->parser_ruby_sourceline); > > > ;} > break; > > case 307: ># 2868 "parse.y" > { > > (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)); > ((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))); > local_pop_gen(parser); > > > > ;} > break; > > case 308: ># 2878 "parse.y" > { > (yyval.id) = (parser->parser_cur_mid); > (parser->parser_cur_mid) = (yyvsp[(2) - (2)].id); > (parser->parser_in_def)++; > > local_push_gen(parser,0); > > > ;} > break; > > case 309: ># 2890 "parse.y" > { > > NODE *body = remove_begin((yyvsp[(5) - (6)].node)); > reduce_nodes_gen(parser,&body); > (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))))); > fixpos((yyval.node), (yyvsp[(4) - (6)].node)); > fixpos((yyval.node)->u3.node, (yyvsp[(4) - (6)].node)); > local_pop_gen(parser); > > > > (parser->parser_in_def)--; > (parser->parser_cur_mid) = (yyvsp[(3) - (6)].id); > ;} > break; > > case 310: ># 2904 "parse.y" > {(parser->parser_lex_state) = EXPR_FNAME;;} > break; > > case 311: ># 2905 "parse.y" > { > (parser->parser_in_single)++; > (parser->parser_lex_state) = EXPR_END; > > local_push_gen(parser,0); > > > ;} > break; > > case 312: ># 2916 "parse.y" > { > > NODE *body = remove_begin((yyvsp[(8) - (9)].node)); > reduce_nodes_gen(parser,&body); > (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))))); > fixpos((yyval.node), (yyvsp[(2) - (9)].node)); > fixpos((yyval.node)->u3.node, (yyvsp[(2) - (9)].node)); > local_pop_gen(parser); > > > > (parser->parser_in_single)--; > ;} > break; > > case 313: ># 2930 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_BREAK), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > > > > ;} > break; > > case 314: ># 2938 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_NEXT), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > > > > ;} > break; > > case 315: ># 2946 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_REDO), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > > > > ;} > break; > > case 316: ># 2954 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_RETRY), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > > > > ;} > break; > > case 317: ># 2964 "parse.y" > { > > value_expr_gen(parser, ((yyvsp[(1) - (1)].node)) = remove_begin((yyvsp[(1) - (1)].node))); > (yyval.node) = (yyvsp[(1) - (1)].node); > if (!(yyval.node)) (yyval.node) = node_newnode(parser, (NODE_NIL), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > > > > ;} > break; > > case 318: ># 2976 "parse.y" > { > > if ((((VALUE)((*rb_ruby_verbose_ptr())) & ~((VALUE)RUBY_Qnil)) != 0)) token_info_push(parser, "begin"); > > ;} > break; > > case 319: ># 2983 "parse.y" > { > > if ((((VALUE)((*rb_ruby_verbose_ptr())) & ~((VALUE)RUBY_Qnil)) != 0)) token_info_push(parser, "if"); > > ;} > break; > > case 320: ># 2990 "parse.y" > { > > if ((((VALUE)((*rb_ruby_verbose_ptr())) & ~((VALUE)RUBY_Qnil)) != 0)) token_info_push(parser, "unless"); > > ;} > break; > > case 321: ># 2997 "parse.y" > { > > if ((((VALUE)((*rb_ruby_verbose_ptr())) & ~((VALUE)RUBY_Qnil)) != 0)) token_info_push(parser, "while"); > > ;} > break; > > case 322: ># 3004 "parse.y" > { > > if ((((VALUE)((*rb_ruby_verbose_ptr())) & ~((VALUE)RUBY_Qnil)) != 0)) token_info_push(parser, "until"); > > ;} > break; > > case 323: ># 3011 "parse.y" > { > > if ((((VALUE)((*rb_ruby_verbose_ptr())) & ~((VALUE)RUBY_Qnil)) != 0)) token_info_push(parser, "case"); > > ;} > break; > > case 324: ># 3018 "parse.y" > { > > if ((((VALUE)((*rb_ruby_verbose_ptr())) & ~((VALUE)RUBY_Qnil)) != 0)) token_info_push(parser, "for"); > > ;} > break; > > case 325: ># 3025 "parse.y" > { > > if ((((VALUE)((*rb_ruby_verbose_ptr())) & ~((VALUE)RUBY_Qnil)) != 0)) token_info_push(parser, "class"); > > ;} > break; > > case 326: ># 3032 "parse.y" > { > > if ((((VALUE)((*rb_ruby_verbose_ptr())) & ~((VALUE)RUBY_Qnil)) != 0)) token_info_push(parser, "module"); > > ;} > break; > > case 327: ># 3039 "parse.y" > { > > if ((((VALUE)((*rb_ruby_verbose_ptr())) & ~((VALUE)RUBY_Qnil)) != 0)) token_info_push(parser, "def"); > > ;} > break; > > case 328: ># 3046 "parse.y" > { > > if ((((VALUE)((*rb_ruby_verbose_ptr())) & ~((VALUE)RUBY_Qnil)) != 0)) token_info_pop(parser, "end"); > > ;} > break; > > case 335: ># 3077 "parse.y" > { > > (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))); > fixpos((yyval.node), (yyvsp[(2) - (5)].node)); > > > > ;} > break; > > case 337: ># 3089 "parse.y" > { > > (yyval.node) = (yyvsp[(2) - (2)].node); > > > > ;} > break; > > case 340: ># 3103 "parse.y" > { > > (yyval.node) = assignable_gen(parser, (yyvsp[(1) - (1)].id), 0); > > > > ;} > break; > > case 341: ># 3111 "parse.y" > { > > (yyval.node) = (yyvsp[(2) - (3)].node); > > > > ;} > break; > > case 342: ># 3121 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_ARRAY), (VALUE)((yyvsp[(1) - (1)].node)), (VALUE)(1), (VALUE)(0)); > > > > ;} > break; > > case 343: ># 3129 "parse.y" > { > > (yyval.node) = list_append_gen(parser,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node)); > > > > ;} > break; > > case 344: ># 3139 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_MASGN), (VALUE)((yyvsp[(1) - (1)].node)), (VALUE)(0), (VALUE)(0)); > > > > ;} > break; > > case 345: ># 3147 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_MASGN), (VALUE)((yyvsp[(1) - (4)].node)), (VALUE)(0), (VALUE)(assignable_gen(parser, (yyvsp[(4) - (4)].id), 0))); > > > > ;} > break; > > case 346: ># 3155 "parse.y" > { > > (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)))); > > > > ;} > break; > > case 347: ># 3163 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_MASGN), (VALUE)((yyvsp[(1) - (3)].node)), (VALUE)(0), (VALUE)(-1)); > > > > ;} > break; > > case 348: ># 3171 "parse.y" > { > > (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)))); > > > > ;} > break; > > case 349: ># 3179 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_MASGN), (VALUE)(0), (VALUE)(0), (VALUE)(assignable_gen(parser, (yyvsp[(2) - (2)].id), 0))); > > > > ;} > break; > > case 350: ># 3187 "parse.y" > { > > (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)))); > > > > > > > ;} > break; > > case 351: ># 3198 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_MASGN), (VALUE)(0), (VALUE)(0), (VALUE)(-1)); > > > > ;} > break; > > case 352: ># 3206 "parse.y" > { > > (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)))); > > > > ;} > break; > > case 353: ># 3216 "parse.y" > { > > (yyval.node) = new_args_gen(parser, (yyvsp[(1) - (6)].node),(yyvsp[(3) - (6)].node),(yyvsp[(5) - (6)].id),0,(yyvsp[(6) - (6)].id)); > > > > ;} > break; > > case 354: ># 3224 "parse.y" > { > > (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)); > > > > ;} > break; > > case 355: ># 3232 "parse.y" > { > > (yyval.node) = new_args_gen(parser, (yyvsp[(1) - (4)].node),(yyvsp[(3) - (4)].node),0,0,(yyvsp[(4) - (4)].id)); > > > > ;} > break; > > case 356: ># 3240 "parse.y" > { > > (yyval.node) = new_args_gen(parser, (yyvsp[(1) - (6)].node),(yyvsp[(3) - (6)].node),0,(yyvsp[(5) - (6)].node),(yyvsp[(6) - (6)].id)); > > > > ;} > break; > > case 357: ># 3248 "parse.y" > { > > (yyval.node) = new_args_gen(parser, (yyvsp[(1) - (4)].node),0,(yyvsp[(3) - (4)].id),0,(yyvsp[(4) - (4)].id)); > > > > ;} > break; > > case 358: ># 3256 "parse.y" > { > > (yyval.node) = new_args_gen(parser, (yyvsp[(1) - (2)].node),0,1,0,0); > > > > > ;} > break; > > case 359: ># 3265 "parse.y" > { > > (yyval.node) = new_args_gen(parser, (yyvsp[(1) - (6)].node),0,(yyvsp[(3) - (6)].id),(yyvsp[(5) - (6)].node),(yyvsp[(6) - (6)].id)); > > > > ;} > break; > > case 360: ># 3273 "parse.y" > { > > (yyval.node) = new_args_gen(parser, (yyvsp[(1) - (2)].node),0,0,0,(yyvsp[(2) - (2)].id)); > > > > ;} > break; > > case 361: ># 3281 "parse.y" > { > > (yyval.node) = new_args_gen(parser, 0,(yyvsp[(1) - (4)].node),(yyvsp[(3) - (4)].id),0,(yyvsp[(4) - (4)].id)); > > > > ;} > break; > > case 362: ># 3289 "parse.y" > { > > (yyval.node) = new_args_gen(parser, 0,(yyvsp[(1) - (6)].node),(yyvsp[(3) - (6)].id),(yyvsp[(5) - (6)].node),(yyvsp[(6) - (6)].id)); > > > > ;} > break; > > case 363: ># 3297 "parse.y" > { > > (yyval.node) = new_args_gen(parser, 0,(yyvsp[(1) - (2)].node),0,0,(yyvsp[(2) - (2)].id)); > > > > ;} > break; > > case 364: ># 3305 "parse.y" > { > > (yyval.node) = new_args_gen(parser, 0,(yyvsp[(1) - (4)].node),0,(yyvsp[(3) - (4)].node),(yyvsp[(4) - (4)].id)); > > > > ;} > break; > > case 365: ># 3313 "parse.y" > { > > (yyval.node) = new_args_gen(parser, 0,0,(yyvsp[(1) - (2)].id),0,(yyvsp[(2) - (2)].id)); > > > > ;} > break; > > case 366: ># 3321 "parse.y" > { > > (yyval.node) = new_args_gen(parser, 0,0,(yyvsp[(1) - (4)].id),(yyvsp[(3) - (4)].node),(yyvsp[(4) - (4)].id)); > > > > ;} > break; > > case 367: ># 3329 "parse.y" > { > > (yyval.node) = new_args_gen(parser, 0,0,0,0,(yyvsp[(1) - (1)].id)); > > > > ;} > break; > > case 369: ># 3340 "parse.y" > { > (parser->parser_command_start) = ((VALUE)RUBY_Qtrue); > ;} > break; > > case 370: ># 3346 "parse.y" > { > > (yyval.node) = 0; > > > > > ;} > break; > > case 371: ># 3355 "parse.y" > { > > (yyval.node) = 0; > > > > > ;} > break; > > case 372: ># 3364 "parse.y" > { > > (yyval.node) = (yyvsp[(2) - (4)].node); > > > > ;} > break; > > case 374: ># 3376 "parse.y" > { > > (yyval.node) = 0; > > > > ;} > break; > > case 377: ># 3402 "parse.y" > { > > new_bv_gen(parser, (yyvsp[(1) - (1)].id)); > > > > ;} > break; > > case 378: ># 3410 "parse.y" > { > (yyval.node) = 0; > ;} > break; > > case 379: ># 3415 "parse.y" > { > > dyna_push_gen(parser); > > > (yyval.num) = (parser->parser_lpar_beg); > (parser->parser_lpar_beg) = ++(parser->parser_paren_nest); > ;} > break; > > case 380: ># 3425 "parse.y" > { > (parser->parser_lpar_beg) = (yyvsp[(1) - (3)].num); > > (yyval.node) = (yyvsp[(2) - (3)].node); > (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)); > dyna_pop_gen(parser); > > > > ;} > break; > > case 381: ># 3438 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_LAMBDA), (VALUE)((yyvsp[(2) - (4)].node)), (VALUE)(0), (VALUE)(0)); > > > > ;} > break; > > case 382: ># 3446 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_LAMBDA), (VALUE)((yyvsp[(1) - (1)].node)), (VALUE)(0), (VALUE)(0)); > > > > ;} > break; > > case 383: ># 3456 "parse.y" > { > (yyval.node) = (yyvsp[(2) - (3)].node); > ;} > break; > > case 384: ># 3460 "parse.y" > { > (yyval.node) = (yyvsp[(2) - (3)].node); > ;} > break; > > case 385: ># 3466 "parse.y" > { > > dyna_push_gen(parser); > (yyval.num) = (parser->parser_ruby_sourceline); > > ;} > break; > > case 386: ># 3475 "parse.y" > { > > (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)); > ((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))); > dyna_pop_gen(parser); > > > > ;} > break; > > case 387: ># 3487 "parse.y" > { > > if (((int) (((((struct RNode*)((yyvsp[(1) - (2)].node))))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_YIELD) { > parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "block given to yield"); > } > else { > block_dup_check_gen(parser,(yyvsp[(1) - (2)].node)->u3.node,(yyvsp[(2) - (2)].node)); > } > (yyvsp[(2) - (2)].node)->u3.node = (yyvsp[(1) - (2)].node); > (yyval.node) = (yyvsp[(2) - (2)].node); > fixpos((yyval.node), (yyvsp[(1) - (2)].node)); > > > > ;} > break; > > case 388: ># 3503 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_CALL), (VALUE)((yyvsp[(1) - (4)].node)), (VALUE)((yyvsp[(3) - (4)].id)), (VALUE)((yyvsp[(4) - (4)].node))); > > > > > ;} > break; > > case 389: ># 3512 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_CALL), (VALUE)((yyvsp[(1) - (4)].node)), (VALUE)((yyvsp[(3) - (4)].id)), (VALUE)((yyvsp[(4) - (4)].node))); > > > > > ;} > break; > > case 390: ># 3523 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_FCALL), (VALUE)(0), (VALUE)((yyvsp[(1) - (2)].id)), (VALUE)((yyvsp[(2) - (2)].node))); > fixpos((yyval.node), (yyvsp[(2) - (2)].node)); > > > > ;} > break; > > case 391: ># 3532 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_CALL), (VALUE)((yyvsp[(1) - (4)].node)), (VALUE)((yyvsp[(3) - (4)].id)), (VALUE)((yyvsp[(4) - (4)].node))); > fixpos((yyval.node), (yyvsp[(1) - (4)].node)); > > > > > ;} > break; > > case 392: ># 3542 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_CALL), (VALUE)((yyvsp[(1) - (4)].node)), (VALUE)((yyvsp[(3) - (4)].id)), (VALUE)((yyvsp[(4) - (4)].node))); > fixpos((yyval.node), (yyvsp[(1) - (4)].node)); > > > > > ;} > break; > > case 393: ># 3552 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_CALL), (VALUE)((yyvsp[(1) - (3)].node)), (VALUE)((yyvsp[(3) - (3)].id)), (VALUE)(0)); > > > > ;} > break; > > case 394: ># 3560 "parse.y" > { > > (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))); > fixpos((yyval.node), (yyvsp[(1) - (3)].node)); > > > > > > ;} > break; > > case 395: ># 3571 "parse.y" > { > > (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))); > fixpos((yyval.node), (yyvsp[(1) - (3)].node)); > > > > > > ;} > break; > > case 396: ># 3582 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_SUPER), (VALUE)(0), (VALUE)(0), (VALUE)((yyvsp[(2) - (2)].node))); > > > > ;} > break; > > case 397: ># 3590 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_ZSUPER), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > > > > ;} > break; > > case 398: ># 3598 "parse.y" > { > > if ((yyvsp[(1) - (4)].node) && ((int) (((((struct RNode*)((yyvsp[(1) - (4)].node))))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_SELF) > (yyval.node) = node_newnode(parser, (NODE_FCALL), (VALUE)(0), (VALUE)(336), (VALUE)((yyvsp[(3) - (4)].node))); > else > (yyval.node) = node_newnode(parser, (NODE_CALL), (VALUE)((yyvsp[(1) - (4)].node)), (VALUE)(336), (VALUE)((yyvsp[(3) - (4)].node))); > fixpos((yyval.node), (yyvsp[(1) - (4)].node)); > > > > ;} > break; > > case 399: ># 3612 "parse.y" > { > > dyna_push_gen(parser); > (yyval.num) = (parser->parser_ruby_sourceline); > > > ;} > break; > > case 400: ># 3621 "parse.y" > { > > (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)); > ((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))); > ((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))); > ((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))); > dyna_pop_gen(parser); > > > > ;} > break; > > case 401: ># 3633 "parse.y" > { > > dyna_push_gen(parser); > (yyval.num) = (parser->parser_ruby_sourceline); > > > ;} > break; > > case 402: ># 3642 "parse.y" > { > > (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)); > ((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))); > dyna_pop_gen(parser); > > > > ;} > break; > > case 403: ># 3656 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_WHEN), (VALUE)((yyvsp[(2) - (5)].node)), (VALUE)((yyvsp[(4) - (5)].node)), (VALUE)((yyvsp[(5) - (5)].node))); > > > > ;} > break; > > case 406: ># 3672 "parse.y" > { > > if ((yyvsp[(3) - (6)].node)) { > (yyvsp[(3) - (6)].node) = node_assign_gen(parser, (yyvsp[(3) - (6)].node), node_newnode(parser, (NODE_ERRINFO), (VALUE)(0), (VALUE)(0), (VALUE)(0))); > (yyvsp[(5) - (6)].node) = block_append_gen(parser,(yyvsp[(3) - (6)].node),(yyvsp[(5) - (6)].node)); > } > (yyval.node) = node_newnode(parser, (NODE_RESBODY), (VALUE)((yyvsp[(6) - (6)].node)), (VALUE)((yyvsp[(5) - (6)].node)), (VALUE)((yyvsp[(2) - (6)].node))); > fixpos((yyval.node), (yyvsp[(2) - (6)].node)?(yyvsp[(2) - (6)].node):(yyvsp[(5) - (6)].node)); > > > > > > > > ;} > break; > > case 408: ># 3692 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_ARRAY), (VALUE)((yyvsp[(1) - (1)].node)), (VALUE)(1), (VALUE)(0)); > > > > ;} > break; > > case 409: ># 3700 "parse.y" > { > > if (!((yyval.node) = splat_array((yyvsp[(1) - (1)].node)))) (yyval.node) = (yyvsp[(1) - (1)].node); > > > > ;} > break; > > case 411: ># 3711 "parse.y" > { > (yyval.node) = (yyvsp[(2) - (2)].node); > ;} > break; > > case 413: ># 3718 "parse.y" > { > > (yyval.node) = (yyvsp[(2) - (2)].node); > > > > ;} > break; > > case 416: ># 3730 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_LIT), (VALUE)((((VALUE)((yyvsp[(1) - (1)].id))<<RUBY_SPECIAL_SHIFT)|RUBY_SYMBOL_FLAG)), (VALUE)(0), (VALUE)(0)); > > > > ;} > break; > > case 418: ># 3741 "parse.y" > { > > NODE *node = (yyvsp[(1) - (1)].node); > if (!node) { > node = node_newnode(parser, (NODE_STR), (VALUE)(rb_enc_str_new(0,0,parser->enc)), (VALUE)(0), (VALUE)(0)); > } > else { > node = evstr2dstr_gen(parser,node); > } > (yyval.node) = node; > > > > ;} > break; > > case 421: ># 3760 "parse.y" > { > > (yyval.node) = literal_concat_gen(parser,(yyvsp[(1) - (2)].node),(yyvsp[(2) - (2)].node)); > > > > ;} > break; > > case 422: ># 3770 "parse.y" > { > > (yyval.node) = (yyvsp[(2) - (3)].node); > > > > ;} > break; > > case 423: ># 3780 "parse.y" > { > > NODE *node = (yyvsp[(2) - (3)].node); > if (!node) { > node = node_newnode(parser, (NODE_XSTR), (VALUE)(rb_enc_str_new(0,0,parser->enc)), (VALUE)(0), (VALUE)(0)); > } > else { > switch (((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8))) { > case NODE_STR: > ((struct RNode*)(node))->flags=((((struct RNode*)(node))->flags&~(((VALUE)0x7f)<<8))|(((NODE_XSTR)<<8)&(((VALUE)0x7f)<<8))); > break; > case NODE_DSTR: > ((struct RNode*)(node))->flags=((((struct RNode*)(node))->flags&~(((VALUE)0x7f)<<8))|(((NODE_DXSTR)<<8)&(((VALUE)0x7f)<<8))); > break; > default: > 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)))); > break; > } > } > (yyval.node) = node; > > > > ;} > break; > > case 424: ># 3807 "parse.y" > { > > int options = (yyvsp[(3) - (3)].num); > NODE *node = (yyvsp[(2) - (3)].node); > NODE *list; > if (!node) { > node = node_newnode(parser, (NODE_LIT), (VALUE)(reg_compile_gen(parser, rb_enc_str_new(0,0,parser->enc), options)), (VALUE)(0), (VALUE)(0)); > } > else switch (((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8))) { > case NODE_STR: > { > VALUE src = node->u1.value; > ((struct RNode*)(node))->flags=((((struct RNode*)(node))->flags&~(((VALUE)0x7f)<<8))|(((NODE_LIT)<<8)&(((VALUE)0x7f)<<8))); > node->u1.value = reg_compile_gen(parser, src, options); > } > break; > default: > 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)))); > case NODE_DSTR: > if (options & (1<<16)) { > ((struct RNode*)(node))->flags=((((struct RNode*)(node))->flags&~(((VALUE)0x7f)<<8))|(((NODE_DREGX_ONCE)<<8)&(((VALUE)0x7f)<<8))); > } > else { > ((struct RNode*)(node))->flags=((((struct RNode*)(node))->flags&~(((VALUE)0x7f)<<8))|(((NODE_DREGX)<<8)&(((VALUE)0x7f)<<8))); > } > node->u2.id = options & 0xff; > reg_fragment_check_gen(parser, node->u1.value, options); > for (list = node->u3.node; list; list = list->u3.node) { > if (((int) (((((struct RNode*)(list->u1.node)))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_STR) { > reg_fragment_check_gen(parser, list->u1.node->u1.value, options); > } > } > break; > } > (yyval.node) = node; > > > > ;} > break; > > case 425: ># 3849 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_ZARRAY), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > > > > ;} > break; > > case 426: ># 3857 "parse.y" > { > (yyval.node) = (yyvsp[(2) - (3)].node); > ;} > break; > > case 427: ># 3863 "parse.y" > { > > (yyval.node) = 0; > > > > ;} > break; > > case 428: ># 3871 "parse.y" > { > > (yyval.node) = list_append_gen(parser,(yyvsp[(1) - (3)].node),evstr2dstr_gen(parser,(yyvsp[(2) - (3)].node))); > > > > ;} > break; > > case 430: ># 3889 "parse.y" > { > > (yyval.node) = literal_concat_gen(parser,(yyvsp[(1) - (2)].node),(yyvsp[(2) - (2)].node)); > > > > ;} > break; > > case 431: ># 3899 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_ZARRAY), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > > > > ;} > break; > > case 432: ># 3907 "parse.y" > { > (yyval.node) = (yyvsp[(2) - (3)].node); > ;} > break; > > case 433: ># 3913 "parse.y" > { > > (yyval.node) = 0; > > > > ;} > break; > > case 434: ># 3921 "parse.y" > { > > (yyval.node) = list_append_gen(parser,(yyvsp[(1) - (3)].node),(yyvsp[(2) - (3)].node)); > > > > ;} > break; > > case 435: ># 3931 "parse.y" > { > > (yyval.node) = 0; > > > > ;} > break; > > case 436: ># 3939 "parse.y" > { > > (yyval.node) = literal_concat_gen(parser,(yyvsp[(1) - (2)].node),(yyvsp[(2) - (2)].node)); > > > > ;} > break; > > case 437: ># 3949 "parse.y" > { > > (yyval.node) = 0; > > > > ;} > break; > > case 438: ># 3957 "parse.y" > { > > (yyval.node) = literal_concat_gen(parser,(yyvsp[(1) - (2)].node),(yyvsp[(2) - (2)].node)); > > > > ;} > break; > > case 440: ># 3968 "parse.y" > { > (yyval.node) = (parser->parser_lex_strterm); > (parser->parser_lex_strterm) = 0; > (parser->parser_lex_state) = EXPR_BEG; > ;} > break; > > case 441: ># 3974 "parse.y" > { > > (parser->parser_lex_strterm) = (yyvsp[(2) - (3)].node); > (yyval.node) = node_newnode(parser, (NODE_EVSTR), (VALUE)(0), (VALUE)(((yyvsp[(3) - (3)].node))), (VALUE)(0)); > > > > > ;} > break; > > case 442: ># 3984 "parse.y" > { > (yyval.node) = (parser->parser_lex_strterm); > (parser->parser_lex_strterm) = 0; > (parser->parser_lex_state) = EXPR_BEG; > ((parser->parser_cond_stack) = ((parser->parser_cond_stack)<<1)|((0)&1)); > ((parser->parser_cmdarg_stack) = ((parser->parser_cmdarg_stack)<<1)|((0)&1)); > ;} > break; > > case 443: ># 3992 "parse.y" > { > (parser->parser_lex_strterm) = (yyvsp[(2) - (4)].node); > ((parser->parser_cond_stack) = ((parser->parser_cond_stack) >> 1) | ((parser->parser_cond_stack) & 1)); > ((parser->parser_cmdarg_stack) = ((parser->parser_cmdarg_stack) >> 1) | ((parser->parser_cmdarg_stack) & 1)); > > if ((yyvsp[(3) - (4)].node)) (yyvsp[(3) - (4)].node)->flags &= ~(((VALUE)1)<<7); > (yyval.node) = new_evstr_gen(parser,(yyvsp[(3) - (4)].node)); > > > > ;} > break; > > case 444: ># 4006 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_GVAR), (VALUE)((yyvsp[(1) - (1)].id)), (VALUE)(0), (VALUE)(rb_global_entry((yyvsp[(1) - (1)].id)))); > > > > ;} > break; > > case 445: ># 4014 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_IVAR), (VALUE)((yyvsp[(1) - (1)].id)), (VALUE)(0), (VALUE)(0)); > > > > ;} > break; > > case 446: ># 4022 "parse.y" > { > > (yyval.node) = node_newnode(parser, (NODE_CVAR), (VALUE)((yyvsp[(1) - (1)].id)), (VALUE)(0), (VALUE)(0)); > > > > ;} > break; > > case 448: ># 4033 "parse.y" > { > > (parser->parser_lex_state) = EXPR_END; > (yyval.id) = (yyvsp[(2) - (2)].id); > > > > > ;} > break; > > case 453: ># 4051 "parse.y" > { > > (parser->parser_lex_state) = EXPR_END; > if (!((yyval.node) = (yyvsp[(2) - (3)].node))) { > (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)); > } > else { > VALUE lit; > > switch (((int) (((((struct RNode*)((yyval.node))))->flags & (((VALUE)0x7f)<<8))>>8))) { > case NODE_DSTR: > ((struct RNode*)((yyval.node)))->flags=((((struct RNode*)((yyval.node)))->flags&~(((VALUE)0x7f)<<8))|(((NODE_DSYM)<<8)&(((VALUE)0x7f)<<8))); > break; > case NODE_STR: > lit = (yyval.node)->u1.value; > (yyval.node)->u1.value = (((VALUE)(rb_intern_str(lit))<<RUBY_SPECIAL_SHIFT)|RUBY_SYMBOL_FLAG); > ((struct RNode*)((yyval.node)))->flags=((((struct RNode*)((yyval.node)))->flags&~(((VALUE)0x7f)<<8))|(((NODE_LIT)<<8)&(((VALUE)0x7f)<<8))); > break; > default: > (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)))); > break; > } > } > > > > > ;} > break; > > case 456: ># 4084 "parse.y" > { > > (yyval.node) = negate_lit((yyvsp[(2) - (2)].node)); > > > > ;} > break; > > case 457: ># 4092 "parse.y" > { > > (yyval.node) = negate_lit((yyvsp[(2) - (2)].node)); > > > > ;} > break; > > case 463: ># 4106 "parse.y" > {(yyval.id) = 289;;} > break; > > case 464: ># 4107 "parse.y" > {(yyval.id) = 288;;} > break; > > case 465: ># 4108 "parse.y" > {(yyval.id) = 290;;} > break; > > case 466: ># 4109 "parse.y" > {(yyval.id) = 291;;} > break; > > case 467: ># 4110 "parse.y" > {(yyval.id) = 305;;} > break; > > case 468: ># 4111 "parse.y" > {(yyval.id) = 304;;} > break; > > case 469: ># 4112 "parse.y" > {(yyval.id) = 306;;} > break; > > case 470: ># 4116 "parse.y" > { > > if (!((yyval.node) = gettable_gen(parser,(yyvsp[(1) - (1)].id)))) (yyval.node) = node_newnode(parser, (NODE_BEGIN), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > > > > ;} > break; > > case 471: ># 4126 "parse.y" > { > > (yyval.node) = assignable_gen(parser, (yyvsp[(1) - (1)].id), 0); > > > > ;} > break; > > case 474: ># 4140 "parse.y" > { > > (yyval.node) = 0; > > > > ;} > break; > > case 475: ># 4148 "parse.y" > { > (parser->parser_lex_state) = EXPR_BEG; > ;} > break; > > case 476: ># 4152 "parse.y" > { > (yyval.node) = (yyvsp[(3) - (4)].node); > ;} > break; > > case 477: ># 4156 "parse.y" > { > > (yyerrstatus = 0); > (yyval.node) = 0; > > > > > ;} > break; > > case 478: ># 4168 "parse.y" > { > > (yyval.node) = (yyvsp[(2) - (3)].node); > (parser->parser_lex_state) = EXPR_BEG; > (parser->parser_command_start) = ((VALUE)RUBY_Qtrue); > > > > > > ;} > break; > > case 479: ># 4180 "parse.y" > { > (yyval.node) = (yyvsp[(1) - (2)].node); > ;} > break; > > case 480: ># 4186 "parse.y" > { > > (yyval.node) = new_args_gen(parser, (yyvsp[(1) - (6)].node),(yyvsp[(3) - (6)].node),(yyvsp[(5) - (6)].id),0,(yyvsp[(6) - (6)].id)); > > > > ;} > break; > > case 481: ># 4194 "parse.y" > { > > (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)); > > > > ;} > break; > > case 482: ># 4202 "parse.y" > { > > (yyval.node) = new_args_gen(parser, (yyvsp[(1) - (4)].node),(yyvsp[(3) - (4)].node),0,0,(yyvsp[(4) - (4)].id)); > > > > ;} > break; > > case 483: ># 4210 "parse.y" > { > > (yyval.node) = new_args_gen(parser, (yyvsp[(1) - (6)].node),(yyvsp[(3) - (6)].node),0,(yyvsp[(5) - (6)].node),(yyvsp[(6) - (6)].id)); > > > > ;} > break; > > case 484: ># 4218 "parse.y" > { > > (yyval.node) = new_args_gen(parser, (yyvsp[(1) - (4)].node),0,(yyvsp[(3) - (4)].id),0,(yyvsp[(4) - (4)].id)); > > > > ;} > break; > > case 485: ># 4226 "parse.y" > { > > (yyval.node) = new_args_gen(parser, (yyvsp[(1) - (6)].node),0,(yyvsp[(3) - (6)].id),(yyvsp[(5) - (6)].node),(yyvsp[(6) - (6)].id)); > > > > ;} > break; > > case 486: ># 4234 "parse.y" > { > > (yyval.node) = new_args_gen(parser, (yyvsp[(1) - (2)].node),0,0,0,(yyvsp[(2) - (2)].id)); > > > > ;} > break; > > case 487: ># 4242 "parse.y" > { > > (yyval.node) = new_args_gen(parser, 0,(yyvsp[(1) - (4)].node),(yyvsp[(3) - (4)].id),0,(yyvsp[(4) - (4)].id)); > > > > ;} > break; > > case 488: ># 4250 "parse.y" > { > > (yyval.node) = new_args_gen(parser, 0,(yyvsp[(1) - (6)].node),(yyvsp[(3) - (6)].id),(yyvsp[(5) - (6)].node),(yyvsp[(6) - (6)].id)); > > > > ;} > break; > > case 489: ># 4258 "parse.y" > { > > (yyval.node) = new_args_gen(parser, 0,(yyvsp[(1) - (2)].node),0,0,(yyvsp[(2) - (2)].id)); > > > > ;} > break; > > case 490: ># 4266 "parse.y" > { > > (yyval.node) = new_args_gen(parser, 0,(yyvsp[(1) - (4)].node),0,(yyvsp[(3) - (4)].node),(yyvsp[(4) - (4)].id)); > > > > ;} > break; > > case 491: ># 4274 "parse.y" > { > > (yyval.node) = new_args_gen(parser, 0,0,(yyvsp[(1) - (2)].id),0,(yyvsp[(2) - (2)].id)); > > > > ;} > break; > > case 492: ># 4282 "parse.y" > { > > (yyval.node) = new_args_gen(parser, 0,0,(yyvsp[(1) - (4)].id),(yyvsp[(3) - (4)].node),(yyvsp[(4) - (4)].id)); > > > > ;} > break; > > case 493: ># 4290 "parse.y" > { > > (yyval.node) = new_args_gen(parser, 0,0,0,0,(yyvsp[(1) - (1)].id)); > > > > ;} > break; > > case 494: ># 4298 "parse.y" > { > > (yyval.node) = new_args_gen(parser, 0,0,0,0,0); > > > > ;} > break; > > case 495: ># 4308 "parse.y" > { > > parser_yyerror(parser, "formal argument cannot be a constant"); > (yyval.id) = 0; > > > > ;} > break; > > case 496: ># 4317 "parse.y" > { > > parser_yyerror(parser, "formal argument cannot be an instance variable"); > (yyval.id) = 0; > > > > ;} > break; > > case 497: ># 4326 "parse.y" > { > > parser_yyerror(parser, "formal argument cannot be a global variable"); > (yyval.id) = 0; > > > > ;} > break; > > case 498: ># 4335 "parse.y" > { > > parser_yyerror(parser, "formal argument cannot be a class variable"); > (yyval.id) = 0; > > > > ;} > break; > > case 500: ># 4347 "parse.y" > { > > if (!((((yyvsp[(1) - (1)].id))>376)&&(((yyvsp[(1) - (1)].id))&0x07)==0x00)) > parser_yyerror(parser, "formal argument must be local variable"); > shadowing_lvar_gen(parser, (yyvsp[(1) - (1)].id)); > > > (yyval.id) = (yyvsp[(1) - (1)].id); > ;} > break; > > case 501: ># 4359 "parse.y" > { > > arg_var_gen(parser, (yyvsp[(1) - (1)].id)); > (yyval.node) = node_newnode(parser, (NODE_ARGS_AUX), (VALUE)((yyvsp[(1) - (1)].id)), (VALUE)(1), (VALUE)(0)); > > > ;} > break; > > case 502: ># 4367 "parse.y" > { > > ID tid = internal_id_gen(parser); > arg_var_gen(parser, tid); > if (dyna_in_block_gen(parser)) { > (yyvsp[(2) - (3)].node)->u2.node = node_newnode(parser, (NODE_DVAR), (VALUE)(tid), (VALUE)(0), (VALUE)(0)); > } > else { > (yyvsp[(2) - (3)].node)->u2.node = node_newnode(parser, (NODE_LVAR), (VALUE)(tid), (VALUE)(0), (VALUE)(0)); > } > (yyval.node) = node_newnode(parser, (NODE_ARGS_AUX), (VALUE)(tid), (VALUE)(1), (VALUE)(0)); > (yyval.node)->u3.node = (yyvsp[(2) - (3)].node); > > > > ;} > break; > > case 504: ># 4393 "parse.y" > { > > (yyval.node) = (yyvsp[(1) - (3)].node); > (yyval.node)->u2.argc++; > (yyval.node)->u3.node = block_append_gen(parser,(yyval.node)->u3.node,(yyvsp[(3) - (3)].node)->u3.node); > rb_gc_force_recycle((VALUE)(yyvsp[(3) - (3)].node)); > > > > ;} > break; > > case 505: ># 4406 "parse.y" > { > > if (!((((yyvsp[(1) - (3)].id))>376)&&(((yyvsp[(1) - (3)].id))&0x07)==0x00)) > parser_yyerror(parser, "formal argument must be local variable"); > shadowing_lvar_gen(parser, (yyvsp[(1) - (3)].id)); > arg_var_gen(parser, (yyvsp[(1) - (3)].id)); > (yyval.node) = node_newnode(parser, (NODE_OPT_ARG), (VALUE)(0), (VALUE)(assignable_gen(parser, (yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].node))), (VALUE)(0)); > > > > ;} > break; > > case 506: ># 4420 "parse.y" > { > > if (!((((yyvsp[(1) - (3)].id))>376)&&(((yyvsp[(1) - (3)].id))&0x07)==0x00)) > parser_yyerror(parser, "formal argument must be local variable"); > shadowing_lvar_gen(parser, (yyvsp[(1) - (3)].id)); > arg_var_gen(parser, (yyvsp[(1) - (3)].id)); > (yyval.node) = node_newnode(parser, (NODE_OPT_ARG), (VALUE)(0), (VALUE)(assignable_gen(parser, (yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].node))), (VALUE)(0)); > > > > ;} > break; > > case 507: ># 4434 "parse.y" > { > > (yyval.node) = (yyvsp[(1) - (1)].node); > > > > ;} > break; > > case 508: ># 4442 "parse.y" > { > > NODE *opts = (yyvsp[(1) - (3)].node); > > while (opts->u3.node) { > opts = opts->u3.node; > } > opts->u3.node = (yyvsp[(3) - (3)].node); > (yyval.node) = (yyvsp[(1) - (3)].node); > > > > ;} > break; > > case 509: ># 4458 "parse.y" > { > > (yyval.node) = (yyvsp[(1) - (1)].node); > > > > ;} > break; > > case 510: ># 4466 "parse.y" > { > > NODE *opts = (yyvsp[(1) - (3)].node); > > while (opts->u3.node) { > opts = opts->u3.node; > } > opts->u3.node = (yyvsp[(3) - (3)].node); > (yyval.node) = (yyvsp[(1) - (3)].node); > > > > ;} > break; > > case 513: ># 4486 "parse.y" > { > > if (!((((yyvsp[(2) - (2)].id))>376)&&(((yyvsp[(2) - (2)].id))&0x07)==0x00)) > parser_yyerror(parser, "rest argument must be local variable"); > shadowing_lvar_gen(parser, (yyvsp[(2) - (2)].id)); > arg_var_gen(parser, (yyvsp[(2) - (2)].id)); > (yyval.id) = (yyvsp[(2) - (2)].id); > > > > ;} > break; > > case 514: ># 4498 "parse.y" > { > > (yyval.id) = internal_id_gen(parser); > arg_var_gen(parser, (yyval.id)); > > > > ;} > break; > > case 517: ># 4513 "parse.y" > { > > if (!((((yyvsp[(2) - (2)].id))>376)&&(((yyvsp[(2) - (2)].id))&0x07)==0x00)) > parser_yyerror(parser, "block argument must be local variable"); > else if (!dyna_in_block_gen(parser) && local_id_gen(parser, (yyvsp[(2) - (2)].id))) > parser_yyerror(parser, "duplicated block argument name"); > shadowing_lvar_gen(parser, (yyvsp[(2) - (2)].id)); > arg_var_gen(parser, (yyvsp[(2) - (2)].id)); > (yyval.id) = (yyvsp[(2) - (2)].id); > > > > ;} > break; > > case 518: ># 4529 "parse.y" > { > (yyval.id) = (yyvsp[(2) - (2)].id); > ;} > break; > > case 519: ># 4533 "parse.y" > { > > (yyval.id) = 0; > > > > ;} > break; > > case 520: ># 4543 "parse.y" > { > > value_expr_gen(parser, ((yyvsp[(1) - (1)].node)) = remove_begin((yyvsp[(1) - (1)].node))); > (yyval.node) = (yyvsp[(1) - (1)].node); > if (!(yyval.node)) (yyval.node) = node_newnode(parser, (NODE_NIL), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > > > > ;} > break; > > case 521: ># 4552 "parse.y" > {(parser->parser_lex_state) = EXPR_BEG;;} > break; > > case 522: ># 4553 "parse.y" > { > > if ((yyvsp[(3) - (4)].node) == 0) { > parser_yyerror(parser, "can't define singleton method for ()."); > } > else { > switch (((int) (((((struct RNode*)((yyvsp[(3) - (4)].node))))->flags & (((VALUE)0x7f)<<8))>>8))) { > case NODE_STR: > case NODE_DSTR: > case NODE_XSTR: > case NODE_DXSTR: > case NODE_DREGX: > case NODE_LIT: > case NODE_ARRAY: > case NODE_ZARRAY: > parser_yyerror(parser, "can't define singleton method for literals"); > default: > value_expr_gen(parser, ((yyvsp[(3) - (4)].node)) = remove_begin((yyvsp[(3) - (4)].node))); > break; > } > } > (yyval.node) = (yyvsp[(3) - (4)].node); > > > > ;} > break; > > case 524: ># 4583 "parse.y" > { > > (yyval.node) = (yyvsp[(1) - (2)].node); > > > > ;} > break; > > case 526: ># 4600 "parse.y" > { > > (yyval.node) = list_concat_gen(parser,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node)); > > > > ;} > break; > > case 527: ># 4610 "parse.y" > { > > (yyval.node) = list_append_gen(parser,node_newnode(parser, (NODE_ARRAY), (VALUE)((yyvsp[(1) - (3)].node)), (VALUE)(1), (VALUE)(0)),(yyvsp[(3) - (3)].node)); > > > > ;} > break; > > case 528: ># 4618 "parse.y" > { > > (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)); > > > > ;} > break; > > case 550: ># 4674 "parse.y" > {(yyerrstatus = 0);;} > break; > > case 553: ># 4679 "parse.y" > {(yyerrstatus = 0);;} > break; > > case 554: ># 4683 "parse.y" > { > > (yyval.node) = 0; > > > > ;} > break; ># 9722 "parse.c" > default: break; > } > do { if ((parser->parser_yydebug)) { fprintf (stderr, "%s ", "-> $$ ="); yy_symbol_print (stderr, yyr1[yyn], &yyval, parser); fprintf (stderr, "\n"); } } while ((0)); > > (yyvsp -= (yylen), yyssp -= (yylen)); > yylen = 0; > do { if ((parser->parser_yydebug)) yy_stack_print ((yyss), (yyssp)); } while ((0)); > > *++yyvsp = yyval; > > > > > > > yyn = yyr1[yyn]; > > yystate = yypgoto[yyn - 149] + *yyssp; > if (0 <= yystate && yystate <= 10225 && yycheck[yystate] == *yyssp) > yystate = yytable[yystate]; > else > yystate = yydefgoto[yyn - 149]; > > goto yynewstate; > > > > > >yyerrlab: > > if (!yyerrstatus) > { > ++yynerrs; > > > > { > unsigned int yysize = yysyntax_error (0, yystate, yychar); > if (yymsg_alloc < yysize && yymsg_alloc < ((unsigned int) -1)) > { > unsigned int yyalloc = 2 * yysize; > if (! (yysize <= yyalloc && yyalloc <= ((unsigned int) -1))) > yyalloc = ((unsigned int) -1); > if (yymsg != yymsgbuf) > rb_parser_free(parser, yymsg); > yymsg = (char *) rb_parser_malloc(parser, yyalloc); > if (yymsg) > yymsg_alloc = yyalloc; > else > { > yymsg = yymsgbuf; > yymsg_alloc = sizeof yymsgbuf; > } > } > > if (0 < yysize && yysize <= yymsg_alloc) > { > (void) yysyntax_error (yymsg, yystate, yychar); > parser_yyerror (parser, yymsg); > } > else > { > parser_yyerror (parser, "syntax error"); > if (yysize != 0) > goto yyexhaustedlab; > } > } > > } > > > > if (yyerrstatus == 3) > { > > > > if (yychar <= 0) > { > > if (yychar == 0) > goto yyabortlab; > } > else > { > yydestruct ("Error: discarding", > yytoken, &yylval, parser); > yychar = (-2); > } > } > > > > goto yyerrlab1; > > > > > >yyerrorlab: > > > > > if ( 0) > goto yyerrorlab; > > > > (yyvsp -= (yylen), yyssp -= (yylen)); > yylen = 0; > do { if ((parser->parser_yydebug)) yy_stack_print ((yyss), (yyssp)); } while ((0)); > yystate = *yyssp; > goto yyerrlab1; > > > > > >yyerrlab1: > yyerrstatus = 3; > > for (;;) > { > yyn = yypact[yystate]; > if (yyn != -747) > { > yyn += 1; > if (0 <= yyn && yyn <= 10225 && yycheck[yyn] == 1) > { > yyn = yytable[yyn]; > if (0 < yyn) > break; > } > } > > > if (yyssp == yyss) > goto yyabortlab; > > > yydestruct ("Error: popping", > yystos[yystate], yyvsp, parser); > (yyvsp -= (1), yyssp -= (1)); > yystate = *yyssp; > do { if ((parser->parser_yydebug)) yy_stack_print ((yyss), (yyssp)); } while ((0)); > } > > if (yyn == 3) > goto yyacceptlab; > > *++yyvsp = yylval; > > > > do { if ((parser->parser_yydebug)) { fprintf (stderr, "%s ", "Shifting"); yy_symbol_print (stderr, yystos[yyn], yyvsp, parser); fprintf (stderr, "\n"); } } while ((0)); > > yystate = yyn; > goto yynewstate; > > > > > >yyacceptlab: > yyresult = 0; > goto yyreturn; > > > > >yyabortlab: > yyresult = 1; > goto yyreturn; > > > > > >yyexhaustedlab: > parser_yyerror (parser, "memory exhausted"); > yyresult = 2; > > > >yyreturn: > if (yychar != 0 && yychar != (-2)) > yydestruct ("Cleanup: discarding lookahead", > yytoken, &yylval, parser); > > > (yyvsp -= (yylen), yyssp -= (yylen)); > do { if ((parser->parser_yydebug)) yy_stack_print ((yyss), (yyssp)); } while ((0)); > while (yyssp != yyss) > { > yydestruct ("Cleanup: popping", > yystos[*yyssp], yyvsp, parser); > (yyvsp -= (1), yyssp -= (1)); > } > > if (yyss != yyssa) > rb_parser_free(parser, yyss); > > > if (yymsg != yymsgbuf) > rb_parser_free(parser, yymsg); > > > return (yyresult); >} ># 4691 "parse.y" > > > > > > >static int parser_regx_options(struct parser_params*); >static int parser_tokadd_string(struct parser_params*,int,int,int,long*,rb_encoding**); >static void parser_tokaddmbc(struct parser_params *parser, int c, rb_encoding *enc); >static int parser_parse_string(struct parser_params*,NODE*); >static int parser_here_document(struct parser_params*,NODE*); ># 4773 "parse.y" ># 1 "./include/ruby/regex.h" 1 ># 29 "./include/ruby/regex.h" >extern OnigEncoding OnigEncDefaultCharEncoding; ># 4774 "parse.y" 2 ># 1 "./include/ruby/util.h" 1 ># 44 "./include/ruby/util.h" >unsigned long ruby_scan_oct(const char *, int, int *); > >unsigned long ruby_scan_hex(const char *, int, int *); > > > > > >void ruby_qsort(void *, const int, const int, > int (*)(const void *, const void *, void *), void *); > >void ruby_setenv(const char *, const char *); >void ruby_unsetenv(const char *); > > > > > >char *ruby_strdup(const char *); > > > >char *ruby_getcwd(void); > > >double ruby_strtod(const char *, char **); > > > >void ruby_each_words(const char *, void (*)(const char*, int, void*), void *); ># 4775 "parse.y" 2 ># 4797 "parse.y" >static int >token_info_get_column(struct parser_params *parser, const char *token) >{ > int column = 1; > const char *p, *pend = (parser->parser_lex_p) - strlen(token); > for (p = (parser->parser_lex_pbeg); p < pend; p++) { > if (*p == '\t') { > column = (((column - 1) / 8) + 1) * 8; > } > column++; > } > return column; >} > >static int >token_info_has_nonspaces(struct parser_params *parser, const char *token) >{ > const char *p, *pend = (parser->parser_lex_p) - strlen(token); > for (p = (parser->parser_lex_pbeg); p < pend; p++) { > if (*p != ' ' && *p != '\t') { > return 1; > } > } > return 0; >} > >static void >token_info_push(struct parser_params *parser, const char *token) >{ > token_info *ptinfo; > > if ((parser->parser_compile_for_eval)) return; > ptinfo = (token_info*)ruby_xmalloc(sizeof(token_info)); > ptinfo->token = token; > ptinfo->linenum = (parser->parser_ruby_sourceline); > ptinfo->column = token_info_get_column(parser, token); > ptinfo->nonspc = token_info_has_nonspaces(parser, token); > ptinfo->next = parser->parser_token_info; > > parser->parser_token_info = ptinfo; >} > >static void >token_info_pop(struct parser_params *parser, const char *token) >{ > int linenum; > token_info *ptinfo = parser->parser_token_info; > > if (!ptinfo) return; > parser->parser_token_info = ptinfo->next; > if (token_info_get_column(parser, token) == ptinfo->column) { > goto finish; > } > linenum = (parser->parser_ruby_sourceline); > if (linenum == ptinfo->linenum) { > goto finish; > } > if (token_info_has_nonspaces(parser, token) || ptinfo->nonspc) { > goto finish; > } > rb_compile_warning((parser->parser_ruby_sourcefile), linenum, > "mismatched indentations at '%s' with '%s' at %d", > token, ptinfo->token, ptinfo->linenum); > > finish: > ruby_xfree(ptinfo); >} > > >static int >parser_yyerror(struct parser_params *parser, const char *msg) >{ > > const int max_line_margin = 30; > const char *p, *pe; > char *buf; > int len, i; > > parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "%s", msg); > p = (parser->parser_lex_p); > while ((parser->parser_lex_pbeg) <= p) { > if (*p == '\n') break; > p--; > } > p++; > > pe = (parser->parser_lex_p); > while (pe < (parser->parser_lex_pend)) { > if (*pe == '\n') break; > pe++; > } > > len = pe - p; > if (len > 4) { > char *p2; > const char *pre = "", *post = ""; > > if (len > max_line_margin * 2 + 10) { > if ((parser->parser_lex_p) - p > max_line_margin) { > 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)); > pre = "..."; > } > if (pe - (parser->parser_lex_p) > max_line_margin) { > 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)); > post = "..."; > } > len = pe - p; > } > buf = (char*)__builtin_alloca (sizeof(char)*(len+2)); > memcpy((buf), (p), sizeof(char)*(len)); > buf[len] = '\0'; > rb_compile_error_append("%s%s%s", pre, buf, post); > > i = (parser->parser_lex_p) - p; > p2 = buf; pe = buf + len; > > while (p2 < pe) { > if (*p2 != '\t') *p2 = ' '; > p2++; > } > buf[i] = '^'; > buf[i+1] = '\0'; > rb_compile_error_append("%s%s", pre, buf); > } > > > > return 0; >} > >static void parser_prepare(struct parser_params *parser); > > >VALUE ruby_suppress_tracing(VALUE (*func)(VALUE, int), VALUE arg, int always); > >static VALUE >debug_lines(const char *f) >{ > if (rb_const_defined_at(rb_cObject, (__builtin_constant_p("SCRIPT_LINES__") ? __extension__ (rb_intern2("SCRIPT_LINES__", strlen("SCRIPT_LINES__"))) : (rb_intern)("SCRIPT_LINES__")))) { > 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__"))); > if (rb_type((VALUE)(hash)) == RUBY_T_HASH) { > VALUE fname = __extension__ ( { (__builtin_constant_p(f)) ? rb_str_new(f, strlen(f)) : rb_str_new_cstr(f); }); > VALUE lines = rb_ary_new(); > rb_hash_aset(hash, fname, lines); > return lines; > } > } > return 0; >} > >static VALUE >coverage(const char *f, int n) >{ > extern VALUE rb_get_coverages(void); > VALUE coverages = rb_get_coverages(); > if ((((VALUE)(coverages) & ~((VALUE)RUBY_Qnil)) != 0) && ((struct RBasic*)(coverages))->klass == 0) { > VALUE fname = __extension__ ( { (__builtin_constant_p(f)) ? rb_str_new(f, strlen(f)) : rb_str_new_cstr(f); }); > VALUE lines = rb_ary_new2(n); > int i; > ((struct RBasic*)(lines))->klass = 0; > 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); > ((struct RArray*)(lines))->as.heap.len = n; > rb_hash_aset(coverages, fname, lines); > return lines; > } > return 0; >} > >static int >e_option_supplied(struct parser_params *parser) >{ > 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) > return ((VALUE)RUBY_Qtrue); > return ((VALUE)RUBY_Qfalse); >} > >static VALUE >yycompile0(VALUE arg, int tracing) >{ > int n; > NODE *tree; > struct parser_params *parser = (struct parser_params *)arg; > > if (!(parser->parser_compile_for_eval) && rb_safe_level() == 0) { > (parser->debug_lines) = debug_lines((parser->parser_ruby_sourcefile)); > if ((parser->debug_lines) && (parser->parser_ruby_sourceline) > 0) { > VALUE str = rb_enc_str_new(0,0,parser->enc); > n = (parser->parser_ruby_sourceline); > do { > rb_ary_push((parser->debug_lines), str); > } while (--n); > } > > if (!e_option_supplied(parser)) { > (parser->coverage) = coverage((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline)); > } > } > > parser_prepare(parser); > (parser->parser_deferred_nodes) = 0; > n = ruby_yyparse((void*)parser); > (parser->debug_lines) = 0; > (parser->coverage) = 0; > (parser->parser_compile_for_eval) = 0; > > (parser->parser_lex_strterm) = 0; > (parser->parser_lex_p) = (parser->parser_lex_pbeg) = (parser->parser_lex_pend) = 0; > (parser->parser_lex_lastline) = (parser->parser_lex_nextline) = 0; > if (parser->nerr) { > return 0; > } > tree = (parser->parser_eval_tree); > if (!tree) { > tree = node_newnode(parser, (NODE_NIL), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > } > if ((parser->parser_eval_tree_begin)) { > NODE *scope = (parser->parser_eval_tree); > > if (scope) { > scope->u2.node = node_newnode(parser, (NODE_PRELUDE), (VALUE)((parser->parser_eval_tree_begin)), (VALUE)(scope->u2.node), (VALUE)(0)); > } > tree = scope; > } > else { > tree = (parser->parser_eval_tree); > } > return (VALUE)tree; >} > >static NODE* >yycompile(struct parser_params *parser, const char *f, int line) >{ > (parser->parser_ruby_sourcefile) = ruby_strdup(f); > (parser->parser_ruby_sourceline) = line - 1; > return (NODE *)ruby_suppress_tracing(yycompile0, (VALUE)parser, ((VALUE)RUBY_Qtrue)); >} > > >static VALUE >lex_get_str(struct parser_params *parser, VALUE s) >{ > char *beg, *end, *pend; > > beg = (!(((struct RBasic*)(s))->flags & (((VALUE)1)<<(12 +1))) ? ((struct RString*)(s))->as.ary : ((struct RString*)(s))->as.heap.ptr); > if ((parser->parser_lex_gets_ptr)) { > 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); > beg += (parser->parser_lex_gets_ptr); > } > 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); > end = beg; > while (end < pend) { > if (*end++ == '\n') break; > } > (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); > return rb_enc_str_new(beg, end - beg, rb_enc_get(s)); >} > >static VALUE >lex_getline(struct parser_params *parser) >{ > VALUE line = (*parser->parser_lex_gets)(parser, parser->parser_lex_input); > > if ((parser->debug_lines) && !((VALUE)(line) == ((VALUE)RUBY_Qnil))) { > rb_ary_push((parser->debug_lines), line); > } > if ((parser->coverage) && !((VALUE)(line) == ((VALUE)RUBY_Qnil))) { > rb_ary_push((parser->coverage), ((VALUE)RUBY_Qnil)); > } > > return line; >} > > >NODE* >rb_compile_string(const char *f, VALUE s, int line) >{ > VALUE volatile vparser = rb_parser_new(); > > return rb_parser_compile_string(vparser, f, s, line); >} > >NODE* >rb_parser_compile_string(volatile VALUE vparser, const char *f, VALUE s, int line) >{ > struct parser_params *parser; > NODE *node; > volatile VALUE tmp; > > do { rb_check_type((VALUE)(vparser),RUBY_T_DATA); parser = (struct parser_params*)(((struct RData*)(vparser))->data);} while (0); > (parser->parser_lex_gets) = lex_get_str; > (parser->parser_lex_gets_ptr) = 0; > (parser->parser_lex_input) = s; > (parser->parser_lex_pbeg) = (parser->parser_lex_p) = (parser->parser_lex_pend) = 0; > (parser->parser_compile_for_eval) = rb_parse_in_eval(); > > node = yycompile(parser, f, line); > tmp = vparser; > > return node; >} > >NODE* >rb_compile_cstr(const char *f, const char *s, int len, int line) >{ > return rb_compile_string(f, rb_str_new(s, len), line); >} > >NODE* >rb_parser_compile_cstr(volatile VALUE vparser, const char *f, const char *s, int len, int line) >{ > return rb_parser_compile_string(vparser, f, rb_str_new(s, len), line); >} > >static VALUE >lex_io_gets(struct parser_params *parser, VALUE io) >{ > return rb_io_gets(io); >} > >NODE* >rb_compile_file(const char *f, VALUE file, int start) >{ > VALUE volatile vparser = rb_parser_new(); > > return rb_parser_compile_file(vparser, f, file, start); >} > >NODE* >rb_parser_compile_file(volatile VALUE vparser, const char *f, VALUE file, int start) >{ > struct parser_params *parser; > volatile VALUE tmp; > NODE *node; > > do { rb_check_type((VALUE)(vparser),RUBY_T_DATA); parser = (struct parser_params*)(((struct RData*)(vparser))->data);} while (0); > (parser->parser_lex_gets) = lex_io_gets; > (parser->parser_lex_input) = file; > (parser->parser_lex_pbeg) = (parser->parser_lex_p) = (parser->parser_lex_pend) = 0; > (parser->parser_compile_for_eval) = rb_parse_in_eval(); > > node = yycompile(parser, f, start); > tmp = vparser; > > return node; >} ># 5151 "parse.y" >enum string_type { > str_squote = (0), > str_dquote = (0x02), > str_xquote = (0x02), > str_regexp = (0x04|0x01|0x02), > str_sword = (0x08), > str_dword = (0x08|0x02), > str_ssym = (0x10), > str_dsym = (0x10|0x02) >}; > >static VALUE >parser_str_new(const char *p, long n, rb_encoding *enc, int func, rb_encoding *enc0) >{ > VALUE str; > > str = rb_enc_str_new(p, n, enc); > if (!(func & 0x04) && ((enc)->min_enc_len==1 && !rb_enc_dummy_p(enc))) { > if (rb_enc_str_coderange(str) == (((VALUE)1)<<(12 +8))) { > } > else if (enc0 == rb_usascii_encoding() && enc != rb_utf8_encoding()) { > rb_enc_associate(str, rb_ascii8bit_encoding()); > } > } > > return str; >} > > > > >static inline int >parser_nextc(struct parser_params *parser) >{ > int c; > > if ((parser->parser_lex_p) == (parser->parser_lex_pend)) { > VALUE v = (parser->parser_lex_nextline); > (parser->parser_lex_nextline) = 0; > if (!v) { > if (parser->eofp) > return -1; > > if (!(parser->parser_lex_input) || ((VALUE)(v = lex_getline(parser)) == ((VALUE)RUBY_Qnil))) { > parser->eofp = ((VALUE)RUBY_Qtrue); > (parser->parser_lex_p = parser->parser_lex_pend); > return -1; > } > } > { ># 5216 "parse.y" > if ((parser->parser_heredoc_end) > 0) { > (parser->parser_ruby_sourceline) = (parser->parser_heredoc_end); > (parser->parser_heredoc_end) = 0; > } > (parser->parser_ruby_sourceline)++; > parser->line_count++; > (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); > (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); > > > > (parser->parser_lex_lastline) = v; > } > } > c = (unsigned char)*(parser->parser_lex_p)++; > if (c == '\r' && ((parser->parser_lex_p) < (parser->parser_lex_pend) && ('\n') == *(parser->parser_lex_p))) { > (parser->parser_lex_p)++; > c = '\n'; > } > > return c; >} > >static void >parser_pushback(struct parser_params *parser, int c) >{ > if (c == -1) return; > (parser->parser_lex_p)--; > if ((parser->parser_lex_p) > (parser->parser_lex_pbeg) && (parser->parser_lex_p)[0] == '\n' && (parser->parser_lex_p)[-1] == '\r') { > (parser->parser_lex_p)--; > } >} ># 5256 "parse.y" >static char* >parser_newtok(struct parser_params *parser) >{ > (parser->parser_tokidx) = 0; > if (!(parser->parser_tokenbuf)) { > (parser->parser_toksiz) = 60; > (parser->parser_tokenbuf) = (char*)ruby_xmalloc2((60),sizeof(char)); > } > if ((parser->parser_toksiz) > 4096) { > (parser->parser_toksiz) = 60; > ((parser->parser_tokenbuf))=(char*)ruby_xrealloc2((char*)((parser->parser_tokenbuf)),(60),sizeof(char)); > } > return (parser->parser_tokenbuf); >} > >static char * >parser_tokspace(struct parser_params *parser, int n) >{ > (parser->parser_tokidx) += n; > > if ((parser->parser_tokidx) >= (parser->parser_toksiz)) { > do {(parser->parser_toksiz) *= 2;} while ((parser->parser_toksiz) < (parser->parser_tokidx)); > ((parser->parser_tokenbuf))=(char*)ruby_xrealloc2((char*)((parser->parser_tokenbuf)),((parser->parser_toksiz)),sizeof(char)); > } > return &(parser->parser_tokenbuf)[(parser->parser_tokidx)-n]; >} > >static void >parser_tokadd(struct parser_params *parser, int c) >{ > (parser->parser_tokenbuf)[(parser->parser_tokidx)++] = (char)c; > if ((parser->parser_tokidx) >= (parser->parser_toksiz)) { > (parser->parser_toksiz) *= 2; > ((parser->parser_tokenbuf))=(char*)ruby_xrealloc2((char*)((parser->parser_tokenbuf)),((parser->parser_toksiz)),sizeof(char)); > } >} > >static int >parser_tok_hex(struct parser_params *parser, int *numlen) >{ > int c; > > c = ruby_scan_hex((parser->parser_lex_p), 2, numlen); > if (!*numlen) { > parser_yyerror(parser, "invalid hex escape"); > return 0; > } > (parser->parser_lex_p) += *numlen; > return c; >} > > > >static int >parser_tokadd_utf8(struct parser_params *parser, rb_encoding **encp, > int string_literal, int symbol_literal, int regexp_literal) >{ > > > > > > > > int codepoint; > int numlen; > > if (regexp_literal) { parser_tokadd(parser, '\\'); parser_tokadd(parser, 'u'); } > > if (((parser->parser_lex_p) < (parser->parser_lex_pend) && ('{') == *(parser->parser_lex_p))) { > do { > if (regexp_literal) { parser_tokadd(parser, *(parser->parser_lex_p)); } > parser_nextc(parser); > codepoint = ruby_scan_hex((parser->parser_lex_p), 6, &numlen); > if (numlen == 0) { > parser_yyerror(parser, "invalid Unicode escape"); > return 0; > } > if (codepoint > 0x10ffff) { > parser_yyerror(parser, "invalid Unicode codepoint (too large)"); > return 0; > } > (parser->parser_lex_p) += numlen; > if (regexp_literal) { > memcpy(parser_tokspace(parser, numlen), (parser->parser_lex_p) - (numlen), (numlen)); > } > else if (codepoint >= 0x80) { > *encp = (parser->utf8 ? parser->utf8 : (parser->utf8 = rb_utf8_encoding())); > if (string_literal) parser_tokaddmbc(parser, codepoint, *encp); > } > else if (string_literal) { > if (codepoint == 0 && symbol_literal) { > parser_yyerror(parser, "symbol cannot contain '\\u{0}'"); > return 0; > } > > parser_tokadd(parser, codepoint); > } > } 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)))); > > if (!((parser->parser_lex_p) < (parser->parser_lex_pend) && ('}') == *(parser->parser_lex_p))) { > parser_yyerror(parser, "unterminated Unicode escape"); > return 0; > } > > if (regexp_literal) { parser_tokadd(parser, '}'); } > parser_nextc(parser); > } > else { > codepoint = ruby_scan_hex((parser->parser_lex_p), 4, &numlen); > if (numlen < 4) { > parser_yyerror(parser, "invalid Unicode escape"); > return 0; > } > (parser->parser_lex_p) += 4; > if (regexp_literal) { > memcpy(parser_tokspace(parser, 4), (parser->parser_lex_p) - (4), (4)); > } > else if (codepoint >= 0x80) { > *encp = (parser->utf8 ? parser->utf8 : (parser->utf8 = rb_utf8_encoding())); > if (string_literal) parser_tokaddmbc(parser, codepoint, *encp); > } > else if (string_literal) { > if (codepoint == 0 && symbol_literal) { > parser_yyerror(parser, "symbol cannot contain '\\u0000'"); > return 0; > } > > parser_tokadd(parser, codepoint); > } > } > > return codepoint; >} > > > > >static int >parser_read_escape(struct parser_params *parser, int flags, > rb_encoding **encp) >{ > int c; > int numlen; > > switch (c = parser_nextc(parser)) { > case '\\': > return c; > > case 'n': > return '\n'; > > case 't': > return '\t'; > > case 'r': > return '\r'; > > case 'f': > return '\f'; > > case 'v': > return '\13'; > > case 'a': > return '\007'; > > case 'e': > return 033; > > case '0': case '1': case '2': case '3': > case '4': case '5': case '6': case '7': > if (flags & (1|2)) goto eof; > { > int numlen; > > parser_pushback(parser, c); > c = ruby_scan_oct((parser->parser_lex_p), 3, &numlen); > (parser->parser_lex_p) += numlen; > } > return c; > > case 'x': > if (flags & (1|2)) goto eof; > c = parser_tok_hex(parser, &numlen); > if (numlen == 0) return 0; > return c; > > case 'b': > return '\010'; > > case 's': > return ' '; > > case 'M': > if (flags & 2) goto eof; > if ((c = parser_nextc(parser)) != '-') { > parser_pushback(parser, c); > goto eof; > } > if ((c = parser_nextc(parser)) == '\\') { > return parser_read_escape(parser, flags|2, encp) | 0x80; > } > else if (c == -1 || !((unsigned long)((unsigned char)(c)) < 128)) goto eof; > else { > return ((c & 0xff) | 0x80); > } > > case 'C': > if ((c = parser_nextc(parser)) != '-') { > parser_pushback(parser, c); > goto eof; > } > case 'c': > if (flags & 1) goto eof; > if ((c = parser_nextc(parser))== '\\') { > c = parser_read_escape(parser, flags|1, encp); > } > else if (c == '?') > return 0177; > else if (c == -1 || !((unsigned long)((unsigned char)(c)) < 128)) goto eof; > return c & 0x9f; > > eof: > case -1: > parser_yyerror(parser, "Invalid escape character syntax"); > return '\0'; > > default: > return c; > } >} > >static void >parser_tokaddmbc(struct parser_params *parser, int c, rb_encoding *enc) >{ > int len = rb_enc_codelen(c, enc); > (enc)->code_to_mbc(c,(OnigUChar*)(parser_tokspace(parser, len)),enc); >} > >static int >parser_tokadd_escape(struct parser_params *parser, rb_encoding **encp) >{ > int c; > int flags = 0; > > first: > switch (c = parser_nextc(parser)) { > case '\n': > return 0; > > case '0': case '1': case '2': case '3': > case '4': case '5': case '6': case '7': > if (flags & (1|2)) goto eof; > { > int numlen; > int oct; > > oct = ruby_scan_oct(--(parser->parser_lex_p), 3, &numlen); > if (numlen == 0) goto eof; > (parser->parser_lex_p) += numlen; > memcpy(parser_tokspace(parser, numlen + 1), (parser->parser_lex_p) - (numlen + 1), (numlen + 1)); > } > return 0; > > case 'x': > if (flags & (1|2)) goto eof; > { > int numlen; > int hex; > > hex = parser_tok_hex(parser, &numlen); > if (numlen == 0) goto eof; > memcpy(parser_tokspace(parser, numlen + 2), (parser->parser_lex_p) - (numlen + 2), (numlen + 2)); > } > return 0; > > case 'M': > if (flags & 2) goto eof; > if ((c = parser_nextc(parser)) != '-') { > parser_pushback(parser, c); > goto eof; > } > memcpy(parser_tokspace(parser, 3), (parser->parser_lex_p) - (3), (3)); > flags |= 2; > goto escaped; > > case 'C': > if (flags & 1) goto eof; > if ((c = parser_nextc(parser)) != '-') { > parser_pushback(parser, c); > goto eof; > } > memcpy(parser_tokspace(parser, 3), (parser->parser_lex_p) - (3), (3)); > goto escaped; > > case 'c': > if (flags & 1) goto eof; > memcpy(parser_tokspace(parser, 2), (parser->parser_lex_p) - (2), (2)); > flags |= 1; > escaped: > if ((c = parser_nextc(parser)) == '\\') { > goto first; > } > else if (c == -1) goto eof; > parser_tokadd(parser, c); > return 0; > > eof: > case -1: > parser_yyerror(parser, "Invalid escape character syntax"); > return -1; > > default: > parser_tokadd(parser, '\\'); > parser_tokadd(parser, c); > } > return 0; >} > >extern int rb_char_to_option_kcode(int c, int *option, int *kcode); > >static int >parser_regx_options(struct parser_params *parser) >{ > int kcode = 0; > int options = 0; > int c, opt, kc; > > parser_newtok(parser); > while (c = parser_nextc(parser), rb_isalpha((unsigned char)(c))) { > if (c == 'o') { > options |= (1<<16); > } > else if (rb_char_to_option_kcode(c, &opt, &kc)) { > options |= opt; > if (kc >= 0) kcode = c; > } > else { > parser_tokadd(parser, c); > } > } > parser_pushback(parser, c); > if ((parser->parser_tokidx)) { > ((parser->parser_tokenbuf)[(parser->parser_tokidx)]='\0'); > parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "unknown regexp option%s - %s", > (parser->parser_tokidx) > 1 ? "s" : "", (parser->parser_tokenbuf)); > } > return options | (((kcode)&0xff)<<8); >} > >static void >dispose_string(VALUE str) >{ > > if (((struct RBasic*)(str))->flags & (((VALUE)1)<<(12 +1))) > ruby_xfree((!(((struct RBasic*)(str))->flags & (((VALUE)1)<<(12 +1))) ? ((struct RString*)(str))->as.ary : ((struct RString*)(str))->as.heap.ptr)); > rb_gc_force_recycle(str); >} > >static int >parser_tokadd_mbchar(struct parser_params *parser, int c) >{ > int len = rb_enc_precise_mbclen(((parser->parser_lex_p)-1),(parser->parser_lex_pend),parser->enc); > if (!(0 < (len))) { > parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "invalid multibyte char (%s)", (parser->enc->name)); > return -1; > } > parser_tokadd(parser, c); > (parser->parser_lex_p) += --len; > if (len > 0) memcpy(parser_tokspace(parser, len), (parser->parser_lex_p) - (len), (len)); > return c; >} > > > >static int >parser_tokadd_string(struct parser_params *parser, > int func, int term, int paren, long *nest, > rb_encoding **encp) >{ > int c; > int has_nonascii = 0; > rb_encoding *enc = *encp; > char *errbuf = 0; > static const char mixed_msg[] = "%s mixed within %s source"; ># 5660 "parse.y" > while ((c = parser_nextc(parser)) != -1) { > if (paren && c == paren) { > ++*nest; > } > else if (c == term) { > if (!nest || !*nest) { > parser_pushback(parser, c); > break; > } > --*nest; > } > else if ((func & 0x02) && c == '#' && (parser->parser_lex_p) < (parser->parser_lex_pend)) { > int c2 = *(parser->parser_lex_p); > if (c2 == '$' || c2 == '@' || c2 == '{') { > parser_pushback(parser, c); > break; > } > } > else if (c == '\\') { > const char *beg = (parser->parser_lex_p) - 1; > c = parser_nextc(parser); > switch (c) { > case '\n': > if (func & 0x08) break; > if (func & 0x02) continue; > parser_tokadd(parser, '\\'); > break; > > case '\\': > if (func & 0x01) parser_tokadd(parser, c); > break; > > case 'u': > if ((func & 0x02) == 0) { > parser_tokadd(parser, '\\'); > break; > } > parser_tokadd_utf8(parser, &enc, 1, > func & 0x10, > func & 0x04); > if (has_nonascii && enc != *encp) { > 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); > } > continue; > > default: > if (func & 0x04) { > parser_pushback(parser, c); > if ((c = parser_tokadd_escape(parser, &enc)) < 0) > return -1; > if (has_nonascii && enc != *encp) { > 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); > } > continue; > } > else if (func & 0x02) { > parser_pushback(parser, c); > if (func & 0x01) parser_tokadd(parser, '\\'); > c = parser_read_escape(parser, 0, &enc); > } > else if ((func & 0x08) && rb_isspace((unsigned char)(c))) { > > } > else if (c != term && !(paren && c == paren)) { > parser_tokadd(parser, '\\'); > } > } > } > else if (!((unsigned long)((unsigned char)(*((parser->parser_lex_p)-1))) < 128)) { > has_nonascii = 1; > if (enc != *encp) { > 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); }; > continue; > } > if (parser_tokadd_mbchar(parser, c) == -1) return -1; > continue; > } > else if ((func & 0x08) && rb_isspace((unsigned char)(c))) { > parser_pushback(parser, c); > break; > } > if (!c && (func & 0x10)) { > func &= ~0x10; > parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "symbol cannot contain '\\0'"); > continue; > } > if (c & 0x80) { > has_nonascii = 1; > if (enc != *encp) { > 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); }; > continue; > } > } > parser_tokadd(parser, c); > } > *encp = enc; > return c; >} > > > > >static int >parser_parse_string(struct parser_params *parser, NODE *quote) >{ > int func = quote->u1.id; > int term = ((signed short)(quote)->u2.id); > int paren = (char)((quote)->u2.id >> 8*2); > int c, space = 0; > rb_encoding *enc = parser->enc; > > if (func == -1) return 361; > c = parser_nextc(parser); > if ((func & 0x08) && rb_isspace((unsigned char)(c))) { > do {c = parser_nextc(parser);} while (rb_isspace((unsigned char)(c))); > space = 1; > } > if (c == term && !quote->u3.cnt) { > if (func & 0x08) { > quote->u1.id = -1; > return ' '; > } > if (!(func & 0x04)) return 361; > (*((YYSTYPE*)(parser->parser_yylval))).num = parser_regx_options(parser); > return 320; > } > if (space) { > parser_pushback(parser, c); > return ' '; > } > parser_newtok(parser); > if ((func & 0x02) && c == '#') { > switch (c = parser_nextc(parser)) { > case '$': > case '@': > parser_pushback(parser, c); > return 360; > case '{': > return 359; > } > parser_tokadd(parser, '#'); > } > parser_pushback(parser, c); > if (parser_tokadd_string(parser,func,term,paren,"e->u3.cnt,&enc) == -1) { > > (parser->parser_ruby_sourceline) = ((VALUE)(((((struct RNode*)(quote)))->flags>>(8 +7))&(((long)1<<(sizeof(VALUE)*8 -(8 +7)))-1))); > if (func & 0x04) { > if (parser->eofp) > parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "unterminated regexp meets end of file"); > return 320; > } > else { > if (parser->eofp) > parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "unterminated string meets end of file"); > return 361; > } > } > > ((parser->parser_tokenbuf)[(parser->parser_tokidx)]='\0'); > (*((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)); > return 316; >} > >static int >parser_heredoc_identifier(struct parser_params *parser) >{ > int c = parser_nextc(parser), term, func = 0, len; > > if (c == '-') { > c = parser_nextc(parser); > func = 0x20; > } > switch (c) { > case '\'': > func |= str_squote; goto quoted; > case '"': > func |= str_dquote; goto quoted; > case '`': > func |= str_xquote; > quoted: > parser_newtok(parser); > parser_tokadd(parser, func); > term = c; > while ((c = parser_nextc(parser)) != -1 && c != term) { > if (parser_tokadd_mbchar(parser, c) == -1) return 0; > } > if (c == -1) { > parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "unterminated here document identifier"); > return 0; > } > break; > > default: > 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)))) { > parser_pushback(parser, c); > if (func & 0x20) { > parser_pushback(parser, '-'); > } > return 0; > } > parser_newtok(parser); > term = '"'; > parser_tokadd(parser, func |= str_dquote); > do { > if (parser_tokadd_mbchar(parser, c) == -1) return 0; > } 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)))); > parser_pushback(parser, c); > break; > } > > ((parser->parser_tokenbuf)[(parser->parser_tokidx)]='\0'); > > > > len = (parser->parser_lex_p) - (parser->parser_lex_pbeg); > (parser->parser_lex_p = parser->parser_lex_pend); > (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)); > > > > ((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))); > > > > return term == '`' ? 355 : 354; >} > >static void >parser_heredoc_restore(struct parser_params *parser, NODE *here) >{ > VALUE line; > > > > > > > > line = here->u3.value; > (parser->parser_lex_lastline) = line; > (parser->parser_lex_pbeg) = (!(((struct RBasic*)(line))->flags & (((VALUE)1)<<(12 +1))) ? ((struct RString*)(line))->as.ary : ((struct RString*)(line))->as.heap.ptr); > (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); > (parser->parser_lex_p) = (parser->parser_lex_pbeg) + here->u2.argc; > (parser->parser_heredoc_end) = (parser->parser_ruby_sourceline); > (parser->parser_ruby_sourceline) = ((VALUE)(((((struct RNode*)(here)))->flags>>(8 +7))&(((long)1<<(sizeof(VALUE)*8 -(8 +7)))-1))); > dispose_string(here->u1.value); > rb_gc_force_recycle((VALUE)here); > > > >} > >static int >parser_whole_match_p(struct parser_params *parser, > const char *eos, int len, int indent) >{ > const char *p = (parser->parser_lex_pbeg); > int n; > > if (indent) { > while (*p && rb_isspace((unsigned char)(*p))) p++; > } > n= (parser->parser_lex_pend) - (p + len); > if (n < 0 || (n > 0 && p[len] != '\n' && p[len] != '\r')) return ((VALUE)RUBY_Qfalse); > 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); > return ((VALUE)RUBY_Qfalse); >} > >static int >parser_here_document(struct parser_params *parser, NODE *here) >{ > int c, func, indent = 0; > const char *eos, *p, *pend; > long len; > VALUE str = 0; > > 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); > 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; > indent = (func = *eos++) & 0x20; > > if ((c = parser_nextc(parser)) == -1) { > error: > parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "can't find string \"%s\" anywhere before EOF", eos); > restore: > parser_heredoc_restore(parser,(parser->parser_lex_strterm)); > (parser->parser_lex_strterm) = 0; > return 0; > } > if (((parser->parser_lex_p) == (parser->parser_lex_pbeg) + 1) && parser_whole_match_p(parser,eos,len,indent)) { > parser_heredoc_restore(parser,(parser->parser_lex_strterm)); > return 361; > } > > if (!(func & 0x02)) { > do { > 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); > pend = (parser->parser_lex_pend); > if (pend > p) { > switch (pend[-1]) { > case '\n': > if (--pend == p || pend[-1] != '\r') { > pend++; > break; > } > case '\r': > --pend; > } > } > if (str) > rb_str_cat(str, p, pend - p); > else > str = rb_enc_str_new((p),(pend - p),parser->enc); > if (pend < (parser->parser_lex_pend)) rb_str_cat(str, "\n", 1); > (parser->parser_lex_p = parser->parser_lex_pend); > if (parser_nextc(parser) == -1) { > if (str) dispose_string(str); > goto error; > } > } while (!parser_whole_match_p(parser,eos,len,indent)); > } > else { > > rb_encoding *enc = parser->enc; > parser_newtok(parser); > if (c == '#') { > switch (c = parser_nextc(parser)) { > case '$': > case '@': > parser_pushback(parser, c); > return 360; > case '{': > return 359; > } > parser_tokadd(parser, '#'); > } > do { > parser_pushback(parser, c); > if ((c = parser_tokadd_string(parser,func,'\n',0,((void *)0),&enc)) == -1) { > if (parser->eofp) goto error; > goto restore; > } > if (c != '\n') { > (*((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)); > return 316; > } > parser_tokadd(parser, parser_nextc(parser)); > > if ((c = parser_nextc(parser)) == -1) goto error; > } while (!parser_whole_match_p(parser,eos,len,indent)); > str = parser_str_new(((parser->parser_tokenbuf)),((parser->parser_tokidx)),(enc),(func),parser->enc); > } > parser_heredoc_restore(parser,(parser->parser_lex_strterm)); > (parser->parser_lex_strterm) = node_newnode(parser, NODE_ZARRAY, (-1), (0) | ((0) << (8 * 2)), 0); > (*((YYSTYPE*)(parser->parser_yylval))).node = node_newnode(parser, (NODE_STR), (VALUE)(str), (VALUE)(0), (VALUE)(0)); > return 316; >} > ># 1 "lex.c" 1 ># 1 "keywords" > >struct kwtable {const char *name; int id[2]; enum lex_state_e state;}; >const struct kwtable *rb_reserved_word(const char *, unsigned int); ># 7 "keywords" >struct kwtable; ># 17 "keywords" >__inline > > > > > >static unsigned int >hash (str, len) > register const char *str; > register unsigned int len; >{ > static const unsigned char asso_values[] = > { > 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, > 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, > 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, > 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, > 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, > 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, > 51, 51, 51, 26, 51, 51, 14, 51, 16, 8, > 11, 13, 51, 51, 51, 51, 10, 51, 13, 51, > 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, > 51, 51, 51, 51, 51, 11, 51, 13, 1, 26, > 4, 1, 8, 28, 51, 23, 51, 1, 1, 27, > 5, 19, 21, 51, 8, 3, 3, 11, 51, 21, > 24, 16, 51, 51, 51, 51, 51, 51, 51, 51, > 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, > 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, > 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, > 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, > 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, > 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, > 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, > 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, > 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, > 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, > 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, > 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, > 51, 51, 51, 51, 51, 51 > }; > register int hval = len; > > switch (hval) > { > default: > hval += asso_values[(unsigned char)str[2]]; > > case 2: > case 1: > hval += asso_values[(unsigned char)str[0]]; > break; > } > return hval + asso_values[(unsigned char)str[len - 1]]; >} > > >__inline > > > > >const struct kwtable * >rb_reserved_word (str, len) > register const char *str; > register unsigned int len; >{ > static const struct kwtable wordlist[] = > { > {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, ># 17 "keywords" > {"break", {276, 276}, EXPR_MID}, ># 23 "keywords" > {"else", {270, 270}, EXPR_BEG}, ># 33 "keywords" > {"nil", {289, 289}, EXPR_END}, ># 26 "keywords" > {"ensure", {264, 264}, EXPR_BEG}, ># 25 "keywords" > {"end", {265, 265}, EXPR_END}, ># 42 "keywords" > {"then", {268, 268}, EXPR_BEG}, ># 34 "keywords" > {"not", {294, 294}, EXPR_ARG}, ># 27 "keywords" > {"false", {291, 291}, EXPR_END}, ># 40 "keywords" > {"self", {288, 288}, EXPR_END}, ># 24 "keywords" > {"elsif", {269, 269}, EXPR_VALUE}, ># 37 "keywords" > {"rescue", {263, 299}, EXPR_MID}, ># 43 "keywords" > {"true", {290, 290}, EXPR_END}, ># 46 "keywords" > {"until", {274, 298}, EXPR_VALUE}, ># 45 "keywords" > {"unless", {267, 296}, EXPR_VALUE}, ># 39 "keywords" > {"return", {285, 285}, EXPR_MID}, ># 20 "keywords" > {"def", {260, 260}, EXPR_FNAME}, ># 15 "keywords" > {"and", {292, 292}, EXPR_VALUE}, ># 22 "keywords" > {"do", {281, 281}, EXPR_BEG}, ># 49 "keywords" > {"yield", {286, 286}, EXPR_ARG}, ># 28 "keywords" > {"for", {275, 275}, EXPR_VALUE}, ># 44 "keywords" > {"undef", {261, 261}, EXPR_FNAME}, ># 35 "keywords" > {"or", {293, 293}, EXPR_VALUE}, ># 30 "keywords" > {"in", {280, 280}, EXPR_VALUE}, ># 47 "keywords" > {"when", {272, 272}, EXPR_VALUE}, ># 38 "keywords" > {"retry", {279, 279}, EXPR_END}, ># 29 "keywords" > {"if", {266, 295}, EXPR_VALUE}, ># 18 "keywords" > {"case", {271, 271}, EXPR_VALUE}, ># 36 "keywords" > {"redo", {278, 278}, EXPR_END}, ># 32 "keywords" > {"next", {277, 277}, EXPR_MID}, ># 41 "keywords" > {"super", {287, 287}, EXPR_ARG}, ># 31 "keywords" > {"module", {259, 259}, EXPR_VALUE}, ># 16 "keywords" > {"begin", {262, 262}, EXPR_BEG}, ># 10 "keywords" > {"__LINE__", {304, 304}, EXPR_END}, ># 11 "keywords" > {"__FILE__", {305, 305}, EXPR_END}, ># 9 "keywords" > {"__ENCODING__", {306, 306}, EXPR_END}, ># 13 "keywords" > {"END", {303, 303}, EXPR_END}, ># 14 "keywords" > {"alias", {300, 300}, EXPR_FNAME}, ># 12 "keywords" > {"BEGIN", {302, 302}, EXPR_END}, ># 21 "keywords" > {"defined?", {301, 301}, EXPR_ARG}, ># 19 "keywords" > {"class", {258, 258}, EXPR_CLASS}, > {""}, {""}, ># 48 "keywords" > {"while", {273, 297}, EXPR_VALUE} > }; > > if (len <= 12 && len >= 2) > { > register int key = hash (str, len); > > if (key <= 50 && key >= 0) > { > register const char *s = wordlist[key].name; > > 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)))); })) > return &wordlist[key]; > } > } > return 0; >} ># 50 "keywords" ># 6018 "parse.y" 2 > > >static void >arg_ambiguous_gen(struct parser_params *parser) >{ > rb_compile_warning((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "ambiguous first argument; put parentheses or even spaces"); >} ># 6034 "parse.y" >static int >lvar_defined_gen(struct parser_params *parser, ID id) >{ > > return (dyna_in_block_gen(parser) && dvar_defined_gen(parser, id)) || local_id_gen(parser, id); > > > >} > > >static int >parser_encode_length(struct parser_params *parser, const char *name, int len) >{ > int nlen; > > if (len > 5 && name[nlen = len - 5] == '-') { > if (rb_memcicmp(name + nlen + 1, "unix", 4) == 0) > return nlen; > } > if (len > 4 && name[nlen = len - 5] == '-') { > if (rb_memcicmp(name + nlen + 1, "dos", 3) == 0) > return nlen; > if (rb_memcicmp(name + nlen + 1, "mac", 3) == 0) > return nlen; > } > return len; >} > >static void >parser_set_encode(struct parser_params *parser, const char *name) >{ > int idx = rb_enc_find_index(name); > rb_encoding *enc; > > if (idx < 0) { > rb_raise(rb_eArgError, "unknown encoding name: %s", name); > } > enc = rb_enc_from_index(idx); > if (!((enc)->min_enc_len==1 && !rb_enc_dummy_p(enc))) { > rb_raise(rb_eArgError, "%s is not ASCII compatible", (enc)->name); > } > parser->enc = enc; >} > >static int >comment_at_top(struct parser_params *parser) >{ > const char *p = (parser->parser_lex_pbeg), *pend = (parser->parser_lex_p) - 1; > if (parser->line_count != (parser->has_shebang ? 2 : 1)) return 0; > while (p < pend) { > if (!rb_isspace((unsigned char)(*p))) return 0; > p++; > } > return 1; >} > > >typedef int (*rb_magic_comment_length_t)(struct parser_params *parser, const char *name, int len); >typedef void (*rb_magic_comment_setter_t)(struct parser_params *parser, const char *name, const char *val); > >static void >magic_comment_encoding(struct parser_params *parser, const char *name, const char *val) >{ > if (!comment_at_top(parser)) { > rb_warning("encoding '%s' is ignored, valid only in the first line except for shebang line.", > val); > return; > } > parser_set_encode(parser, val); >} > >struct magic_comment { > const char *name; > rb_magic_comment_setter_t func; > rb_magic_comment_length_t length; >}; > >static const struct magic_comment magic_comments[] = { > {"coding", magic_comment_encoding, parser_encode_length}, > {"encoding", magic_comment_encoding, parser_encode_length}, >}; > > >static const char * >magic_comment_marker(const char *str, int len) >{ > int i = 2; > > while (i < len) { > switch (str[i]) { > case '-': > if (str[i-1] == '*' && str[i-2] == '-') { > return str + i + 1; > } > i += 2; > break; > case '*': > if (i + 1 >= len) return 0; > if (str[i+1] != '-') { > i += 4; > } > else if (str[i-1] != '-') { > i += 2; > } > else { > return str + i + 2; > } > break; > default: > i += 3; > break; > } > } > return 0; >} > >static int >parser_magic_comment(struct parser_params *parser, const char *str, int len) >{ > VALUE name = 0, val = 0; > const char *beg, *end, *vbeg, *vend; > > > > > > if (len <= 7) return ((VALUE)RUBY_Qfalse); > if (!(beg = magic_comment_marker(str, len))) return ((VALUE)RUBY_Qfalse); > if (!(end = magic_comment_marker(beg, str + len - beg))) return ((VALUE)RUBY_Qfalse); > str = beg; > len = end - beg - 3; > > > while (len > 0) { > > const struct magic_comment *p = magic_comments; > > char *s; > int i, n = 0; > > for (; len > 0 && *str; str++, --len) { > switch (*str) { > case '\'': case '"': case ':': case ';': > continue; > } > if (!rb_isspace((unsigned char)(*str))) break; > } > for (beg = str; len > 0; str++, --len) { > switch (*str) { > case '\'': case '"': case ':': case ';': > break; > default: > if (rb_isspace((unsigned char)(*str))) break; > continue; > } > break; > } > for (end = str; len > 0 && rb_isspace((unsigned char)(*str)); str++, --len); > if (!len) break; > if (*str != ':') continue; > > do str++; while (--len > 0 && rb_isspace((unsigned char)(*str))); > if (!len) break; > if (*str == '"') { > for (vbeg = ++str; --len > 0 && *str != '"'; str++) { > if (*str == '\\') { > --len; > ++str; > } > } > vend = str; > if (len) { > --len; > ++str; > } > } > else { > for (vbeg = str; len > 0 && *str != '"' && *str != ';' && !rb_isspace((unsigned char)(*str)); --len, str++); > vend = str; > } > while (len > 0 && (*str == ';' || rb_isspace((unsigned char)(*str)))) --len, str++; > > n = end - beg; > ((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))); > s = (!(((struct RBasic*)(name))->flags & (((VALUE)1)<<(12 +1))) ? ((struct RString*)(name))->as.ary : ((struct RString*)(name))->as.heap.ptr); > for (i = 0; i < n; ++i) { > if (*s == '-') *s = '_'; > } > > do { > if ((st_strncasecmp(p->name, s, n)) == 0) { > n = vend - vbeg; > if (p->length) { > n = (*p->length)(parser, vbeg, n); > } > ((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))); > (*p->func)(parser, s, (!(((struct RBasic*)(val))->flags & (((VALUE)1)<<(12 +1))) ? ((struct RString*)(val))->as.ary : ((struct RString*)(val))->as.heap.ptr)); > break; > } > } while (++p < magic_comments + sizeof(magic_comments) / sizeof(*p)); > > > > } > > return ((VALUE)RUBY_Qtrue); >} > >static void >set_file_encoding(struct parser_params *parser, const char *str, const char *send) >{ > int sep = 0; > const char *beg = str; > VALUE s; > > for (;;) { > if (send - str <= 6) return; > switch (str[6]) { > case 'C': case 'c': str += 6; continue; > case 'O': case 'o': str += 5; continue; > case 'D': case 'd': str += 4; continue; > case 'I': case 'i': str += 3; continue; > case 'N': case 'n': str += 2; continue; > case 'G': case 'g': str += 1; continue; > case '=': case ':': > sep = 1; > str += 6; > break; > default: > str += 6; > if (rb_isspace((unsigned char)(*str))) break; > continue; > } > if ((st_strncasecmp(str-6, "coding", 6)) == 0) break; > } > for (;;) { > do { > if (++str >= send) return; > } while (rb_isspace((unsigned char)(*str))); > if (sep) break; > if (*str != '=' && *str != ':') return; > sep = 1; > str++; > } > beg = str; > while ((*str == '-' || *str == '_' || rb_isalnum((unsigned char)(*str))) && ++str < send); > s = rb_str_new(beg, parser_encode_length(parser, beg, str - beg)); > parser_set_encode(parser, (!(((struct RBasic*)(s))->flags & (((VALUE)1)<<(12 +1))) ? ((struct RString*)(s))->as.ary : ((struct RString*)(s))->as.heap.ptr)); > rb_str_resize(s, 0); >} > >static void >parser_prepare(struct parser_params *parser) >{ > int c = parser_nextc(parser); > switch (c) { > case '#': > if (((parser->parser_lex_p) < (parser->parser_lex_pend) && ('!') == *(parser->parser_lex_p))) parser->has_shebang = 1; > break; > case 0xef: > if ((parser->parser_lex_pend) - (parser->parser_lex_p) >= 2 && > (unsigned char)(parser->parser_lex_p)[0] == 0xbb && > (unsigned char)(parser->parser_lex_p)[1] == 0xbf) { > parser->enc = rb_utf8_encoding(); > (parser->parser_lex_p) += 2; > (parser->parser_lex_pbeg) = (parser->parser_lex_p); > return; > } > break; > case (-1): > return; > } > parser_pushback(parser, c); > parser->enc = rb_enc_get((parser->parser_lex_lastline)); >} > > > > >static int >parser_yylex(struct parser_params *parser) >{ > register int c; > int space_seen = 0; > int cmd_state; > enum lex_state_e last_state; > rb_encoding *enc; > int mb; > > > > > if ((parser->parser_lex_strterm)) { > int token; > if (((int) (((((struct RNode*)((parser->parser_lex_strterm))))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_ARRAY) { > token = parser_here_document(parser,(parser->parser_lex_strterm)); > if (token == 361) { > (parser->parser_lex_strterm) = 0; > (parser->parser_lex_state) = EXPR_END; > } > } > else { > token = parser_parse_string(parser,(parser->parser_lex_strterm)); > if (token == 361 || token == 320) { > rb_gc_force_recycle((VALUE)(parser->parser_lex_strterm)); > (parser->parser_lex_strterm) = 0; > (parser->parser_lex_state) = EXPR_END; > } > } > return token; > } > cmd_state = (parser->parser_command_start); > (parser->parser_command_start) = ((VALUE)RUBY_Qfalse); > retry: > switch (c = parser_nextc(parser)) { > case '\0': > case '\004': > case '\032': > case -1: > return 0; > > > case ' ': case '\t': case '\f': case '\r': > case '\13': > space_seen++; ># 6374 "parse.y" > goto retry; > > case '#': > > if (!parser_magic_comment(parser, (parser->parser_lex_p), (parser->parser_lex_pend) - (parser->parser_lex_p))) { > if (comment_at_top(parser)) { > set_file_encoding(parser, (parser->parser_lex_p), (parser->parser_lex_pend)); > } > } > (parser->parser_lex_p) = (parser->parser_lex_pend); > > > > > > case '\n': > switch ((parser->parser_lex_state)) { > case EXPR_BEG: > case EXPR_FNAME: > case EXPR_DOT: > case EXPR_CLASS: > case EXPR_VALUE: > > > > > > > goto retry; > default: > break; > } > while ((c = parser_nextc(parser))) { > switch (c) { > case ' ': case '\t': case '\f': case '\r': > case '\13': > space_seen++; > break; > case '.': { > if ((c = parser_nextc(parser)) != '.') { > parser_pushback(parser, c); > parser_pushback(parser, '.'); > goto retry; > } > } > default: > --(parser->parser_ruby_sourceline); > (parser->parser_lex_nextline) = (parser->parser_lex_lastline); > case -1: > (parser->parser_lex_p = parser->parser_lex_pend); > > > > > > goto normal_newline; > } > } > normal_newline: > (parser->parser_command_start) = ((VALUE)RUBY_Qtrue); > (parser->parser_lex_state) = EXPR_BEG; > return '\n'; > > case '*': > if ((c = parser_nextc(parser)) == '*') { > if ((c = parser_nextc(parser)) == '=') { > (*((YYSTYPE*)(parser->parser_yylval))).id = 323; > (parser->parser_lex_state) = EXPR_BEG; > return 342; > } > parser_pushback(parser, c); > c = 323; > } > else { > if (c == '=') { > (*((YYSTYPE*)(parser->parser_yylval))).id = '*'; > (parser->parser_lex_state) = EXPR_BEG; > return 342; > } > parser_pushback(parser, c); > if (((parser->parser_lex_state) == EXPR_ARG || (parser->parser_lex_state) == EXPR_CMDARG) && space_seen && !rb_isspace((unsigned char)(c))) { > rb_compile_warning((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "`*' interpreted as argument prefix"); > c = 350; > } > 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)) { > c = 350; > } > else { > c = '*'; > } > } > switch ((parser->parser_lex_state)) { > case EXPR_FNAME: case EXPR_DOT: > (parser->parser_lex_state) = EXPR_ARG; break; > default: > (parser->parser_lex_state) = EXPR_BEG; break; > } > return c; > > case '!': > c = parser_nextc(parser); > if ((parser->parser_lex_state) == EXPR_FNAME || (parser->parser_lex_state) == EXPR_DOT) { > (parser->parser_lex_state) = EXPR_ARG; > if (c == '@') { > return '!'; > } > } > else { > (parser->parser_lex_state) = EXPR_BEG; > } > if (c == '=') { > return 327; > } > if (c == '~') { > return 333; > } > parser_pushback(parser, c); > return '!'; > > case '=': > if (((parser->parser_lex_p) == (parser->parser_lex_pbeg) + 1)) { > > 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]))) { > > > > > > > for (;;) { > (parser->parser_lex_p = parser->parser_lex_pend); > > > > > > > c = parser_nextc(parser); > if (c == -1) { > parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "embedded document meets end of file"); > return 0; > } > if (c != '=') continue; > 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 && > ((parser->parser_lex_p) + 3 == (parser->parser_lex_pend) || rb_isspace((unsigned char)((parser->parser_lex_p)[3])))) { > break; > } > } > (parser->parser_lex_p = parser->parser_lex_pend); > > > > goto retry; > } > } > > switch ((parser->parser_lex_state)) { > case EXPR_FNAME: case EXPR_DOT: > (parser->parser_lex_state) = EXPR_ARG; break; > default: > (parser->parser_lex_state) = EXPR_BEG; break; > } > if ((c = parser_nextc(parser)) == '=') { > if ((c = parser_nextc(parser)) == '=') { > return 326; > } > parser_pushback(parser, c); > return 325; > } > if (c == '~') { > return 332; > } > else if (c == '>') { > return 343; > } > parser_pushback(parser, c); > return '='; > > case '<': > c = parser_nextc(parser); > if (c == '<' && > (parser->parser_lex_state) != EXPR_END && > (parser->parser_lex_state) != EXPR_DOT && > (parser->parser_lex_state) != EXPR_ENDARG && > (parser->parser_lex_state) != EXPR_CLASS && > (!((parser->parser_lex_state) == EXPR_ARG || (parser->parser_lex_state) == EXPR_CMDARG) || space_seen)) { > int token = parser_heredoc_identifier(parser); > if (token) return token; > } > switch ((parser->parser_lex_state)) { > case EXPR_FNAME: case EXPR_DOT: > (parser->parser_lex_state) = EXPR_ARG; break; > default: > (parser->parser_lex_state) = EXPR_BEG; break; > } > if (c == '=') { > if ((c = parser_nextc(parser)) == '>') { > return 324; > } > parser_pushback(parser, c); > return 329; > } > if (c == '<') { > if ((c = parser_nextc(parser)) == '=') { > (*((YYSTYPE*)(parser->parser_yylval))).id = 338; > (parser->parser_lex_state) = EXPR_BEG; > return 342; > } > parser_pushback(parser, c); > return 338; > } > parser_pushback(parser, c); > return '<'; > > case '>': > switch ((parser->parser_lex_state)) { > case EXPR_FNAME: case EXPR_DOT: > (parser->parser_lex_state) = EXPR_ARG; break; > default: > (parser->parser_lex_state) = EXPR_BEG; break; > } > if ((c = parser_nextc(parser)) == '=') { > return 328; > } > if (c == '>') { > if ((c = parser_nextc(parser)) == '=') { > (*((YYSTYPE*)(parser->parser_yylval))).id = 339; > (parser->parser_lex_state) = EXPR_BEG; > return 342; > } > parser_pushback(parser, c); > return 339; > } > parser_pushback(parser, c); > return '>'; > > case '"': > (parser->parser_lex_strterm) = node_newnode(parser, NODE_ZARRAY, (str_dquote), ('"') | ((0) << (8 * 2)), 0); > return 354; > > case '`': > if ((parser->parser_lex_state) == EXPR_FNAME) { > (parser->parser_lex_state) = EXPR_END; > return c; > } > if ((parser->parser_lex_state) == EXPR_DOT) { > if (cmd_state) > (parser->parser_lex_state) = EXPR_CMDARG; > else > (parser->parser_lex_state) = EXPR_ARG; > return c; > } > (parser->parser_lex_strterm) = node_newnode(parser, NODE_ZARRAY, (str_xquote), ('`') | ((0) << (8 * 2)), 0); > return 355; > > case '\'': > (parser->parser_lex_strterm) = node_newnode(parser, NODE_ZARRAY, (str_squote), ('\'') | ((0) << (8 * 2)), 0); > return 354; > > case '?': > if ((parser->parser_lex_state) == EXPR_END || (parser->parser_lex_state) == EXPR_ENDARG) { > (parser->parser_lex_state) = EXPR_VALUE; > return '?'; > } > c = parser_nextc(parser); > if (c == -1) { > parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "incomplete character syntax"); > return 0; > } > if ((parser->enc)->is_code_ctype(c,9,parser->enc)) { > if (!((parser->parser_lex_state) == EXPR_ARG || (parser->parser_lex_state) == EXPR_CMDARG)) { > int c2 = 0; > switch (c) { > case ' ': > c2 = 's'; > break; > case '\n': > c2 = 'n'; > break; > case '\t': > c2 = 't'; > break; > case '\v': > c2 = 'v'; > break; > case '\r': > c2 = 'r'; > break; > case '\f': > c2 = 'f'; > break; > } > if (c2) { > rb_compile_warn((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "invalid character syntax; use ?\\%c", c2); > } > } > ternary: > parser_pushback(parser, c); > (parser->parser_lex_state) = EXPR_VALUE; > return '?'; > } > parser_newtok(parser); > enc = parser->enc; > if (!((unsigned long)((unsigned char)(*((parser->parser_lex_p)-1))) < 128)) { > if (parser_tokadd_mbchar(parser, c) == -1) return 0; > } > else if (((parser->enc)->is_code_ctype(c,13,parser->enc) || c == '_') && > (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))) { > goto ternary; > } > else if (c == '\\') { > if (((parser->parser_lex_p) < (parser->parser_lex_pend) && ('u') == *(parser->parser_lex_p))) { > parser_nextc(parser); > c = parser_tokadd_utf8(parser, &enc, 0, 0, 0); > if (0x80 <= c) { > parser_tokaddmbc(parser, c, enc); > } > else { > parser_tokadd(parser, c); > } > } > else { > c = parser_read_escape(parser, 0, &enc); > parser_tokadd(parser, c); > } > } > else { > parser_tokadd(parser, c); > } > ((parser->parser_tokenbuf)[(parser->parser_tokidx)]='\0'); > (*((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)); > (parser->parser_lex_state) = EXPR_END; > return 317; > > case '&': > if ((c = parser_nextc(parser)) == '&') { > (parser->parser_lex_state) = EXPR_BEG; > if ((c = parser_nextc(parser)) == '=') { > (*((YYSTYPE*)(parser->parser_yylval))).id = 330; > (parser->parser_lex_state) = EXPR_BEG; > return 342; > } > parser_pushback(parser, c); > return 330; > } > else if (c == '=') { > (*((YYSTYPE*)(parser->parser_yylval))).id = '&'; > (parser->parser_lex_state) = EXPR_BEG; > return 342; > } > parser_pushback(parser, c); > if (((parser->parser_lex_state) == EXPR_ARG || (parser->parser_lex_state) == EXPR_CMDARG) && space_seen && !rb_isspace((unsigned char)(c))) { > rb_compile_warning((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "`&' interpreted as argument prefix"); > c = 351; > } > 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)) { > c = 351; > } > else { > c = '&'; > } > switch ((parser->parser_lex_state)) { > case EXPR_FNAME: case EXPR_DOT: > (parser->parser_lex_state) = EXPR_ARG; break; > default: > (parser->parser_lex_state) = EXPR_BEG; > } > return c; > > case '|': > if ((c = parser_nextc(parser)) == '|') { > (parser->parser_lex_state) = EXPR_BEG; > if ((c = parser_nextc(parser)) == '=') { > (*((YYSTYPE*)(parser->parser_yylval))).id = 331; > (parser->parser_lex_state) = EXPR_BEG; > return 342; > } > parser_pushback(parser, c); > return 331; > } > if (c == '=') { > (*((YYSTYPE*)(parser->parser_yylval))).id = '|'; > (parser->parser_lex_state) = EXPR_BEG; > return 342; > } > if ((parser->parser_lex_state) == EXPR_FNAME || (parser->parser_lex_state) == EXPR_DOT) { > (parser->parser_lex_state) = EXPR_ARG; > } > else { > (parser->parser_lex_state) = EXPR_BEG; > } > parser_pushback(parser, c); > return '|'; > > case '+': > c = parser_nextc(parser); > if ((parser->parser_lex_state) == EXPR_FNAME || (parser->parser_lex_state) == EXPR_DOT) { > (parser->parser_lex_state) = EXPR_ARG; > if (c == '@') { > return 321; > } > parser_pushback(parser, c); > return '+'; > } > if (c == '=') { > (*((YYSTYPE*)(parser->parser_yylval))).id = '+'; > (parser->parser_lex_state) = EXPR_BEG; > return 342; > } > 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) || > (((parser->parser_lex_state) == EXPR_ARG || (parser->parser_lex_state) == EXPR_CMDARG) && space_seen && !rb_isspace((unsigned char)(c)))) { > if (((parser->parser_lex_state) == EXPR_ARG || (parser->parser_lex_state) == EXPR_CMDARG)) arg_ambiguous_gen(parser); > (parser->parser_lex_state) = EXPR_BEG; > parser_pushback(parser, c); > if (c != -1 && rb_isdigit((unsigned char)(c))) { > c = '+'; > goto start_num; > } > return 321; > } > (parser->parser_lex_state) = EXPR_BEG; > parser_pushback(parser, c); > return '+'; > > case '-': > c = parser_nextc(parser); > if ((parser->parser_lex_state) == EXPR_FNAME || (parser->parser_lex_state) == EXPR_DOT) { > (parser->parser_lex_state) = EXPR_ARG; > if (c == '@') { > return 322; > } > parser_pushback(parser, c); > return '-'; > } > if (c == '=') { > (*((YYSTYPE*)(parser->parser_yylval))).id = '-'; > (parser->parser_lex_state) = EXPR_BEG; > return 342; > } > if (c == '>') { > (parser->parser_lex_state) = EXPR_ARG; > return 352; > } > 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) || > (((parser->parser_lex_state) == EXPR_ARG || (parser->parser_lex_state) == EXPR_CMDARG) && space_seen && !rb_isspace((unsigned char)(c)))) { > if (((parser->parser_lex_state) == EXPR_ARG || (parser->parser_lex_state) == EXPR_CMDARG)) arg_ambiguous_gen(parser); > (parser->parser_lex_state) = EXPR_BEG; > parser_pushback(parser, c); > if (c != -1 && rb_isdigit((unsigned char)(c))) { > return 364; > } > return 322; > } > (parser->parser_lex_state) = EXPR_BEG; > parser_pushback(parser, c); > return '-'; > > case '.': > (parser->parser_lex_state) = EXPR_BEG; > if ((c = parser_nextc(parser)) == '.') { > if ((c = parser_nextc(parser)) == '.') { > return 335; > } > parser_pushback(parser, c); > return 334; > } > parser_pushback(parser, c); > if (c != -1 && rb_isdigit((unsigned char)(c))) { > parser_yyerror(parser, "no .<digit> floating literal anymore; put 0 before dot"); > } > (parser->parser_lex_state) = EXPR_DOT; > return '.'; > > start_num: > case '0': case '1': case '2': case '3': case '4': > case '5': case '6': case '7': case '8': case '9': > { > int is_float, seen_point, seen_e, nondigit; > > is_float = seen_point = seen_e = nondigit = 0; > (parser->parser_lex_state) = EXPR_END; > parser_newtok(parser); > if (c == '-' || c == '+') { > parser_tokadd(parser, c); > c = parser_nextc(parser); > } > if (c == '0') { > int start = (parser->parser_tokidx); > c = parser_nextc(parser); > if (c == 'x' || c == 'X') { > > c = parser_nextc(parser); > if (c != -1 && rb_isxdigit((unsigned char)(c))) { > do { > if (c == '_') { > if (nondigit) break; > nondigit = c; > continue; > } > if (!rb_isxdigit((unsigned char)(c))) break; > nondigit = 0; > parser_tokadd(parser, c); > } while ((c = parser_nextc(parser)) != -1); > } > parser_pushback(parser, c); > ((parser->parser_tokenbuf)[(parser->parser_tokidx)]='\0'); > if ((parser->parser_tokidx) == start) { > parser_yyerror(parser, "numeric literal without digits"); > } > else if (nondigit) goto trailing_uc; > (*((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)); > return 314; > } > if (c == 'b' || c == 'B') { > > c = parser_nextc(parser); > if (c == '0' || c == '1') { > do { > if (c == '_') { > if (nondigit) break; > nondigit = c; > continue; > } > if (c != '0' && c != '1') break; > nondigit = 0; > parser_tokadd(parser, c); > } while ((c = parser_nextc(parser)) != -1); > } > parser_pushback(parser, c); > ((parser->parser_tokenbuf)[(parser->parser_tokidx)]='\0'); > if ((parser->parser_tokidx) == start) { > parser_yyerror(parser, "numeric literal without digits"); > } > else if (nondigit) goto trailing_uc; > (*((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)); > return 314; > } > if (c == 'd' || c == 'D') { > > c = parser_nextc(parser); > if (c != -1 && rb_isdigit((unsigned char)(c))) { > do { > if (c == '_') { > if (nondigit) break; > nondigit = c; > continue; > } > if (!rb_isdigit((unsigned char)(c))) break; > nondigit = 0; > parser_tokadd(parser, c); > } while ((c = parser_nextc(parser)) != -1); > } > parser_pushback(parser, c); > ((parser->parser_tokenbuf)[(parser->parser_tokidx)]='\0'); > if ((parser->parser_tokidx) == start) { > parser_yyerror(parser, "numeric literal without digits"); > } > else if (nondigit) goto trailing_uc; > (*((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)); > return 314; > } > if (c == '_') { > > goto octal_number; > } > if (c == 'o' || c == 'O') { > > c = parser_nextc(parser); > if (c == -1 || c == '_' || !rb_isdigit((unsigned char)(c))) { > parser_yyerror(parser, "numeric literal without digits"); > } > } > if (c >= '0' && c <= '7') { > > octal_number: > do { > if (c == '_') { > if (nondigit) break; > nondigit = c; > continue; > } > if (c < '0' || c > '9') break; > if (c > '7') goto invalid_octal; > nondigit = 0; > parser_tokadd(parser, c); > } while ((c = parser_nextc(parser)) != -1); > if ((parser->parser_tokidx) > start) { > parser_pushback(parser, c); > ((parser->parser_tokenbuf)[(parser->parser_tokidx)]='\0'); > if (nondigit) goto trailing_uc; > (*((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)); > return 314; > } > if (nondigit) { > parser_pushback(parser, c); > goto trailing_uc; > } > } > if (c > '7' && c <= '9') { > invalid_octal: > parser_yyerror(parser, "Invalid octal digit"); > } > else if (c == '.' || c == 'e' || c == 'E') { > parser_tokadd(parser, '0'); > } > else { > parser_pushback(parser, c); > (*((YYSTYPE*)(parser->parser_yylval))).node = node_newnode(parser, (NODE_LIT), (VALUE)(((VALUE)(((long)(0))<<1 | RUBY_FIXNUM_FLAG))), (VALUE)(0), (VALUE)(0)); > return 314; > } > } > > for (;;) { > switch (c) { > case '0': case '1': case '2': case '3': case '4': > case '5': case '6': case '7': case '8': case '9': > nondigit = 0; > parser_tokadd(parser, c); > break; > > case '.': > if (nondigit) goto trailing_uc; > if (seen_point || seen_e) { > goto decode_num; > } > else { > int c0 = parser_nextc(parser); > if (c == -1 || !rb_isdigit((unsigned char)(c0))) { > parser_pushback(parser, c0); > goto decode_num; > } > c = c0; > } > parser_tokadd(parser, '.'); > parser_tokadd(parser, c); > is_float++; > seen_point++; > nondigit = 0; > break; > > case 'e': > case 'E': > if (nondigit) { > parser_pushback(parser, c); > c = nondigit; > goto decode_num; > } > if (seen_e) { > goto decode_num; > } > parser_tokadd(parser, c); > seen_e++; > is_float++; > nondigit = c; > c = parser_nextc(parser); > if (c != '-' && c != '+') continue; > parser_tokadd(parser, c); > nondigit = c; > break; > > case '_': > if (nondigit) goto decode_num; > nondigit = c; > break; > > default: > goto decode_num; > } > c = parser_nextc(parser); > } > > decode_num: > parser_pushback(parser, c); > ((parser->parser_tokenbuf)[(parser->parser_tokidx)]='\0'); > if (nondigit) { > char tmp[30]; > trailing_uc: > sprintf(tmp, "trailing `%c' in number", nondigit); > parser_yyerror(parser, tmp); > } > if (is_float) { > double d = ruby_strtod((parser->parser_tokenbuf),0); > if ((*__errno_location ()) == 34) { > rb_compile_warning((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "Float %s out of range", (parser->parser_tokenbuf)); > (*__errno_location ()) = 0; > } > (*((YYSTYPE*)(parser->parser_yylval))).node = node_newnode(parser, (NODE_LIT), (VALUE)(rb_float_new(d)), (VALUE)(0), (VALUE)(0)); > return 315; > } > (*((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)); > return 314; > } > > case ')': > case ']': > (parser->parser_paren_nest)--; > case '}': > ((parser->parser_cond_stack) = ((parser->parser_cond_stack) >> 1) | ((parser->parser_cond_stack) & 1)); > ((parser->parser_cmdarg_stack) = ((parser->parser_cmdarg_stack) >> 1) | ((parser->parser_cmdarg_stack) & 1)); > if (c == ')') > (parser->parser_lex_state) = EXPR_END; > else > (parser->parser_lex_state) = EXPR_ENDARG; > return c; > > case ':': > c = parser_nextc(parser); > if (c == ':') { > 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) || > (parser->parser_lex_state) == EXPR_CLASS || (((parser->parser_lex_state) == EXPR_ARG || (parser->parser_lex_state) == EXPR_CMDARG) && space_seen)) { > (parser->parser_lex_state) = EXPR_BEG; > return 341; > } > (parser->parser_lex_state) = EXPR_DOT; > return 340; > } > if ((parser->parser_lex_state) == EXPR_END || (parser->parser_lex_state) == EXPR_ENDARG || (c != -1 && rb_isspace((unsigned char)(c)))) { > parser_pushback(parser, c); > (parser->parser_lex_state) = EXPR_BEG; > return ':'; > } > switch (c) { > case '\'': > (parser->parser_lex_strterm) = node_newnode(parser, NODE_ZARRAY, (str_ssym), (c) | ((0) << (8 * 2)), 0); > break; > case '"': > (parser->parser_lex_strterm) = node_newnode(parser, NODE_ZARRAY, (str_dsym), (c) | ((0) << (8 * 2)), 0); > break; > default: > parser_pushback(parser, c); > break; > } > (parser->parser_lex_state) = EXPR_FNAME; > return 353; > > case '/': > 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)) { > (parser->parser_lex_strterm) = node_newnode(parser, NODE_ZARRAY, (str_regexp), ('/') | ((0) << (8 * 2)), 0); > return 356; > } > if ((c = parser_nextc(parser)) == '=') { > (*((YYSTYPE*)(parser->parser_yylval))).id = '/'; > (parser->parser_lex_state) = EXPR_BEG; > return 342; > } > parser_pushback(parser, c); > if (((parser->parser_lex_state) == EXPR_ARG || (parser->parser_lex_state) == EXPR_CMDARG) && space_seen) { > if (!rb_isspace((unsigned char)(c))) { > arg_ambiguous_gen(parser); > (parser->parser_lex_strterm) = node_newnode(parser, NODE_ZARRAY, (str_regexp), ('/') | ((0) << (8 * 2)), 0); > return 356; > } > } > switch ((parser->parser_lex_state)) { > case EXPR_FNAME: case EXPR_DOT: > (parser->parser_lex_state) = EXPR_ARG; break; > default: > (parser->parser_lex_state) = EXPR_BEG; break; > } > return '/'; > > case '^': > if ((c = parser_nextc(parser)) == '=') { > (*((YYSTYPE*)(parser->parser_yylval))).id = '^'; > (parser->parser_lex_state) = EXPR_BEG; > return 342; > } > switch ((parser->parser_lex_state)) { > case EXPR_FNAME: case EXPR_DOT: > (parser->parser_lex_state) = EXPR_ARG; break; > default: > (parser->parser_lex_state) = EXPR_BEG; break; > } > parser_pushback(parser, c); > return '^'; > > case ';': > (parser->parser_lex_state) = EXPR_BEG; > (parser->parser_command_start) = ((VALUE)RUBY_Qtrue); > return ';'; > > case ',': > (parser->parser_lex_state) = EXPR_BEG; > return ','; > > case '~': > if ((parser->parser_lex_state) == EXPR_FNAME || (parser->parser_lex_state) == EXPR_DOT) { > if ((c = parser_nextc(parser)) != '@') { > parser_pushback(parser, c); > } > (parser->parser_lex_state) = EXPR_ARG; > } > else { > (parser->parser_lex_state) = EXPR_BEG; > } > return '~'; > > case '(': > 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)) { > c = 344; > } > else if (space_seen) { > if (((parser->parser_lex_state) == EXPR_ARG || (parser->parser_lex_state) == EXPR_CMDARG)) { > c = 345; > } > } > (parser->parser_paren_nest)++; > ((parser->parser_cond_stack) = ((parser->parser_cond_stack)<<1)|((0)&1)); > ((parser->parser_cmdarg_stack) = ((parser->parser_cmdarg_stack)<<1)|((0)&1)); > (parser->parser_lex_state) = EXPR_BEG; > return c; > > case '[': > (parser->parser_paren_nest)++; > if ((parser->parser_lex_state) == EXPR_FNAME || (parser->parser_lex_state) == EXPR_DOT) { > (parser->parser_lex_state) = EXPR_ARG; > if ((c = parser_nextc(parser)) == ']') { > if ((c = parser_nextc(parser)) == '=') { > return 337; > } > parser_pushback(parser, c); > return 336; > } > parser_pushback(parser, c); > return '['; > } > 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)) { > c = 347; > } > else if (((parser->parser_lex_state) == EXPR_ARG || (parser->parser_lex_state) == EXPR_CMDARG) && space_seen) { > c = 347; > } > (parser->parser_lex_state) = EXPR_BEG; > ((parser->parser_cond_stack) = ((parser->parser_cond_stack)<<1)|((0)&1)); > ((parser->parser_cmdarg_stack) = ((parser->parser_cmdarg_stack)<<1)|((0)&1)); > return c; > > case '{': > if ((parser->parser_lpar_beg) && (parser->parser_lpar_beg) == (parser->parser_paren_nest)) { > (parser->parser_lex_state) = EXPR_BEG; > (parser->parser_lpar_beg) = 0; > --(parser->parser_paren_nest); > return 362; > } > if (((parser->parser_lex_state) == EXPR_ARG || (parser->parser_lex_state) == EXPR_CMDARG) || (parser->parser_lex_state) == EXPR_END) > c = '{'; > else if ((parser->parser_lex_state) == EXPR_ENDARG) > c = 349; > else > c = 348; > ((parser->parser_cond_stack) = ((parser->parser_cond_stack)<<1)|((0)&1)); > ((parser->parser_cmdarg_stack) = ((parser->parser_cmdarg_stack)<<1)|((0)&1)); > (parser->parser_lex_state) = EXPR_BEG; > if (c != 348) (parser->parser_command_start) = ((VALUE)RUBY_Qtrue); > return c; > > case '\\': > c = parser_nextc(parser); > if (c == '\n') { > space_seen = 1; > > > > goto retry; > } > parser_pushback(parser, c); > return '\\'; > > case '%': > 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)) { > int term; > int paren; > > c = parser_nextc(parser); > quotation: > if (c == -1 || !rb_isalnum((unsigned char)(c))) { > term = c; > c = 'Q'; > } > else { > term = parser_nextc(parser); > if ((parser->enc)->is_code_ctype(term,13,parser->enc) || !((unsigned long)((unsigned char)(*((parser->parser_lex_p)-1))) < 128)) { > parser_yyerror(parser, "unknown type of %string"); > return 0; > } > } > if (c == -1 || term == -1) { > parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "unterminated quoted string meets end of file"); > return 0; > } > paren = term; > if (term == '(') term = ')'; > else if (term == '[') term = ']'; > else if (term == '{') term = '}'; > else if (term == '<') term = '>'; > else paren = 0; > > switch (c) { > case 'Q': > (parser->parser_lex_strterm) = node_newnode(parser, NODE_ZARRAY, (str_dquote), (term) | ((paren) << (8 * 2)), 0); > return 354; > > case 'q': > (parser->parser_lex_strterm) = node_newnode(parser, NODE_ZARRAY, (str_squote), (term) | ((paren) << (8 * 2)), 0); > return 354; > > case 'W': > (parser->parser_lex_strterm) = node_newnode(parser, NODE_ZARRAY, (str_dword), (term) | ((paren) << (8 * 2)), 0); > do {c = parser_nextc(parser);} while (rb_isspace((unsigned char)(c))); > parser_pushback(parser, c); > return 357; > > case 'w': > (parser->parser_lex_strterm) = node_newnode(parser, NODE_ZARRAY, (str_sword), (term) | ((paren) << (8 * 2)), 0); > do {c = parser_nextc(parser);} while (rb_isspace((unsigned char)(c))); > parser_pushback(parser, c); > return 358; > > case 'x': > (parser->parser_lex_strterm) = node_newnode(parser, NODE_ZARRAY, (str_xquote), (term) | ((paren) << (8 * 2)), 0); > return 355; > > case 'r': > (parser->parser_lex_strterm) = node_newnode(parser, NODE_ZARRAY, (str_regexp), (term) | ((paren) << (8 * 2)), 0); > return 356; > > case 's': > (parser->parser_lex_strterm) = node_newnode(parser, NODE_ZARRAY, (str_ssym), (term) | ((paren) << (8 * 2)), 0); > (parser->parser_lex_state) = EXPR_FNAME; > return 353; > > default: > parser_yyerror(parser, "unknown type of %string"); > return 0; > } > } > if ((c = parser_nextc(parser)) == '=') { > (*((YYSTYPE*)(parser->parser_yylval))).id = '%'; > (parser->parser_lex_state) = EXPR_BEG; > return 342; > } > if (((parser->parser_lex_state) == EXPR_ARG || (parser->parser_lex_state) == EXPR_CMDARG) && space_seen && !rb_isspace((unsigned char)(c))) { > goto quotation; > } > switch ((parser->parser_lex_state)) { > case EXPR_FNAME: case EXPR_DOT: > (parser->parser_lex_state) = EXPR_ARG; break; > default: > (parser->parser_lex_state) = EXPR_BEG; break; > } > parser_pushback(parser, c); > return '%'; > > case '$': > last_state = (parser->parser_lex_state); > (parser->parser_lex_state) = EXPR_END; > parser_newtok(parser); > c = parser_nextc(parser); > switch (c) { > case '_': > c = parser_nextc(parser); > 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)))) { > parser_tokadd(parser, '$'); > parser_tokadd(parser, '_'); > break; > } > parser_pushback(parser, c); > c = '_'; > > case '~': > case '*': > case '$': > case '?': > case '!': > case '@': > case '/': > case '\\': > case ';': > case ',': > case '.': > case '=': > case ':': > case '<': > case '>': > case '\"': > parser_tokadd(parser, '$'); > parser_tokadd(parser, c); > ((parser->parser_tokenbuf)[(parser->parser_tokidx)]='\0'); > (*((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))); > return 309; > > case '-': > parser_tokadd(parser, '$'); > parser_tokadd(parser, c); > c = parser_nextc(parser); > 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)))) { > if (parser_tokadd_mbchar(parser, c) == -1) return 0; > } > else { > parser_pushback(parser, c); > } > gvar: > ((parser->parser_tokenbuf)[(parser->parser_tokidx)]='\0'); > (*((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))); > return 309; > > case '&': > case '`': > case '\'': > case '+': > if (last_state == EXPR_FNAME) { > parser_tokadd(parser, '$'); > parser_tokadd(parser, c); > goto gvar; > } > (*((YYSTYPE*)(parser->parser_yylval))).node = node_newnode(parser, (NODE_BACK_REF), (VALUE)(0), (VALUE)(c), (VALUE)(0)); > return 319; > > case '1': case '2': case '3': > case '4': case '5': case '6': > case '7': case '8': case '9': > parser_tokadd(parser, '$'); > do { > parser_tokadd(parser, c); > c = parser_nextc(parser); > } while (c != -1 && rb_isdigit((unsigned char)(c))); > parser_pushback(parser, c); > if (last_state == EXPR_FNAME) goto gvar; > ((parser->parser_tokenbuf)[(parser->parser_tokidx)]='\0'); > (*((YYSTYPE*)(parser->parser_yylval))).node = node_newnode(parser, (NODE_NTH_REF), (VALUE)(0), (VALUE)(atoi((parser->parser_tokenbuf)+1)), (VALUE)(0)); > return 318; > > default: > 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)))) { > parser_pushback(parser, c); > return '$'; > } > case '0': > parser_tokadd(parser, '$'); > } > break; > > case '@': > c = parser_nextc(parser); > parser_newtok(parser); > parser_tokadd(parser, '@'); > if (c == '@') { > parser_tokadd(parser, '@'); > c = parser_nextc(parser); > } > if (c != -1 && rb_isdigit((unsigned char)(c))) { > if ((parser->parser_tokidx) == 1) { > parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "`@%c' is not allowed as an instance variable name", c); > } > else { > parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "`@@%c' is not allowed as a class variable name", c); > } > return 0; > } > 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)))) { > parser_pushback(parser, c); > return '@'; > } > break; > > case '_': > if (((parser->parser_lex_p) == (parser->parser_lex_pbeg) + 1) && parser_whole_match_p(parser,"__END__",7,0)) { > (parser->parser_ruby__end__seen) = 1; > parser->eofp = ((VALUE)RUBY_Qtrue); > > return -1; > > > > > > } > parser_newtok(parser); > break; > > default: > 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)))) { > rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "Invalid char `\\x%02X' in expression", c); > goto retry; > } > > parser_newtok(parser); > break; > } > > mb = (((VALUE)1)<<(12 +8)); > do { > if (!((unsigned long)((unsigned char)(c)) < 128)) mb = 0; > if (parser_tokadd_mbchar(parser, c) == -1) return 0; > c = parser_nextc(parser); > } 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)))); > switch ((parser->parser_tokenbuf)[0]) { > case '@': case '$': > parser_pushback(parser, c); > break; > default: > if ((c == '!' || c == '?') && !((parser->parser_lex_p) < (parser->parser_lex_pend) && ('=') == *(parser->parser_lex_p))) { > parser_tokadd(parser, c); > } > else { > parser_pushback(parser, c); > } > } > ((parser->parser_tokenbuf)[(parser->parser_tokidx)]='\0'); > > { > int result = 0; > > last_state = (parser->parser_lex_state); > switch ((parser->parser_tokenbuf)[0]) { > case '$': > (parser->parser_lex_state) = EXPR_END; > result = 309; > break; > case '@': > (parser->parser_lex_state) = EXPR_END; > if ((parser->parser_tokenbuf)[1] == '@') > result = 312; > else > result = 310; > break; > > default: > 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) == '?') { > result = 308; > } > else { > if ((parser->parser_lex_state) == EXPR_FNAME) { > 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)) && > (!((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] == '>'))) { > result = 307; > parser_tokadd(parser, c); > ((parser->parser_tokenbuf)[(parser->parser_tokidx)]='\0'); > } > else { > parser_pushback(parser, c); > } > } > if (result == 0 && rb_isupper((unsigned char)((parser->parser_tokenbuf)[0]))) { > result = 311; > } > else { > result = 307; > } > } > > if (((parser->parser_lex_state) == EXPR_BEG && !cmd_state) || > (parser->parser_lex_state) == EXPR_ARG || > (parser->parser_lex_state) == EXPR_CMDARG) { > 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] == ':')) { > (parser->parser_lex_state) = EXPR_BEG; > parser_nextc(parser); > (*((YYSTYPE*)(parser->parser_yylval))).id = rb_intern3((parser->parser_tokenbuf), (parser->parser_tokidx), parser->enc); > return 313; > } > } > if (mb == (((VALUE)1)<<(12 +8)) && (parser->parser_lex_state) != EXPR_DOT) { > const struct kwtable *kw; > > > kw = rb_reserved_word((parser->parser_tokenbuf), (parser->parser_tokidx)); > if (kw) { > enum lex_state_e state = (parser->parser_lex_state); > (parser->parser_lex_state) = kw->state; > if (state == EXPR_FNAME) { > (*((YYSTYPE*)(parser->parser_yylval))).id = (__builtin_constant_p(kw->name) ? __extension__ (rb_intern2(kw->name, strlen(kw->name))) : (rb_intern)(kw->name)); > return kw->id[0]; > } > if (kw->id[0] == 281) { > (parser->parser_command_start) = ((VALUE)RUBY_Qtrue); > if ((parser->parser_lpar_beg) && (parser->parser_lpar_beg) == (parser->parser_paren_nest)) { > (parser->parser_lpar_beg) = 0; > --(parser->parser_paren_nest); > return 284; > } > if (((parser->parser_cond_stack)&1)) return 282; > if (((parser->parser_cmdarg_stack)&1) && state != EXPR_CMDARG) > return 283; > if (state == EXPR_ENDARG || state == EXPR_BEG) > return 283; > return 281; > } > if (state == EXPR_BEG || state == EXPR_VALUE) > return kw->id[0]; > else { > if (kw->id[0] != kw->id[1]) > (parser->parser_lex_state) = EXPR_BEG; > return kw->id[1]; > } > } > } > > 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) || > (parser->parser_lex_state) == EXPR_DOT || > ((parser->parser_lex_state) == EXPR_ARG || (parser->parser_lex_state) == EXPR_CMDARG)) { > if (cmd_state) { > (parser->parser_lex_state) = EXPR_CMDARG; > } > else { > (parser->parser_lex_state) = EXPR_ARG; > } > } > else { > (parser->parser_lex_state) = EXPR_END; > } > } > { > ID ident = rb_intern3((parser->parser_tokenbuf), (parser->parser_tokidx), parser->enc); > > (*((YYSTYPE*)(parser->parser_yylval))).id = ident; > if (last_state != EXPR_DOT && (((ident)>376)&&((ident)&0x07)==0x00) && lvar_defined_gen(parser, ident)) { > (parser->parser_lex_state) = EXPR_END; > } > } > return result; > } >} > > >static int >yylex(void *lval, void *p) > > > >{ > struct parser_params *parser = (struct parser_params*)p; > int t; > > > parser->parser_yylval = lval; > parser->parser_yylval->val = ((VALUE)RUBY_Qundef); > > t = parser_yylex(parser); ># 7621 "parse.y" > return t; >} > > >static NODE* >node_newnode(struct parser_params *parser, enum node_type type, VALUE a0, VALUE a1, VALUE a2) >{ > NODE *n = (rb_node_newnode)(type, a0, a1, a2); > ((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))); > return n; >} > >enum node_type >nodetype(NODE *node) >{ > return (enum node_type)((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8)); >} > >int >nodeline(NODE *node) >{ > return ((VALUE)(((((struct RNode*)(node)))->flags>>(8 +7))&(((long)1<<(sizeof(VALUE)*8 -(8 +7)))-1))); >} > >static NODE* >newline_node(NODE *node) >{ > if (node) { > node = remove_begin(node); > node->flags |= (((VALUE)1)<<7); > } > return node; >} > >static void >fixpos(NODE *node, NODE *orig) >{ > if (!node) return; > if (!orig) return; > if (orig == (NODE*)1) return; > ((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))); >} > >static void >parser_warning(struct parser_params *parser, NODE *node, const char *mesg) >{ > rb_compile_warning((parser->parser_ruby_sourcefile), ((VALUE)(((((struct RNode*)(node)))->flags>>(8 +7))&(((long)1<<(sizeof(VALUE)*8 -(8 +7)))-1))), "%s", mesg); >} > > >static void >parser_warn(struct parser_params *parser, NODE *node, const char *mesg) >{ > rb_compile_warn((parser->parser_ruby_sourcefile), ((VALUE)(((((struct RNode*)(node)))->flags>>(8 +7))&(((long)1<<(sizeof(VALUE)*8 -(8 +7)))-1))), "%s", mesg); >} > > >static NODE* >block_append_gen(struct parser_params *parser, NODE *head, NODE *tail) >{ > NODE *end, *h = head, *nd; > > if (tail == 0) return head; > > if (h == 0) return tail; > switch (((int) (((((struct RNode*)(h)))->flags & (((VALUE)0x7f)<<8))>>8))) { > case NODE_LIT: > case NODE_STR: > case NODE_SELF: > case NODE_TRUE: > case NODE_FALSE: > case NODE_NIL: > parser_warning(parser, h, "unused literal ignored"); > return tail; > default: > h = end = node_newnode(parser, (NODE_BLOCK), (VALUE)(head), (VALUE)(0), (VALUE)(0)); > end->u2.node = end; > fixpos(end, head); > head = end; > break; > case NODE_BLOCK: > end = h->u2.node; > break; > } > > nd = end->u1.node; > switch (((int) (((((struct RNode*)(nd)))->flags & (((VALUE)0x7f)<<8))>>8))) { > case NODE_RETURN: > case NODE_BREAK: > case NODE_NEXT: > case NODE_REDO: > case NODE_RETRY: > if ((((VALUE)((*rb_ruby_verbose_ptr())) & ~((VALUE)RUBY_Qnil)) != 0)) { > parser_warning(parser, nd, "statement not reached"); > } > break; > > default: > break; > } > > if (((int) (((((struct RNode*)(tail)))->flags & (((VALUE)0x7f)<<8))>>8)) != NODE_BLOCK) { > tail = node_newnode(parser, (NODE_BLOCK), (VALUE)(tail), (VALUE)(0), (VALUE)(0)); > tail->u2.node = tail; > } > end->u3.node = tail; > h->u2.node = tail->u2.node; > return head; >} > > >static NODE* >list_append_gen(struct parser_params *parser, NODE *list, NODE *item) >{ > NODE *last; > > if (list == 0) return node_newnode(parser, (NODE_ARRAY), (VALUE)(item), (VALUE)(1), (VALUE)(0)); > if (list->u3.node) { > last = list->u3.node->u2.node; > } > else { > last = list; > } > > list->u2.argc += 1; > last->u3.node = node_newnode(parser, (NODE_ARRAY), (VALUE)(item), (VALUE)(1), (VALUE)(0)); > list->u3.node->u2.node = last->u3.node; > return list; >} > > >static NODE* >list_concat_gen(struct parser_params *parser, NODE *head, NODE *tail) >{ > NODE *last; > > if (head->u3.node) { > last = head->u3.node->u2.node; > } > else { > last = head; > } > > head->u2.argc += tail->u2.argc; > last->u3.node = tail; > if (tail->u3.node) { > head->u3.node->u2.node = tail->u3.node->u2.node; > } > else { > head->u3.node->u2.node = tail; > } > > return head; >} > >static int >literal_concat0(struct parser_params *parser, VALUE head, VALUE tail) >{ > if (!rb_enc_compatible(head, tail)) { > parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "string literal encodings differ (%s / %s)", > (rb_enc_get(head))->name, > (rb_enc_get(tail))->name); > rb_str_resize(head, 0); > rb_str_resize(tail, 0); > return 0; > } > rb_str_buf_append(head, tail); > return 1; >} > > >static NODE * >literal_concat_gen(struct parser_params *parser, NODE *head, NODE *tail) >{ > enum node_type htype; > > if (!head) return tail; > if (!tail) return head; > > htype = ((int) (((((struct RNode*)(head)))->flags & (((VALUE)0x7f)<<8))>>8)); > if (htype == NODE_EVSTR) { > NODE *node = node_newnode(parser, (NODE_DSTR), (VALUE)(rb_enc_str_new(0,0,parser->enc)), (VALUE)(1), (VALUE)(0)); > head = list_append_gen(parser,node,head); > } > switch (((int) (((((struct RNode*)(tail)))->flags & (((VALUE)0x7f)<<8))>>8))) { > case NODE_STR: > if (htype == NODE_STR) { > if (!literal_concat0(parser, head->u1.value, tail->u1.value)) { > error: > rb_gc_force_recycle((VALUE)head); > rb_gc_force_recycle((VALUE)tail); > return 0; > } > rb_gc_force_recycle((VALUE)tail); > } > else { > list_append_gen(parser,head,tail); > } > break; > > case NODE_DSTR: > if (htype == NODE_STR) { > if (!literal_concat0(parser, head->u1.value, tail->u1.value)) > goto error; > tail->u1.value = head->u1.value; > rb_gc_force_recycle((VALUE)head); > head = tail; > } > else { > ((struct RNode*)(tail))->flags=((((struct RNode*)(tail))->flags&~(((VALUE)0x7f)<<8))|(((NODE_ARRAY)<<8)&(((VALUE)0x7f)<<8))); > tail->u1.node = node_newnode(parser, (NODE_STR), (VALUE)(tail->u1.value), (VALUE)(0), (VALUE)(0)); > list_concat_gen(parser,head,tail); > } > break; > > case NODE_EVSTR: > if (htype == NODE_STR) { > ((struct RNode*)(head))->flags=((((struct RNode*)(head))->flags&~(((VALUE)0x7f)<<8))|(((NODE_DSTR)<<8)&(((VALUE)0x7f)<<8))); > head->u2.argc = 1; > } > list_append_gen(parser,head,tail); > break; > } > return head; >} > >static NODE * >evstr2dstr_gen(struct parser_params *parser, NODE *node) >{ > if (((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_EVSTR) { > node = list_append_gen(parser,node_newnode(parser, (NODE_DSTR), (VALUE)(rb_enc_str_new(0,0,parser->enc)), (VALUE)(1), (VALUE)(0)),node); > } > return node; >} > >static NODE * >new_evstr_gen(struct parser_params *parser, NODE *node) >{ > NODE *head = node; > > if (node) { > switch (((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8))) { > case NODE_STR: case NODE_DSTR: case NODE_EVSTR: > return node; > } > } > return node_newnode(parser, (NODE_EVSTR), (VALUE)(0), (VALUE)((head)), (VALUE)(0)); >} > >static NODE * >call_bin_op_gen(struct parser_params *parser, NODE *recv, ID id, NODE *arg1) >{ > value_expr_gen(parser, (recv) = remove_begin(recv)); > value_expr_gen(parser, (arg1) = remove_begin(arg1)); > return node_newnode(parser, (NODE_CALL), (VALUE)(recv), (VALUE)(id), (VALUE)(node_newnode(parser, (NODE_ARRAY), (VALUE)(arg1), (VALUE)(1), (VALUE)(0)))); >} > >static NODE * >call_uni_op_gen(struct parser_params *parser, NODE *recv, ID id) >{ > value_expr_gen(parser, (recv) = remove_begin(recv)); > return node_newnode(parser, (NODE_CALL), (VALUE)(recv), (VALUE)(id), (VALUE)(0)); >} > >static NODE* >match_op_gen(struct parser_params *parser, NODE *node1, NODE *node2) >{ > value_expr_gen(parser, (node1) = remove_begin(node1)); > value_expr_gen(parser, (node2) = remove_begin(node2)); > if (node1) { > switch (((int) (((((struct RNode*)(node1)))->flags & (((VALUE)0x7f)<<8))>>8))) { > case NODE_DREGX: > case NODE_DREGX_ONCE: > return node_newnode(parser, (NODE_MATCH2), (VALUE)(node1), (VALUE)(node2), (VALUE)(0)); > > case NODE_LIT: > if (rb_type((VALUE)(node1->u1.value)) == RUBY_T_REGEXP) { > return node_newnode(parser, (NODE_MATCH2), (VALUE)(node1), (VALUE)(node2), (VALUE)(0)); > } > } > } > > if (node2) { > switch (((int) (((((struct RNode*)(node2)))->flags & (((VALUE)0x7f)<<8))>>8))) { > case NODE_DREGX: > case NODE_DREGX_ONCE: > return node_newnode(parser, (NODE_MATCH3), (VALUE)(node2), (VALUE)(node1), (VALUE)(0)); > > case NODE_LIT: > if (rb_type((VALUE)(node2->u1.value)) == RUBY_T_REGEXP) { > return node_newnode(parser, (NODE_MATCH3), (VALUE)(node2), (VALUE)(node1), (VALUE)(0)); > } > } > } > > return node_newnode(parser, (NODE_CALL), (VALUE)(node1), (VALUE)(332), (VALUE)(node_newnode(parser, (NODE_ARRAY), (VALUE)(node2), (VALUE)(1), (VALUE)(0)))); >} > >static NODE* >gettable_gen(struct parser_params *parser, ID id) >{ > if (id == 288) { > return node_newnode(parser, (NODE_SELF), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > } > else if (id == 289) { > return node_newnode(parser, (NODE_NIL), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > } > else if (id == 290) { > return node_newnode(parser, (NODE_TRUE), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > } > else if (id == 291) { > return node_newnode(parser, (NODE_FALSE), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > } > else if (id == 305) { > 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)); > > } > else if (id == 304) { > return node_newnode(parser, (NODE_LIT), (VALUE)(((VALUE)(((long)((parser->parser_ruby_sourceline)))<<1 | RUBY_FIXNUM_FLAG))), (VALUE)(0), (VALUE)(0)); > } > else if (id == 306) { > return node_newnode(parser, (NODE_LIT), (VALUE)(rb_enc_from_encoding(parser->enc)), (VALUE)(0), (VALUE)(0)); > } > else if ((((id)>376)&&((id)&0x07)==0x00)) { > if (dyna_in_block_gen(parser) && dvar_defined_gen(parser, id)) return node_newnode(parser, (NODE_DVAR), (VALUE)(id), (VALUE)(0), (VALUE)(0)); > if (local_id_gen(parser, id)) return node_newnode(parser, (NODE_LVAR), (VALUE)(id), (VALUE)(0), (VALUE)(0)); > > return node_newnode(parser, (NODE_VCALL), (VALUE)(0), (VALUE)(id), (VALUE)(0)); > } > else if ((((id)>376)&&((id)&0x07)==0x03)) { > return node_newnode(parser, (NODE_GVAR), (VALUE)(id), (VALUE)(0), (VALUE)(rb_global_entry(id))); > } > else if ((((id)>376)&&((id)&0x07)==0x01)) { > return node_newnode(parser, (NODE_IVAR), (VALUE)(id), (VALUE)(0), (VALUE)(0)); > } > else if ((((id)>376)&&((id)&0x07)==0x05)) { > return node_newnode(parser, (NODE_CONST), (VALUE)(id), (VALUE)(0), (VALUE)(0)); > } > else if ((((id)>376)&&((id)&0x07)==0x06)) { > return node_newnode(parser, (NODE_CVAR), (VALUE)(id), (VALUE)(0), (VALUE)(0)); > } > parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "identifier %s is not valid to get", rb_id2name(id)); > return 0; >} > >static NODE* >assignable_gen(struct parser_params *parser, ID id, NODE *val) >{ > if (!id) return 0; > if (id == 288) { > parser_yyerror(parser, "Can't change the value of self"); > } > else if (id == 289) { > parser_yyerror(parser, "Can't assign to nil"); > } > else if (id == 290) { > parser_yyerror(parser, "Can't assign to true"); > } > else if (id == 291) { > parser_yyerror(parser, "Can't assign to false"); > } > else if (id == 305) { > parser_yyerror(parser, "Can't assign to __FILE__"); > } > else if (id == 304) { > parser_yyerror(parser, "Can't assign to __LINE__"); > } > else if (id == 306) { > parser_yyerror(parser, "Can't assign to __ENCODING__"); > } > else if ((((id)>376)&&((id)&0x07)==0x00)) { > if (dyna_in_block_gen(parser)) { > if (dvar_curr_gen(parser, id)) { > return node_newnode(parser, (NODE_DASGN_CURR), (VALUE)(id), (VALUE)(val), (VALUE)(0)); > } > else if (dvar_defined_gen(parser, id)) { > return node_newnode(parser, (NODE_DASGN), (VALUE)(id), (VALUE)(val), (VALUE)(0)); > } > else if (local_id_gen(parser, id)) { > return node_newnode(parser, (NODE_LASGN), (VALUE)(id), (VALUE)(val), (VALUE)(0)); > } > else{ > local_var_gen(parser, id);; > return node_newnode(parser, (NODE_DASGN_CURR), (VALUE)(id), (VALUE)(val), (VALUE)(0)); > } > } > else { > if (!local_id_gen(parser, id)) { > local_var_gen(parser, id);; > } > return node_newnode(parser, (NODE_LASGN), (VALUE)(id), (VALUE)(val), (VALUE)(0)); > } > } > else if ((((id)>376)&&((id)&0x07)==0x03)) { > return node_newnode(parser, (NODE_GASGN), (VALUE)(id), (VALUE)(val), (VALUE)(rb_global_entry(id))); > } > else if ((((id)>376)&&((id)&0x07)==0x01)) { > return node_newnode(parser, (NODE_IASGN), (VALUE)(id), (VALUE)(val), (VALUE)(0)); > } > else if ((((id)>376)&&((id)&0x07)==0x05)) { > if ((parser->parser_in_def) || (parser->parser_in_single)) > parser_yyerror(parser, "dynamic constant assignment"); > return node_newnode(parser, (NODE_CDECL), (VALUE)(id), (VALUE)(val), (VALUE)(0)); > } > else if ((((id)>376)&&((id)&0x07)==0x06)) { > return node_newnode(parser, (NODE_CVASGN), (VALUE)(id), (VALUE)(val), (VALUE)(0)); > } > else { > parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "identifier %s is not valid to set", rb_id2name(id)); > } > return 0; >} > >static void >shadowing_lvar_gen(struct parser_params *parser, ID name) >{ > ID uscore; > > 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); > if (uscore == name) return; > if (dyna_in_block_gen(parser)) { > if (dvar_curr_gen(parser, name)) { > parser_yyerror(parser, "duplicated argument name"); > } > else if (dvar_defined_gen(parser, name) || local_id_gen(parser, name)) { > rb_compile_warning((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "shadowing outer local variable - %s", rb_id2name(name)); > vtable_add((parser->parser_lvtbl)->vars, name); > } > } > else { > if (local_id_gen(parser, name)) { > parser_yyerror(parser, "duplicated argument name"); > } > } >} > >static void >new_bv_gen(struct parser_params *parser, ID name) >{ > if (!name) return; > if (!(((name)>376)&&((name)&0x07)==0x00)) { > parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "invalid local variable - %s", > rb_id2name(name)); > return; > } > shadowing_lvar_gen(parser, name); > local_var_gen(parser, name);; >} > >static NODE * >aryset_gen(struct parser_params *parser, NODE *recv, NODE *idx) >{ > if (recv && ((int) (((((struct RNode*)(recv)))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_SELF) > recv = (NODE *)1; > return node_newnode(parser, (NODE_ATTRASGN), (VALUE)(recv), (VALUE)(337), (VALUE)(idx)); >} > >static void >block_dup_check_gen(struct parser_params *parser, NODE *node1, NODE *node2) >{ > if (node2 && node1 && ((int) (((((struct RNode*)(node1)))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_BLOCK_PASS) { > parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "both block arg and actual block given"); > } >} > >ID >rb_id_attrset(ID id) >{ > id &= ~0x07; > id |= 0x04; > return id; >} > >static NODE * >attrset_gen(struct parser_params *parser, NODE *recv, ID id) >{ > if (recv && ((int) (((((struct RNode*)(recv)))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_SELF) > recv = (NODE *)1; > return node_newnode(parser, (NODE_ATTRASGN), (VALUE)(recv), (VALUE)(rb_id_attrset(id)), (VALUE)(0)); >} > >static void >rb_backref_error_gen(struct parser_params *parser, NODE *node) >{ > switch (((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8))) { > case NODE_NTH_REF: > parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "Can't set variable $%ld", node->u2.argc); > break; > case NODE_BACK_REF: > parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "Can't set variable $%c", (int)node->u2.argc); > break; > } >} > >static NODE * >arg_concat_gen(struct parser_params *parser, NODE *node1, NODE *node2) >{ > if (!node2) return node1; > switch (((int) (((((struct RNode*)(node1)))->flags & (((VALUE)0x7f)<<8))>>8))) { > case NODE_BLOCK_PASS: > node1->u3.node = arg_concat_gen(parser,node1->u3.node,node2); > return node1; > case NODE_ARGSPUSH: > if (((int) (((((struct RNode*)(node2)))->flags & (((VALUE)0x7f)<<8))>>8)) != NODE_ARRAY) break; > node1->u2.node = list_concat_gen(parser,node_newnode(parser, (NODE_ARRAY), (VALUE)(node1->u2.node), (VALUE)(1), (VALUE)(0)),node2); > ((struct RNode*)(node1))->flags=((((struct RNode*)(node1))->flags&~(((VALUE)0x7f)<<8))|(((NODE_ARGSCAT)<<8)&(((VALUE)0x7f)<<8))); > return node1; > case NODE_ARGSCAT: > if (((int) (((((struct RNode*)(node2)))->flags & (((VALUE)0x7f)<<8))>>8)) != NODE_ARRAY || > ((int) (((((struct RNode*)(node1->u2.node)))->flags & (((VALUE)0x7f)<<8))>>8)) != NODE_ARRAY) break; > node1->u2.node = list_concat_gen(parser,node1->u2.node,node2); > return node1; > } > return node_newnode(parser, (NODE_ARGSCAT), (VALUE)(node1), (VALUE)(node2), (VALUE)(0)); >} > >static NODE * >arg_append_gen(struct parser_params *parser, NODE *node1, NODE *node2) >{ > if (!node1) return node_newnode(parser, (NODE_ARRAY), (VALUE)(node2), (VALUE)(1), (VALUE)(0)); > switch (((int) (((((struct RNode*)(node1)))->flags & (((VALUE)0x7f)<<8))>>8))) { > case NODE_ARRAY: > return list_append_gen(parser,node1,node2); > case NODE_BLOCK_PASS: > node1->u1.node = arg_append_gen(parser,node1->u1.node,node2); > return node1; > case NODE_ARGSPUSH: > node1->u2.node = list_append_gen(parser,node_newnode(parser, (NODE_ARRAY), (VALUE)(node1->u2.node), (VALUE)(1), (VALUE)(0)),node2); > ((struct RNode*)(node1))->flags=((((struct RNode*)(node1))->flags&~(((VALUE)0x7f)<<8))|(((NODE_ARGSCAT)<<8)&(((VALUE)0x7f)<<8))); > return node1; > } > return node_newnode(parser, (NODE_ARGSPUSH), (VALUE)(node1), (VALUE)(node2), (VALUE)(0)); >} > >static NODE * >splat_array(NODE* node) >{ > if (((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_SPLAT) node = node->u1.node; > if (((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_ARRAY) return node; > return 0; >} > >static NODE * >node_assign_gen(struct parser_params *parser, NODE *lhs, NODE *rhs) >{ > if (!lhs) return 0; > > switch (((int) (((((struct RNode*)(lhs)))->flags & (((VALUE)0x7f)<<8))>>8))) { > case NODE_GASGN: > case NODE_IASGN: > case NODE_IASGN2: > case NODE_LASGN: > case NODE_DASGN: > case NODE_DASGN_CURR: > case NODE_MASGN: > case NODE_CDECL: > case NODE_CVASGN: > lhs->u2.node = rhs; > break; > > case NODE_ATTRASGN: > case NODE_CALL: > lhs->u3.node = arg_append_gen(parser,lhs->u3.node,rhs); > break; > > default: > > break; > } > > return lhs; >} > >static int >value_expr_gen(struct parser_params *parser, NODE *node) >{ > int cond = 0; > > if (!node) { > rb_compile_warning((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "empty expression"); > } > while (node) { > switch (((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8))) { > case NODE_DEFN: > case NODE_DEFS: > parser_warning(parser, node, "void value expression"); > return ((VALUE)RUBY_Qfalse); > > case NODE_RETURN: > case NODE_BREAK: > case NODE_NEXT: > case NODE_REDO: > case NODE_RETRY: > if (!cond) parser_yyerror(parser, "void value expression"); > > return ((VALUE)RUBY_Qfalse); > > case NODE_BLOCK: > while (node->u3.node) { > node = node->u3.node; > } > node = node->u1.node; > break; > > case NODE_BEGIN: > node = node->u2.node; > break; > > case NODE_IF: > if (!node->u2.node) { > node = node->u3.node; > break; > } > else if (!node->u3.node) { > node = node->u2.node; > break; > } > if (!value_expr_gen(parser, (node->u2.node) = remove_begin(node->u2.node))) return ((VALUE)RUBY_Qfalse); > node = node->u3.node; > break; > > case NODE_AND: > case NODE_OR: > cond = 1; > node = node->u2.node; > break; > > default: > return ((VALUE)RUBY_Qtrue); > } > } > > return ((VALUE)RUBY_Qtrue); >} > >static void >void_expr_gen(struct parser_params *parser, NODE *node) >{ > const char *useless = 0; > > if (!(((VALUE)((*rb_ruby_verbose_ptr())) & ~((VALUE)RUBY_Qnil)) != 0)) return; > > if (!node) return; > switch (((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8))) { > case NODE_CALL: > switch (node->u2.id) { > case '+': > case '-': > case '*': > case '/': > case '%': > case 323: > case 321: > case 322: > case '|': > case '^': > case '&': > case 324: > case '>': > case 328: > case '<': > case 329: > case 325: > case 327: > useless = rb_id2name(node->u2.id); > break; > } > break; > > case NODE_LVAR: > case NODE_DVAR: > case NODE_GVAR: > case NODE_IVAR: > case NODE_CVAR: > case NODE_NTH_REF: > case NODE_BACK_REF: > useless = "a variable"; > break; > case NODE_CONST: > useless = "a constant"; > break; > case NODE_LIT: > case NODE_STR: > case NODE_DSTR: > case NODE_DREGX: > case NODE_DREGX_ONCE: > useless = "a literal"; > break; > case NODE_COLON2: > case NODE_COLON3: > useless = "::"; > break; > case NODE_DOT2: > useless = ".."; > break; > case NODE_DOT3: > useless = "..."; > break; > case NODE_SELF: > useless = "self"; > break; > case NODE_NIL: > useless = "nil"; > break; > case NODE_TRUE: > useless = "true"; > break; > case NODE_FALSE: > useless = "false"; > break; > case NODE_DEFINED: > useless = "defined?"; > break; > } > > if (useless) { > int line = (parser->parser_ruby_sourceline); > > (parser->parser_ruby_sourceline) = ((VALUE)(((((struct RNode*)(node)))->flags>>(8 +7))&(((long)1<<(sizeof(VALUE)*8 -(8 +7)))-1))); > rb_compile_warn((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "useless use of %s in void context", useless); > (parser->parser_ruby_sourceline) = line; > } >} > >static void >void_stmts_gen(struct parser_params *parser, NODE *node) >{ > if (!(((VALUE)((*rb_ruby_verbose_ptr())) & ~((VALUE)RUBY_Qnil)) != 0)) return; > if (!node) return; > if (((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8)) != NODE_BLOCK) return; > > for (;;) { > if (!node->u3.node) return; > void_expr_gen(parser, (node->u1.node)); > node = node->u3.node; > } >} > >static NODE * >remove_begin(NODE *node) >{ > NODE **n = &node, *n1 = node; > while (n1 && ((int) (((((struct RNode*)(n1)))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_BEGIN && n1->u2.node) { > *n = n1 = n1->u2.node; > } > return node; >} > >static void >reduce_nodes_gen(struct parser_params *parser, NODE **body) >{ > NODE *node = *body; > > if (!node) { > *body = node_newnode(parser, (NODE_NIL), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > return; > } > > > > > > while (node) { > switch (((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8))) { > end: > case NODE_NIL: > *body = 0; > return; > case NODE_RETURN: > *body = node = node->u1.node; > continue; > case NODE_BEGIN: > *body = node = node->u2.node; > continue; > case NODE_BLOCK: > body = &node->u2.node->u1.node; > break; > case NODE_IF: > 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; > return; > case NODE_CASE: > body = &node->u2.node; > break; > case NODE_WHEN: > 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; > break; > case NODE_ENSURE: > 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; > break; > case NODE_RESCUE: > 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; > break; > default: > return; > } > node = *body; > } > > >} > >static int >assign_in_cond(struct parser_params *parser, NODE *node) >{ > switch (((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8))) { > case NODE_MASGN: > parser_yyerror(parser, "multiple assignment in conditional"); > return 1; > > case NODE_LASGN: > case NODE_DASGN: > case NODE_GASGN: > case NODE_IASGN: > break; > > default: > return 0; > } > > switch (((int) (((((struct RNode*)(node->u2.node)))->flags & (((VALUE)0x7f)<<8))>>8))) { > case NODE_LIT: > case NODE_STR: > case NODE_NIL: > case NODE_TRUE: > case NODE_FALSE: > > parser_warn(parser, node->u2.node, "found = in conditional, should be =="); > return 1; > > case NODE_DSTR: > case NODE_XSTR: > case NODE_DXSTR: > case NODE_EVSTR: > case NODE_DREGX: > default: > break; > } > return 1; >} > >static void >warn_unless_e_option(struct parser_params *parser, NODE *node, const char *str) >{ > if (!e_option_supplied(parser)) parser_warn(parser, node, str); >} > >static void >warning_unless_e_option(struct parser_params *parser, NODE *node, const char *str) >{ > if (!e_option_supplied(parser)) parser_warning(parser, node, str); >} > >static void >fixup_nodes(NODE **rootnode) >{ > NODE *node, *next, *head; > > for (node = *rootnode; node; node = next) { > enum node_type type; > VALUE val; > > next = node->u3.node; > head = node->u1.node; > rb_gc_force_recycle((VALUE)node); > *rootnode = next; > switch (type = ((int) (((((struct RNode*)(head)))->flags & (((VALUE)0x7f)<<8))>>8))) { > case NODE_DOT2: > case NODE_DOT3: > val = rb_range_new(head->u1.node->u1.value, head->u2.node->u1.value, > type == NODE_DOT3 ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); > rb_gc_force_recycle((VALUE)head->u1.node); > rb_gc_force_recycle((VALUE)head->u2.node); > ((struct RNode*)(head))->flags=((((struct RNode*)(head))->flags&~(((VALUE)0x7f)<<8))|(((NODE_LIT)<<8)&(((VALUE)0x7f)<<8))); > head->u1.value = val; > break; > default: > break; > } > } >} > >static NODE *cond0(struct parser_params*,NODE*); > >static NODE* >range_op(struct parser_params *parser, NODE *node) >{ > enum node_type type; > > if (node == 0) return 0; > > type = ((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8)); > value_expr_gen(parser, (node) = remove_begin(node)); > if (type == NODE_LIT && (((long)(node->u1.value))&RUBY_FIXNUM_FLAG)) { > warn_unless_e_option(parser, node, "integer literal in conditional range"); > 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)))); > } > return cond0(parser, node); >} > >static int >literal_node(NODE *node) >{ > if (!node) return 1; > switch (((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8))) { > case NODE_LIT: > case NODE_STR: > case NODE_DSTR: > case NODE_EVSTR: > case NODE_DREGX: > case NODE_DREGX_ONCE: > case NODE_DSYM: > return 2; > case NODE_TRUE: > case NODE_FALSE: > case NODE_NIL: > return 1; > } > return 0; >} > >static NODE* >cond0(struct parser_params *parser, NODE *node) >{ > if (node == 0) return 0; > assign_in_cond(parser, node); > > switch (((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8))) { > case NODE_DSTR: > case NODE_EVSTR: > case NODE_STR: > rb_compile_warn((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "string literal in condition"); > break; > > case NODE_DREGX: > case NODE_DREGX_ONCE: > warning_unless_e_option(parser, node, "regex literal in condition"); > 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)); > > case NODE_AND: > case NODE_OR: > node->u1.node = cond0(parser, node->u1.node); > node->u2.node = cond0(parser, node->u2.node); > break; > > case NODE_DOT2: > case NODE_DOT3: > node->u1.node = range_op(parser, node->u1.node); > node->u2.node = range_op(parser, node->u2.node); > 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))); > 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))); > if (!e_option_supplied(parser)) { > int b = literal_node(node->u1.node); > int e = literal_node(node->u2.node); > if ((b == 1 && e == 1) || (b + e >= 2 && (((VALUE)((*rb_ruby_verbose_ptr())) & ~((VALUE)RUBY_Qnil)) != 0))) { > parser_warn(parser, node, "range literal in condition"); > } > } > break; > > case NODE_DSYM: > parser_warning(parser, node, "literal in condition"); > break; > > case NODE_LIT: > if (rb_type((VALUE)(node->u1.value)) == RUBY_T_REGEXP) { > warn_unless_e_option(parser, node, "regex literal in condition"); > ((struct RNode*)(node))->flags=((((struct RNode*)(node))->flags&~(((VALUE)0x7f)<<8))|(((NODE_MATCH)<<8)&(((VALUE)0x7f)<<8))); > } > else { > parser_warning(parser, node, "literal in condition"); > } > default: > break; > } > return node; >} > >static NODE* >cond_gen(struct parser_params *parser, NODE *node) >{ > if (node == 0) return 0; > return cond0(parser, node); >} > >static NODE* >logop_gen(struct parser_params *parser, enum node_type type, NODE *left, NODE *right) >{ > value_expr_gen(parser, (left) = remove_begin(left)); > if (left && ((int) (((((struct RNode*)(left)))->flags & (((VALUE)0x7f)<<8))>>8)) == type) { > NODE *node = left, *second; > while ((second = node->u2.node) != 0 && ((int) (((((struct RNode*)(second)))->flags & (((VALUE)0x7f)<<8))>>8)) == type) { > node = second; > } > node->u2.node = node_newnode(parser, (type), (VALUE)(second), (VALUE)(right), (VALUE)(0)); > return left; > } > return node_newnode(parser, (type), (VALUE)(left), (VALUE)(right), (VALUE)(0)); >} > >static void >no_blockarg(struct parser_params *parser, NODE *node) >{ > if (node && ((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_BLOCK_PASS) { > parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "block argument should not be given"); > } >} > >static NODE * >ret_args_gen(struct parser_params *parser, NODE *node) >{ > if (node) { > no_blockarg(parser, node); > if (((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_ARRAY) { > if (node->u3.node == 0) { > node = node->u1.node; > } > else { > ((struct RNode*)(node))->flags=((((struct RNode*)(node))->flags&~(((VALUE)0x7f)<<8))|(((NODE_VALUES)<<8)&(((VALUE)0x7f)<<8))); > } > } > } > return node; >} > >static NODE * >new_yield_gen(struct parser_params *parser, NODE *node) >{ > long state = ((VALUE)RUBY_Qtrue); > > if (node) { > no_blockarg(parser, node); > if (node && ((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_SPLAT) { > state = ((VALUE)RUBY_Qtrue); > } > } > else { > state = ((VALUE)RUBY_Qfalse); > } > return node_newnode(parser, (NODE_YIELD), (VALUE)(node), (VALUE)(0), (VALUE)(state)); >} > >static NODE* >negate_lit(NODE *node) >{ > switch (rb_type((VALUE)(node->u1.value))) { > case RUBY_T_FIXNUM: > node->u1.value = ((VALUE)(((long)(-(((long)node->u1.value)>>(int)1)))<<1 | RUBY_FIXNUM_FLAG)); > break; > case RUBY_T_BIGNUM: > node->u1.value = rb_funcall(node->u1.value,322,0,0); > break; > case RUBY_T_FLOAT: > ((struct RFloat*)(node->u1.value))->float_value = -(((struct RFloat*)(node->u1.value))->float_value); > break; > default: > break; > } > return node; >} > >static NODE * >arg_blk_pass(NODE *node1, NODE *node2) >{ > if (node2) { > node2->u1.node = node1; > return node2; > } > return node1; >} > >static NODE* >new_args_gen(struct parser_params *parser, NODE *m, NODE *o, ID r, NODE *p, ID b) >{ > int saved_line = (parser->parser_ruby_sourceline); > NODE *node; > NODE *i1, *i2 = 0; > > node = node_newnode(parser, (NODE_ARGS), (VALUE)(o), (VALUE)(m ? m->u2.argc : 0), (VALUE)(0)); > i1 = m ? m->u3.node : 0; > node->u3.node = node_newnode(parser, (NODE_ARGS_AUX), (VALUE)(r), (VALUE)(b), (VALUE)(0)); > > if (p) { > i2 = p->u3.node; > node->u3.node->u3.node = node_newnode(parser, (NODE_ARGS_AUX), (VALUE)(p->u1.id), (VALUE)(p->u2.argc), (VALUE)(0)); > } > else if (i1) { > node->u3.node->u3.node = node_newnode(parser, (NODE_ARGS_AUX), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > } > if (i1 || i2) { > node->u3.node->u3.node->u3.node = node_newnode(parser, (NODE_AND), (VALUE)(i1), (VALUE)(i2), (VALUE)(0)); > } > (parser->parser_ruby_sourceline) = saved_line; > return node; >} > >static void >local_push_gen(struct parser_params *parser, int inherit_dvars) >{ > struct local_vars *local; > > local = (struct local_vars*)ruby_xmalloc(sizeof(struct local_vars)); > local->prev = (parser->parser_lvtbl); > local->args = vtable_alloc(0); > local->vars = vtable_alloc(inherit_dvars ? ((void*)1) : ((void *)0)); > (parser->parser_lvtbl) = local; >} > >static void >local_pop_gen(struct parser_params *parser) >{ > struct local_vars *local = (parser->parser_lvtbl)->prev; > vtable_free((parser->parser_lvtbl)->args); > vtable_free((parser->parser_lvtbl)->vars); > ruby_xfree((parser->parser_lvtbl)); > (parser->parser_lvtbl) = local; >} > >static ID* >vtable_tblcpy(ID *buf, const struct vtable *src) >{ > int i, cnt = vtable_size(src); > > if (cnt > 0) { > buf[0] = cnt; > for (i = 0; i < cnt; i++) { > buf[i] = src->tbl[i]; > } > return buf; > } > return 0; >} > >static ID* >local_tbl_gen(struct parser_params *parser) >{ > int cnt = vtable_size((parser->parser_lvtbl)->args) + vtable_size((parser->parser_lvtbl)->vars); > ID *buf; > > if (cnt <= 0) return 0; > buf = (ID*)ruby_xmalloc2((cnt + 1),sizeof(ID)); > vtable_tblcpy(buf+1, (parser->parser_lvtbl)->args); > vtable_tblcpy(buf+vtable_size((parser->parser_lvtbl)->args)+1, (parser->parser_lvtbl)->vars); > buf[0] = cnt; > return buf; >} > >static int >arg_var_gen(struct parser_params *parser, ID id) >{ > vtable_add((parser->parser_lvtbl)->args, id); > return vtable_size((parser->parser_lvtbl)->args) - 1; >} > >static int >local_var_gen(struct parser_params *parser, ID id) >{ > vtable_add((parser->parser_lvtbl)->vars, id); > return vtable_size((parser->parser_lvtbl)->vars) - 1; >} > >static int >local_id_gen(struct parser_params *parser, ID id) >{ > struct vtable *vars, *args; > > vars = (parser->parser_lvtbl)->vars; > args = (parser->parser_lvtbl)->args; > > while (vars && ((VALUE)(vars->prev) & ~(VALUE)3)) { > vars = vars->prev; > args = args->prev; > } > > if (vars && vars->prev == ((void*)1)) { > return rb_local_defined(id); > } > else { > return (vtable_included(args, id) || > vtable_included(vars, id)); > } >} > >static void >dyna_push_gen(struct parser_params *parser) >{ > (parser->parser_lvtbl)->args = vtable_alloc((parser->parser_lvtbl)->args); > (parser->parser_lvtbl)->vars = vtable_alloc((parser->parser_lvtbl)->vars); >} > >static void >dyna_pop_gen(struct parser_params *parser) >{ > struct vtable *tmp; > > tmp = (parser->parser_lvtbl)->args; > (parser->parser_lvtbl)->args = (parser->parser_lvtbl)->args->prev; > vtable_free(tmp); > tmp = (parser->parser_lvtbl)->vars; > (parser->parser_lvtbl)->vars = (parser->parser_lvtbl)->vars->prev; > vtable_free(tmp); >} > >static int >dyna_in_block_gen(struct parser_params *parser) >{ > return ((VALUE)((parser->parser_lvtbl)->vars) & ~(VALUE)3) && (parser->parser_lvtbl)->vars->prev != ((void *)0); >} > >static int >dvar_defined_gen(struct parser_params *parser, ID id) >{ > struct vtable *vars, *args; > > args = (parser->parser_lvtbl)->args; > vars = (parser->parser_lvtbl)->vars; > > while (((VALUE)(vars) & ~(VALUE)3)) { > if (vtable_included(args, id)) { > return 1; > } > if (vtable_included(vars, id)) { > return 1; > } > args = args->prev; > vars = vars->prev; > } > > if (vars == ((void*)1)) { > return rb_dvar_defined(id); > } > > return 0; >} > >static int >dvar_curr_gen(struct parser_params *parser, ID id) >{ > return (vtable_included((parser->parser_lvtbl)->args, id) || > vtable_included((parser->parser_lvtbl)->vars, id)); >} > >VALUE rb_reg_compile(VALUE str, int options); >VALUE rb_reg_check_preprocess(VALUE); > >static void >reg_fragment_setenc_gen(struct parser_params* parser, VALUE str, int options) >{ > int c = (((options)>>8)&0xff); > > if (c) { > int opt, idx; > rb_char_to_option_kcode(c, &opt, &idx); > 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)) && > rb_enc_str_coderange(str) != (((VALUE)1)<<(12 +8))) { > goto error; > } > 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); > } > else if (((options)&32)) { > if (!(((((struct RBasic*)(str))->flags & (1023<<(12 +10)))>>(12 +10)) == 0) && > rb_enc_str_coderange(str) != (((VALUE)1)<<(12 +8))) { > c = 'n'; > goto error; > } > rb_enc_associate(str, rb_ascii8bit_encoding()); > } > else if (parser->enc == rb_usascii_encoding()) { > if (rb_enc_str_coderange(str) != (((VALUE)1)<<(12 +8))) { > > rb_enc_associate(str, rb_usascii_encoding()); > } > else { > rb_enc_associate(str, rb_ascii8bit_encoding()); > } > } > return; > > error: > parser->nerr++,rb_compile_error((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), > "regexp encoding option '%c' differs from source encoding '%s'", > c, (rb_enc_get(str))->name); >} > >static void >reg_fragment_check_gen(struct parser_params* parser, VALUE str, int options) >{ > VALUE err; > reg_fragment_setenc_gen(parser, str, options); > err = rb_reg_check_preprocess(str); > if (err != ((VALUE)RUBY_Qnil)) { > err = rb_obj_as_string(err); > 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)); > (*(volatile VALUE *)&(err)); > } >} > >typedef struct { > struct parser_params* parser; > rb_encoding *enc; > NODE *succ_block; > NODE *fail_block; > int num; >} reg_named_capture_assign_t; > >static int >reg_named_capture_assign_iter(const OnigUChar *name, const OnigUChar *name_end, > int back_num, int *back_refs, OnigRegex regex, void *arg0) >{ > reg_named_capture_assign_t *arg = (reg_named_capture_assign_t*)arg0; > struct parser_params* parser = arg->parser; > rb_encoding *enc = arg->enc; > int len = name_end - name; > const char *s = (const char *)name; > ID var; > > arg->num++; > > if (arg->succ_block == 0) { > arg->succ_block = node_newnode(parser, (NODE_BEGIN), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > arg->fail_block = node_newnode(parser, (NODE_BEGIN), (VALUE)(0), (VALUE)(0), (VALUE)(0)); > } > > if (!len || (*name != '_' && ((unsigned long)((unsigned char)(*name)) < 128) && !(enc)->is_code_ctype(*name,6,enc)) || > rb_reserved_word(s, len) || !rb_enc_symname2_p(s, len, enc)) { > return ST_CONTINUE; > } > var = rb_intern3(s, len, enc); > if (dvar_defined_gen(parser, var) || local_id_gen(parser, var)) { > rb_compile_warning((parser->parser_ruby_sourcefile), (parser->parser_ruby_sourceline), "named capture conflicts a local variable - %s", rb_id2name(var)); > > } > 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))))))); > > > > > > > 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))))); > > return ST_CONTINUE; >} > >static NODE * >reg_named_capture_assign_gen(struct parser_params* parser, VALUE regexp, NODE *match) >{ > reg_named_capture_assign_t arg; > > arg.parser = parser; > arg.enc = rb_enc_get(regexp); > arg.succ_block = 0; > arg.fail_block = 0; > arg.num = 0; > onig_foreach_name(((struct RRegexp*)(regexp))->ptr, reg_named_capture_assign_iter, (void*)&arg); > > if (arg.num == 0) > return match; > > return > 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))))))); ># 8994 "parse.y" >} > >static VALUE >reg_compile_gen(struct parser_params* parser, VALUE str, int options) >{ > VALUE re; > VALUE err; > > reg_fragment_setenc_gen(parser, str, options); > err = rb_errinfo(); > re = rb_reg_compile(str, options & 0xff); > if (((VALUE)(re) == ((VALUE)RUBY_Qnil))) { > ID mesg = (__builtin_constant_p("mesg") ? __extension__ (rb_intern2("mesg", strlen("mesg"))) : (rb_intern)("mesg")); > VALUE m = rb_attr_get(rb_errinfo(), mesg); > rb_set_errinfo(err); > if (!((VALUE)(err) == ((VALUE)RUBY_Qnil))) { > rb_str_append(rb_str_cat(rb_attr_get(err, mesg), "\n", 1), m); > } > else { > 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)); > } > return ((VALUE)RUBY_Qnil); > } > return re; >} > >void >rb_gc_mark_parser(void) >{ >} > >NODE* >rb_parser_append_print(VALUE vparser, NODE *node) >{ > NODE *prelude = 0; > NODE *scope = node; > struct parser_params *parser; > > if (!node) return node; > > do { rb_check_type((VALUE)(vparser),RUBY_T_DATA); parser = (struct parser_params*)(((struct RData*)(vparser))->data);} while (0); > > node = node->u2.node; > > if (((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_PRELUDE) { > prelude = node; > node = node->u2.node; > } > > 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))))); > > > if (prelude) { > prelude->u2.node = node; > scope->u2.node = prelude; > } > else { > scope->u2.node = node; > } > > return scope; >} > >NODE * >rb_parser_while_loop(VALUE vparser, NODE *node, int chop, int split) >{ > NODE *prelude = 0; > NODE *scope = node; > struct parser_params *parser; > > if (!node) return node; > > do { rb_check_type((VALUE)(vparser),RUBY_T_DATA); parser = (struct parser_params*)(((struct RData*)(vparser))->data);} while (0); > > node = node->u2.node; > > if (((int) (((((struct RNode*)(node)))->flags & (((VALUE)0x7f)<<8))>>8)) == NODE_PRELUDE) { > prelude = node; > node = node->u2.node; > } > if (split) { > 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); > > > > } > if (chop) { > 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); > > } > > node = node_newnode(parser, (NODE_OPT_N), (VALUE)(0), (VALUE)(node), (VALUE)(0)); > > if (prelude) { > prelude->u2.node = node; > scope->u2.node = prelude; > } > else { > scope->u2.node = node; > } > > return scope; >} > >static const struct { > ID token; > const char *name; >} op_tbl[] = { > {334, ".."}, > {335, "..."}, > {'+', "+(binary)"}, > {'-', "-(binary)"}, > {323, "**"}, > {321, "+@"}, > {322, "-@"}, > {324, "<=>"}, > {328, ">="}, > {329, "<="}, > {325, "=="}, > {326, "==="}, > {327, "!="}, > {332, "=~"}, > {333, "!~"}, > {336, "[]"}, > {337, "[]="}, > {338, "<<"}, > {339, ">>"}, > {340, "::"}, >}; > > > >static struct symbols { > ID last_id; > st_table *sym_id; > st_table *id_str; > st_table *ivar2_id; > st_table *id_ivar2; > VALUE op_sym[376]; >} global_symbols = {tLAST_ID}; > >static const struct st_hash_type symhash = { > rb_str_hash_cmp, > rb_str_hash, >}; > >struct ivar2_key { > ID id; > VALUE klass; >}; > >static int >ivar2_cmp(struct ivar2_key *key1, struct ivar2_key *key2) >{ > if (key1->id == key2->id && key1->klass == key2->klass) { > return 0; > } > return 1; >} > >static int >ivar2_hash(struct ivar2_key *key) >{ > return (key->id << 8) ^ (key->klass >> 2); >} > >static const struct st_hash_type ivar2_hash_type = { > ivar2_cmp, > ivar2_hash, >}; > >void >Init_sym(void) >{ > global_symbols.sym_id = st_init_table_with_size(&symhash, 1000); > global_symbols.id_str = st_init_numtable_with_size(1000); > global_symbols.ivar2_id = st_init_table_with_size(&ivar2_hash_type, 1000); > global_symbols.id_ivar2 = st_init_numtable_with_size(1000); > > Init_id(); >} > >void >rb_gc_mark_symbols(void) >{ > rb_mark_tbl(global_symbols.id_str); > rb_gc_mark_locations(global_symbols.op_sym, > global_symbols.op_sym + 376); >} > >static ID >internal_id_gen(struct parser_params *parser) >{ > ID id = (ID)vtable_size((parser->parser_lvtbl)->args) + (ID)vtable_size((parser->parser_lvtbl)->vars); > id += ((376 - 0x07) >> 3) + 1; > return 0x07 | (id << 3); >} > >static int >is_special_global_name(const char *m, const char *e, rb_encoding *enc) >{ > int mb = 0; > > if (m >= e) return 0; > switch (*m) { > case '~': case '*': case '$': case '?': case '!': case '@': > case '/': case '\\': case ';': case ',': case '.': case '=': > case ':': case '<': case '>': case '\"': > case '&': case '`': case '\'': case '+': > case '0': > ++m; > break; > case '-': > ++m; > if (m < e && ((enc)->is_code_ctype(*m,13,enc) || (*m) == '_' || !((unsigned long)((unsigned char)(*m)) < 128))) { > if (!((unsigned long)((unsigned char)(*m)) < 128)) mb = 1; > m += rb_enc_mbclen(m, e, enc); > } > break; > default: > if (!(enc)->is_code_ctype(*m,4,enc)) return 0; > do { > if (!((unsigned long)((unsigned char)(*m)) < 128)) mb = 1; > ++m; > } while ((enc)->is_code_ctype(*m,4,enc)); > } > return m == e ? mb + 1 : 0; >} > >int >rb_symname_p(const char *name) >{ > return rb_enc_symname_p(name, rb_ascii8bit_encoding()); >} > >int >rb_enc_symname_p(const char *name, rb_encoding *enc) >{ > return rb_enc_symname2_p(name, strlen(name), enc); >} > >int >rb_enc_symname2_p(const char *name, int len, rb_encoding *enc) >{ > const char *m = name; > const char *e = m + len; > int localid = ((VALUE)RUBY_Qfalse); > > if (!m) return ((VALUE)RUBY_Qfalse); > switch (*m) { > case '\0': > return ((VALUE)RUBY_Qfalse); > > case '$': > if (is_special_global_name(++m, e, enc)) return ((VALUE)RUBY_Qtrue); > goto id; > > case '@': > if (*++m == '@') ++m; > goto id; > > case '<': > switch (*++m) { > case '<': ++m; break; > case '=': if (*++m == '>') ++m; break; > default: break; > } > break; > > case '>': > switch (*++m) { > case '>': case '=': ++m; break; > } > break; > > case '=': > switch (*++m) { > case '~': ++m; break; > case '=': if (*++m == '=') ++m; break; > default: return ((VALUE)RUBY_Qfalse); > } > break; > > case '*': > if (*++m == '*') ++m; > break; > > case '+': case '-': > if (*++m == '@') ++m; > break; > > case '|': case '^': case '&': case '/': case '%': case '~': case '`': > ++m; > break; > > case '[': > if (*++m != ']') return ((VALUE)RUBY_Qfalse); > if (*++m == '=') ++m; > break; > > case '!': > switch (*++m) { > case '\0': return ((VALUE)RUBY_Qtrue); > case '=': case '~': ++m; break; > default: return ((VALUE)RUBY_Qfalse); > } > break; > > default: > localid = !(enc)->is_code_ctype(*m,10,enc); > id: > if (m >= e || (*m != '_' && !(enc)->is_code_ctype(*m,1,enc) && ((unsigned long)((unsigned char)(*m)) < 128))) > return ((VALUE)RUBY_Qfalse); > while (m < e && ((enc)->is_code_ctype(*m,13,enc) || (*m) == '_' || !((unsigned long)((unsigned char)(*m)) < 128))) m += rb_enc_mbclen(m, e, enc); > if (localid) { > switch (*m) { > case '!': case '?': case '=': ++m; > } > } > break; > } > return *m ? ((VALUE)RUBY_Qfalse) : ((VALUE)RUBY_Qtrue); >} > >static ID >register_symid(ID id, const char *name, long len, rb_encoding *enc) >{ > VALUE str = rb_enc_str_new(name, len, enc); > 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); > st_add_direct(global_symbols.sym_id, (st_data_t)str, id); > st_add_direct(global_symbols.id_str, id, (st_data_t)str); > return id; >} > >ID >rb_intern3(const char *name, long len, rb_encoding *enc) >{ > const char *m = name; > const char *e = m + len; > unsigned char c; > VALUE str; > ID id; > int last; > int mb; > struct RString fake_str; > fake_str.basic.flags = RUBY_T_STRING|(((VALUE)1)<<(12 +1))|(((VALUE)1)<<11); > fake_str.basic.klass = rb_cString; > fake_str.as.heap.len = len; > fake_str.as.heap.ptr = (char *)name; > fake_str.as.heap.aux.capa = len; > str = (VALUE)&fake_str; > rb_enc_associate(str, enc); > > if (st_lookup(global_symbols.sym_id, str, (st_data_t *)&id)) > return id; > > if (rb_cString && !((enc)->min_enc_len==1 && !rb_enc_dummy_p(enc))) { > id = 0x07; > goto new_id; > } > last = len-1; > id = 0; > switch (*m) { > case '$': > id |= 0x03; > if ((mb = is_special_global_name(++m, e, enc)) != 0) { > if (!--mb) enc = rb_ascii8bit_encoding(); > goto new_id; > } > break; > case '@': > if (m[1] == '@') { > m++; > id |= 0x06; > } > else { > id |= 0x01; > } > m++; > break; > default: > c = m[0]; > if (c != '_' && ((c) < 128) && (enc)->is_code_ctype(c,8,enc)) { > > int i; > > if (len == 1) { > id = c; > goto id_register; > } > for (i = 0; i < (sizeof(op_tbl) / sizeof(op_tbl[0])); i++) { > if (*op_tbl[i].name == *m && > __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) { > id = op_tbl[i].token; > goto id_register; > } > } > } > > if (m[last] == '=') { > > id = rb_intern3(name, last, enc); > if (id > 376 && !(((id)>376)&&((id)&0x07)==0x04)) { > enc = rb_enc_get(rb_id2str(id)); > id = rb_id_attrset(id); > goto id_register; > } > id = 0x04; > } > else if ((enc)->is_code_ctype(m[0],10,enc)) { > id = 0x05; > } > else { > id = 0x00; > } > break; > } > mb = 0; > if (!(enc)->is_code_ctype(*m,4,enc)) { > while (m <= name + last && ((enc)->is_code_ctype(*m,13,enc) || (*m) == '_' || !((unsigned long)((unsigned char)(*m)) < 128))) { > if (((unsigned long)((unsigned char)(*m)) < 128)) { > m++; > } > else { > mb = 1; > m += rb_enc_mbclen(m, e, enc); > } > } > } > if (m - name < len) id = 0x07; > if (enc != rb_usascii_encoding()) { > > > > > if (!mb) { > for (; m <= name + len; ++m) { > if (!((unsigned long)((unsigned char)(*m)) < 128)) goto mbstr; > } > enc = rb_usascii_encoding(); > } > mbstr:; > } > new_id: > id |= ++global_symbols.last_id << 3; > id_register: > return register_symid(id, name, len, enc); >} > >ID >rb_intern2(const char *name, long len) >{ > return rb_intern3(name, len, rb_usascii_encoding()); >} > > >ID >rb_intern(const char *name) >{ > return rb_intern2(name, strlen(name)); >} > >ID >rb_intern_str(VALUE str) >{ > rb_encoding *enc; > ID id; > > if (rb_enc_str_coderange(str) == (((VALUE)1)<<(12 +8))) { > enc = rb_usascii_encoding(); > } > else { > enc = rb_enc_get(str); > } > 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); > (*(volatile VALUE *)&(str)); > return id; >} > >VALUE >rb_id2str(ID id) >{ > st_data_t data; > > if (id < 376) { > int i = 0; > > if (rb_ispunct(id)) { > VALUE str = global_symbols.op_sym[i = (int)id]; > if (!str) { > char name[2]; > name[0] = (char)id; > name[1] = 0; > str = rb_usascii_str_new(name, 1); > 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); > global_symbols.op_sym[i] = str; > } > return str; > } > for (i = 0; i < (sizeof(op_tbl) / sizeof(op_tbl[0])); i++) { > if (op_tbl[i].token == id) { > VALUE str = global_symbols.op_sym[i]; > if (!str) { > 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); }); > 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); > global_symbols.op_sym[i] = str; > } > return str; > } > } > } > > if (st_lookup(global_symbols.id_str, id, &data)) { > VALUE str = (VALUE)data; > if (((struct RBasic*)(str))->klass == 0) > ((struct RBasic*)(str))->klass = rb_cString; > return str; > } > > if ((((id)>376)&&((id)&0x07)==0x04)) { > ID id2 = (id & ~0x07) | 0x00; > VALUE str; > > while (!(str = rb_id2str(id2))) { > if (!(((id2)>376)&&((id2)&0x07)==0x00)) return 0; > id2 = (id & ~0x07) | 0x05; > } > str = rb_str_dup(str); > rb_str_cat(str, "=", 1); > rb_intern_str(str); > if (st_lookup(global_symbols.id_str, id, &data)) { > VALUE str = (VALUE)data; > if (((struct RBasic*)(str))->klass == 0) > ((struct RBasic*)(str))->klass = rb_cString; > return str; > } > } > return 0; >} > >const char * >rb_id2name(ID id) >{ > VALUE str = rb_id2str(id); > > if (!str) return 0; > return (!(((struct RBasic*)(str))->flags & (((VALUE)1)<<(12 +1))) ? ((struct RString*)(str))->as.ary : ((struct RString*)(str))->as.heap.ptr); >} > >static int >symbols_i(VALUE sym, ID value, VALUE ary) >{ > rb_ary_push(ary, (((VALUE)(value)<<RUBY_SPECIAL_SHIFT)|RUBY_SYMBOL_FLAG)); > return ST_CONTINUE; >} ># 9566 "parse.y" >VALUE >rb_sym_all_symbols(void) >{ > VALUE ary = rb_ary_new2(global_symbols.sym_id->num_entries); > > st_foreach(global_symbols.sym_id, symbols_i, ary); > return ary; >} > >int >rb_is_const_id(ID id) >{ > if ((((id)>376)&&((id)&0x07)==0x05)) return ((VALUE)RUBY_Qtrue); > return ((VALUE)RUBY_Qfalse); >} > >int >rb_is_class_id(ID id) >{ > if ((((id)>376)&&((id)&0x07)==0x06)) return ((VALUE)RUBY_Qtrue); > return ((VALUE)RUBY_Qfalse); >} > >int >rb_is_instance_id(ID id) >{ > if ((((id)>376)&&((id)&0x07)==0x01)) return ((VALUE)RUBY_Qtrue); > return ((VALUE)RUBY_Qfalse); >} > >int >rb_is_local_id(ID id) >{ > if ((((id)>376)&&((id)&0x07)==0x00)) return ((VALUE)RUBY_Qtrue); > return ((VALUE)RUBY_Qfalse); >} > >int >rb_is_junk_id(ID id) >{ > if ((((id)>376)&&((id)&0x07)==0x07)) return ((VALUE)RUBY_Qtrue); > return ((VALUE)RUBY_Qfalse); >} > > > >static void >parser_initialize(struct parser_params *parser) >{ > parser->eofp = ((VALUE)RUBY_Qfalse); > > parser->parser_lex_strterm = 0; > parser->parser_cond_stack = 0; > parser->parser_cmdarg_stack = 0; > parser->parser_class_nest = 0; > parser->parser_paren_nest = 0; > parser->parser_lpar_beg = 0; > parser->parser_in_single = 0; > parser->parser_in_def = 0; > parser->parser_in_defined = 0; > parser->parser_compile_for_eval = 0; > parser->parser_cur_mid = 0; > parser->parser_tokenbuf = ((void *)0); > parser->parser_tokidx = 0; > parser->parser_toksiz = 0; > parser->parser_heredoc_end = 0; > parser->parser_command_start = ((VALUE)RUBY_Qtrue); > parser->parser_deferred_nodes = 0; > parser->parser_lex_pbeg = 0; > parser->parser_lex_p = 0; > parser->parser_lex_pend = 0; > parser->parser_lvtbl = 0; > parser->parser_ruby__end__seen = 0; > parser->parser_ruby_sourcefile = 0; > > parser->is_ripper = 0; > parser->parser_eval_tree_begin = 0; > parser->parser_eval_tree = 0; ># 9654 "parse.y" > parser->heap = ((void *)0); > > parser->enc = rb_usascii_encoding(); >} > > > > > > >static void >parser_mark(void *ptr) >{ > struct parser_params *p = (struct parser_params*)ptr; > > rb_gc_mark((VALUE)p->parser_lex_strterm); > rb_gc_mark((VALUE)p->parser_deferred_nodes); > rb_gc_mark(p->parser_lex_input); > rb_gc_mark(p->parser_lex_lastline); > rb_gc_mark(p->parser_lex_nextline); > > rb_gc_mark((VALUE)p->parser_eval_tree_begin) ; > rb_gc_mark((VALUE)p->parser_eval_tree) ; > rb_gc_mark(p->debug_lines); ># 9686 "parse.y" > rb_gc_mark((VALUE)p->heap); > >} > >static void >parser_free(void *ptr) >{ > struct parser_params *p = (struct parser_params*)ptr; > struct local_vars *local, *prev; > > if (p->parser_tokenbuf) { > ruby_xfree(p->parser_tokenbuf); > } > for (local = p->parser_lvtbl; local; local = prev) { > if (local->vars) ruby_xfree(local->vars); > prev = local->prev; > ruby_xfree(local); > } > > ruby_xfree(p->parser_ruby_sourcefile); > > ruby_xfree(p); >} > >VALUE rb_parser_get_yydebug(VALUE); >VALUE rb_parser_set_yydebug(VALUE, VALUE); > > >static struct parser_params * >parser_new(void) >{ > struct parser_params *p; > > p = (struct parser_params*)ruby_xmalloc2((1),sizeof(struct parser_params)); > memset((p), 0, sizeof(struct parser_params)*(1)); > parser_initialize(p); > return p; >} > >VALUE >rb_parser_new(void) >{ > struct parser_params *p = parser_new(); > > return rb_data_object_alloc(0,p,(RUBY_DATA_FUNC)parser_mark,(RUBY_DATA_FUNC)parser_free); >} ># 9740 "parse.y" >VALUE >rb_parser_end_seen_p(VALUE vparser) >{ > struct parser_params *parser; > > do { rb_check_type((VALUE)(vparser),RUBY_T_DATA); parser = (struct parser_params*)(((struct RData*)(vparser))->data);} while (0); > return (parser->parser_ruby__end__seen) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse); >} > > > > > > > >VALUE >rb_parser_encoding(VALUE vparser) >{ > struct parser_params *parser; > > do { rb_check_type((VALUE)(vparser),RUBY_T_DATA); parser = (struct parser_params*)(((struct RData*)(vparser))->data);} while (0); > return rb_enc_from_encoding(parser->enc); >} > > > > > > > >VALUE >rb_parser_get_yydebug(VALUE self) >{ > struct parser_params *parser; > > do { rb_check_type((VALUE)(self),RUBY_T_DATA); parser = (struct parser_params*)(((struct RData*)(self))->data);} while (0); > return (parser->parser_yydebug) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse); >} > > > > > > > >VALUE >rb_parser_set_yydebug(VALUE self, VALUE flag) >{ > struct parser_params *parser; > > do { rb_check_type((VALUE)(self),RUBY_T_DATA); parser = (struct parser_params*)(((struct RData*)(self))->data);} while (0); > (parser->parser_yydebug) = (((VALUE)(flag) & ~((VALUE)RUBY_Qnil)) != 0); > return flag; >} > > > > > > > >void * >rb_parser_malloc(struct parser_params *parser, size_t size) >{ > size_t cnt = ((1) * (size) / sizeof(YYSTYPE)); > NODE *n = node_newnode(parser, NODE_ALLOCA, 0, (VALUE)parser->heap, 0); > void *ptr = ruby_xmalloc(size); > > return ((parser->heap = (n))->u1.node = (ptr), (n)->u3.cnt = (cnt), (ptr)); >} > >void * >rb_parser_calloc(struct parser_params *parser, size_t nelem, size_t size) >{ > size_t cnt = ((nelem) * (size) / sizeof(YYSTYPE)); > NODE *n = node_newnode(parser, NODE_ALLOCA, 0, (VALUE)parser->heap, 0); > void *ptr = ruby_xcalloc(nelem, size); > > return ((parser->heap = (n))->u1.node = (ptr), (n)->u3.cnt = (cnt), (ptr)); >} > >void * >rb_parser_realloc(struct parser_params *parser, void *ptr, size_t size) >{ > NODE *n; > size_t cnt = ((1) * (size) / sizeof(YYSTYPE)); > > if (ptr && (n = parser->heap) != ((void *)0)) { > do { > if (n->u1.node == ptr) { > n->u1.node = ptr = ruby_xrealloc(ptr, size); > if (n->u3.cnt) n->u3.cnt = cnt; > return ptr; > } > } while ((n = n->u2.node) != ((void *)0)); > } > n = node_newnode(parser, NODE_ALLOCA, 0, (VALUE)parser->heap, 0); > ptr = ruby_xrealloc(ptr, size); > return ((parser->heap = (n))->u1.node = (ptr), (n)->u3.cnt = (cnt), (ptr)); >} > >void >rb_parser_free(struct parser_params *parser, void *ptr) >{ > NODE **prev = &parser->heap, *n; > > while ((n = *prev) != ((void *)0)) { > if (n->u1.node == ptr) { > *prev = n->u2.node; > rb_gc_force_recycle((VALUE)n); > break; > } > prev = &n->u2.node; > } > ruby_xfree(ptr); >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 264653
: 187099