Class: Bromlife::Parser

Inherits:
Object
  • Object
show all
Defined in:
ext/bromlife/rb_bromlife.c

Instance Method Summary collapse

Constructor Details

#initializeObject



61
62
63
64
65
66
67
68
69
# File 'ext/bromlife/rb_bromlife.c', line 61

static VALUE
rb_oml_parser_m_initialize (VALUE self)
{
  OmlParser *parser = oml_parser_create ();
  if (!parser)
    rb_raise (rb_eError, "failed to create OML parser");
  RTYPEDDATA_DATA (self) = parser;
  return RUBY_Qnil;
}

Instance Method Details

#feedObject



75
76
77
78
79
80
81
82
83
# File 'ext/bromlife/rb_bromlife.c', line 75

static VALUE
rb_oml_parser_m_feed (VALUE self, VALUE source)
{
  char *bytes = rb_string_value_ptr (&source);
  long len = RSTRING_LEN (source);
  if (!oml_parser_feed (RTYPEDDATA_DATA (self), (uint8_t *)bytes, len))
    rb_raise (rb_eError, "failed to feed to parser");
  return RUBY_Qnil;
}

#finishBromlife::NodeIter

Returns:



90
91
92
93
94
95
96
97
# File 'ext/bromlife/rb_bromlife.c', line 90

static VALUE
rb_oml_parser_m_finish (VALUE self)
{
  OmlNodeIter *iter = oml_parser_finish (RTYPEDDATA_DATA (self));
  if (!iter)
    rb_raise (rb_eError, "failed to finish parser");
  return TypedData_Wrap_Struct (rb_cNodeIter, &rb_oml_node_iter_type, iter);
}