123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170(* Copyright (c) 2017 Anil Madhavapeddy <anil@recoil.org>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *)moduleT=Yaml_types.MmoduleM(F:Ctypes.FOREIGN)=structletforeign=F.foreignmoduleC=structincludeCtypeslet(@->)=F.(@->)letreturning=F.returningendletversion=foreign"yaml_get_version_string"C.(void@->returningstring)letget_version=foreign"yaml_get_version"C.(ptrint@->ptrint@->ptrint@->returningvoid)lettoken_delete=foreign"yaml_token_delete"C.(ptrT.Token.t@->returningvoid)letparser_init=foreign"yaml_parser_initialize"C.(ptrT.Parser.t@->returningint)letparser_delete=foreign"yaml_parser_delete"C.(ptrT.Parser.t@->returningvoid)letparser_set_input_string=foreign"yaml_parser_set_input_string"C.(ptrT.Parser.t@->ptrchar@->size_t@->returningvoid)letparser_parse=foreign"yaml_parser_parse"C.(ptrT.Parser.t@->ptrT.Event.t@->returningint)letemitter_init=foreign"yaml_emitter_initialize"C.(ptrT.Emitter.t@->returningint)letemitter_delete=foreign"yaml_emitter_delete"C.(ptrT.Emitter.t@->returningvoid)letemitter_set_output_string=foreign"yaml_emitter_set_output_string"C.(ptrT.Emitter.t@->ptrchar@->size_t@->ptrsize_t@->returningvoid)(* TODO static funptr
let write_handler = C.(ptr void @-> ptr uchar @-> size_t @-> returning int)
let emitter_set_output =
foreign "yaml_emitter_set_output" C.(ptr T.Emitter.t @-> (static_funptr write_handler) @-> ptr void @-> returning void)
*)letemitter_set_encoding=foreign"yaml_emitter_set_encoding"C.(ptrT.Emitter.t@->T.encoding_t@->returningvoid)letemitter_set_canonical=foreign"yaml_emitter_set_canonical"C.(ptrT.Emitter.t@->bool@->returningvoid)letemitter_set_indent=foreign"yaml_emitter_set_indent"C.(ptrT.Emitter.t@->int@->returningvoid)letemitter_set_width=foreign"yaml_emitter_set_width"C.(ptrT.Emitter.t@->int@->returningvoid)letemitter_set_unicode=foreign"yaml_emitter_set_unicode"C.(ptrT.Emitter.t@->bool@->returningvoid)letemitter_flush=foreign"yaml_emitter_flush"C.(ptrT.Emitter.t@->returningint)(* TODO bind break_t
let emitter_set_break =
foreign "yaml_emitter_set_break" C.(ptr T.Emitter.t @-> T.break_t @-> returning void)
*)letemitter_emit=foreign"yaml_emitter_emit"C.(ptrT.Emitter.t@->ptrT.Event.t@->returningint)letstream_start_event_init=foreign"yaml_stream_start_event_initialize"C.(ptrT.Event.t@->T.encoding_t@->returningint)letstream_end_event_init=foreign"yaml_stream_end_event_initialize"C.(ptrT.Event.t@->returningint)letdocument_start_event_init=foreign"yaml_document_start_event_initialize"C.(ptrT.Event.t@->ptrT.Version_directive.t@->ptrT.Tag_directive.t@->ptrT.Tag_directive.t@->bool@->returningint)letdocument_end_event_init=foreign"yaml_document_end_event_initialize"C.(ptrT.Event.t@->bool@->returningint)letalias_event_init=foreign"yaml_alias_event_initialize"C.(ptrT.Event.t@->string@->returningint)letscalar_event_init=foreign"yaml_scalar_event_initialize"C.(ptrT.Event.t@->string_opt@->string_opt@->string@->int@->bool@->bool@->T.scalar_style_t@->returningint)letsequence_start_event_init=foreign"yaml_sequence_start_event_initialize"C.(ptrT.Event.t@->string_opt@->string_opt@->bool@->T.sequence_style_t@->returningint)letsequence_end_event_init=foreign"yaml_sequence_end_event_initialize"C.(ptrT.Event.t@->returningint)letmapping_start_event_init=foreign"yaml_mapping_start_event_initialize"C.(ptrT.Event.t@->string_opt@->string_opt@->bool@->T.mapping_style_t@->returningint)letmapping_end_event_init=foreign"yaml_mapping_end_event_initialize"C.(ptrT.Event.t@->returningint)end