package orsetto
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=f64814687276bad56483b2b8dfaaf70d0d6485f67fe5d44bff34bfa47af1896e
md5=3a15a377800cf988a310b4082406c685
doc/orsetto.cf/Cf_chain_scan/Create/index.html
Module Cf_chain_scan.Create
Use Create(B) to make a chain scanning module for B.
Parameters
Signature
type chain = private | Chain : {separator : unit B.Scan.t;header : ctrl;trailer : ctrl;fail : (B.Scan.mark -> 'x) option;
} -> chain
The type of a chain discipline.
val mk :
?xf:(B.Scan.mark -> 'x) ->
?a:[< ctrl ] ->
?b:[< ctrl ] ->
'r B.Scan.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:(B.Scan.mark -> 'x) ->
[< ctrl ] ->
'r ->
'r B.Scan.t ->
'r B.Scan.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:(B.Scan.mark -> 'x) ->
[< ctrl ] ->
unit B.Scan.t ->
bool B.Scan.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.