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

Definition at line 20 of file parser.c.

Referenced by parse().

## Function Documentation

static VALUE allocate | ( | VALUE | klass | ) |

static

Definition at line 52 of file parser.c.

References Data_Wrap_Struct, dealloc(), and xmalloc.

Referenced by Init_psych_parser().

static void dealloc | ( | void * | ptr | ) |

static

Definition at line 43 of file parser.c.

References xfree().

Referenced by allocate().

void Init_psych_parser | ( |  | ) |

Definition at line 538 of file parser.c.

References allocate(), cPsychParser, ePsychSyntaxError, id_alias, id_empty, id_end_document, id_end_mapping, id_end_sequence, id_end_stream, id_path, id_read, id_scalar, id_start_document, id_start_mapping, id_start_sequence, id_start_stream, INT2NUM(), mark(), mPsych, parse(), rb_cObject, rb_define_alloc_func(), rb_define_class_under(), rb_define_const(), rb_define_method(), rb_define_module(), rb_eSyntaxError, rb_intern, and rb_require().

Referenced by Init_psych().

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

static

Definition at line 27 of file 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

Definition at line 62 of file parser.c.

References ePsychSyntaxError, INT2NUM(), Qnil, rb_funcall(), rb_intern, and rb_usascii_str_new2().

Referenced by parse().

static VALUE mark | ( | VALUE | self | ) |

static

Definition at line 523 of file parser.c.

References args, cPsychParser, Data_Get_Struct, INT2NUM(), rb_class_new_instance(), rb_const_get_at(), and rb_intern.

Referenced by Init_psych_parser(), syck_emit_1quoted(), syck_emit_2quoted(), syck_emit_folded(), and syck_emit_literal().

static VALUE parse | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | self
| ) |  |

static

Definition at line 229 of file parser.c.

References alias, args, Data_Get_Struct, id_path, id_read, INT2NUM(), io_reader(), make_exception(), OBJ_TAINT, OBJ_TAINTED, 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, StringValue, and version().

Referenced by Init_psych_parser().

static VALUE protected_alias | ( | VALUE | pointer | ) |

static

Definition at line 176 of file 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 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 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 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 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 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 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 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 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 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 parser.c.

References args, id_start_stream, and rb_funcall().

Referenced by parse().

## Variable Documentation

VALUE cPsychParser

Definition at line 3 of file parser.c.

Referenced by Init_psych_parser(), and mark().

VALUE ePsychSyntaxError

Definition at line 4 of file parser.c.

Referenced by Init_psych_parser(), and make_exception().

ID id_alias

static

Definition at line 13 of file parser.c.

Referenced by Init_psych_parser(), and protected_alias().

ID id_empty

static

Definition at line 8 of file parser.c.

Referenced by Init_psych_parser(), and protected_empty().

ID id_end_document

static

Definition at line 12 of file parser.c.

Referenced by Init_psych_parser(), and protected_end_document().

ID id_end_mapping

static

Definition at line 18 of file parser.c.

Referenced by Init_psych_parser(), and protected_end_mapping().

ID id_end_sequence

static

Definition at line 16 of file parser.c.

Referenced by Init_psych_parser(), and protected_end_sequence().

ID id_end_stream

static

Definition at line 10 of file parser.c.

Referenced by Init_psych_parser(), and protected_end_stream().

ID id_path

static

Definition at line 7 of file parser.c.

Referenced by Init_psych_parser(), and parse().

ID id_read

static

Definition at line 6 of file parser.c.

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

ID id_scalar

static

Definition at line 14 of file parser.c.

Referenced by Init_psych_parser(), and protected_scalar().

ID id_start_document

static

Definition at line 11 of file parser.c.

Referenced by Init_psych_parser(), and protected_start_document().

ID id_start_mapping

static

Definition at line 17 of file parser.c.

Referenced by Init_psych_parser(), and protected_start_mapping().

ID id_start_sequence

static

Definition at line 15 of file parser.c.

Referenced by Init_psych_parser(), and protected_start_sequence().

ID id_start_stream

static

Definition at line 9 of file parser.c.

Referenced by Init_psych_parser(), and protected_start_stream().