16 #define option_given_p(opts, key) RTEST(rb_funcall(opts, i_key_p, 1, key)) 22 typedef unsigned char UTF8;
24 #define UNI_REPLACEMENT_CHAR (UTF32)0x0000FFFD 25 #define UNI_SUR_HIGH_START (UTF32)0xD800 26 #define UNI_SUR_HIGH_END (UTF32)0xDBFF 27 #define UNI_SUR_LOW_START (UTF32)0xDC00 28 #define UNI_SUR_LOW_END (UTF32)0xDFFF 49 if (!json->Vsource) rb_raise(rb_eTypeError, "uninitialized instance") 50 #define GET_PARSER_INIT \ 52 TypedData_Get_Struct(self, JSON_Parser, &JSON_Parser_type, json) 54 #define MinusInfinity "-Infinity" 74 #define ZALLOC(type) ((type *)ruby_zalloc(sizeof(type))) 75 static inline void *ruby_zalloc(
size_t n)
82 #ifdef TypedData_Make_Struct 84 #define NEW_TYPEDDATA_WRAPPER 1 86 #define TypedData_Make_Struct(klass, type, ignore, json) Data_Make_Struct(klass, type, NULL, JSON_free, json) 87 #define TypedData_Get_Struct(self, JSON_Parser, ignore, json) Data_Get_Struct(self, JSON_Parser, json) static VALUE cParser_source(VALUE self)
static UTF32 unescape_unicode(const unsigned char *p)
static void JSON_mark(void *json)
static const rb_data_type_t JSON_Parser_type
static VALUE cParser_initialize(int argc, VALUE *argv, VALUE self)
static VALUE cJSON_parser_s_allocate(VALUE klass)
static VALUE json_string_unescape(VALUE result, char *string, char *stringEnd)
static void JSON_free(void *json)
unsigned char buf[MIME_BUF_SIZE]
static int convert_UTF32_to_UTF8(char *buf, UTF32 ch)
static char * JSON_parse_object(JSON_Parser *json, char *p, char *pe, VALUE *result, int current_nesting)
void * ruby_xmalloc(size_t size)
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_string(JSON_Parser *json, char *p, char *pe, VALUE *result)
static VALUE cParser_parse(VALUE self)
static VALUE convert_encoding(VALUE source)
struct JSON_ParserStruct JSON_Parser
static char * JSON_parse_value(JSON_Parser *json, char *p, char *pe, VALUE *result, int current_nesting)
static char * JSON_parse_array(JSON_Parser *json, char *p, char *pe, VALUE *result, int current_nesting)