module Json:sig
..end
type'a
reader =Yojson.Safe.lexer_state -> Lexing.lexbuf -> 'a
read_
function as produced by atdgen -json
.
In versions of yojson greater than 1.0.1,
type Yojson.Safe.lexer_state
is equivalent to
Yojson.lexer_state
, Yojson.Basic.lexer_state
and
Yojson.Raw.lexer_state
.
type'a
writer =Bi_outbuf.t -> 'a -> unit
write_
function as produced by atdgen -json
.val from_lexbuf : ?stream:bool ->
'a reader -> Yojson.Safe.lexer_state -> Lexing.lexbuf -> 'a
stream
: if true
, the JSON parser will not try
to consume whitespace until the end of file.
Default is false
, which raises a Yojson.Json_error
exception if the valid JSON value is followed
by anything other than standard JSON whitespace.val from_string : ?buf:Bi_outbuf.t ->
?fname:string -> ?lnum:int -> 'a reader -> string -> 'a
buf
: buffer used to accumulate string data
during the lexing phase.fname
: input file name to be used in error messages.
It does not have to be the name of a real file,
it can be something like "<stdin>"
.lnum
: line number to assign to the first line of input.
For example lnum=10
means that an error on the first
line of input will be reported as an error on line 10.
Default: 1.val from_channel : ?buf:Bi_outbuf.t ->
?fname:string ->
?lnum:int -> 'a reader -> Pervasives.in_channel -> 'a
buf
: buffer used to accumulate string data
during the lexing phase.fname
: input file name to be used in error messages.
It does not have to be the name of a real file,
it can be something like "<stdin>"
.lnum
: line number to assign to the first line of input.
For example lnum=10
means that an error on the first
line of input will be reported as an error on line 10.
Default: 1.val from_file : ?buf:Bi_outbuf.t ->
?fname:string -> ?lnum:int -> 'a reader -> string -> 'a
buf
: buffer used to accumulate string data
during the lexing phase.fname
: input file name to be used in error messages.
It is intended to represent the source file
if it is different from the input file.lnum
: line number to assign to the first line of input.
For example lnum=10
means that an error on the first
line of input will be reported as an error on line 10.
Default: 1.val stream_from_lexbuf : ?fin:(unit -> unit) ->
'a reader ->
Yojson.Safe.lexer_state -> Lexing.lexbuf -> 'a Stream.t
fin
: finalization function executed once when the end of the
stream is reached either because there is no more
input or because of an exception. This is typically
used to close the input channel, e.g.
fun () -> close_in_noerr ic
.val stream_from_string : ?buf:Bi_outbuf.t ->
?fin:(unit -> unit) ->
?fname:string -> ?lnum:int -> 'a reader -> string -> 'a Stream.t
buf
: buffer used to accumulate string data
during the lexing phase.fin
: finalization function executed once when the end of the
stream is reached either because there is no more
input or because of an exception. This is typically
used to free the underlying resources, if any.fname
: input file name to be used in error messages.
It does not have to be the name of a real file,
it can be something like "<stdin>"
.lnum
: line number to assign to the first line of input.
For example lnum=10
means that an error on the first
line of input will be reported as an error on line 10.
Default: 1.val stream_from_channel : ?buf:Bi_outbuf.t ->
?fin:(unit -> unit) ->
?fname:string ->
?lnum:int -> 'a reader -> Pervasives.in_channel -> 'a Stream.t
buf
: buffer used to accumulate string data
during the lexing phase.fin
: finalization function executed once when the end of the
stream is reached either because there is no more
input or because of an exception. This is typically
used to close the input channel, e.g.
fun () -> close_in_noerr ic
.fname
: input file name to be used in error messages.
It does not have to be the name of a real file,
it can be something like "<stdin>"
.lnum
: line number to assign to the first line of input.
For example lnum=10
means that an error on the first
line of input will be reported as an error on line 10.
Default: 1.val stream_from_file : ?buf:Bi_outbuf.t ->
?fin:(unit -> unit) ->
?fname:string -> ?lnum:int -> 'a reader -> string -> 'a Stream.t
buf
: buffer used to accumulate string data
during the lexing phase.fin
: finalization function executed once when the end of the
stream is reached either because there is no more
input or because of an exception. This can be used
to remove the input file if it was temporary, e.g.
fun () -> Sys.remove fname
.fname
: input file name to be used in error messages.
It is intended to represent the source file
if it is different from the input file.lnum
: line number to assign to the first line of input.
For example lnum=10
means that an error on the first
line of input will be reported as an error on line 10.
Default: 1.val list_from_string : ?buf:Bi_outbuf.t ->
?fin:(unit -> unit) ->
?fname:string -> ?lnum:int -> 'a reader -> string -> 'a list
buf
: buffer used to accumulate string data
during the lexing phase.fin
: finalization function executed once when the end of the
stream is reached either because there is no more
input or because of an exception. This is typically
used to free the underlying resources, if any.fname
: input file name to be used in error messages.
It does not have to be the name of a real file,
it can be something like "<stdin>"
.lnum
: line number to assign to the first line of input.
For example lnum=10
means that an error on the first
line of input will be reported as an error on line 10.
Default: 1.val list_from_channel : ?buf:Bi_outbuf.t ->
?fin:(unit -> unit) ->
?fname:string ->
?lnum:int -> 'a reader -> Pervasives.in_channel -> 'a list
buf
: buffer used to accumulate string data
during the lexing phase.fin
: finalization function executed once when the end of the
stream is reached either because there is no more
input or because of an exception. This is typically
used to close the input channel, e.g.
fun () -> close_in_noerr ic
.fname
: input file name to be used in error messages.
It does not have to be the name of a real file,
it can be something like "<stdin>"
.lnum
: line number to assign to the first line of input.
For example lnum=10
means that an error on the first
line of input will be reported as an error on line 10.
Default: 1.val list_from_file : ?buf:Bi_outbuf.t ->
?fname:string -> ?lnum:int -> 'a reader -> string -> 'a list
buf
: buffer used to accumulate string data
during the lexing phase.fname
: input file name to be used in error messages.
It is intended to represent the source file
if it is different from the input file.lnum
: line number to assign to the first line of input.
For example lnum=10
means that an error on the first
line of input will be reported as an error on line 10.
Default: 1.val to_string : ?len:int -> 'a writer -> 'a -> string
len
: output buffer length.val to_channel : ?len:int -> 'a writer -> Pervasives.out_channel -> 'a -> unit
len
: output buffer length.val to_file : ?len:int -> 'a writer -> string -> 'a -> unit
len
: output buffer length.val stream_to_string : ?len:int -> ?lf:string -> 'a writer -> 'a Stream.t -> string
len
: output buffer length.lf
: additional element terminator. Default: "\n"
.val stream_to_channel : ?len:int ->
?lf:string ->
'a writer -> Pervasives.out_channel -> 'a Stream.t -> unit
len
: output buffer length.lf
: additional element terminator. Default: "\n"
.val stream_to_file : ?len:int ->
?lf:string -> 'a writer -> string -> 'a Stream.t -> unit
len
: output buffer length.lf
: additional element terminator. Default: "\n"
.val list_to_string : ?len:int -> ?lf:string -> 'a writer -> 'a list -> string
len
: output buffer length.lf
: additional element terminator. Default: "\n"
.val list_to_channel : ?len:int ->
?lf:string ->
'a writer -> Pervasives.out_channel -> 'a list -> unit
len
: output buffer length.lf
: additional element terminator. Default: "\n"
.val list_to_file : ?len:int -> ?lf:string -> 'a writer -> string -> 'a list -> unit
len
: output buffer length.lf
: additional element terminator. Default: "\n"
.val preset_unknown_field_handler : string -> string -> unit
preset_unknown_field_handler src_loc field_name
raises a Failure
exception with a message containing
the location of the type definition in the source ATD file
(src_loc
) and the name of the field (field_name
).val unknown_field_handler : (string -> string -> unit) Pervasives.ref
preset_unknown_field_handler
which raises a Failure
exception.
Usage: !Ag_util.Json.unknown_field_handler src_loc field_name
where src_loc
is the location of the type definition
in the source ATD file and field_name
is the unknown
JSON field name.