int main(void) { int major = -1; int minor = -1; int patch = -1; char buf[64]; yaml_get_version(&major, &minor, &patch); sprintf(buf, "%d.%d.%d", major, minor, patch); assert(strcmp(buf, yaml_get_version_string()) == 0); /* Print structure sizes. */ printf("sizeof(token) = %d\n", sizeof(yaml_token_t)); printf("sizeof(event) = %d\n", sizeof(yaml_event_t)); printf("sizeof(parser) = %d\n", sizeof(yaml_parser_t)); return 0; }
void Init_libyaml() { id_plain = rb_intern("plain"); id_quote1 = rb_intern("quote1"); id_quote2 = rb_intern("quote2"); id_inline = rb_intern("inline"); id_fold = rb_intern("fold"); id_literal = rb_intern("literal"); sel_to_yaml = sel_registerName("to_yaml:"); sel_call = sel_registerName("call:"); sel_yaml_new = sel_registerName("yaml_new:"); rb_mYAML = rb_define_module("YAML"); rb_mLibYAML = rb_define_module_under(rb_mYAML, "LibYAML"); rb_define_const(rb_mLibYAML, "VERSION", rb_str_new2(yaml_get_version_string())); rb_cParser = rb_define_class_under(rb_mLibYAML, "Parser", rb_cObject); rb_objc_define_method(*(VALUE *)rb_cParser, "alloc", rb_yaml_parser_alloc, 0); rb_objc_define_method(rb_cParser, "initialize", rb_yaml_parser_initialize, -1); rb_objc_define_method(rb_cParser, "input", rb_yaml_parser_input, 0); rb_objc_define_method(rb_cParser, "input=", rb_yaml_parser_set_input, 1); // commented methods here are just unimplemented; i plan to put them in soon. //rb_objc_define_method(rb_cParser, "encoding", rb_yaml_parser_encoding, 0); //rb_objc_define_method(rb_cParser, "encoding=", rb_yaml_parser_set_encoding, 1); rb_objc_define_method(rb_cParser, "error", rb_yaml_parser_error, 0); rb_objc_define_method(rb_cParser, "load", rb_yaml_parser_load, 0); rb_objc_define_method(rb_cParser, "parse", rb_yaml_parser_parse, 0); rb_yaml_parser_finalize_super = rb_objc_install_method2((Class)rb_cParser, "finalize", (IMP)rb_yaml_parser_finalize); rb_cResolver = rb_define_class_under(rb_mLibYAML, "Resolver", rb_cObject); rb_objc_define_method(*(VALUE *)rb_cResolver, "alloc", rb_yaml_resolver_alloc, 0); rb_objc_define_method(rb_cResolver, "initialize", rb_yaml_resolver_initialize, 0); //rb_objc_define_method(rb_cResolver, "transfer", rb_yaml_resolver_transfer, 1); rb_objc_define_method(rb_cResolver, "add_type", rb_yaml_resolver_add_type, 2); //rb_objc_define_method(rb_cResolver, "add_domain_type", rb_yaml_resolver_add_domain_type, 2); //rb_objc_define_method(rb_cResolver, "add_ruby_type", rb_yaml_resolver_add_ruby_type, 1); //rb_objc_define_method(rb_cResolver, "add_builtin_type", rb_yaml_resolver_add_builtin_type, 1); //rb_objc_define_method(rb_cResolver, "add_private_type", rb_yaml_resolver_add_private_type, 1); rb_oDefaultResolver = rb_vm_call(rb_cResolver, sel_registerName("new"), 0, NULL); rb_define_const(rb_mLibYAML, "DEFAULT_RESOLVER", rb_oDefaultResolver); rb_cEmitter = rb_define_class_under(rb_mLibYAML, "Emitter", rb_cObject); rb_objc_define_method(*(VALUE *)rb_cEmitter, "alloc", rb_yaml_emitter_alloc, 0); rb_define_attr(rb_cEmitter, "output", 1, 1); rb_objc_define_method(rb_cEmitter, "initialize", rb_yaml_emitter_initialize, -1); rb_objc_define_method(rb_cEmitter, "output=", rb_yaml_emitter_set_output, 1); //rb_objc_define_method(rb_cEmitter, "dump", rb_yaml_emitter_dump, -1); rb_objc_define_method(rb_cEmitter, "stream", rb_yaml_emitter_stream, 0); rb_objc_define_method(rb_cEmitter, "document", rb_yaml_emitter_document, -1); rb_objc_define_method(rb_cEmitter, "seq", rb_yaml_emitter_sequence, 2); rb_objc_define_method(rb_cEmitter, "map", rb_yaml_emitter_mapping, 2); rb_objc_define_method(rb_cEmitter, "scalar", rb_yaml_emitter_scalar, 3); rb_objc_define_method(rb_cEmitter, "add", rb_yaml_emitter_add, -1); //rb_objc_define_method(rb_cEmitter, "error", rb_yaml_emitter_error, 0); //rb_objc_define_method(rb_cEmitter, "encoding", rb_yaml_emitter_encoding, 0); //rb_objc_define_method(rb_cEmitter, "encoding=", rb_yaml_emitter_set_encoding, 1); //rb_objc_define_method(rb_cEmitter, "indentation", rb_yaml_emitter_indent, 0); // TODO: fill in the rest of the accessors rb_yaml_emitter_finalize_super = rb_objc_install_method2((Class)rb_cEmitter, "finalize", (IMP)rb_yaml_emitter_finalize); rb_cYamlNode = rb_define_class_under(rb_mYAML, "YamlNode", rb_cObject); }