package yaml

  1. Overview
  2. Docs

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

Parsing functions

type parser

parser tracks the state of generating Event.t values.

val parser : string -> (parser, [> Rresult.R.msg ]) Result.result

parser () will allocate a fresh parser state.

val do_parse : parser -> (Event.t * Event.pos) res

do_parse parser will generate the next parsing event from an initialised parser.

Serialisation functions

type emitter
val emitter : ?len:int -> unit -> emitter res
val emitter_buf : emitter -> Bytes.t
val emit : emitter -> Event.t -> unit res
val document_start : ?implicit:bool -> emitter -> unit res
val document_end : ?implicit:bool -> emitter -> unit res
val scalar : ?plain_implicit:bool -> ?quoted_implicit:bool -> ?anchor:string -> ?tag:string -> ?style:scalar_style -> emitter -> string -> unit res
val alias : emitter -> string -> unit res
val stream_start : emitter -> encoding -> unit res
val stream_end : emitter -> unit res
val sequence_start : ?anchor:string -> ?tag:string -> ?implicit:bool -> ?style:layout_style -> emitter -> unit res
val sequence_end : emitter -> unit res
val mapping_start : ?anchor:string -> ?tag:string -> ?implicit:bool -> ?style:layout_style -> emitter -> unit res
val mapping_end : emitter -> unit res
val emitter_written : emitter -> int
val get_version : unit -> int * int * int

library_version () returns the major, minor and patch version of the underlying libYAML implementation.

OCaml

Innovation. Community. Security.