package orsetto
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha512=e260412b2dd0f98cfe3dc7ed5c31a694eb31c93cd207c51fa12675b790234ee0ad3bf07d9be17a4dc266fedfe55b14c967cad7bc0c9414063eef8afd59f3d0d1
doc/orsetto.json/Json_scan/Chain/index.html
Module Json_scan.Chain
The chain scanner module.
type chain = private | Chain : {separator : unit t;header : Cf_chain_scan.ctrl;trailer : Cf_chain_scan.ctrl;fail : (mark -> 'x) option;
} -> chain
The type of a chain discipline.
val mk :
?xf:(mark -> 'x) ->
?a:[< Cf_chain_scan.ctrl ] ->
?b:[< Cf_chain_scan.ctrl ] ->
'r t ->
chainUse mk separator to make a chain discipline with separator to scan for delimiters. Use ~a and/or ~b to control how leading/trailing delimiters are processed (respectively). For example, use ~b:`Opt to specify that a trailing delimiter is optionally permitted.
val sep : ?xf:(mark -> 'x) -> [< Cf_chain_scan.ctrl ] -> 'r -> 'r t -> 'r tUse sep c r p to make a parser for separator p with optionality control c.
If c is `Non then no input is consumed and r is returned.
If c is `Opt then returns either the value recognized by p, or r if no value is recognized.
If c is `Req then acts as reqf ?xf p.
val sep0 : ?xf:(mark -> 'x) -> [< Cf_chain_scan.ctrl ] -> unit t -> bool tUse sep0 c p to make a parser for separator p with optionality control c, in the case that p returns the unit type.
If c is `Non then no input is consumed and false is returned.
If c is `Opt then returns a boolean value indicating whether p recognized a separator.
If c is `Req then acts as reqf ?xf p >>= fun () -> return true.
Use vis ~c ?a ?b f v to compose a parser that recognizes a sequence of symbols in the input stream, delimited according to the chain discipline ~c, by applying a visitor function f at each sequence point to obtain its parser. The first sequence point is visited with the initializer v.
If ~a is used, then it specifies the minimum number of elements in the sequence. If ~b is used then it specifies the maximum number of elements in the sequence. Composition raises Invalid_argument if a < 0 or b < a.
Use seq ?a ?b p to create a new parser that recognizes a sequence of symbols in the input stream with p, delimited according to the chain discipline ~c.
If ~a is used, then it specifies the minimum number of elements in the sequence. If ~b is used then it specifies the maximum number of elements in the sequence. Composition raises Invalid_argument if a < 0 or b < a.