Yaml.Stream
Low-level event streaming interface for parsing and emitting YAML files.
This module has a:
Stream.parser
, which takes an input stream of bytes and produces a sequence of parsing events.Stream.emitter
, which takes a sequence of events and produces a stream of bytes.The processes of parsing and presenting are inverse to each other. Any sequence of events produced by parsing a well-formed YAML document should be acceptable by the Emitter, which should produce an equivalent document. Similarly, any document produced by emitting a sequence of events should be acceptable for the Parser, which should produce an equivalent sequence of events.
module Mark : sig ... end
Position information for an event
module Event : sig ... end
Definition of an individual event during a processing stream
parser
tracks the state of generating Event.t
values.
val parser : string -> (parser, [> `Msg of string ]) Stdlib.result
parser ()
will allocate a fresh parser state.
do_parse parser
will generate the next parsing event from an initialised parser.
emitter
tracks the state of generating Event.t
values for YAML output.
emitter ?len ()
will allocate a new emitter state. Due to a temporary limitation in the implementation, len
decides how large the fixed size buffer that the output is written into is. In the future, len
will be redundant as the buffer will be dynamically allocated.
val emitter_buf : emitter -> string
val sequence_start :
?anchor:string ->
?tag:string ->
?implicit:bool ->
?style:layout_style ->
emitter ->
unit res
val mapping_start :
?anchor:string ->
?tag:string ->
?implicit:bool ->
?style:layout_style ->
emitter ->
unit res
val emitter_written : emitter -> int