Ruby 1.9.3p327(2012-11-10revision37606)
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 int match_i (VALUE regexp, VALUE klass, VALUE memo)
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_strict (VALUE self)
static VALUE cParser_parse_quirks_mode (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)
static VALUE cParser_quirks_mode_p (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_quirks_mode
static ID i_object_class
static ID i_array_class
static ID i_key_p
static ID i_deep_const_get
static ID i_match
static ID i_match_string
static ID i_aset
static ID i_aref
static ID i_leftshift
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 = 3
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 = 8
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
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

Function Documentation

static VALUE cJSON_parser_s_allocate ( VALUE  klass) [static]

Definition at line 2110 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]

Definition at line 2077 of file parser.c.

References cParser_parse_quirks_mode(), cParser_parse_strict(), and GET_PARSER.

Referenced by Init_parser().

static VALUE cParser_parse_quirks_mode ( VALUE  self) [static]
static VALUE cParser_parse_strict ( VALUE  self) [static]
static VALUE cParser_quirks_mode_p ( VALUE  self) [static]

Definition at line 2133 of file parser.c.

References GET_PARSER, Qfalse, and Qtrue.

Referenced by Init_parser().

static VALUE cParser_source ( VALUE  self) [static]

Definition at line 2122 of file parser.c.

References GET_PARSER, and rb_str_dup().

Referenced by Init_parser().

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

Definition at line 2089 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 2105 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 int match_i ( VALUE  regexp,
VALUE  klass,
VALUE  memo 
) [static]
static UTF32 unescape_unicode ( const unsigned char *  p) [static]

Definition at line 24 of file parser.c.

References digit_values, result, and UNI_REPLACEMENT_CHAR.

Referenced by json_string_unescape().


Variable Documentation

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().

Definition at line 77 of file parser.c.

Referenced by Init_parser(), and Init_syck().

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().

Definition at line 77 of file parser.c.

Definition at line 80 of file parser.c.

Definition at line 80 of file parser.c.

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 Init_parser(), and JSON_parse_object().

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().

Definition at line 80 of file parser.c.

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(), JSON_parse_object(), and match_i().

Definition at line 80 of file parser.c.

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

Definition at line 80 of file parser.c.

Definition at line 80 of file parser.c.

Referenced by Init_parser(), and JSON_parse_array().

Definition at line 80 of file parser.c.

Definition at line 80 of file parser.c.

Referenced by cParser_initialize(), and Init_parser().

Definition at line 80 of file parser.c.

Definition at line 80 of file parser.c.

Referenced by cParser_initialize(), and Init_parser().

Definition at line 80 of file parser.c.

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 1041 of file parser.c.

const int JSON_array_error = 0 [static]

Definition at line 1039 of file parser.c.

const int JSON_array_first_final = 17 [static]

Definition at line 1038 of file parser.c.

Referenced by JSON_parse_array().

const int JSON_array_start = 1 [static]

Definition at line 1037 of file parser.c.

Referenced by JSON_parse_array().

const int JSON_en_main = 1 [static]

Definition at line 1731 of file parser.c.

const int JSON_error = 0 [static]

Definition at line 1729 of file parser.c.

const int JSON_first_final = 10 [static]

Definition at line 1728 of file parser.c.

Referenced by cParser_parse_strict().

const int JSON_float_en_main = 1 [static]

Definition at line 878 of file parser.c.

const int JSON_float_error = 0 [static]

Definition at line 876 of file parser.c.

const int JSON_float_first_final = 8 [static]

Definition at line 875 of file parser.c.

Referenced by JSON_parse_float().

const int JSON_float_start = 1 [static]

Definition at line 874 of file parser.c.

Referenced by JSON_parse_float().

const int JSON_integer_en_main = 1 [static]

Definition at line 782 of file parser.c.

const int JSON_integer_error = 0 [static]

Definition at line 780 of file parser.c.

const int JSON_integer_first_final = 3 [static]

Definition at line 779 of file parser.c.

Referenced by JSON_parse_integer().

const int JSON_integer_start = 1 [static]

Definition at line 778 of file parser.c.

Referenced by JSON_parse_integer().

const int JSON_object_en_main = 1 [static]

Definition at line 95 of file parser.c.

const int JSON_object_error = 0 [static]

Definition at line 93 of file parser.c.

const int JSON_object_first_final = 27 [static]

Definition at line 92 of file parser.c.

Referenced by JSON_parse_object().

const int JSON_object_start = 1 [static]

Definition at line 91 of file parser.c.

Referenced by JSON_parse_object().

const int JSON_quirks_mode_en_main = 1 [static]

Definition at line 1905 of file parser.c.

const int JSON_quirks_mode_error = 0 [static]

Definition at line 1903 of file parser.c.

const int JSON_quirks_mode_first_final = 10 [static]

Definition at line 1902 of file parser.c.

Referenced by cParser_parse_quirks_mode().

const int JSON_quirks_mode_start = 1 [static]

Definition at line 1901 of file parser.c.

Referenced by cParser_parse_quirks_mode().

const int JSON_start = 1 [static]

Definition at line 1727 of file parser.c.

Referenced by cParser_parse_strict().

const int JSON_string_en_main = 1 [static]

Definition at line 1373 of file parser.c.

const int JSON_string_error = 0 [static]

Definition at line 1371 of file parser.c.

const int JSON_string_first_final = 8 [static]

Definition at line 1370 of file parser.c.

Referenced by JSON_parse_string().

const int JSON_string_start = 1 [static]

Definition at line 1369 of file parser.c.

Referenced by JSON_parse_string().

const int JSON_value_en_main = 1 [static]

Definition at line 473 of file parser.c.

const int JSON_value_error = 0 [static]

Definition at line 471 of file parser.c.

const int JSON_value_first_final = 21 [static]

Definition at line 470 of file parser.c.

Referenced by JSON_parse_value().

const int JSON_value_start = 1 [static]

Definition at line 469 of file parser.c.

Referenced by JSON_parse_value().

Definition at line 77 of file parser.c.

VALUE mJSON [static]

Definition at line 77 of file parser.c.

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