Ruby  2.0.0p648(2015-12-16revision53162)
Macros | Functions | Variables
psych_parser.c File Reference
#include <psych.h>
Include dependency graph for psych_parser.c:

Go to the source code of this file.

Macros

#define PSYCH_TRANSCODE(_str, _yaml_enc, _internal_enc)
 

Functions

static int io_reader (void *data, unsigned char *buf, size_t size, size_t *read)
 
static void dealloc (void *ptr)
 
static VALUE allocate (VALUE klass)
 
static VALUE make_exception (yaml_parser_t *parser, VALUE path)
 
static VALUE transcode_string (VALUE src, int *parser_encoding)
 
static VALUE transcode_io (VALUE src, int *parser_encoding)
 
static VALUE protected_start_stream (VALUE pointer)
 
static VALUE protected_start_document (VALUE pointer)
 
static VALUE protected_end_document (VALUE pointer)
 
static VALUE protected_alias (VALUE pointer)
 
static VALUE protected_scalar (VALUE pointer)
 
static VALUE protected_start_sequence (VALUE pointer)
 
static VALUE protected_end_sequence (VALUE handler)
 
static VALUE protected_start_mapping (VALUE pointer)
 
static VALUE protected_end_mapping (VALUE handler)
 
static VALUE protected_empty (VALUE handler)
 
static VALUE protected_end_stream (VALUE handler)
 
static VALUE parse (int argc, VALUE *argv, VALUE self)
 
static VALUE mark (VALUE self)
 
void Init_psych_parser ()
 

Variables

VALUE cPsychParser
 
VALUE ePsychSyntaxError
 
static ID id_read
 
static ID id_path
 
static ID id_empty
 
static ID id_start_stream
 
static ID id_end_stream
 
static ID id_start_document
 
static ID id_end_document
 
static ID id_alias
 
static ID id_scalar
 
static ID id_start_sequence
 
static ID id_end_sequence
 
static ID id_start_mapping
 
static ID id_end_mapping
 

Macro Definition Documentation

#define PSYCH_TRANSCODE (   _str,
  _yaml_enc,
  _internal_enc 
)
Value:
do { \
rb_enc_associate_index((_str), (_yaml_enc)); \
if(_internal_enc) \
(_str) = rb_str_export_to_enc((_str), (_internal_enc)); \
} while (0)
if(dispIdMember==DISPID_VALUE)
Definition: win32ole.c:791
VALUE rb_enc_associate_index(VALUE obj, int idx)
Definition: encoding.c:748
VALUE rb_str_export_to_enc(VALUE, rb_encoding *)
Definition: string.c:632

Definition at line 20 of file psych_parser.c.

Referenced by parse().

Function Documentation

static VALUE allocate ( VALUE  klass)
static

Definition at line 52 of file psych_parser.c.

References Data_Wrap_Struct, dealloc(), xmalloc, and yaml_parser_initialize().

Referenced by Init_psych_parser().

static void dealloc ( void *  ptr)
static

Definition at line 43 of file psych_parser.c.

References xfree(), and yaml_parser_delete().

Referenced by allocate().

void Init_psych_parser ( )
static int io_reader ( void *  data,
unsigned char *  buf,
size_t  size,
size_t *  read 
)
static

Definition at line 27 of file psych_parser.c.

References id_read, INT2NUM, NIL_P, rb_funcall(), RSTRING_LEN, and StringValuePtr.

Referenced by parse().

static VALUE make_exception ( yaml_parser_t parser,
VALUE  path 
)
static
static VALUE mark ( VALUE  self)
static
static VALUE parse ( int  argc,
VALUE argv,
VALUE  self 
)
static

Definition at line 229 of file psych_parser.c.

References yaml_event_s::alias, alias, args, yaml_event_s::data, Data_Get_Struct, yaml_event_s::document_start, yaml_tag_directive_s::handle, id_path, id_read, INT2NUM, io_reader(), make_exception(), yaml_event_s::mapping_start, OBJ_TAINT, OBJ_TAINTED, yaml_tag_directive_s::prefix, protected_alias(), protected_empty(), protected_end_document(), protected_end_mapping(), protected_end_sequence(), protected_end_stream(), protected_scalar(), protected_start_document(), protected_start_mapping(), protected_start_sequence(), protected_start_stream(), PSYCH_TRANSCODE, Qfalse, Qnil, Qtrue, rb_ary_new(), rb_ary_new3(), rb_ary_push(), rb_cIO, rb_default_internal_encoding(), rb_exc_raise(), rb_funcall(), rb_iv_get(), rb_jump_tag(), rb_obj_is_kind_of(), rb_protect(), rb_respond_to(), rb_scan_args(), rb_str_new(), rb_str_new2(), rb_utf8_encindex(), RSTRING_LEN, RSTRING_PTR, RTEST, yaml_event_s::scalar, yaml_event_s::sequence_start, yaml_event_s::stream_start, StringValue, transcode_io(), transcode_string(), yaml_event_s::type, val, version(), YAML_ALIAS_EVENT, YAML_ANY_ENCODING, YAML_DOCUMENT_END_EVENT, YAML_DOCUMENT_START_EVENT, yaml_event_delete(), YAML_MAPPING_END_EVENT, YAML_MAPPING_START_EVENT, YAML_NO_EVENT, yaml_parser_delete(), yaml_parser_initialize(), yaml_parser_parse(), yaml_parser_set_encoding(), yaml_parser_set_input(), yaml_parser_set_input_string(), YAML_SCALAR_EVENT, YAML_SEQUENCE_END_EVENT, YAML_SEQUENCE_START_EVENT, YAML_STREAM_END_EVENT, and YAML_STREAM_START_EVENT.

Referenced by Init_psych_parser().

static VALUE protected_alias ( VALUE  pointer)
static

Definition at line 176 of file psych_parser.c.

References args, id_alias, and rb_funcall().

Referenced by parse().

static VALUE protected_empty ( VALUE  handler)
static

Definition at line 210 of file psych_parser.c.

References id_empty, and rb_funcall().

Referenced by parse().

static VALUE protected_end_document ( VALUE  pointer)
static

Definition at line 170 of file psych_parser.c.

References args, id_end_document, and rb_funcall().

Referenced by parse().

static VALUE protected_end_mapping ( VALUE  handler)
static

Definition at line 205 of file psych_parser.c.

References id_end_mapping, and rb_funcall().

Referenced by parse().

static VALUE protected_end_sequence ( VALUE  handler)
static

Definition at line 194 of file psych_parser.c.

References id_end_sequence, and rb_funcall().

Referenced by parse().

static VALUE protected_end_stream ( VALUE  handler)
static

Definition at line 215 of file psych_parser.c.

References id_end_stream, and rb_funcall().

Referenced by parse().

static VALUE protected_scalar ( VALUE  pointer)
static

Definition at line 182 of file psych_parser.c.

References args, id_scalar, and rb_funcall3().

Referenced by parse().

static VALUE protected_start_document ( VALUE  pointer)
static

Definition at line 164 of file psych_parser.c.

References args, id_start_document, and rb_funcall3().

Referenced by parse().

static VALUE protected_start_mapping ( VALUE  pointer)
static

Definition at line 199 of file psych_parser.c.

References args, id_start_mapping, and rb_funcall3().

Referenced by parse().

static VALUE protected_start_sequence ( VALUE  pointer)
static

Definition at line 188 of file psych_parser.c.

References args, id_start_sequence, and rb_funcall3().

Referenced by parse().

static VALUE protected_start_stream ( VALUE  pointer)
static

Definition at line 158 of file psych_parser.c.

References args, id_start_stream, and rb_funcall().

Referenced by parse().

static VALUE transcode_io ( VALUE  src,
int *  parser_encoding 
)
static
static VALUE transcode_string ( VALUE  src,
int *  parser_encoding 
)
static

Variable Documentation

VALUE cPsychParser

Definition at line 3 of file psych_parser.c.

Referenced by Init_psych_parser(), and mark().

VALUE ePsychSyntaxError

Definition at line 4 of file psych_parser.c.

Referenced by Init_psych_parser(), and make_exception().

ID id_alias
static

Definition at line 13 of file psych_parser.c.

Referenced by Init_psych_parser(), and protected_alias().

ID id_empty
static

Definition at line 8 of file psych_parser.c.

Referenced by Init_psych_parser(), and protected_empty().

ID id_end_document
static

Definition at line 12 of file psych_parser.c.

Referenced by Init_psych_parser(), and protected_end_document().

ID id_end_mapping
static

Definition at line 18 of file psych_parser.c.

Referenced by Init_psych_parser(), and protected_end_mapping().

ID id_end_sequence
static

Definition at line 16 of file psych_parser.c.

Referenced by Init_psych_parser(), and protected_end_sequence().

ID id_end_stream
static

Definition at line 10 of file psych_parser.c.

Referenced by Init_psych_parser(), and protected_end_stream().

ID id_path
static

Definition at line 7 of file psych_parser.c.

Referenced by Init_psych_parser(), and parse().

ID id_read
static

Definition at line 6 of file psych_parser.c.

Referenced by Init_psych_parser(), io_reader(), and parse().

ID id_scalar
static

Definition at line 14 of file psych_parser.c.

Referenced by Init_psych_parser(), and protected_scalar().

ID id_start_document
static

Definition at line 11 of file psych_parser.c.

Referenced by Init_psych_parser(), and protected_start_document().

ID id_start_mapping
static

Definition at line 17 of file psych_parser.c.

Referenced by Init_psych_parser(), and protected_start_mapping().

ID id_start_sequence
static

Definition at line 15 of file psych_parser.c.

Referenced by Init_psych_parser(), and protected_start_sequence().

ID id_start_stream
static

Definition at line 9 of file psych_parser.c.

Referenced by Init_psych_parser(), and protected_start_stream().