Functions | Variables

ext/json/parser/parser.c File Reference

#include "parser.h"
Include dependency graph for parser.c:

Go to the source code of this file.

Functions

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_ParserJSON_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)
void Init_parser ()

Variables

static const char digit_values [256]
static ID i_iconv
static VALUE mJSON
static VALUE mExt
static VALUE cParser
static VALUE eParserError
static VALUE eNestingError
static VALUE CNaN
static VALUE CInfinity
static VALUE CMinusInfinity
static ID i_json_creatable_p
static ID i_json_create
static ID i_create_id
static ID i_create_additions
static ID i_chr
static ID i_max_nesting
static ID i_allow_nan
static ID i_symbolize_names
static ID i_object_class
static ID i_array_class
static ID i_key_p
static ID i_deep_const_get
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
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
static const int JSON_integer_start = 1
static const int JSON_integer_first_final = 5
static const int JSON_integer_error = 0
static const int JSON_integer_en_main = 1
static const int JSON_float_start = 1
static const int JSON_float_first_final = 10
static const int JSON_float_error = 0
static const int JSON_float_en_main = 1
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
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
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

Function Documentation

static VALUE cJSON_parser_s_allocate ( VALUE  klass  )  [static]

Definition at line 1878 of file parser.c.

References Data_Wrap_Struct, JSON_allocate(), JSON_free(), and JSON_mark().

Referenced by Init_parser().

static VALUE convert_encoding ( VALUE  source  )  [static]
static int convert_UTF32_to_UTF8 ( char *  buf,
UTF32  ch 
) [static]

Definition at line 43 of file parser.c.

References len.

Referenced by json_string_unescape().

static VALUE cParser_initialize ( int  argc,
VALUE argv,
VALUE  self 
) [static]
static VALUE cParser_parse ( VALUE  self  )  [static]
static VALUE cParser_source ( VALUE  self  )  [static]

Definition at line 1890 of file parser.c.

References rb_str_dup().

Referenced by Init_parser().

void Init_parser (  ) 
static JSON_Parser* JSON_allocate (  )  [static]

Definition at line 1858 of file parser.c.

References ALLOC, and MEMZERO.

Referenced by cJSON_parser_s_allocate().

static void JSON_free ( JSON_Parser json  )  [static]

Definition at line 1873 of file parser.c.

References ruby_xfree().

Referenced by cJSON_parser_s_allocate().

static void JSON_mark ( JSON_Parser json  )  [static]
static char* JSON_parse_array ( JSON_Parser json,
char *  p,
char *  pe,
VALUE result 
) [static]
static char* JSON_parse_float ( JSON_Parser json,
char *  p,
char *  pe,
VALUE result 
) [static]
static char* JSON_parse_integer ( JSON_Parser json,
char *  p,
char *  pe,
VALUE result 
) [static]
static char* JSON_parse_object ( JSON_Parser json,
char *  p,
char *  pe,
VALUE result 
) [static]
static char* JSON_parse_string ( JSON_Parser json,
char *  p,
char *  pe,
VALUE result 
) [static]
static char* JSON_parse_value ( JSON_Parser json,
char *  p,
char *  pe,
VALUE result 
) [static]
static VALUE json_string_unescape ( VALUE  result,
char *  string,
char *  stringEnd 
) [static]
static UTF32 unescape_unicode ( const unsigned char *  p  )  [static]

Definition at line 24 of file parser.c.

References digit_values, and result.

Referenced by json_string_unescape().


Variable Documentation

VALUE CInfinity [static]

Definition at line 78 of file parser.c.

Referenced by Init_parser(), and JSON_parse_value().

Definition at line 78 of file parser.c.

Referenced by Init_parser(), and JSON_parse_value().

VALUE CNaN [static]

Definition at line 78 of file parser.c.

Referenced by Init_parser(), and JSON_parse_value().

VALUE cParser [static]

Definition at line 77 of file parser.c.

Referenced by Init_parser().

const char digit_values[256] [static]
Initial value:
 {
    -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
}

Definition at line 7 of file parser.c.

Referenced by unescape_unicode().

VALUE eNestingError [static]

Definition at line 77 of file parser.c.

Referenced by Init_parser(), JSON_parse_array(), and JSON_parse_object().

VALUE eParserError [static]
ID i_allow_nan [static]

Definition at line 80 of file parser.c.

Referenced by cParser_initialize(), and Init_parser().

ID i_array_class [static]

Definition at line 80 of file parser.c.

Referenced by cParser_initialize(), and Init_parser().

ID i_chr [static]

Definition at line 80 of file parser.c.

Referenced by Init_parser().

Definition at line 80 of file parser.c.

Referenced by cParser_initialize(), and Init_parser().

ID i_create_id [static]

Definition at line 80 of file parser.c.

Referenced by cParser_initialize(), and Init_parser().

ID i_deep_const_get [static]

Definition at line 80 of file parser.c.

Referenced by Init_parser(), and JSON_parse_object().

ID i_iconv [static]

Definition at line 74 of file parser.c.

Referenced by convert_encoding(), and Init_parser().

Definition at line 80 of file parser.c.

Referenced by Init_parser(), and JSON_parse_object().

ID i_json_create [static]

Definition at line 80 of file parser.c.

Referenced by Init_parser(), and JSON_parse_object().

ID i_key_p [static]

Definition at line 80 of file parser.c.

Referenced by Init_parser().

ID i_max_nesting [static]

Definition at line 80 of file parser.c.

Referenced by cParser_initialize(), and Init_parser().

ID i_object_class [static]

Definition at line 80 of file parser.c.

Referenced by cParser_initialize(), and Init_parser().

Definition at line 80 of file parser.c.

Referenced by cParser_initialize(), and Init_parser().

const int JSON_array_en_main = 1 [static]

Definition at line 1030 of file parser.c.

const int JSON_array_error = 0 [static]

Definition at line 1028 of file parser.c.

const int JSON_array_first_final = 17 [static]

Definition at line 1027 of file parser.c.

Referenced by JSON_parse_array().

const int JSON_array_start = 1 [static]

Definition at line 1026 of file parser.c.

Referenced by JSON_parse_array().

const int JSON_en_main = 1 [static]

Definition at line 1516 of file parser.c.

const int JSON_error = 0 [static]

Definition at line 1514 of file parser.c.

const int JSON_first_final = 10 [static]

Definition at line 1513 of file parser.c.

Referenced by cParser_parse().

const int JSON_float_en_main = 1 [static]

Definition at line 867 of file parser.c.

const int JSON_float_error = 0 [static]

Definition at line 865 of file parser.c.

const int JSON_float_first_final = 10 [static]

Definition at line 864 of file parser.c.

Referenced by JSON_parse_float().

const int JSON_float_start = 1 [static]

Definition at line 863 of file parser.c.

Referenced by JSON_parse_float().

const int JSON_integer_en_main = 1 [static]

Definition at line 771 of file parser.c.

const int JSON_integer_error = 0 [static]

Definition at line 769 of file parser.c.

const int JSON_integer_first_final = 5 [static]

Definition at line 768 of file parser.c.

Referenced by JSON_parse_integer().

const int JSON_integer_start = 1 [static]

Definition at line 767 of file parser.c.

Referenced by JSON_parse_integer().

const int JSON_object_en_main = 1 [static]

Definition at line 94 of file parser.c.

const int JSON_object_error = 0 [static]

Definition at line 92 of file parser.c.

const int JSON_object_first_final = 27 [static]

Definition at line 91 of file parser.c.

Referenced by JSON_parse_object().

const int JSON_object_start = 1 [static]

Definition at line 90 of file parser.c.

Referenced by JSON_parse_object().

const int JSON_start = 1 [static]

Definition at line 1512 of file parser.c.

Referenced by cParser_parse().

const int JSON_string_en_main = 1 [static]

Definition at line 1358 of file parser.c.

const int JSON_string_error = 0 [static]

Definition at line 1356 of file parser.c.

const int JSON_string_first_final = 8 [static]

Definition at line 1355 of file parser.c.

Referenced by JSON_parse_string().

const int JSON_string_start = 1 [static]

Definition at line 1354 of file parser.c.

Referenced by JSON_parse_string().

const int JSON_value_en_main = 1 [static]

Definition at line 462 of file parser.c.

const int JSON_value_error = 0 [static]

Definition at line 460 of file parser.c.

const int JSON_value_first_final = 21 [static]

Definition at line 459 of file parser.c.

Referenced by JSON_parse_value().

const int JSON_value_start = 1 [static]

Definition at line 458 of file parser.c.

Referenced by JSON_parse_value().

VALUE mExt [static]

Definition at line 77 of file parser.c.

Referenced by Init_parser().

VALUE mJSON [static]

Definition at line 77 of file parser.c.

Referenced by convert_encoding(), cParser_initialize(), Init_parser(), and JSON_parse_object().