Ruby  2.1.10p492(2016-04-01revision54464)
Macros | Functions | Variables
psych_parser.c File Reference
#include <psych.h>

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

◆ PSYCH_TRANSCODE

#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)
VALUE rb_str_export_to_enc(VALUE, rb_encoding *)
Definition: string.c:755

Definition at line 20 of file psych_parser.c.

Referenced by parse().

Function Documentation

◆ allocate()

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

◆ dealloc()

static void dealloc ( void *  ptr)
static

Definition at line 43 of file psych_parser.c.

References xfree(), and yaml_parser_delete().

Referenced by allocate().

◆ Init_psych_parser()

void Init_psych_parser ( )

◆ io_reader()

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 buf, id_read, INT2NUM, NIL_P, rb_funcall(), RSTRING_LEN, size, and StringValuePtr.

Referenced by parse().

◆ make_exception()

static VALUE make_exception ( yaml_parser_t parser,
VALUE  path 
)
static

◆ mark()

static VALUE mark ( VALUE  self)
static

◆ parse()

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, argc, argv, 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().

◆ protected_alias()

static VALUE protected_alias ( VALUE  pointer)
static

Definition at line 176 of file psych_parser.c.

References id_alias, and rb_funcall().

Referenced by parse().

◆ protected_empty()

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

◆ protected_end_document()

static VALUE protected_end_document ( VALUE  pointer)
static

Definition at line 170 of file psych_parser.c.

References id_end_document, and rb_funcall().

Referenced by parse().

◆ protected_end_mapping()

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

◆ protected_end_sequence()

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

◆ protected_end_stream()

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

◆ protected_scalar()

static VALUE protected_scalar ( VALUE  pointer)
static

Definition at line 182 of file psych_parser.c.

References id_scalar, and rb_funcall3.

Referenced by parse().

◆ protected_start_document()

static VALUE protected_start_document ( VALUE  pointer)
static

Definition at line 164 of file psych_parser.c.

References id_start_document, and rb_funcall3.

Referenced by parse().

◆ protected_start_mapping()

static VALUE protected_start_mapping ( VALUE  pointer)
static

Definition at line 199 of file psych_parser.c.

References id_start_mapping, and rb_funcall3.

Referenced by parse().

◆ protected_start_sequence()

static VALUE protected_start_sequence ( VALUE  pointer)
static

Definition at line 188 of file psych_parser.c.

References id_start_sequence, and rb_funcall3.

Referenced by parse().

◆ protected_start_stream()

static VALUE protected_start_stream ( VALUE  pointer)
static

Definition at line 158 of file psych_parser.c.

References id_start_stream, and rb_funcall().

Referenced by parse().

◆ transcode_io()

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

◆ transcode_string()

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

Variable Documentation

◆ cPsychParser

VALUE cPsychParser

Definition at line 3 of file psych_parser.c.

Referenced by Init_psych_parser(), and mark().

◆ ePsychSyntaxError

VALUE ePsychSyntaxError

Definition at line 4 of file psych_parser.c.

Referenced by Init_psych_parser(), and make_exception().

◆ id_alias

ID id_alias
static

Definition at line 13 of file psych_parser.c.

Referenced by Init_psych_parser(), and protected_alias().

◆ id_empty

ID id_empty
static

Definition at line 8 of file psych_parser.c.

Referenced by Init_psych_parser(), and protected_empty().

◆ id_end_document

ID id_end_document
static

Definition at line 12 of file psych_parser.c.

Referenced by Init_psych_parser(), and protected_end_document().

◆ id_end_mapping

ID id_end_mapping
static

Definition at line 18 of file psych_parser.c.

Referenced by Init_psych_parser(), and protected_end_mapping().

◆ id_end_sequence

ID id_end_sequence
static

Definition at line 16 of file psych_parser.c.

Referenced by Init_psych_parser(), and protected_end_sequence().

◆ id_end_stream

ID id_end_stream
static

Definition at line 10 of file psych_parser.c.

Referenced by Init_psych_parser(), and protected_end_stream().

◆ id_path

ID id_path
static

Definition at line 7 of file psych_parser.c.

Referenced by Init_psych_parser(), and parse().

◆ id_read

ID id_read
static

Definition at line 6 of file psych_parser.c.

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

◆ id_scalar

ID id_scalar
static

Definition at line 14 of file psych_parser.c.

Referenced by Init_psych_parser(), and protected_scalar().

◆ id_start_document

ID id_start_document
static

Definition at line 11 of file psych_parser.c.

Referenced by Init_psych_parser(), and protected_start_document().

◆ id_start_mapping

ID id_start_mapping
static

Definition at line 17 of file psych_parser.c.

Referenced by Init_psych_parser(), and protected_start_mapping().

◆ id_start_sequence

ID id_start_sequence
static

Definition at line 15 of file psych_parser.c.

Referenced by Init_psych_parser(), and protected_start_sequence().

◆ id_start_stream

ID id_start_stream
static

Definition at line 9 of file psych_parser.c.

Referenced by Init_psych_parser(), and protected_start_stream().