Ruby  2.4.2p198(2017-09-14revision59899)
Data Structures | Macros | Typedefs | Functions | Variables
parser.h File Reference
#include "ruby.h"
#include "ruby/st.h"
Include dependency graph for parser.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  JSON_ParserStruct
 

Macros

#define option_given_p(opts, key)   RTEST(rb_funcall(opts, i_key_p, 1, key))
 
#define UNI_REPLACEMENT_CHAR   (UTF32)0x0000FFFD
 
#define UNI_SUR_HIGH_START   (UTF32)0xD800
 
#define UNI_SUR_HIGH_END   (UTF32)0xDBFF
 
#define UNI_SUR_LOW_START   (UTF32)0xDC00
 
#define UNI_SUR_LOW_END   (UTF32)0xDFFF
 
#define GET_PARSER
 
#define GET_PARSER_INIT
 
#define MinusInfinity   "-Infinity"
 
#define EVIL   0x666
 
#define NEW_TYPEDDATA_WRAPPER   1
 

Typedefs

typedef unsigned long UTF32
 
typedef unsigned short UTF16
 
typedef unsigned char UTF8
 
typedef struct JSON_ParserStruct JSON_Parser
 

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, int current_nesting)
 
static char * JSON_parse_value (JSON_Parser *json, char *p, char *pe, VALUE *result, int current_nesting)
 
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, int current_nesting)
 
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 void JSON_mark (void *json)
 
static void JSON_free (void *json)
 
static VALUE cJSON_parser_s_allocate (VALUE klass)
 
static VALUE cParser_source (VALUE self)
 

Variables

static const rb_data_type_t JSON_Parser_type
 

Macro Definition Documentation

◆ EVIL

#define EVIL   0x666

◆ GET_PARSER

#define GET_PARSER
Value:
if (!json->Vsource) rb_raise(rb_eTypeError, "uninitialized instance")
VALUE rb_eTypeError
Definition: error.c:762
void rb_raise(VALUE exc, const char *fmt,...)
Definition: error.c:2207
#define GET_PARSER_INIT
Definition: parser.h:50

Definition at line 47 of file parser.h.

Referenced by cParser_parse(), and cParser_source().

◆ GET_PARSER_INIT

#define GET_PARSER_INIT
Value:
JSON_Parser *json; \
TypedData_Get_Struct(self, JSON_Parser, &JSON_Parser_type, json)
static const rb_data_type_t JSON_Parser_type
Definition: parser.h:83

Definition at line 50 of file parser.h.

Referenced by cParser_initialize().

◆ MinusInfinity

#define MinusInfinity   "-Infinity"

Definition at line 54 of file parser.h.

Referenced by JSON_parse_value().

◆ NEW_TYPEDDATA_WRAPPER

#define NEW_TYPEDDATA_WRAPPER   1

Definition at line 84 of file parser.h.

◆ option_given_p

#define option_given_p (   opts,
  key 
)    RTEST(rb_funcall(opts, i_key_p, 1, key))

Definition at line 16 of file parser.h.

◆ UNI_REPLACEMENT_CHAR

#define UNI_REPLACEMENT_CHAR   (UTF32)0x0000FFFD

Definition at line 24 of file parser.h.

◆ UNI_SUR_HIGH_END

#define UNI_SUR_HIGH_END   (UTF32)0xDBFF

Definition at line 26 of file parser.h.

◆ UNI_SUR_HIGH_START

#define UNI_SUR_HIGH_START   (UTF32)0xD800

Definition at line 25 of file parser.h.

◆ UNI_SUR_LOW_END

#define UNI_SUR_LOW_END   (UTF32)0xDFFF

Definition at line 28 of file parser.h.

◆ UNI_SUR_LOW_START

#define UNI_SUR_LOW_START   (UTF32)0xDC00

Definition at line 27 of file parser.h.

Typedef Documentation

◆ JSON_Parser

◆ UTF16

typedef unsigned short UTF16

Definition at line 21 of file parser.h.

◆ UTF32

typedef unsigned long UTF32

Definition at line 20 of file parser.h.

◆ UTF8

typedef unsigned char UTF8

Definition at line 22 of file parser.h.

Function Documentation

◆ cJSON_parser_s_allocate()

static VALUE cJSON_parser_s_allocate ( VALUE  klass)
static

◆ convert_encoding()

static VALUE convert_encoding ( VALUE  source)
static

◆ convert_UTF32_to_UTF8()

static int convert_UTF32_to_UTF8 ( char *  buf,
UTF32  ch 
)
static

◆ cParser_initialize()

static VALUE cParser_initialize ( int  argc,
VALUE argv,
VALUE  self 
)
static

◆ cParser_parse()

static VALUE cParser_parse ( VALUE  self)
static

◆ cParser_source()

static VALUE cParser_source ( VALUE  self)
static

◆ JSON_free()

static void JSON_free ( void *  json)
static

◆ JSON_mark()

static void JSON_mark ( void *  json)
static

◆ JSON_parse_array()

static char* JSON_parse_array ( JSON_Parser json,
char *  p,
char *  pe,
VALUE result,
int  current_nesting 
)
static

◆ JSON_parse_float()

static char* JSON_parse_float ( JSON_Parser json,
char *  p,
char *  pe,
VALUE result 
)
static

◆ JSON_parse_integer()

static char* JSON_parse_integer ( JSON_Parser json,
char *  p,
char *  pe,
VALUE result 
)
static

◆ JSON_parse_object()

static char* JSON_parse_object ( JSON_Parser json,
char *  p,
char *  pe,
VALUE result,
int  current_nesting 
)
static

◆ JSON_parse_string()

static char* JSON_parse_string ( JSON_Parser json,
char *  p,
char *  pe,
VALUE result 
)
static

◆ JSON_parse_value()

static char* JSON_parse_value ( JSON_Parser json,
char *  p,
char *  pe,
VALUE result,
int  current_nesting 
)
static

◆ json_string_unescape()

static VALUE json_string_unescape ( VALUE  result,
char *  string,
char *  stringEnd 
)
static

◆ unescape_unicode()

static UTF32 unescape_unicode ( const unsigned char *  p)
static

Variable Documentation

◆ JSON_Parser_type

const rb_data_type_t JSON_Parser_type
static

Definition at line 83 of file parser.h.