Yaml.StreamLow-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 ... endPosition information for an event
module Event : sig ... endDefinition 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.resultparser () 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 -> stringval sequence_start :
?anchor:string ->
?tag:string ->
?implicit:bool ->
?style:layout_style ->
emitter ->
unit resval mapping_start :
?anchor:string ->
?tag:string ->
?implicit:bool ->
?style:layout_style ->
emitter ->
unit resval emitter_written : emitter -> int