Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 717174 Details for
Bug 928468
Fails compiling json gem, at parser.c/parser.rl.
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
Processed input from compiler.
ccuFg6uS.out (text/plain), 196.24 KB, created by
Adrian Grebin
on 2013-03-27 17:22:10 UTC
(
hide
)
Description:
Processed input from compiler.
Filename:
MIME Type:
Creator:
Adrian Grebin
Created:
2013-03-27 17:22:10 UTC
Size:
196.24 KB
patch
obsolete
>// /usr/libexec/gcc/x86_64-redhat-linux/4.4.6/cc1 -quiet -I. -I/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/x86_64-linux -I/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/backward -I/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1 -I. -I/usr/local/rvm/usr/include parser.c -quiet -dumpbase parser.c -mtune=generic -auxbase-strip parser.o -O3 -Wall -fPIC -o - -frandom-seed=0 ># 1 "parser.c" ># 1 "<built-in>" ># 1 "<command-line>" ># 1 "parser.c" ># 1 "parser.rl" ># 1 "../fbuffer/fbuffer.h" 1 > > > > ># 1 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby.h" 1 ># 32 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby.h" ># 1 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/ruby.h" 1 ># 24 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/ruby.h" ># 1 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/x86_64-linux/ruby/config.h" 1 ># 25 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/ruby.h" 2 ># 48 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/ruby.h" ># 1 "/usr/include/string.h" 1 3 4 ># 27 "/usr/include/string.h" 3 4 ># 1 "/usr/include/features.h" 1 3 4 ># 361 "/usr/include/features.h" 3 4 ># 1 "/usr/include/sys/cdefs.h" 1 3 4 ># 365 "/usr/include/sys/cdefs.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 366 "/usr/include/sys/cdefs.h" 2 3 4 ># 362 "/usr/include/features.h" 2 3 4 ># 385 "/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-64.h" 1 3 4 ># 10 "/usr/include/gnu/stubs.h" 2 3 4 ># 386 "/usr/include/features.h" 2 3 4 ># 28 "/usr/include/string.h" 2 3 4 > > > > > > ># 1 "/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stddef.h" 1 3 4 ># 211 "/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stddef.h" 3 4 >typedef long unsigned int size_t; ># 35 "/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))); ># 95 "/usr/include/string.h" 3 4 >extern void *memchr (__const void *__s, int __c, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > ># 109 "/usr/include/string.h" 3 4 >extern void *rawmemchr (__const void *__s, int __c) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); ># 120 "/usr/include/string.h" 3 4 >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))); > > > > > > ># 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; > > >typedef __locale_t locale_t; ># 163 "/usr/include/string.h" 2 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))); ># 210 "/usr/include/string.h" 3 4 > ># 235 "/usr/include/string.h" 3 4 >extern char *strchr (__const char *__s, int __c) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); ># 262 "/usr/include/string.h" 3 4 >extern char *strrchr (__const char *__s, int __c) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > ># 276 "/usr/include/string.h" 3 4 >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))); ># 314 "/usr/include/string.h" 3 4 >extern char *strpbrk (__const char *__s, __const char *__accept) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); ># 342 "/usr/include/string.h" 3 4 >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))); ># 373 "/usr/include/string.h" 3 4 >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__)); > ># 438 "/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))); ># 489 "/usr/include/string.h" 3 4 >extern char *index (__const char *__s, int __c) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); ># 517 "/usr/include/string.h" 3 4 >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 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 int strverscmp (__const char *__s1, __const char *__s2) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __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))); ># 606 "/usr/include/string.h" 3 4 >extern char *basename (__const char *__filename) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); ># 634 "/usr/include/string.h" 3 4 ># 1 "/usr/include/bits/string.h" 1 3 4 ># 635 "/usr/include/string.h" 2 3 4 > > ># 1 "/usr/include/bits/string2.h" 1 3 4 ># 52 "/usr/include/bits/string2.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 ># 61 "/usr/include/endian.h" 3 4 ># 1 "/usr/include/bits/byteswap.h" 1 3 4 ># 28 "/usr/include/bits/byteswap.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 29 "/usr/include/bits/byteswap.h" 2 3 4 ># 62 "/usr/include/endian.h" 2 3 4 ># 53 "/usr/include/bits/string2.h" 2 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; > >typedef signed long int __int64_t; >typedef unsigned long int __uint64_t; > > > > > > > >typedef long int __quad_t; >typedef unsigned 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 > > >typedef unsigned long int __dev_t; >typedef unsigned int __uid_t; >typedef unsigned int __gid_t; >typedef unsigned long int __ino_t; >typedef unsigned long int __ino64_t; >typedef unsigned int __mode_t; >typedef unsigned long int __nlink_t; >typedef long int __off_t; >typedef long int __off64_t; >typedef int __pid_t; >typedef struct { int __val[2]; } __fsid_t; >typedef long int __clock_t; >typedef unsigned long int __rlim_t; >typedef unsigned long int __rlim64_t; >typedef unsigned int __id_t; >typedef long int __time_t; >typedef unsigned int __useconds_t; >typedef long int __suseconds_t; > >typedef int __daddr_t; >typedef long int __swblk_t; >typedef int __key_t; > > >typedef int __clockid_t; > > >typedef void * __timer_t; > > >typedef long int __blksize_t; > > > > >typedef long int __blkcnt_t; >typedef long int __blkcnt64_t; > > >typedef unsigned long int __fsblkcnt_t; >typedef unsigned long int __fsblkcnt64_t; > > >typedef unsigned long int __fsfilcnt_t; >typedef unsigned long int __fsfilcnt64_t; > >typedef long int __ssize_t; > > > >typedef __off64_t __loff_t; >typedef __quad_t *__qaddr_t; >typedef char *__caddr_t; > > >typedef long int __intptr_t; > > >typedef unsigned int __socklen_t; ># 54 "/usr/include/bits/string2.h" 2 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; >} ># 1172 "/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; >} ># 1204 "/usr/include/bits/string2.h" 3 4 >extern char *__strsep_g (char **__stringp, __const char *__delim); ># 1222 "/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; >} ># 1298 "/usr/include/bits/string2.h" 3 4 ># 1 "/usr/include/stdlib.h" 1 3 4 ># 33 "/usr/include/stdlib.h" 3 4 ># 1 "/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stddef.h" 1 3 4 ># 34 "/usr/include/stdlib.h" 2 3 4 > > ># 469 "/usr/include/stdlib.h" 3 4 > > >extern void *malloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ; > >extern void *calloc (size_t __nmemb, size_t __size) > __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ; > ># 964 "/usr/include/stdlib.h" 3 4 > ># 1299 "/usr/include/bits/string2.h" 2 3 4 > > > > >extern char *__strdup (__const char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)); ># 1322 "/usr/include/bits/string2.h" 3 4 >extern char *__strndup (__const char *__string, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)); ># 638 "/usr/include/string.h" 2 3 4 ># 646 "/usr/include/string.h" 3 4 > ># 49 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/ruby.h" 2 ># 58 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/ruby.h" ># 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 ># 37 "/usr/include/stdint.h" 3 4 >typedef signed char int8_t; >typedef short int int16_t; >typedef int int32_t; > >typedef long int int64_t; > > > > > > > >typedef unsigned char uint8_t; >typedef unsigned short int uint16_t; > >typedef unsigned int uint32_t; > > > >typedef unsigned long int uint64_t; ># 66 "/usr/include/stdint.h" 3 4 >typedef signed char int_least8_t; >typedef short int int_least16_t; >typedef int int_least32_t; > >typedef long int int_least64_t; > > > > > > >typedef unsigned char uint_least8_t; >typedef unsigned short int uint_least16_t; >typedef unsigned int uint_least32_t; > >typedef unsigned long int uint_least64_t; ># 91 "/usr/include/stdint.h" 3 4 >typedef signed char int_fast8_t; > >typedef long int int_fast16_t; >typedef long int int_fast32_t; >typedef long int int_fast64_t; ># 104 "/usr/include/stdint.h" 3 4 >typedef unsigned char uint_fast8_t; > >typedef unsigned long int uint_fast16_t; >typedef unsigned long int uint_fast32_t; >typedef unsigned long int uint_fast64_t; ># 120 "/usr/include/stdint.h" 3 4 >typedef long int intptr_t; > > >typedef unsigned long int uintptr_t; ># 135 "/usr/include/stdint.h" 3 4 >typedef long int intmax_t; >typedef unsigned long int uintmax_t; ># 59 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/ruby.h" 2 > > ># 1 "/usr/include/inttypes.h" 1 3 4 ># 35 "/usr/include/inttypes.h" 3 4 >typedef int __gwchar_t; ># 274 "/usr/include/inttypes.h" 3 4 > > > > > >typedef struct > { > long int quot; > long int rem; > } imaxdiv_t; ># 298 "/usr/include/inttypes.h" 3 4 >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__)); > > > > > >extern long int __strtol_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 __strtol_internal (nptr, endptr, base, 0); >} > >extern unsigned long int __strtoul_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 __strtoul_internal (nptr, endptr, base, 0); >} > >extern long int __wcstol_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 __wcstol_internal (nptr, endptr, base, 0); >} > >extern unsigned long int __wcstoul_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 __wcstoul_internal (nptr, endptr, base, 0); >} ># 442 "/usr/include/inttypes.h" 3 4 > ># 62 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/ruby.h" 2 > > ># 1 "/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stdarg.h" 1 3 4 ># 40 "/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stdarg.h" 3 4 >typedef __builtin_va_list __gnuc_va_list; ># 102 "/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stdarg.h" 3 4 >typedef __gnuc_va_list va_list; ># 65 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/ruby.h" 2 ># 1 "/usr/include/stdio.h" 1 3 4 ># 30 "/usr/include/stdio.h" 3 4 > > > > ># 1 "/usr/lib/gcc/x86_64-redhat-linux/4.4.6/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/x86_64-redhat-linux/4.4.6/include/stddef.h" 1 3 4 ># 16 "/usr/include/_G_config.h" 2 3 4 > > > > ># 1 "/usr/include/wchar.h" 1 3 4 ># 83 "/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 ># 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); ># 460 "/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__)); ># 490 "/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 ># 91 "/usr/include/stdio.h" 3 4 >typedef __off_t off_t; > > > > > > >typedef __off64_t off64_t; > > > > >typedef __ssize_t ssize_t; > > > > > > > >typedef _G_fpos_t fpos_t; > > > > > >typedef _G_fpos64_t fpos64_t; ># 161 "/usr/include/stdio.h" 3 4 ># 1 "/usr/include/bits/stdio_lim.h" 1 3 4 ># 162 "/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__)); > > > > > > > > >extern FILE *tmpfile (void) ; ># 204 "/usr/include/stdio.h" 3 4 >extern FILE *tmpfile64 (void) ; > > > >extern char *tmpnam (char *__s) __attribute__ ((__nothrow__)) ; > > > > > >extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__)) ; ># 226 "/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); > ># 251 "/usr/include/stdio.h" 3 4 >extern int fflush_unlocked (FILE *__stream); ># 261 "/usr/include/stdio.h" 3 4 >extern int fcloseall (void); > > > > > > > > > >extern FILE *fopen (__const char *__restrict __filename, > __const char *__restrict __modes) ; > > > > >extern FILE *freopen (__const char *__restrict __filename, > __const char *__restrict __modes, > FILE *__restrict __stream) ; ># 294 "/usr/include/stdio.h" 3 4 > > >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))) ; ># 416 "/usr/include/stdio.h" 3 4 >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__)); ># 467 "/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))); ># 526 "/usr/include/stdio.h" 3 4 > > > > > > > > > >extern int fgetc (FILE *__stream); >extern int getc (FILE *__stream); > > > > > >extern int getchar (void); > ># 554 "/usr/include/stdio.h" 3 4 >extern int getc_unlocked (FILE *__stream); >extern int getchar_unlocked (void); ># 565 "/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); > ># 598 "/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) ; > ># 644 "/usr/include/stdio.h" 3 4 >extern char *fgets_unlocked (char *__restrict __s, int __n, > FILE *__restrict __stream) ; ># 660 "/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) ; > ># 721 "/usr/include/stdio.h" 3 4 >extern int fputs_unlocked (__const char *__restrict __s, > FILE *__restrict __stream); ># 732 "/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); > ># 768 "/usr/include/stdio.h" 3 4 >extern int fseeko (FILE *__stream, __off_t __off, int __whence); > > > > >extern __off_t ftello (FILE *__stream) ; ># 787 "/usr/include/stdio.h" 3 4 > > > > > > >extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos); > > > > >extern int fsetpos (FILE *__stream, __const fpos_t *__pos); ># 810 "/usr/include/stdio.h" 3 4 > > > >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[]; ># 849 "/usr/include/stdio.h" 2 3 4 > > > > >extern int fileno (FILE *__stream) __attribute__ ((__nothrow__)) ; > > > > >extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ; ># 868 "/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__)); ># 929 "/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); >} ># 930 "/usr/include/stdio.h" 2 3 4 ># 938 "/usr/include/stdio.h" 3 4 > ># 66 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/ruby.h" 2 > ># 1 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/defines.h" 1 ># 27 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/defines.h" ># 1 "/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stddef.h" 1 3 4 ># 149 "/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stddef.h" 3 4 >typedef long int ptrdiff_t; ># 323 "/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stddef.h" 3 4 >typedef int wchar_t; ># 28 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/defines.h" 2 > ># 1 "/usr/include/stdlib.h" 1 3 4 ># 33 "/usr/include/stdlib.h" 3 4 ># 1 "/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stddef.h" 1 3 4 ># 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 ># 67 "/usr/include/bits/waitstatus.h" 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))) ; > ># 240 "/usr/include/stdlib.h" 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 ># 28 "/usr/include/sys/types.h" 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 __ino_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; ># 99 "/usr/include/sys/types.h" 3 4 >typedef __pid_t pid_t; > > > > > >typedef __id_t id_t; ># 116 "/usr/include/sys/types.h" 3 4 >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 ># 58 "/usr/include/time.h" 3 4 > > >typedef __clock_t clock_t; > > > ># 74 "/usr/include/time.h" 3 4 > > >typedef __time_t time_t; > > > ># 92 "/usr/include/time.h" 3 4 >typedef __clockid_t clockid_t; ># 104 "/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/x86_64-redhat-linux/4.4.6/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; ># 201 "/usr/include/sys/types.h" 3 4 >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 ># 23 "/usr/include/bits/select.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 24 "/usr/include/bits/select.h" 2 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 ># 120 "/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 ># 75 "/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 * (int) 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; > > > > > > >typedef __blkcnt_t blkcnt_t; > > > >typedef __fsblkcnt_t fsblkcnt_t; > > > >typedef __fsfilcnt_t fsfilcnt_t; ># 263 "/usr/include/sys/types.h" 3 4 >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[56]; > long int __align; >} pthread_attr_t; > > > >typedef struct __pthread_internal_list >{ > struct __pthread_internal_list *__prev; > struct __pthread_internal_list *__next; >} __pthread_list_t; ># 76 "/usr/include/bits/pthreadtypes.h" 3 4 >typedef union >{ > struct __pthread_mutex_s > { > int __lock; > unsigned int __count; > int __owner; > > unsigned int __nusers; > > > > int __kind; > > int __spins; > __pthread_list_t __list; ># 101 "/usr/include/bits/pthreadtypes.h" 3 4 > } __data; > char __size[40]; > 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 >{ > > 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; > int __writer; > int __shared; > unsigned long int __pad1; > unsigned long int __pad2; > > > unsigned int __flags; > } __data; ># 187 "/usr/include/bits/pthreadtypes.h" 3 4 > char __size[56]; > 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[32]; > long int __align; >} pthread_barrier_t; > >typedef union >{ > char __size[4]; > int __align; >} pthread_barrierattr_t; ># 272 "/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))); ># 479 "/usr/include/stdlib.h" 3 4 > > > > > > >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/x86_64-redhat-linux/4.4.6/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))); ># 528 "/usr/include/stdlib.h" 3 4 >extern int at_quick_exit (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 quick_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__)) __attribute__ ((__nonnull__ (1))); > > > > > > >extern int clearenv (void) __attribute__ ((__nothrow__)); ># 606 "/usr/include/stdlib.h" 3 4 >extern char *mktemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; ># 620 "/usr/include/stdlib.h" 3 4 >extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ; ># 630 "/usr/include/stdlib.h" 3 4 >extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ; ># 642 "/usr/include/stdlib.h" 3 4 >extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ; ># 652 "/usr/include/stdlib.h" 3 4 >extern int mkstemps64 (char *__template, int __suffixlen) > __attribute__ ((__nonnull__ (1))) ; ># 663 "/usr/include/stdlib.h" 3 4 >extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; ># 674 "/usr/include/stdlib.h" 3 4 >extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ; ># 684 "/usr/include/stdlib.h" 3 4 >extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ; ># 694 "/usr/include/stdlib.h" 3 4 >extern int mkostemps (char *__template, int __suffixlen, int __flags) > __attribute__ ((__nonnull__ (1))) ; ># 706 "/usr/include/stdlib.h" 3 4 >extern int mkostemps64 (char *__template, int __suffixlen, int __flags) > __attribute__ ((__nonnull__ (1))) ; > > > > > > > > > >extern int system (__const char *__command) ; > > > > > > >extern char *canonicalize_file_name (__const char *__name) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; ># 734 "/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; > > > >typedef int (*__compar_d_fn_t) (__const void *, __const void *, void *); > > > > > >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 void qsort_r (void *__base, size_t __nmemb, size_t __size, > __compar_d_fn_t __compar, void *__arg) > __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__)) ; > ># 808 "/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))) ; ># 896 "/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))); ># 964 "/usr/include/stdlib.h" 3 4 > ># 30 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/defines.h" 2 ># 61 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/defines.h" >#pragma GCC visibility push(default) ># 71 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/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*); ># 324 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/defines.h" >#pragma GCC visibility pop ># 68 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/ruby.h" 2 > > >#pragma GCC visibility push(default) ># 88 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/ruby.h" >typedef unsigned long VALUE; >typedef unsigned long ID; ># 104 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/ruby.h" >typedef char ruby_check_sizeof_int[4 == sizeof(int) ? 1 : -1]; >typedef char ruby_check_sizeof_long[8 == sizeof(long) ? 1 : -1]; > >typedef char ruby_check_sizeof_long_long[8 == sizeof(long long) ? 1 : -1]; > >typedef char ruby_check_sizeof_voidp[8 == sizeof(void*) ? 1 : -1]; ># 178 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/ruby.h" ># 1 "/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/limits.h" 1 3 4 ># 11 "/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/limits.h" 3 4 ># 1 "/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/syslimits.h" 1 3 4 > > > > > > ># 1 "/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/limits.h" 1 3 4 ># 122 "/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/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 ># 157 "/usr/include/bits/posix1_lim.h" 3 4 ># 1 "/usr/include/bits/local_lim.h" 1 3 4 ># 39 "/usr/include/bits/local_lim.h" 3 4 ># 1 "/usr/include/linux/limits.h" 1 3 4 ># 40 "/usr/include/bits/local_lim.h" 2 3 4 ># 158 "/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/x86_64-redhat-linux/4.4.6/include/limits.h" 2 3 4 ># 8 "/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/syslimits.h" 2 3 4 ># 12 "/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/limits.h" 2 3 4 ># 179 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/ruby.h" 2 ># 228 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/ruby.h" >VALUE rb_int2inum(long); > > >VALUE rb_uint2inum(VALUE); > > > > >VALUE rb_ll2inum(long long); > >VALUE rb_ull2inum(unsigned long long); ># 294 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/ruby.h" >__attribute__ ((noreturn)) void rb_out_of_int(long num); ># 353 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/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 >}; ># 378 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/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 >}; ># 440 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/ruby.h" >static inline int rb_type(VALUE obj); ># 458 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/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); >__attribute__ ((deprecated)) 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); >__attribute__ ((noreturn)) void rb_insecure_operation(void); > >VALUE rb_errinfo(void); >void rb_set_errinfo(VALUE); > >long rb_num2long(VALUE); >VALUE rb_num2ulong(VALUE); ># 517 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/ruby.h" >long rb_num2int(VALUE); >long rb_fix2int(VALUE); ># 531 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/ruby.h" >unsigned long rb_num2uint(VALUE); > >unsigned long rb_fix2uint(VALUE); ># 543 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/ruby.h" >long long rb_num2ll(VALUE); >unsigned long long rb_num2ull(VALUE); ># 573 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/ruby.h" >double rb_num2dbl(VALUE); > > >VALUE rb_uint2big(VALUE); >VALUE rb_int2big(long); > >VALUE rb_newobj(void); ># 596 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/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; >}; ># 628 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/ruby.h" >typedef struct rb_classext_struct rb_classext_t; > >struct RClass { > struct RBasic basic; > rb_classext_t *ptr; > struct st_table *m_tbl; > struct st_table *iv_index_tbl; >}; > > > > > > >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[((int)((sizeof(VALUE)*3)/sizeof(char)-1)) + 1]; > } as; >}; ># 691 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/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; >}; ># 720 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/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 struct rb_data_type_struct rb_data_type_t; > >struct rb_data_type_struct { > const char *wrap_struct_name; > struct { > void (*dmark)(void*); > void (*dfree)(void*); > size_t (*dsize)(const void *); > void *reserved[2]; > > } function; > const rb_data_type_t *parent; > void *data; > >}; > > > > > >struct RTypedData { > struct RBasic basic; > const rb_data_type_t *type; > VALUE typed_flag; > void *data; >}; ># 804 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/ruby.h" >typedef void (*RUBY_DATA_FUNC)(void*); > >VALUE rb_data_object_alloc(VALUE,void*,RUBY_DATA_FUNC,RUBY_DATA_FUNC); >VALUE rb_data_typed_object_alloc(VALUE klass, void *datap, const rb_data_type_t *); >int rb_typeddata_inherited_p(const rb_data_type_t *child, const rb_data_type_t *parent); >int rb_typeddata_is_kind_of(VALUE, const rb_data_type_t *); >void *rb_check_typeddata(VALUE, const rb_data_type_t *); ># 845 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/ruby.h" >struct RStruct { > struct RBasic basic; > union { > struct { > long len; > VALUE *ptr; > } heap; > VALUE ary[3]; > } as; >}; ># 869 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/ruby.h" >struct RBignum { > struct RBasic basic; > union { > struct { > long len; > unsigned int *digits; > } heap; > unsigned int ary[((int)((sizeof(VALUE)*3)/sizeof(unsigned int)))]; > } as; >}; ># 1040 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/ruby.h" >void *rb_alloc_tmp_buffer(volatile VALUE *store, long len); >void rb_free_tmp_buffer(volatile VALUE *store); ># 1057 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/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); ># 1144 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/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*); >VALUE rb_funcall_passing_block(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_bug_errno(const char*, int); >__attribute__ ((noreturn)) void rb_sys_fail(const char*); >__attribute__ ((noreturn)) void rb_sys_fail_str(VALUE); >__attribute__ ((noreturn)) void rb_mod_sys_fail(VALUE, const char*); >__attribute__ ((noreturn)) void rb_mod_sys_fail_str(VALUE, VALUE); >__attribute__ ((noreturn)) void rb_iter_break(void); >__attribute__ ((noreturn)) void rb_exit(int); >__attribute__ ((noreturn)) void rb_notimplement(void); >VALUE rb_syserr_new(int, const char *); >VALUE rb_syserr_new_str(int n, VALUE arg); >__attribute__ ((noreturn)) void rb_syserr_fail(int, const char*); >__attribute__ ((noreturn)) void rb_syserr_fail_str(int, VALUE); >__attribute__ ((noreturn)) void rb_mod_syserr_fail(VALUE, int, const char*); >__attribute__ ((noreturn)) void rb_mod_syserr_fail_str(VALUE, int, VALUE); > > >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(volatile VALUE*); > > > > >void ruby_init(void); >void *ruby_options(int, char**); >int ruby_run_node(void *); >int ruby_exec_node(void *); >int ruby_executable_node(void *n, int *status); > >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_mWaitReadable; >extern VALUE rb_mWaitWritable; > >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_cRandom; >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_eMathDomainError; > >extern VALUE rb_stdin, rb_stdout, rb_stderr; > >static inline VALUE >rb_class_of(VALUE obj) >{ > if (((VALUE)(obj) & RUBY_IMMEDIATE_MASK)) { > if ((((int)(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 ((((int)(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 (int)(((struct RBasic*)(obj))->flags & RUBY_T_MASK); >} ># 1381 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/ruby.h" ># 1 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/missing.h" 1 ># 22 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/missing.h" ># 1 "/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stddef.h" 1 3 4 ># 23 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/missing.h" 2 > > > > > ># 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 > ># 29 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/missing.h" 2 ># 67 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/missing.h" >#pragma GCC visibility push(default) ># 131 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/missing.h" >extern const unsigned char rb_infinity[]; > > > > > > > >extern const unsigned char rb_nan[]; ># 198 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/missing.h" >extern size_t strlcpy(char *, const char*, size_t); > > > >extern size_t strlcat(char *, const char*, size_t); ># 223 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/missing.h" >extern void setproctitle(const char *fmt, ...); > > > >#pragma GCC visibility pop ># 1382 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/ruby.h" 2 ># 1 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/intern.h" 1 ># 24 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/intern.h" ># 1 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/defines.h" 1 ># 25 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/intern.h" 2 ># 34 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/intern.h" ># 1 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/st.h" 1 ># 18 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/st.h" ># 1 "/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stddef.h" 1 3 4 ># 19 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/st.h" 2 ># 31 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/st.h" >#pragma GCC visibility push(default) > > > >typedef unsigned long st_data_t; ># 61 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/st.h" >typedef struct st_table st_table; > >typedef st_data_t st_index_t; >typedef int st_compare_func(st_data_t, st_data_t); >typedef st_index_t st_hash_func(st_data_t); > >typedef char st_check_for_sizeof_st_index_t[8 == (int)sizeof(st_index_t) ? 1 : -1]; > > >struct st_hash_type { > int (*compare)( ); > st_index_t (*hash)( ); >}; > > > >struct st_table { > const struct st_hash_type *type; > st_index_t num_bins; > unsigned int entries_packed : 1; ># 91 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/st.h" > __extension__ > > st_index_t num_entries : (sizeof(st_index_t) * 8) - 1; > struct st_table_entry **bins; > struct st_table_entry *head, *tail; >}; > > > >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 *, st_index_t); >st_table *st_init_numtable(void); >st_table *st_init_numtable_with_size(st_index_t); >st_table *st_init_strtable(void); >st_table *st_init_strtable_with_size(st_index_t); >st_table *st_init_strcasetable(void); >st_table *st_init_strcasetable_with_size(st_index_t); >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_insert2(st_table *, st_data_t, st_data_t, 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); >st_index_t 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); >size_t st_memsize(const st_table *); >st_index_t st_hash(const void *ptr, size_t len, st_index_t h); >st_index_t st_hash_uint32(st_index_t h, uint32_t i); >st_index_t st_hash_uint(st_index_t h, st_index_t i); >st_index_t st_hash_end(st_index_t h); >st_index_t st_hash_start(st_index_t h); > > > >#pragma GCC visibility pop ># 35 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/intern.h" 2 > > >#pragma GCC visibility push(default) ># 48 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/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); >void rb_ary_modify(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_resurrect(VALUE ary); >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_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_ary_resize(VALUE ary, long len); > >VALUE rb_big_new(long, int); >int rb_bigzero_p(VALUE x); >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_big2ulong_pack(VALUE x); > >VALUE rb_ll2inum(long long); >VALUE rb_ull2inum(unsigned long long); >long long rb_big2ll(VALUE); >unsigned long long rb_big2ull(VALUE); > >__attribute__ ((deprecated)) void rb_quad_pack(char*,VALUE); >__attribute__ ((deprecated)) VALUE rb_quad_unpack(const char*,int); >void rb_big_pack(VALUE val, unsigned long *buf, long num_longs); >VALUE rb_big_unpack(unsigned long *buf, long num_longs); >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_idiv(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_define_class_id_under(VALUE, ID, VALUE); >VALUE rb_module_new(void); >VALUE rb_define_module_id(ID); >VALUE rb_define_module_id_under(VALUE, 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_with_enc(const char*, int, void *, const char*, ...) __attribute__((format(printf, 4, 5))); >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); ># 237 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/intern.h" >int rb_sourceline(void); >const char *rb_sourcefile(void); >VALUE rb_check_funcall(VALUE, ID, int, VALUE*); > > >typedef struct { > int maxfd; > fd_set *fdset; >} rb_fdset_t; > >void rb_fd_init(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); >void rb_fd_dup(rb_fdset_t *dst, const rb_fdset_t *src); >int rb_fd_select(int, rb_fdset_t *, rb_fdset_t *, rb_fdset_t *, struct timeval *); ># 302 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/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*); >void rb_remove_method_id(VALUE, ID); > > > >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); >VALUE rb_f_notimplement(int argc, VALUE *argv, VALUE obj); >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_obj_is_proc(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_proc_lambda_p(VALUE); >VALUE rb_binding_new(void); >VALUE rb_obj_method(VALUE, VALUE); >VALUE rb_obj_is_method(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 ruby_finalize(void); >__attribute__ ((noreturn)) void ruby_stop(int); >int ruby_cleanup(volatile int); >__attribute__ ((deprecated)) 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_wakeup_alive(VALUE); >VALUE rb_thread_run(VALUE); >VALUE rb_thread_kill(VALUE); >VALUE rb_thread_create(VALUE (*)(), void*); >__attribute__ ((deprecated)) int rb_thread_select(int, fd_set *, fd_set *, fd_set *, struct timeval *); >int rb_thread_fd_select(int, rb_fdset_t *, rb_fdset_t *, rb_fdset_t *, 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_exec_recursive_paired(VALUE(*)(VALUE, VALUE, int),VALUE,VALUE,VALUE); >VALUE rb_exec_recursive_outer(VALUE(*)(VALUE, VALUE, int),VALUE,VALUE); > >VALUE rb_dir_getwd(void); > >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); >VALUE rb_file_dirname(VALUE fname); >void rb_file_const(const char*, VALUE); >int rb_file_load_ok(const char *); >int rb_find_file_ext_safe(VALUE*, const char* const*, int); >VALUE rb_find_file_safe(VALUE, int); >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); >VALUE rb_str_encode_ospath(VALUE); >int rb_is_absolute_path(const char *); >const char *ruby_find_basename(const char *name, long *baselen, long *alllen); >const char *ruby_find_extname(const char *name, long *len); > >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 rb_gc_set_params(void); > >void st_foreach_safe(struct st_table *, int (*)(), st_data_t); >VALUE rb_check_hash_type(VALUE); >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); >typedef VALUE rb_hash_update_func(VALUE newkey, VALUE oldkey, VALUE value); >VALUE rb_hash_update_by(VALUE hash1, VALUE hash2, rb_hash_update_func *func); >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_io_get_io(VALUE); >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); >int rb_reserved_fd_p(int fd); > >void rb_update_max_fd(int fd); > >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)); > >__attribute__ ((noreturn)) 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_untrust(VALUE); >VALUE rb_obj_untrusted(VALUE); >VALUE rb_obj_trust(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_class_superclass(VALUE); >VALUE rb_class_get_superclass(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_check_to_float(VALUE); >VALUE rb_to_int(VALUE); >VALUE rb_Integer(VALUE); >VALUE rb_to_float(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_run_exec_options_err(const struct rb_exec_arg *e, struct rb_exec_arg *s, char*, size_t); >int rb_exec(const struct rb_exec_arg*); >int rb_exec_err(const struct rb_exec_arg*, char*, size_t); >pid_t rb_fork(int*, int (*)(void*), void*, VALUE); >pid_t rb_fork_err(int*, int (*)(void*, char*, size_t), void*, VALUE, char*, size_t); >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*); >pid_t rb_spawn_err(int, VALUE*, char*, size_t); >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); >int rb_range_values(VALUE range, VALUE *begp, VALUE *endp, int *exclp); > >unsigned int rb_genrand_int32(void); >double rb_genrand_real(void); >void rb_reset_random_seed(void); >VALUE rb_random_bytes(VALUE rnd, long n); >VALUE rb_random_int(VALUE rnd, VALUE max); >unsigned int rb_random_int32(VALUE rnd); >double rb_random_real(VALUE rnd); >unsigned long rb_genrand_ulong_limited(unsigned long i); > > >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); >int rb_reg_backref_number(VALUE match, VALUE backref); >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_alloc(void); >VALUE rb_reg_init_str(VALUE re, VALUE s, int options); >VALUE rb_reg_match(VALUE, VALUE); >VALUE rb_reg_match2(VALUE); >int rb_reg_options(VALUE); > > >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_filesystem_str_new(const char*, long); >VALUE rb_filesystem_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_resurrect(VALUE str); >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); >void rb_str_modify_expand(VALUE, long); >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); >st_index_t rb_memhash(const void *ptr, long len); >st_index_t rb_hash_start(st_index_t); >st_index_t rb_hash_uint32(st_index_t, uint32_t); >st_index_t rb_hash_uint(st_index_t, st_index_t); >st_index_t rb_hash_end(st_index_t); > > > >st_index_t 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_replace(VALUE, 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); >long rb_str_strlen(VALUE); >VALUE rb_str_length(VALUE); >long rb_str_offset(VALUE, long); >size_t rb_str_capacity(VALUE); >VALUE rb_str_ellipsize(VALUE, long); ># 796 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/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); >__attribute__ ((deprecated)) 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_trylock(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_time_num_new(VALUE, VALUE); >struct timeval rb_time_interval(VALUE num); >struct timeval rb_time_timeval(VALUE time); >struct timespec rb_time_timespec(VALUE time); > >VALUE rb_mod_name(VALUE); >VALUE rb_class_path(VALUE); >void rb_set_class_path(VALUE, VALUE, const char*); >void rb_set_class_path_string(VALUE, VALUE, VALUE); >VALUE rb_path_to_class(VALUE); >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); >st_index_t rb_ivar_count(VALUE); >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_const_remove(VALUE, ID); >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); >VALUE rb_make_backtrace(void); >VALUE rb_make_exception(int, VALUE*); > > >#pragma GCC visibility pop ># 1383 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/ruby.h" 2 ># 1395 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/ruby.h" >void ruby_sysinit(int *, char ***); > > > >int ruby_native_thread_p(void); ># 1415 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/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); ># 1463 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/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); > > > > >int ruby_snprintf(char *str, size_t n, char const *fmt, ...) __attribute__((format(printf, 3, 4))); >int ruby_vsnprintf(char *str, size_t n, char const *fmt, va_list ap); > > >#pragma GCC visibility pop > > > ># 1 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/subst.h" 1 ># 1482 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/ruby.h" 2 ># 33 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby.h" 2 ># 6 "../fbuffer/fbuffer.h" 2 ># 29 "../fbuffer/fbuffer.h" ># 1 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/encoding.h" 1 ># 23 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/encoding.h" ># 1 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/oniguruma.h" 1 ># 101 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/oniguruma.h" >#pragma GCC visibility push(default) ># 110 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/oniguruma.h" >typedef unsigned char OnigUChar; >typedef unsigned int OnigCodePoint; >typedef unsigned int OnigCtype; >typedef size_t OnigDistance; > > > >typedef unsigned int OnigCaseFoldType; > >extern OnigCaseFoldType OnigDefaultCaseFoldFlag; ># 139 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/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; ># 256 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/oniguruma.h" >extern >int onigenc_mbclen_approximate (const OnigUChar* p,const OnigUChar* e, struct OnigEncodingTypeST* enc); ># 304 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/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); ># 344 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/oniguruma.h" >typedef unsigned int OnigOptionType; ># 370 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/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; ># 402 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/oniguruma.h" >extern const OnigSyntaxType* OnigDefaultSyntax; ># 572 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/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; >}; ># 600 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/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); ># 628 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/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_reg_init (regex_t* reg, OnigOptionType option, OnigCaseFoldType case_fold_flag, OnigEncoding enc, const OnigSyntaxType* syntax); >extern >int onig_new_without_alloc (OnigRegex, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigOptionType option, OnigEncoding enc, 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 >void onig_free_body (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 >long onig_search (OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* start, const OnigUChar* range, OnigRegion* region, OnigOptionType option); >extern >long 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); > > >#pragma GCC visibility pop ># 24 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/encoding.h" 2 > > >#pragma GCC visibility push(default) ># 80 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/encoding.h" >typedef OnigEncodingType rb_encoding; > >int rb_char_to_option_kcode(int c, int *option, int *kcode); > >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*, long, 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_enc_uint_chr(unsigned int code, 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); >VALUE rb_str_conv_enc_opts(VALUE str, rb_encoding *from, rb_encoding *to, int ecflags, VALUE ecopts); > > >rb_encoding* rb_enc_from_index(int idx); > > >rb_encoding * rb_enc_find(const char *name); ># 128 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/encoding.h" >int rb_enc_mbclen(const char *p, const char *e, rb_encoding *enc); > > >int rb_enc_fast_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_len(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); ># 183 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/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_symname2_p(const char*, long, 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); >int rb_enc_unicode_p(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); >int rb_locale_encindex(void); >int rb_filesystem_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; ># 224 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/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_options(VALUE opthash, VALUE *ecopts, int ecflags); >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); ># 334 "/usr/local/rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/encoding.h" >#pragma GCC visibility pop ># 30 "../fbuffer/fbuffer.h" 2 ># 40 "../fbuffer/fbuffer.h" >typedef struct FBufferStruct { > unsigned long initial_length; > char *ptr; > unsigned long len; > unsigned long capa; >} FBuffer; ># 54 "../fbuffer/fbuffer.h" >static FBuffer *fbuffer_alloc(unsigned long initial_length); >static void fbuffer_free(FBuffer *fb); >static void fbuffer_clear(FBuffer *fb); >static void fbuffer_append(FBuffer *fb, const char *newstr, unsigned long len); > > > >static void fbuffer_append_char(FBuffer *fb, char newchr); > > > > > >static FBuffer *fbuffer_alloc(unsigned long initial_length) >{ > FBuffer *fb; > if (initial_length <= 0) initial_length = 1024; > fb = ((FBuffer*)ruby_xmalloc(sizeof(FBuffer))); > memset((void *) fb, 0, sizeof(FBuffer)); > fb->initial_length = initial_length; > return fb; >} > >static void fbuffer_free(FBuffer *fb) >{ > if (fb->ptr) ruby_xfree(fb->ptr); > ruby_xfree(fb); >} > >static void fbuffer_clear(FBuffer *fb) >{ > fb->len = 0; >} > >static void fbuffer_inc_capa(FBuffer *fb, unsigned long requested) >{ > unsigned long required; > > if (!fb->ptr) { > fb->ptr = ((char*)ruby_xmalloc2((fb->initial_length),sizeof(char))); > fb->capa = fb->initial_length; > } > > for (required = fb->capa; requested > required - fb->len; required <<= 1); > > if (required > fb->capa) { > ((fb->ptr)=(char*)ruby_xrealloc2((char*)(fb->ptr),(required),sizeof(char))); > fb->capa = required; > } >} > >static void fbuffer_append(FBuffer *fb, const char *newstr, unsigned long len) >{ > if (len > 0) { > fbuffer_inc_capa(fb, len); > memcpy((fb->ptr + fb->len), (newstr), sizeof(char)*(len)); > fb->len += len; > } >} ># 126 "../fbuffer/fbuffer.h" >static void fbuffer_append_char(FBuffer *fb, char newchr) >{ > fbuffer_inc_capa(fb, 1); > *(fb->ptr + fb->len) = newchr; > fb->len++; >} ># 2 "parser.rl" 2 ># 1 "parser.h" 1 ># 20 "parser.h" >typedef unsigned long UTF32; >typedef unsigned short UTF16; >typedef unsigned char UTF8; > > > > > > > >typedef struct JSON_ParserStruct { > VALUE Vsource; > char *source; > long len; > char *memo; > VALUE create_id; > int max_nesting; > int current_nesting; > int allow_nan; > int parsing_name; > int symbolize_names; > int quirks_mode; > VALUE object_class; > VALUE array_class; > int create_additions; > VALUE match_string; > FBuffer *fbuffer; >} JSON_Parser; ># 59 "parser.h" >static UTF32 unescape_unicode(const unsigned char *p); >static int convert_UTF32_to_UTF8(char *buf, UTF32 ch); >static char *JSON_parse_object(JSON_Parser *json, char *p, char *pe, VALUE *result); >static char *JSON_parse_value(JSON_Parser *json, char *p, char *pe, VALUE *result); >static char *JSON_parse_integer(JSON_Parser *json, char *p, char *pe, VALUE *result); >static char *JSON_parse_float(JSON_Parser *json, char *p, char *pe, VALUE *result); >static char *JSON_parse_array(JSON_Parser *json, char *p, char *pe, VALUE *result); >static VALUE json_string_unescape(VALUE result, char *string, char *stringEnd); >static char *JSON_parse_string(JSON_Parser *json, char *p, char *pe, VALUE *result); >static VALUE convert_encoding(VALUE source); >static VALUE cParser_initialize(int argc, VALUE *argv, VALUE self); >static VALUE cParser_parse(VALUE self); >static JSON_Parser *JSON_allocate(); >static void JSON_mark(JSON_Parser *json); >static void JSON_free(JSON_Parser *json); >static VALUE cJSON_parser_s_allocate(VALUE klass); >static VALUE cParser_source(VALUE self); ># 3 "parser.rl" 2 > > > >static const char digit_values[256] = { > -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, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, > -1, -1, -1, -1, -1, -1, 10, 11, 12, 13, 14, 15, -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, > 10, 11, 12, 13, 14, 15, -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, > -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, -1, -1, -1, -1, -1, -1, > -1, -1, -1, -1, -1, -1, -1 >}; > >static UTF32 unescape_unicode(const unsigned char *p) >{ > char b; > UTF32 result = 0; > b = digit_values[p[0]]; > if (b < 0) return (UTF32)0x0000FFFD; > result = (result << 4) | b; > b = digit_values[p[1]]; > result = (result << 4) | b; > if (b < 0) return (UTF32)0x0000FFFD; > b = digit_values[p[2]]; > result = (result << 4) | b; > if (b < 0) return (UTF32)0x0000FFFD; > b = digit_values[p[3]]; > result = (result << 4) | b; > if (b < 0) return (UTF32)0x0000FFFD; > return result; >} > >static int convert_UTF32_to_UTF8(char *buf, UTF32 ch) >{ > int len = 1; > if (ch <= 0x7F) { > buf[0] = (char) ch; > } else if (ch <= 0x07FF) { > buf[0] = (char) ((ch >> 6) | 0xC0); > buf[1] = (char) ((ch & 0x3F) | 0x80); > len++; > } else if (ch <= 0xFFFF) { > buf[0] = (char) ((ch >> 12) | 0xE0); > buf[1] = (char) (((ch >> 6) & 0x3F) | 0x80); > buf[2] = (char) ((ch & 0x3F) | 0x80); > len += 2; > } else if (ch <= 0x1fffff) { > buf[0] =(char) ((ch >> 18) | 0xF0); > buf[1] =(char) (((ch >> 12) & 0x3F) | 0x80); > buf[2] =(char) (((ch >> 6) & 0x3F) | 0x80); > buf[3] =(char) ((ch & 0x3F) | 0x80); > len += 3; > } else { > buf[0] = '?'; > } > return len; >} > > >static VALUE CEncoding_ASCII_8BIT, CEncoding_UTF_8, CEncoding_UTF_16BE, > CEncoding_UTF_16LE, CEncoding_UTF_32BE, CEncoding_UTF_32LE; >static ID i_encoding, i_encode; > > > > >static VALUE mJSON, mExt, cParser, eParserError, eNestingError; >static VALUE CNaN, CInfinity, CMinusInfinity; > >static ID i_json_creatable_p, i_json_create, i_create_id, i_create_additions, > i_chr, i_max_nesting, i_allow_nan, i_symbolize_names, i_quirks_mode, > i_object_class, i_array_class, i_key_p, i_deep_const_get, i_match, > i_match_string, i_aset, i_aref, i_leftshift; ># 110 "parser.rl" ># 92 "parser.c" >static const int JSON_object_start = 1; >static const int JSON_object_first_final = 27; >static const int JSON_object_error = 0; > >static const int JSON_object_en_main = 1; ># 151 "parser.rl" > > >static char *JSON_parse_object(JSON_Parser *json, char *p, char *pe, VALUE *result) >{ > int cs = 0x666; > VALUE last_name = ((VALUE)RUBY_Qnil); > VALUE object_class = json->object_class; > > if (json->max_nesting && json->current_nesting > json->max_nesting) { > rb_raise(eNestingError, "nesting of %d is too deep", json->current_nesting); > } > > *result = ((VALUE)(object_class) == ((VALUE)RUBY_Qnil)) ? rb_hash_new() : rb_class_new_instance(0, 0, object_class); ># 116 "parser.c" > { > cs = JSON_object_start; > } ># 166 "parser.rl" ># 123 "parser.c" > { > if ( p == pe ) > goto _test_eof; > switch ( cs ) > { >case 1: > if ( (*p) == 123 ) > goto st2; > goto st0; >st0: >cs = 0; > goto _out; >st2: > if ( ++p == pe ) > goto _test_eof2; >case 2: > switch( (*p) ) { > case 13: goto st2; > case 32: goto st2; > case 34: goto tr2; > case 47: goto st23; > case 125: goto tr4; > } > if ( 9 <= (*p) && (*p) <= 10 ) > goto st2; > goto st0; >tr2: ># 133 "parser.rl" > { > char *np; > json->parsing_name = 1; > np = JSON_parse_string(json, p, pe, &last_name); > json->parsing_name = 0; > if (np == ((void *)0)) { p--; {p++; cs = 3; goto _out;} } else {p = (( np))-1;} > } > goto st3; >st3: > if ( ++p == pe ) > goto _test_eof3; >case 3: ># 164 "parser.c" > switch( (*p) ) { > case 13: goto st3; > case 32: goto st3; > case 47: goto st4; > case 58: goto st8; > } > if ( 9 <= (*p) && (*p) <= 10 ) > goto st3; > goto st0; >st4: > if ( ++p == pe ) > goto _test_eof4; >case 4: > switch( (*p) ) { > case 42: goto st5; > case 47: goto st7; > } > goto st0; >st5: > if ( ++p == pe ) > goto _test_eof5; >case 5: > if ( (*p) == 42 ) > goto st6; > goto st5; >st6: > if ( ++p == pe ) > goto _test_eof6; >case 6: > switch( (*p) ) { > case 42: goto st6; > case 47: goto st3; > } > goto st5; >st7: > if ( ++p == pe ) > goto _test_eof7; >case 7: > if ( (*p) == 10 ) > goto st3; > goto st7; >st8: > if ( ++p == pe ) > goto _test_eof8; >case 8: > switch( (*p) ) { > case 13: goto st8; > case 32: goto st8; > case 34: goto tr11; > case 45: goto tr11; > case 47: goto st19; > case 73: goto tr11; > case 78: goto tr11; > case 91: goto tr11; > case 102: goto tr11; > case 110: goto tr11; > case 116: goto tr11; > case 123: goto tr11; > } > if ( (*p) > 10 ) { > if ( 48 <= (*p) && (*p) <= 57 ) > goto tr11; > } else if ( (*p) >= 9 ) > goto st8; > goto st0; >tr11: ># 118 "parser.rl" > { > VALUE v = ((VALUE)RUBY_Qnil); > char *np = JSON_parse_value(json, p, pe, &v); > if (np == ((void *)0)) { > p--; {p++; cs = 9; goto _out;} > } else { > if (((VALUE)(json->object_class) == ((VALUE)RUBY_Qnil))) { > rb_hash_aset(*result, last_name, v); > } else { > rb_funcall(*result, i_aset, 2, last_name, v); > } > {p = (( np))-1;} > } > } > goto st9; >st9: > if ( ++p == pe ) > goto _test_eof9; >case 9: ># 251 "parser.c" > switch( (*p) ) { > case 13: goto st9; > case 32: goto st9; > case 44: goto st10; > case 47: goto st15; > case 125: goto tr4; > } > if ( 9 <= (*p) && (*p) <= 10 ) > goto st9; > goto st0; >st10: > if ( ++p == pe ) > goto _test_eof10; >case 10: > switch( (*p) ) { > case 13: goto st10; > case 32: goto st10; > case 34: goto tr2; > case 47: goto st11; > } > if ( 9 <= (*p) && (*p) <= 10 ) > goto st10; > goto st0; >st11: > if ( ++p == pe ) > goto _test_eof11; >case 11: > switch( (*p) ) { > case 42: goto st12; > case 47: goto st14; > } > goto st0; >st12: > if ( ++p == pe ) > goto _test_eof12; >case 12: > if ( (*p) == 42 ) > goto st13; > goto st12; >st13: > if ( ++p == pe ) > goto _test_eof13; >case 13: > switch( (*p) ) { > case 42: goto st13; > case 47: goto st10; > } > goto st12; >st14: > if ( ++p == pe ) > goto _test_eof14; >case 14: > if ( (*p) == 10 ) > goto st10; > goto st14; >st15: > if ( ++p == pe ) > goto _test_eof15; >case 15: > switch( (*p) ) { > case 42: goto st16; > case 47: goto st18; > } > goto st0; >st16: > if ( ++p == pe ) > goto _test_eof16; >case 16: > if ( (*p) == 42 ) > goto st17; > goto st16; >st17: > if ( ++p == pe ) > goto _test_eof17; >case 17: > switch( (*p) ) { > case 42: goto st17; > case 47: goto st9; > } > goto st16; >st18: > if ( ++p == pe ) > goto _test_eof18; >case 18: > if ( (*p) == 10 ) > goto st9; > goto st18; >tr4: ># 141 "parser.rl" > { p--; {p++; cs = 27; goto _out;} } > goto st27; >st27: > if ( ++p == pe ) > goto _test_eof27; >case 27: ># 347 "parser.c" > goto st0; >st19: > if ( ++p == pe ) > goto _test_eof19; >case 19: > switch( (*p) ) { > case 42: goto st20; > case 47: goto st22; > } > goto st0; >st20: > if ( ++p == pe ) > goto _test_eof20; >case 20: > if ( (*p) == 42 ) > goto st21; > goto st20; >st21: > if ( ++p == pe ) > goto _test_eof21; >case 21: > switch( (*p) ) { > case 42: goto st21; > case 47: goto st8; > } > goto st20; >st22: > if ( ++p == pe ) > goto _test_eof22; >case 22: > if ( (*p) == 10 ) > goto st8; > goto st22; >st23: > if ( ++p == pe ) > goto _test_eof23; >case 23: > switch( (*p) ) { > case 42: goto st24; > case 47: goto st26; > } > goto st0; >st24: > if ( ++p == pe ) > goto _test_eof24; >case 24: > if ( (*p) == 42 ) > goto st25; > goto st24; >st25: > if ( ++p == pe ) > goto _test_eof25; >case 25: > switch( (*p) ) { > case 42: goto st25; > case 47: goto st2; > } > goto st24; >st26: > if ( ++p == pe ) > goto _test_eof26; >case 26: > if ( (*p) == 10 ) > goto st2; > goto st26; > } > _test_eof2: cs = 2; goto _test_eof; > _test_eof3: cs = 3; goto _test_eof; > _test_eof4: cs = 4; goto _test_eof; > _test_eof5: cs = 5; goto _test_eof; > _test_eof6: cs = 6; goto _test_eof; > _test_eof7: cs = 7; goto _test_eof; > _test_eof8: cs = 8; goto _test_eof; > _test_eof9: cs = 9; goto _test_eof; > _test_eof10: cs = 10; goto _test_eof; > _test_eof11: cs = 11; goto _test_eof; > _test_eof12: cs = 12; goto _test_eof; > _test_eof13: cs = 13; goto _test_eof; > _test_eof14: cs = 14; goto _test_eof; > _test_eof15: cs = 15; goto _test_eof; > _test_eof16: cs = 16; goto _test_eof; > _test_eof17: cs = 17; goto _test_eof; > _test_eof18: cs = 18; goto _test_eof; > _test_eof27: cs = 27; goto _test_eof; > _test_eof19: cs = 19; goto _test_eof; > _test_eof20: cs = 20; goto _test_eof; > _test_eof21: cs = 21; goto _test_eof; > _test_eof22: cs = 22; goto _test_eof; > _test_eof23: cs = 23; goto _test_eof; > _test_eof24: cs = 24; goto _test_eof; > _test_eof25: cs = 25; goto _test_eof; > _test_eof26: cs = 26; goto _test_eof; > > _test_eof: {} > _out: {} > } ># 167 "parser.rl" > > if (cs >= JSON_object_first_final) { > if (json->create_additions) { > VALUE klassname; > if (((VALUE)(json->object_class) == ((VALUE)RUBY_Qnil))) { > klassname = rb_hash_aref(*result, json->create_id); > } else { > klassname = rb_funcall(*result, i_aref, 1, json->create_id); > } > if (!((VALUE)(klassname) == ((VALUE)RUBY_Qnil))) { > VALUE klass = rb_funcall(mJSON, i_deep_const_get, 1, klassname); > if ((((VALUE)(rb_funcall(klass, i_json_creatable_p, 0)) & ~((VALUE)RUBY_Qnil)) != 0)) { > *result = rb_funcall(klass, i_json_create, 1, *result); > } > } > } > return p + 1; > } else { > return ((void *)0); > } >} ># 470 "parser.c" >static const int JSON_value_start = 1; >static const int JSON_value_first_final = 21; >static const int JSON_value_error = 0; > >static const int JSON_value_en_main = 1; ># 271 "parser.rl" > > >static char *JSON_parse_value(JSON_Parser *json, char *p, char *pe, VALUE *result) >{ > int cs = 0x666; ># 486 "parser.c" > { > cs = JSON_value_start; > } ># 278 "parser.rl" ># 493 "parser.c" > { > if ( p == pe ) > goto _test_eof; > switch ( cs ) > { >case 1: > switch( (*p) ) { > case 34: goto tr0; > case 45: goto tr2; > case 73: goto st2; > case 78: goto st9; > case 91: goto tr5; > case 102: goto st11; > case 110: goto st15; > case 116: goto st18; > case 123: goto tr9; > } > if ( 48 <= (*p) && (*p) <= 57 ) > goto tr2; > goto st0; >st0: >cs = 0; > goto _out; >tr0: ># 219 "parser.rl" > { > char *np = JSON_parse_string(json, p, pe, result); > if (np == ((void *)0)) { p--; {p++; cs = 21; goto _out;} } else {p = (( np))-1;} > } > goto st21; >tr2: ># 224 "parser.rl" > { > char *np; > if(pe > p + 9 - json->quirks_mode && !(__extension__ (__builtin_constant_p (9) && ((__builtin_constant_p ("-Infinity") && strlen ("-Infinity") < ((size_t) (9))) || (__builtin_constant_p (p) && strlen (p) < ((size_t) (9)))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ("-Infinity") && __builtin_constant_p (p) && (__s1_len = strlen ("-Infinity"), __s2_len = strlen (p), (!((size_t)(const void *)(("-Infinity") + 1) - (size_t)(const void *)("-Infinity") == 1) || __s1_len >= 4) && (!((size_t)(const void *)((p) + 1) - (size_t)(const void *)(p) == 1) || __s2_len >= 4)) ? __builtin_strcmp ("-Infinity", p) : (__builtin_constant_p ("-Infinity") && ((size_t)(const void *)(("-Infinity") + 1) - (size_t)(const void *)("-Infinity") == 1) && (__s1_len = strlen ("-Infinity"), __s1_len < 4) ? (__builtin_constant_p (p) && ((size_t)(const void *)((p) + 1) - (size_t)(const void *)(p) == 1) ? __builtin_strcmp ("-Infinity", p) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) (p); register int __result = (((__const unsigned char *) (__const char *) ("-Infinity"))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) ("-Infinity"))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) ("-Infinity"))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) ("-Infinity"))[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 ("-Infinity") && ((size_t)(const void *)(("-Infinity") + 1) - (size_t)(const void *)("-Infinity") == 1) ? __builtin_strcmp ("-Infinity", p) : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) ("-Infinity"); 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 ("-Infinity", p)))); }) : strncmp ("-Infinity", p, 9)))) { > if (json->allow_nan) { > *result = CMinusInfinity; > {p = (( p + 10))-1;} > p--; {p++; cs = 21; goto _out;} > } else { > rb_raise(eParserError, "%u: unexpected token at '%s'", 232, p); > } > } > np = JSON_parse_float(json, p, pe, result); > if (np != ((void *)0)) {p = (( np))-1;} > np = JSON_parse_integer(json, p, pe, result); > if (np != ((void *)0)) {p = (( np))-1;} > p--; {p++; cs = 21; goto _out;} > } > goto st21; >tr5: ># 242 "parser.rl" > { > char *np; > json->current_nesting++; > np = JSON_parse_array(json, p, pe, result); > json->current_nesting--; > if (np == ((void *)0)) { p--; {p++; cs = 21; goto _out;} } else {p = (( np))-1;} > } > goto st21; >tr9: ># 250 "parser.rl" > { > char *np; > json->current_nesting++; > np = JSON_parse_object(json, p, pe, result); > json->current_nesting--; > if (np == ((void *)0)) { p--; {p++; cs = 21; goto _out;} } else {p = (( np))-1;} > } > goto st21; >tr16: ># 212 "parser.rl" > { > if (json->allow_nan) { > *result = CInfinity; > } else { > rb_raise(eParserError, "%u: unexpected token at '%s'", 216, p - 8); > } > } > goto st21; >tr18: ># 205 "parser.rl" > { > if (json->allow_nan) { > *result = CNaN; > } else { > rb_raise(eParserError, "%u: unexpected token at '%s'", 209, p - 2); > } > } > goto st21; >tr22: ># 199 "parser.rl" > { > *result = ((VALUE)RUBY_Qfalse); > } > goto st21; >tr25: ># 196 "parser.rl" > { > *result = ((VALUE)RUBY_Qnil); > } > goto st21; >tr28: ># 202 "parser.rl" > { > *result = ((VALUE)RUBY_Qtrue); > } > goto st21; >st21: > if ( ++p == pe ) > goto _test_eof21; >case 21: ># 258 "parser.rl" > { p--; {p++; cs = 21; goto _out;} } ># 608 "parser.c" > goto st0; >st2: > if ( ++p == pe ) > goto _test_eof2; >case 2: > if ( (*p) == 110 ) > goto st3; > goto st0; >st3: > if ( ++p == pe ) > goto _test_eof3; >case 3: > if ( (*p) == 102 ) > goto st4; > goto st0; >st4: > if ( ++p == pe ) > goto _test_eof4; >case 4: > if ( (*p) == 105 ) > goto st5; > goto st0; >st5: > if ( ++p == pe ) > goto _test_eof5; >case 5: > if ( (*p) == 110 ) > goto st6; > goto st0; >st6: > if ( ++p == pe ) > goto _test_eof6; >case 6: > if ( (*p) == 105 ) > goto st7; > goto st0; >st7: > if ( ++p == pe ) > goto _test_eof7; >case 7: > if ( (*p) == 116 ) > goto st8; > goto st0; >st8: > if ( ++p == pe ) > goto _test_eof8; >case 8: > if ( (*p) == 121 ) > goto tr16; > goto st0; >st9: > if ( ++p == pe ) > goto _test_eof9; >case 9: > if ( (*p) == 97 ) > goto st10; > goto st0; >st10: > if ( ++p == pe ) > goto _test_eof10; >case 10: > if ( (*p) == 78 ) > goto tr18; > goto st0; >st11: > if ( ++p == pe ) > goto _test_eof11; >case 11: > if ( (*p) == 97 ) > goto st12; > goto st0; >st12: > if ( ++p == pe ) > goto _test_eof12; >case 12: > if ( (*p) == 108 ) > goto st13; > goto st0; >st13: > if ( ++p == pe ) > goto _test_eof13; >case 13: > if ( (*p) == 115 ) > goto st14; > goto st0; >st14: > if ( ++p == pe ) > goto _test_eof14; >case 14: > if ( (*p) == 101 ) > goto tr22; > goto st0; >st15: > if ( ++p == pe ) > goto _test_eof15; >case 15: > if ( (*p) == 117 ) > goto st16; > goto st0; >st16: > if ( ++p == pe ) > goto _test_eof16; >case 16: > if ( (*p) == 108 ) > goto st17; > goto st0; >st17: > if ( ++p == pe ) > goto _test_eof17; >case 17: > if ( (*p) == 108 ) > goto tr25; > goto st0; >st18: > if ( ++p == pe ) > goto _test_eof18; >case 18: > if ( (*p) == 114 ) > goto st19; > goto st0; >st19: > if ( ++p == pe ) > goto _test_eof19; >case 19: > if ( (*p) == 117 ) > goto st20; > goto st0; >st20: > if ( ++p == pe ) > goto _test_eof20; >case 20: > if ( (*p) == 101 ) > goto tr28; > goto st0; > } > _test_eof21: cs = 21; goto _test_eof; > _test_eof2: cs = 2; goto _test_eof; > _test_eof3: cs = 3; goto _test_eof; > _test_eof4: cs = 4; goto _test_eof; > _test_eof5: cs = 5; goto _test_eof; > _test_eof6: cs = 6; goto _test_eof; > _test_eof7: cs = 7; goto _test_eof; > _test_eof8: cs = 8; goto _test_eof; > _test_eof9: cs = 9; goto _test_eof; > _test_eof10: cs = 10; goto _test_eof; > _test_eof11: cs = 11; goto _test_eof; > _test_eof12: cs = 12; goto _test_eof; > _test_eof13: cs = 13; goto _test_eof; > _test_eof14: cs = 14; goto _test_eof; > _test_eof15: cs = 15; goto _test_eof; > _test_eof16: cs = 16; goto _test_eof; > _test_eof17: cs = 17; goto _test_eof; > _test_eof18: cs = 18; goto _test_eof; > _test_eof19: cs = 19; goto _test_eof; > _test_eof20: cs = 20; goto _test_eof; > > _test_eof: {} > _out: {} > } ># 279 "parser.rl" > > if (cs >= JSON_value_first_final) { > return p; > } else { > return ((void *)0); > } >} ># 779 "parser.c" >static const int JSON_integer_start = 1; >static const int JSON_integer_first_final = 3; >static const int JSON_integer_error = 0; > >static const int JSON_integer_en_main = 1; ># 295 "parser.rl" > > >static char *JSON_parse_integer(JSON_Parser *json, char *p, char *pe, VALUE *result) >{ > int cs = 0x666; ># 795 "parser.c" > { > cs = JSON_integer_start; > } ># 302 "parser.rl" > json->memo = p; ># 803 "parser.c" > { > if ( p == pe ) > goto _test_eof; > switch ( cs ) > { >case 1: > switch( (*p) ) { > case 45: goto st2; > case 48: goto st3; > } > if ( 49 <= (*p) && (*p) <= 57 ) > goto st5; > goto st0; >st0: >cs = 0; > goto _out; >st2: > if ( ++p == pe ) > goto _test_eof2; >case 2: > if ( (*p) == 48 ) > goto st3; > if ( 49 <= (*p) && (*p) <= 57 ) > goto st5; > goto st0; >st3: > if ( ++p == pe ) > goto _test_eof3; >case 3: > if ( 48 <= (*p) && (*p) <= 57 ) > goto st0; > goto tr4; >tr4: ># 292 "parser.rl" > { p--; {p++; cs = 4; goto _out;} } > goto st4; >st4: > if ( ++p == pe ) > goto _test_eof4; >case 4: ># 844 "parser.c" > goto st0; >st5: > if ( ++p == pe ) > goto _test_eof5; >case 5: > if ( 48 <= (*p) && (*p) <= 57 ) > goto st5; > goto tr4; > } > _test_eof2: cs = 2; goto _test_eof; > _test_eof3: cs = 3; goto _test_eof; > _test_eof4: cs = 4; goto _test_eof; > _test_eof5: cs = 5; goto _test_eof; > > _test_eof: {} > _out: {} > } ># 304 "parser.rl" > > if (cs >= JSON_integer_first_final) { > long len = p - json->memo; > fbuffer_clear(json->fbuffer); > fbuffer_append(json->fbuffer, json->memo, len); > fbuffer_append_char(json->fbuffer, '\0'); > *result = rb_cstr2inum((json->fbuffer->ptr), 10); > return p + 1; > } else { > return ((void *)0); > } >} ># 878 "parser.c" >static const int JSON_float_start = 1; >static const int JSON_float_first_final = 8; >static const int JSON_float_error = 0; > >static const int JSON_float_en_main = 1; ># 329 "parser.rl" > > >static char *JSON_parse_float(JSON_Parser *json, char *p, char *pe, VALUE *result) >{ > int cs = 0x666; ># 894 "parser.c" > { > cs = JSON_float_start; > } ># 336 "parser.rl" > json->memo = p; ># 902 "parser.c" > { > if ( p == pe ) > goto _test_eof; > switch ( cs ) > { >case 1: > switch( (*p) ) { > case 45: goto st2; > case 48: goto st3; > } > if ( 49 <= (*p) && (*p) <= 57 ) > goto st7; > goto st0; >st0: >cs = 0; > goto _out; >st2: > if ( ++p == pe ) > goto _test_eof2; >case 2: > if ( (*p) == 48 ) > goto st3; > if ( 49 <= (*p) && (*p) <= 57 ) > goto st7; > goto st0; >st3: > if ( ++p == pe ) > goto _test_eof3; >case 3: > switch( (*p) ) { > case 46: goto st4; > case 69: goto st5; > case 101: goto st5; > } > goto st0; >st4: > if ( ++p == pe ) > goto _test_eof4; >case 4: > if ( 48 <= (*p) && (*p) <= 57 ) > goto st8; > goto st0; >st8: > if ( ++p == pe ) > goto _test_eof8; >case 8: > switch( (*p) ) { > case 69: goto st5; > case 101: goto st5; > } > if ( (*p) > 46 ) { > if ( 48 <= (*p) && (*p) <= 57 ) > goto st8; > } else if ( (*p) >= 45 ) > goto st0; > goto tr9; >tr9: ># 323 "parser.rl" > { p--; {p++; cs = 9; goto _out;} } > goto st9; >st9: > if ( ++p == pe ) > goto _test_eof9; >case 9: ># 967 "parser.c" > goto st0; >st5: > if ( ++p == pe ) > goto _test_eof5; >case 5: > switch( (*p) ) { > case 43: goto st6; > case 45: goto st6; > } > if ( 48 <= (*p) && (*p) <= 57 ) > goto st10; > goto st0; >st6: > if ( ++p == pe ) > goto _test_eof6; >case 6: > if ( 48 <= (*p) && (*p) <= 57 ) > goto st10; > goto st0; >st10: > if ( ++p == pe ) > goto _test_eof10; >case 10: > switch( (*p) ) { > case 69: goto st0; > case 101: goto st0; > } > if ( (*p) > 46 ) { > if ( 48 <= (*p) && (*p) <= 57 ) > goto st10; > } else if ( (*p) >= 45 ) > goto st0; > goto tr9; >st7: > if ( ++p == pe ) > goto _test_eof7; >case 7: > switch( (*p) ) { > case 46: goto st4; > case 69: goto st5; > case 101: goto st5; > } > if ( 48 <= (*p) && (*p) <= 57 ) > goto st7; > goto st0; > } > _test_eof2: cs = 2; goto _test_eof; > _test_eof3: cs = 3; goto _test_eof; > _test_eof4: cs = 4; goto _test_eof; > _test_eof8: cs = 8; goto _test_eof; > _test_eof9: cs = 9; goto _test_eof; > _test_eof5: cs = 5; goto _test_eof; > _test_eof6: cs = 6; goto _test_eof; > _test_eof10: cs = 10; goto _test_eof; > _test_eof7: cs = 7; goto _test_eof; > > _test_eof: {} > _out: {} > } ># 338 "parser.rl" > > if (cs >= JSON_float_first_final) { > long len = p - json->memo; > fbuffer_clear(json->fbuffer); > fbuffer_append(json->fbuffer, json->memo, len); > fbuffer_append_char(json->fbuffer, '\0'); > *result = rb_float_new(rb_cstr_to_dbl((json->fbuffer->ptr), 1)); > return p + 1; > } else { > return ((void *)0); > } >} ># 1044 "parser.c" >static const int JSON_array_start = 1; >static const int JSON_array_first_final = 17; >static const int JSON_array_error = 0; > >static const int JSON_array_en_main = 1; ># 381 "parser.rl" > > >static char *JSON_parse_array(JSON_Parser *json, char *p, char *pe, VALUE *result) >{ > int cs = 0x666; > VALUE array_class = json->array_class; > > if (json->max_nesting && json->current_nesting > json->max_nesting) { > rb_raise(eNestingError, "nesting of %d is too deep", json->current_nesting); > } > *result = ((VALUE)(array_class) == ((VALUE)RUBY_Qnil)) ? rb_ary_new() : rb_class_new_instance(0, 0, array_class); ># 1066 "parser.c" > { > cs = JSON_array_start; > } ># 394 "parser.rl" ># 1073 "parser.c" > { > if ( p == pe ) > goto _test_eof; > switch ( cs ) > { >case 1: > if ( (*p) == 91 ) > goto st2; > goto st0; >st0: >cs = 0; > goto _out; >st2: > if ( ++p == pe ) > goto _test_eof2; >case 2: > switch( (*p) ) { > case 13: goto st2; > case 32: goto st2; > case 34: goto tr2; > case 45: goto tr2; > case 47: goto st13; > case 73: goto tr2; > case 78: goto tr2; > case 91: goto tr2; > case 93: goto tr4; > case 102: goto tr2; > case 110: goto tr2; > case 116: goto tr2; > case 123: goto tr2; > } > if ( (*p) > 10 ) { > if ( 48 <= (*p) && (*p) <= 57 ) > goto tr2; > } else if ( (*p) >= 9 ) > goto st2; > goto st0; >tr2: ># 358 "parser.rl" > { > VALUE v = ((VALUE)RUBY_Qnil); > char *np = JSON_parse_value(json, p, pe, &v); > if (np == ((void *)0)) { > p--; {p++; cs = 3; goto _out;} > } else { > if (((VALUE)(json->array_class) == ((VALUE)RUBY_Qnil))) { > rb_ary_push(*result, v); > } else { > rb_funcall(*result, i_leftshift, 1, v); > } > {p = (( np))-1;} > } > } > goto st3; >st3: > if ( ++p == pe ) > goto _test_eof3; >case 3: ># 1132 "parser.c" > switch( (*p) ) { > case 13: goto st3; > case 32: goto st3; > case 44: goto st4; > case 47: goto st9; > case 93: goto tr4; > } > if ( 9 <= (*p) && (*p) <= 10 ) > goto st3; > goto st0; >st4: > if ( ++p == pe ) > goto _test_eof4; >case 4: > switch( (*p) ) { > case 13: goto st4; > case 32: goto st4; > case 34: goto tr2; > case 45: goto tr2; > case 47: goto st5; > case 73: goto tr2; > case 78: goto tr2; > case 91: goto tr2; > case 102: goto tr2; > case 110: goto tr2; > case 116: goto tr2; > case 123: goto tr2; > } > if ( (*p) > 10 ) { > if ( 48 <= (*p) && (*p) <= 57 ) > goto tr2; > } else if ( (*p) >= 9 ) > goto st4; > goto st0; >st5: > if ( ++p == pe ) > goto _test_eof5; >case 5: > switch( (*p) ) { > case 42: goto st6; > case 47: goto st8; > } > goto st0; >st6: > if ( ++p == pe ) > goto _test_eof6; >case 6: > if ( (*p) == 42 ) > goto st7; > goto st6; >st7: > if ( ++p == pe ) > goto _test_eof7; >case 7: > switch( (*p) ) { > case 42: goto st7; > case 47: goto st4; > } > goto st6; >st8: > if ( ++p == pe ) > goto _test_eof8; >case 8: > if ( (*p) == 10 ) > goto st4; > goto st8; >st9: > if ( ++p == pe ) > goto _test_eof9; >case 9: > switch( (*p) ) { > case 42: goto st10; > case 47: goto st12; > } > goto st0; >st10: > if ( ++p == pe ) > goto _test_eof10; >case 10: > if ( (*p) == 42 ) > goto st11; > goto st10; >st11: > if ( ++p == pe ) > goto _test_eof11; >case 11: > switch( (*p) ) { > case 42: goto st11; > case 47: goto st3; > } > goto st10; >st12: > if ( ++p == pe ) > goto _test_eof12; >case 12: > if ( (*p) == 10 ) > goto st3; > goto st12; >tr4: ># 373 "parser.rl" > { p--; {p++; cs = 17; goto _out;} } > goto st17; >st17: > if ( ++p == pe ) > goto _test_eof17; >case 17: ># 1239 "parser.c" > goto st0; >st13: > if ( ++p == pe ) > goto _test_eof13; >case 13: > switch( (*p) ) { > case 42: goto st14; > case 47: goto st16; > } > goto st0; >st14: > if ( ++p == pe ) > goto _test_eof14; >case 14: > if ( (*p) == 42 ) > goto st15; > goto st14; >st15: > if ( ++p == pe ) > goto _test_eof15; >case 15: > switch( (*p) ) { > case 42: goto st15; > case 47: goto st2; > } > goto st14; >st16: > if ( ++p == pe ) > goto _test_eof16; >case 16: > if ( (*p) == 10 ) > goto st2; > goto st16; > } > _test_eof2: cs = 2; goto _test_eof; > _test_eof3: cs = 3; goto _test_eof; > _test_eof4: cs = 4; goto _test_eof; > _test_eof5: cs = 5; goto _test_eof; > _test_eof6: cs = 6; goto _test_eof; > _test_eof7: cs = 7; goto _test_eof; > _test_eof8: cs = 8; goto _test_eof; > _test_eof9: cs = 9; goto _test_eof; > _test_eof10: cs = 10; goto _test_eof; > _test_eof11: cs = 11; goto _test_eof; > _test_eof12: cs = 12; goto _test_eof; > _test_eof17: cs = 17; goto _test_eof; > _test_eof13: cs = 13; goto _test_eof; > _test_eof14: cs = 14; goto _test_eof; > _test_eof15: cs = 15; goto _test_eof; > _test_eof16: cs = 16; goto _test_eof; > > _test_eof: {} > _out: {} > } ># 395 "parser.rl" > > if(cs >= JSON_array_first_final) { > return p + 1; > } else { > rb_raise(eParserError, "%u: unexpected token at '%s'", 399, p); > return ((void *)0); > } >} > >static VALUE json_string_unescape(VALUE result, char *string, char *stringEnd) >{ > char *p = string, *pe = string, *unescape; > int unescape_len; > char buf[4]; > > while (pe < stringEnd) { > if (*pe == '\\') { > unescape = (char *) "?"; > unescape_len = 1; > if (pe > p) rb_str_buf_cat(result, p, pe - p); > switch (*++pe) { > case 'n': > unescape = (char *) "\n"; > break; > case 'r': > unescape = (char *) "\r"; > break; > case 't': > unescape = (char *) "\t"; > break; > case '"': > unescape = (char *) "\""; > break; > case '\\': > unescape = (char *) "\\"; > break; > case 'b': > unescape = (char *) "\b"; > break; > case 'f': > unescape = (char *) "\f"; > break; > case 'u': > if (pe > stringEnd - 4) { > return ((VALUE)RUBY_Qnil); > } else { > UTF32 ch = unescape_unicode((unsigned char *) ++pe); > pe += 3; > if ((UTF32)0xD800 == (ch & 0xFC00)) { > pe++; > if (pe > stringEnd - 6) return ((VALUE)RUBY_Qnil); > if (pe[0] == '\\' && pe[1] == 'u') { > UTF32 sur = unescape_unicode((unsigned char *) pe + 2); > ch = (((ch & 0x3F) << 10) | ((((ch >> 6) & 0xF) + 1) << 16) > | (sur & 0x3FF)); > pe += 5; > } else { > unescape = (char *) "?"; > break; > } > } > unescape_len = convert_UTF32_to_UTF8(buf, ch); > unescape = buf; > } > break; > default: > p = pe; > continue; > } > rb_str_buf_cat(result, unescape, unescape_len); > p = ++pe; > } else { > pe++; > } > } > rb_str_buf_cat(result, p, pe - p); > return result; >} ># 1376 "parser.c" >static const int JSON_string_start = 1; >static const int JSON_string_first_final = 8; >static const int JSON_string_error = 0; > >static const int JSON_string_en_main = 1; ># 494 "parser.rl" > > >static int >match_i(VALUE regexp, VALUE klass, VALUE memo) >{ > if (regexp == ((VALUE)RUBY_Qundef)) return ST_STOP; > if ((((VALUE)(rb_funcall(klass, i_json_creatable_p, 0)) & ~((VALUE)RUBY_Qnil)) != 0) && > (((VALUE)(rb_funcall(regexp, i_match, 1, rb_ary_entry(memo, 0))) & ~((VALUE)RUBY_Qnil)) != 0)) { > rb_ary_push(memo, klass); > return ST_STOP; > } > return ST_CONTINUE; >} > >static char *JSON_parse_string(JSON_Parser *json, char *p, char *pe, VALUE *result) >{ > int cs = 0x666; > VALUE match_string; > > *result = rb_str_buf_new(0); ># 1406 "parser.c" > { > cs = JSON_string_start; > } ># 515 "parser.rl" > json->memo = p; ># 1414 "parser.c" > { > if ( p == pe ) > goto _test_eof; > switch ( cs ) > { >case 1: > if ( (*p) == 34 ) > goto st2; > goto st0; >st0: >cs = 0; > goto _out; >st2: > if ( ++p == pe ) > goto _test_eof2; >case 2: > switch( (*p) ) { > case 34: goto tr2; > case 92: goto st3; > } > if ( 0 <= (*p) && (*p) <= 31 ) > goto st0; > goto st2; >tr2: ># 480 "parser.rl" > { > *result = json_string_unescape(*result, json->memo + 1, p); > if (((VALUE)(*result) == ((VALUE)RUBY_Qnil))) { > p--; > {p++; cs = 8; goto _out;} > } else { > rb_enc_associate((*result), rb_utf8_encoding()); > {p = (( p + 1))-1;} > } > } ># 491 "parser.rl" > { p--; {p++; cs = 8; goto _out;} } > goto st8; >st8: > if ( ++p == pe ) > goto _test_eof8; >case 8: ># 1457 "parser.c" > goto st0; >st3: > if ( ++p == pe ) > goto _test_eof3; >case 3: > if ( (*p) == 117 ) > goto st4; > if ( 0 <= (*p) && (*p) <= 31 ) > goto st0; > goto st2; >st4: > if ( ++p == pe ) > goto _test_eof4; >case 4: > if ( (*p) < 65 ) { > if ( 48 <= (*p) && (*p) <= 57 ) > goto st5; > } else if ( (*p) > 70 ) { > if ( 97 <= (*p) && (*p) <= 102 ) > goto st5; > } else > goto st5; > goto st0; >st5: > if ( ++p == pe ) > goto _test_eof5; >case 5: > if ( (*p) < 65 ) { > if ( 48 <= (*p) && (*p) <= 57 ) > goto st6; > } else if ( (*p) > 70 ) { > if ( 97 <= (*p) && (*p) <= 102 ) > goto st6; > } else > goto st6; > goto st0; >st6: > if ( ++p == pe ) > goto _test_eof6; >case 6: > if ( (*p) < 65 ) { > if ( 48 <= (*p) && (*p) <= 57 ) > goto st7; > } else if ( (*p) > 70 ) { > if ( 97 <= (*p) && (*p) <= 102 ) > goto st7; > } else > goto st7; > goto st0; >st7: > if ( ++p == pe ) > goto _test_eof7; >case 7: > if ( (*p) < 65 ) { > if ( 48 <= (*p) && (*p) <= 57 ) > goto st2; > } else if ( (*p) > 70 ) { > if ( 97 <= (*p) && (*p) <= 102 ) > goto st2; > } else > goto st2; > goto st0; > } > _test_eof2: cs = 2; goto _test_eof; > _test_eof8: cs = 8; goto _test_eof; > _test_eof3: cs = 3; goto _test_eof; > _test_eof4: cs = 4; goto _test_eof; > _test_eof5: cs = 5; goto _test_eof; > _test_eof6: cs = 6; goto _test_eof; > _test_eof7: cs = 7; goto _test_eof; > > _test_eof: {} > _out: {} > } ># 517 "parser.rl" > > if (json->create_additions && (((VALUE)(match_string = json->match_string) & ~((VALUE)RUBY_Qnil)) != 0)) { > VALUE klass; > VALUE memo = rb_ary_new2(2); > rb_ary_push(memo, *result); > rb_hash_foreach(match_string, match_i, memo); > klass = rb_ary_entry(memo, 1); > if ((((VALUE)(klass) & ~((VALUE)RUBY_Qnil)) != 0)) { > *result = rb_funcall(klass, i_json_create, 1, *result); > } > } > > if (json->symbolize_names && json->parsing_name) { > *result = rb_str_intern(*result); > } > if (cs >= JSON_string_first_final) { > return p + 1; > } else { > return ((void *)0); > } >} ># 551 "parser.rl" >static VALUE convert_encoding(VALUE source) >{ > char *ptr = (!(((struct RBasic*)(source))->flags & (((VALUE)1)<<(12 +1))) ? ((struct RString*)(source))->as.ary : ((struct RString*)(source))->as.heap.ptr); > long len = (!(((struct RBasic*)(source))->flags & (((VALUE)1)<<(12 +1))) ? (long)((((struct RBasic*)(source))->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*)(source))->as.heap.len); > if (len < 2) { > rb_raise(eParserError, "A JSON text must at least contain two octets!"); > } > > { > VALUE encoding = rb_funcall(source, i_encoding, 0); > if (encoding == CEncoding_ASCII_8BIT) { > if (len >= 4 && ptr[0] == 0 && ptr[1] == 0 && ptr[2] == 0) { > source = rb_funcall(source, i_encode, 2, CEncoding_UTF_8, CEncoding_UTF_32BE); > } else if (len >= 4 && ptr[0] == 0 && ptr[2] == 0) { > source = rb_funcall(source, i_encode, 2, CEncoding_UTF_8, CEncoding_UTF_16BE); > } else if (len >= 4 && ptr[1] == 0 && ptr[2] == 0 && ptr[3] == 0) { > source = rb_funcall(source, i_encode, 2, CEncoding_UTF_8, CEncoding_UTF_32LE); > } else if (len >= 4 && ptr[1] == 0 && ptr[3] == 0) { > source = rb_funcall(source, i_encode, 2, CEncoding_UTF_8, CEncoding_UTF_16LE); > } else { > source = rb_str_dup(source); > rb_enc_associate((source), rb_utf8_encoding()); > } > } else { > source = rb_funcall(source, i_encode, 1, CEncoding_UTF_8); > } > } ># 589 "parser.rl" > return source; >} ># 618 "parser.rl" >static VALUE cParser_initialize(int argc, VALUE *argv, VALUE self) >{ > VALUE source, opts; > JSON_Parser *json; do { rb_check_type((VALUE)((self)),(RUBY_T_DATA)); (json) = (JSON_Parser*)(((struct RData*)(self))->data);} while (0); > > if (json->Vsource) { > rb_raise(rb_eTypeError, "already initialized instance"); > } > rb_scan_args(argc, argv, "11", &source, &opts); > if (!((VALUE)(opts) == ((VALUE)RUBY_Qnil))) { > opts = rb_convert_type(opts, RUBY_T_HASH, "Hash", "to_hash"); > if (((VALUE)(opts) == ((VALUE)RUBY_Qnil))) { > rb_raise(rb_eArgError, "opts needs to be like a hash"); > } else { > VALUE tmp = (((VALUE)(i_max_nesting)<<RUBY_SPECIAL_SHIFT)|RUBY_SYMBOL_FLAG); > if ((((VALUE)(rb_funcall(opts, i_key_p, 1, tmp)) & ~((VALUE)RUBY_Qnil)) != 0)) { > VALUE max_nesting = rb_hash_aref(opts, tmp); > if ((((VALUE)(max_nesting) & ~((VALUE)RUBY_Qnil)) != 0)) { > rb_check_type((VALUE)(max_nesting),(RUBY_T_FIXNUM)); > json->max_nesting = ((int)rb_fix2int((VALUE)(max_nesting))); > } else { > json->max_nesting = 0; > } > } else { > json->max_nesting = 100; > } > tmp = (((VALUE)(i_allow_nan)<<RUBY_SPECIAL_SHIFT)|RUBY_SYMBOL_FLAG); > if ((((VALUE)(rb_funcall(opts, i_key_p, 1, tmp)) & ~((VALUE)RUBY_Qnil)) != 0)) { > json->allow_nan = (((VALUE)(rb_hash_aref(opts, tmp)) & ~((VALUE)RUBY_Qnil)) != 0) ? 1 : 0; > } else { > json->allow_nan = 0; > } > tmp = (((VALUE)(i_symbolize_names)<<RUBY_SPECIAL_SHIFT)|RUBY_SYMBOL_FLAG); > if ((((VALUE)(rb_funcall(opts, i_key_p, 1, tmp)) & ~((VALUE)RUBY_Qnil)) != 0)) { > json->symbolize_names = (((VALUE)(rb_hash_aref(opts, tmp)) & ~((VALUE)RUBY_Qnil)) != 0) ? 1 : 0; > } else { > json->symbolize_names = 0; > } > tmp = (((VALUE)(i_quirks_mode)<<RUBY_SPECIAL_SHIFT)|RUBY_SYMBOL_FLAG); > if ((((VALUE)(rb_funcall(opts, i_key_p, 1, tmp)) & ~((VALUE)RUBY_Qnil)) != 0)) { > VALUE quirks_mode = rb_hash_aref(opts, tmp); > json->quirks_mode = (((VALUE)(quirks_mode) & ~((VALUE)RUBY_Qnil)) != 0) ? 1 : 0; > } else { > json->quirks_mode = 0; > } > tmp = (((VALUE)(i_create_additions)<<RUBY_SPECIAL_SHIFT)|RUBY_SYMBOL_FLAG); > if ((((VALUE)(rb_funcall(opts, i_key_p, 1, tmp)) & ~((VALUE)RUBY_Qnil)) != 0)) { > json->create_additions = (((VALUE)(rb_hash_aref(opts, tmp)) & ~((VALUE)RUBY_Qnil)) != 0); > } else { > json->create_additions = 0; > } > tmp = (((VALUE)(i_create_id)<<RUBY_SPECIAL_SHIFT)|RUBY_SYMBOL_FLAG); > if ((((VALUE)(rb_funcall(opts, i_key_p, 1, tmp)) & ~((VALUE)RUBY_Qnil)) != 0)) { > json->create_id = rb_hash_aref(opts, tmp); > } else { > json->create_id = rb_funcall(mJSON, i_create_id, 0); > } > tmp = (((VALUE)(i_object_class)<<RUBY_SPECIAL_SHIFT)|RUBY_SYMBOL_FLAG); > if ((((VALUE)(rb_funcall(opts, i_key_p, 1, tmp)) & ~((VALUE)RUBY_Qnil)) != 0)) { > json->object_class = rb_hash_aref(opts, tmp); > } else { > json->object_class = ((VALUE)RUBY_Qnil); > } > tmp = (((VALUE)(i_array_class)<<RUBY_SPECIAL_SHIFT)|RUBY_SYMBOL_FLAG); > if ((((VALUE)(rb_funcall(opts, i_key_p, 1, tmp)) & ~((VALUE)RUBY_Qnil)) != 0)) { > json->array_class = rb_hash_aref(opts, tmp); > } else { > json->array_class = ((VALUE)RUBY_Qnil); > } > tmp = (((VALUE)(i_match_string)<<RUBY_SPECIAL_SHIFT)|RUBY_SYMBOL_FLAG); > if ((((VALUE)(rb_funcall(opts, i_key_p, 1, tmp)) & ~((VALUE)RUBY_Qnil)) != 0)) { > VALUE match_string = rb_hash_aref(opts, tmp); > json->match_string = (((VALUE)(match_string) & ~((VALUE)RUBY_Qnil)) != 0) ? match_string : ((VALUE)RUBY_Qnil); > } else { > json->match_string = ((VALUE)RUBY_Qnil); > } > } > } else { > json->max_nesting = 100; > json->allow_nan = 0; > json->create_additions = 1; > json->create_id = rb_funcall(mJSON, i_create_id, 0); > json->object_class = ((VALUE)RUBY_Qnil); > json->array_class = ((VALUE)RUBY_Qnil); > } > source = rb_convert_type(source, RUBY_T_STRING, "String", "to_str"); > if (!json->quirks_mode) { > source = convert_encoding(rb_string_value(&(source))); > } > json->current_nesting = 0; > rb_string_value(&(source)); > json->len = (!(((struct RBasic*)(source))->flags & (((VALUE)1)<<(12 +1))) ? (long)((((struct RBasic*)(source))->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*)(source))->as.heap.len); > json->source = (!(((struct RBasic*)(source))->flags & (((VALUE)1)<<(12 +1))) ? ((struct RString*)(source))->as.ary : ((struct RString*)(source))->as.heap.ptr);; > json->Vsource = source; > return self; >} ># 1733 "parser.c" >static const int JSON_start = 1; >static const int JSON_first_final = 10; >static const int JSON_error = 0; > >static const int JSON_en_main = 1; ># 740 "parser.rl" > > >static VALUE cParser_parse_strict(VALUE self) >{ > char *p, *pe; > int cs = 0x666; > VALUE result = ((VALUE)RUBY_Qnil); > JSON_Parser *json; do { rb_check_type((VALUE)((self)),(RUBY_T_DATA)); (json) = (JSON_Parser*)(((struct RData*)(self))->data);} while (0); if (!json->Vsource) rb_raise(rb_eTypeError, "uninitialized instance"); ># 1752 "parser.c" > { > cs = JSON_start; > } ># 750 "parser.rl" > p = json->source; > pe = p + json->len; ># 1761 "parser.c" > { > if ( p == pe ) > goto _test_eof; > switch ( cs ) > { >st1: > if ( ++p == pe ) > goto _test_eof1; >case 1: > switch( (*p) ) { > case 13: goto st1; > case 32: goto st1; > case 47: goto st2; > case 91: goto tr3; > case 123: goto tr4; > } > if ( 9 <= (*p) && (*p) <= 10 ) > goto st1; > goto st0; >st0: >cs = 0; > goto _out; >st2: > if ( ++p == pe ) > goto _test_eof2; >case 2: > switch( (*p) ) { > case 42: goto st3; > case 47: goto st5; > } > goto st0; >st3: > if ( ++p == pe ) > goto _test_eof3; >case 3: > if ( (*p) == 42 ) > goto st4; > goto st3; >st4: > if ( ++p == pe ) > goto _test_eof4; >case 4: > switch( (*p) ) { > case 42: goto st4; > case 47: goto st1; > } > goto st3; >st5: > if ( ++p == pe ) > goto _test_eof5; >case 5: > if ( (*p) == 10 ) > goto st1; > goto st5; >tr3: ># 729 "parser.rl" > { > char *np; > json->current_nesting = 1; > np = JSON_parse_array(json, p, pe, &result); > if (np == ((void *)0)) { p--; {p++; cs = 10; goto _out;} } else {p = (( np))-1;} > } > goto st10; >tr4: ># 722 "parser.rl" > { > char *np; > json->current_nesting = 1; > np = JSON_parse_object(json, p, pe, &result); > if (np == ((void *)0)) { p--; {p++; cs = 10; goto _out;} } else {p = (( np))-1;} > } > goto st10; >st10: > if ( ++p == pe ) > goto _test_eof10; >case 10: ># 1838 "parser.c" > switch( (*p) ) { > case 13: goto st10; > case 32: goto st10; > case 47: goto st6; > } > if ( 9 <= (*p) && (*p) <= 10 ) > goto st10; > goto st0; >st6: > if ( ++p == pe ) > goto _test_eof6; >case 6: > switch( (*p) ) { > case 42: goto st7; > case 47: goto st9; > } > goto st0; >st7: > if ( ++p == pe ) > goto _test_eof7; >case 7: > if ( (*p) == 42 ) > goto st8; > goto st7; >st8: > if ( ++p == pe ) > goto _test_eof8; >case 8: > switch( (*p) ) { > case 42: goto st8; > case 47: goto st10; > } > goto st7; >st9: > if ( ++p == pe ) > goto _test_eof9; >case 9: > if ( (*p) == 10 ) > goto st10; > goto st9; > } > _test_eof1: cs = 1; goto _test_eof; > _test_eof2: cs = 2; goto _test_eof; > _test_eof3: cs = 3; goto _test_eof; > _test_eof4: cs = 4; goto _test_eof; > _test_eof5: cs = 5; goto _test_eof; > _test_eof10: cs = 10; goto _test_eof; > _test_eof6: cs = 6; goto _test_eof; > _test_eof7: cs = 7; goto _test_eof; > _test_eof8: cs = 8; goto _test_eof; > _test_eof9: cs = 9; goto _test_eof; > > _test_eof: {} > _out: {} > } ># 753 "parser.rl" > > if (cs >= JSON_first_final && p == pe) { > return result; > } else { > rb_raise(eParserError, "%u: unexpected token at '%s'", 757, p); > return ((VALUE)RUBY_Qnil); > } >} ># 1907 "parser.c" >static const int JSON_quirks_mode_start = 1; >static const int JSON_quirks_mode_first_final = 10; >static const int JSON_quirks_mode_error = 0; > >static const int JSON_quirks_mode_en_main = 1; ># 778 "parser.rl" > > >static VALUE cParser_parse_quirks_mode(VALUE self) >{ > char *p, *pe; > int cs = 0x666; > VALUE result = ((VALUE)RUBY_Qnil); > JSON_Parser *json; do { rb_check_type((VALUE)((self)),(RUBY_T_DATA)); (json) = (JSON_Parser*)(((struct RData*)(self))->data);} while (0); if (!json->Vsource) rb_raise(rb_eTypeError, "uninitialized instance"); ># 1926 "parser.c" > { > cs = JSON_quirks_mode_start; > } ># 788 "parser.rl" > p = json->source; > pe = p + json->len; ># 1935 "parser.c" > { > if ( p == pe ) > goto _test_eof; > switch ( cs ) > { >st1: > if ( ++p == pe ) > goto _test_eof1; >case 1: > switch( (*p) ) { > case 13: goto st1; > case 32: goto st1; > case 34: goto tr2; > case 45: goto tr2; > case 47: goto st6; > case 73: goto tr2; > case 78: goto tr2; > case 91: goto tr2; > case 102: goto tr2; > case 110: goto tr2; > case 116: goto tr2; > case 123: goto tr2; > } > if ( (*p) > 10 ) { > if ( 48 <= (*p) && (*p) <= 57 ) > goto tr2; > } else if ( (*p) >= 9 ) > goto st1; > goto st0; >st0: >cs = 0; > goto _out; >tr2: ># 770 "parser.rl" > { > char *np = JSON_parse_value(json, p, pe, &result); > if (np == ((void *)0)) { p--; {p++; cs = 10; goto _out;} } else {p = (( np))-1;} > } > goto st10; >st10: > if ( ++p == pe ) > goto _test_eof10; >case 10: ># 1979 "parser.c" > switch( (*p) ) { > case 13: goto st10; > case 32: goto st10; > case 47: goto st2; > } > if ( 9 <= (*p) && (*p) <= 10 ) > goto st10; > goto st0; >st2: > if ( ++p == pe ) > goto _test_eof2; >case 2: > switch( (*p) ) { > case 42: goto st3; > case 47: goto st5; > } > goto st0; >st3: > if ( ++p == pe ) > goto _test_eof3; >case 3: > if ( (*p) == 42 ) > goto st4; > goto st3; >st4: > if ( ++p == pe ) > goto _test_eof4; >case 4: > switch( (*p) ) { > case 42: goto st4; > case 47: goto st10; > } > goto st3; >st5: > if ( ++p == pe ) > goto _test_eof5; >case 5: > if ( (*p) == 10 ) > goto st10; > goto st5; >st6: > if ( ++p == pe ) > goto _test_eof6; >case 6: > switch( (*p) ) { > case 42: goto st7; > case 47: goto st9; > } > goto st0; >st7: > if ( ++p == pe ) > goto _test_eof7; >case 7: > if ( (*p) == 42 ) > goto st8; > goto st7; >st8: > if ( ++p == pe ) > goto _test_eof8; >case 8: > switch( (*p) ) { > case 42: goto st8; > case 47: goto st1; > } > goto st7; >st9: > if ( ++p == pe ) > goto _test_eof9; >case 9: > if ( (*p) == 10 ) > goto st1; > goto st9; > } > _test_eof1: cs = 1; goto _test_eof; > _test_eof10: cs = 10; goto _test_eof; > _test_eof2: cs = 2; goto _test_eof; > _test_eof3: cs = 3; goto _test_eof; > _test_eof4: cs = 4; goto _test_eof; > _test_eof5: cs = 5; goto _test_eof; > _test_eof6: cs = 6; goto _test_eof; > _test_eof7: cs = 7; goto _test_eof; > _test_eof8: cs = 8; goto _test_eof; > _test_eof9: cs = 9; goto _test_eof; > > _test_eof: {} > _out: {} > } ># 791 "parser.rl" > > if (cs >= JSON_quirks_mode_first_final && p == pe) { > return result; > } else { > rb_raise(eParserError, "%u: unexpected token at '%s'", 795, p); > return ((VALUE)RUBY_Qnil); > } >} > > > > > > > >static VALUE cParser_parse(VALUE self) >{ > JSON_Parser *json; do { rb_check_type((VALUE)((self)),(RUBY_T_DATA)); (json) = (JSON_Parser*)(((struct RData*)(self))->data);} while (0); if (!json->Vsource) rb_raise(rb_eTypeError, "uninitialized instance"); > > if (json->quirks_mode) { > return cParser_parse_quirks_mode(self); > } else { > return cParser_parse_strict(self); > } >} > > >static JSON_Parser *JSON_allocate() >{ > JSON_Parser *json = ((JSON_Parser*)ruby_xmalloc(sizeof(JSON_Parser))); > memset((json), 0, sizeof(JSON_Parser)*(1)); > json->fbuffer = fbuffer_alloc(0); > return json; >} > >static void JSON_mark(JSON_Parser *json) >{ > rb_gc_mark_maybe(json->Vsource); > rb_gc_mark_maybe(json->create_id); > rb_gc_mark_maybe(json->object_class); > rb_gc_mark_maybe(json->array_class); > rb_gc_mark_maybe(json->match_string); >} > >static void JSON_free(JSON_Parser *json) >{ > fbuffer_free(json->fbuffer); > ruby_xfree(json); >} > >static VALUE cJSON_parser_s_allocate(VALUE klass) >{ > JSON_Parser *json = JSON_allocate(); > return rb_data_object_alloc((klass),(json),(RUBY_DATA_FUNC)(JSON_mark),(RUBY_DATA_FUNC)(JSON_free)); >} > > > > > > > >static VALUE cParser_source(VALUE self) >{ > JSON_Parser *json; do { rb_check_type((VALUE)((self)),(RUBY_T_DATA)); (json) = (JSON_Parser*)(((struct RData*)(self))->data);} while (0); if (!json->Vsource) rb_raise(rb_eTypeError, "uninitialized instance"); > return rb_str_dup(json->Vsource); >} > > > > > > >static VALUE cParser_quirks_mode_p(VALUE self) >{ > JSON_Parser *json; do { rb_check_type((VALUE)((self)),(RUBY_T_DATA)); (json) = (JSON_Parser*)(((struct RData*)(self))->data);} while (0); if (!json->Vsource) rb_raise(rb_eTypeError, "uninitialized instance"); > return json->quirks_mode ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse); >} > > >void Init_parser() >{ > rb_require("json/common"); > mJSON = rb_define_module("JSON"); > mExt = rb_define_module_under(mJSON, "Ext"); > cParser = rb_define_class_under(mExt, "Parser", rb_cObject); > eParserError = rb_path2class("JSON::ParserError"); > eNestingError = rb_path2class("JSON::NestingError"); > rb_define_alloc_func(cParser, cJSON_parser_s_allocate); > rb_define_method(cParser, "initialize", cParser_initialize, -1); > rb_define_method(cParser, "parse", cParser_parse, 0); > rb_define_method(cParser, "source", cParser_source, 0); > rb_define_method(cParser, "quirks_mode?", cParser_quirks_mode_p, 0); > > CNaN = rb_const_get(mJSON, (__builtin_constant_p("NaN") ? __extension__ ({ static ID rb_intern_id_cache; if (!rb_intern_id_cache) rb_intern_id_cache = rb_intern2((("NaN")), (long)strlen(("NaN"))); (ID) rb_intern_id_cache; }) : rb_intern("NaN"))); > CInfinity = rb_const_get(mJSON, (__builtin_constant_p("Infinity") ? __extension__ ({ static ID rb_intern_id_cache; if (!rb_intern_id_cache) rb_intern_id_cache = rb_intern2((("Infinity")), (long)strlen(("Infinity"))); (ID) rb_intern_id_cache; }) : rb_intern("Infinity"))); > CMinusInfinity = rb_const_get(mJSON, (__builtin_constant_p("MinusInfinity") ? __extension__ ({ static ID rb_intern_id_cache; if (!rb_intern_id_cache) rb_intern_id_cache = rb_intern2((("MinusInfinity")), (long)strlen(("MinusInfinity"))); (ID) rb_intern_id_cache; }) : rb_intern("MinusInfinity"))); > > i_json_creatable_p = (__builtin_constant_p("json_creatable?") ? __extension__ ({ static ID rb_intern_id_cache; if (!rb_intern_id_cache) rb_intern_id_cache = rb_intern2((("json_creatable?")), (long)strlen(("json_creatable?"))); (ID) rb_intern_id_cache; }) : rb_intern("json_creatable?")); > i_json_create = (__builtin_constant_p("json_create") ? __extension__ ({ static ID rb_intern_id_cache; if (!rb_intern_id_cache) rb_intern_id_cache = rb_intern2((("json_create")), (long)strlen(("json_create"))); (ID) rb_intern_id_cache; }) : rb_intern("json_create")); > i_create_id = (__builtin_constant_p("create_id") ? __extension__ ({ static ID rb_intern_id_cache; if (!rb_intern_id_cache) rb_intern_id_cache = rb_intern2((("create_id")), (long)strlen(("create_id"))); (ID) rb_intern_id_cache; }) : rb_intern("create_id")); > i_create_additions = (__builtin_constant_p("create_additions") ? __extension__ ({ static ID rb_intern_id_cache; if (!rb_intern_id_cache) rb_intern_id_cache = rb_intern2((("create_additions")), (long)strlen(("create_additions"))); (ID) rb_intern_id_cache; }) : rb_intern("create_additions")); > i_chr = (__builtin_constant_p("chr") ? __extension__ ({ static ID rb_intern_id_cache; if (!rb_intern_id_cache) rb_intern_id_cache = rb_intern2((("chr")), (long)strlen(("chr"))); (ID) rb_intern_id_cache; }) : rb_intern("chr")); > i_max_nesting = (__builtin_constant_p("max_nesting") ? __extension__ ({ static ID rb_intern_id_cache; if (!rb_intern_id_cache) rb_intern_id_cache = rb_intern2((("max_nesting")), (long)strlen(("max_nesting"))); (ID) rb_intern_id_cache; }) : rb_intern("max_nesting")); > i_allow_nan = (__builtin_constant_p("allow_nan") ? __extension__ ({ static ID rb_intern_id_cache; if (!rb_intern_id_cache) rb_intern_id_cache = rb_intern2((("allow_nan")), (long)strlen(("allow_nan"))); (ID) rb_intern_id_cache; }) : rb_intern("allow_nan")); > i_symbolize_names = (__builtin_constant_p("symbolize_names") ? __extension__ ({ static ID rb_intern_id_cache; if (!rb_intern_id_cache) rb_intern_id_cache = rb_intern2((("symbolize_names")), (long)strlen(("symbolize_names"))); (ID) rb_intern_id_cache; }) : rb_intern("symbolize_names")); > i_quirks_mode = (__builtin_constant_p("quirks_mode") ? __extension__ ({ static ID rb_intern_id_cache; if (!rb_intern_id_cache) rb_intern_id_cache = rb_intern2((("quirks_mode")), (long)strlen(("quirks_mode"))); (ID) rb_intern_id_cache; }) : rb_intern("quirks_mode")); > i_object_class = (__builtin_constant_p("object_class") ? __extension__ ({ static ID rb_intern_id_cache; if (!rb_intern_id_cache) rb_intern_id_cache = rb_intern2((("object_class")), (long)strlen(("object_class"))); (ID) rb_intern_id_cache; }) : rb_intern("object_class")); > i_array_class = (__builtin_constant_p("array_class") ? __extension__ ({ static ID rb_intern_id_cache; if (!rb_intern_id_cache) rb_intern_id_cache = rb_intern2((("array_class")), (long)strlen(("array_class"))); (ID) rb_intern_id_cache; }) : rb_intern("array_class")); > i_match = (__builtin_constant_p("match") ? __extension__ ({ static ID rb_intern_id_cache; if (!rb_intern_id_cache) rb_intern_id_cache = rb_intern2((("match")), (long)strlen(("match"))); (ID) rb_intern_id_cache; }) : rb_intern("match")); > i_match_string = (__builtin_constant_p("match_string") ? __extension__ ({ static ID rb_intern_id_cache; if (!rb_intern_id_cache) rb_intern_id_cache = rb_intern2((("match_string")), (long)strlen(("match_string"))); (ID) rb_intern_id_cache; }) : rb_intern("match_string")); > i_key_p = (__builtin_constant_p("key?") ? __extension__ ({ static ID rb_intern_id_cache; if (!rb_intern_id_cache) rb_intern_id_cache = rb_intern2((("key?")), (long)strlen(("key?"))); (ID) rb_intern_id_cache; }) : rb_intern("key?")); > i_deep_const_get = (__builtin_constant_p("deep_const_get") ? __extension__ ({ static ID rb_intern_id_cache; if (!rb_intern_id_cache) rb_intern_id_cache = rb_intern2((("deep_const_get")), (long)strlen(("deep_const_get"))); (ID) rb_intern_id_cache; }) : rb_intern("deep_const_get")); > i_aset = (__builtin_constant_p("[]=") ? __extension__ ({ static ID rb_intern_id_cache; if (!rb_intern_id_cache) rb_intern_id_cache = rb_intern2((("[]=")), (long)strlen(("[]="))); (ID) rb_intern_id_cache; }) : rb_intern("[]=")); > i_aref = (__builtin_constant_p("[]") ? __extension__ ({ static ID rb_intern_id_cache; if (!rb_intern_id_cache) rb_intern_id_cache = rb_intern2((("[]")), (long)strlen(("[]"))); (ID) rb_intern_id_cache; }) : rb_intern("[]")); > i_leftshift = (__builtin_constant_p("<<") ? __extension__ ({ static ID rb_intern_id_cache; if (!rb_intern_id_cache) rb_intern_id_cache = rb_intern2((("<<")), (long)strlen(("<<"))); (ID) rb_intern_id_cache; }) : rb_intern("<<")); > > CEncoding_UTF_8 = rb_funcall(rb_path2class("Encoding"), (__builtin_constant_p("find") ? __extension__ ({ static ID rb_intern_id_cache; if (!rb_intern_id_cache) rb_intern_id_cache = rb_intern2((("find")), (long)strlen(("find"))); (ID) rb_intern_id_cache; }) : rb_intern("find")), 1, __extension__ ( { (__builtin_constant_p("utf-8")) ? rb_str_new(("utf-8"), (long)strlen("utf-8")) : rb_str_new_cstr("utf-8"); })); > CEncoding_UTF_16BE = rb_funcall(rb_path2class("Encoding"), (__builtin_constant_p("find") ? __extension__ ({ static ID rb_intern_id_cache; if (!rb_intern_id_cache) rb_intern_id_cache = rb_intern2((("find")), (long)strlen(("find"))); (ID) rb_intern_id_cache; }) : rb_intern("find")), 1, __extension__ ( { (__builtin_constant_p("utf-16be")) ? rb_str_new(("utf-16be"), (long)strlen("utf-16be")) : rb_str_new_cstr("utf-16be"); })); > CEncoding_UTF_16LE = rb_funcall(rb_path2class("Encoding"), (__builtin_constant_p("find") ? __extension__ ({ static ID rb_intern_id_cache; if (!rb_intern_id_cache) rb_intern_id_cache = rb_intern2((("find")), (long)strlen(("find"))); (ID) rb_intern_id_cache; }) : rb_intern("find")), 1, __extension__ ( { (__builtin_constant_p("utf-16le")) ? rb_str_new(("utf-16le"), (long)strlen("utf-16le")) : rb_str_new_cstr("utf-16le"); })); > CEncoding_UTF_32BE = rb_funcall(rb_path2class("Encoding"), (__builtin_constant_p("find") ? __extension__ ({ static ID rb_intern_id_cache; if (!rb_intern_id_cache) rb_intern_id_cache = rb_intern2((("find")), (long)strlen(("find"))); (ID) rb_intern_id_cache; }) : rb_intern("find")), 1, __extension__ ( { (__builtin_constant_p("utf-32be")) ? rb_str_new(("utf-32be"), (long)strlen("utf-32be")) : rb_str_new_cstr("utf-32be"); })); > CEncoding_UTF_32LE = rb_funcall(rb_path2class("Encoding"), (__builtin_constant_p("find") ? __extension__ ({ static ID rb_intern_id_cache; if (!rb_intern_id_cache) rb_intern_id_cache = rb_intern2((("find")), (long)strlen(("find"))); (ID) rb_intern_id_cache; }) : rb_intern("find")), 1, __extension__ ( { (__builtin_constant_p("utf-32le")) ? rb_str_new(("utf-32le"), (long)strlen("utf-32le")) : rb_str_new_cstr("utf-32le"); })); > CEncoding_ASCII_8BIT = rb_funcall(rb_path2class("Encoding"), (__builtin_constant_p("find") ? __extension__ ({ static ID rb_intern_id_cache; if (!rb_intern_id_cache) rb_intern_id_cache = rb_intern2((("find")), (long)strlen(("find"))); (ID) rb_intern_id_cache; }) : rb_intern("find")), 1, __extension__ ( { (__builtin_constant_p("ascii-8bit")) ? rb_str_new(("ascii-8bit"), (long)strlen("ascii-8bit")) : rb_str_new_cstr("ascii-8bit"); })); > i_encoding = (__builtin_constant_p("encoding") ? __extension__ ({ static ID rb_intern_id_cache; if (!rb_intern_id_cache) rb_intern_id_cache = rb_intern2((("encoding")), (long)strlen(("encoding"))); (ID) rb_intern_id_cache; }) : rb_intern("encoding")); > i_encode = (__builtin_constant_p("encode") ? __extension__ ({ static ID rb_intern_id_cache; if (!rb_intern_id_cache) rb_intern_id_cache = rb_intern2((("encode")), (long)strlen(("encode"))); (ID) rb_intern_id_cache; }) : rb_intern("encode")); > > > >}
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 928468
: 717174