Parser and Parser Combinators

Errors

Sourceexception Cannot_parse of Json_query.path * exn

An error happened during parsing. May box one of the following exceptions, among others..

Sourceexception Unexpected of string * string

An unexpected kind of JSON value was encountered.

Sourceexception Bad_reference of string

A reference literal could not be understood.

Sourceval unexpected : [< `A of 'a list | `Bool of 'b | `Float of 'c | `Null | `O of 'd list | `String of string ] -> string -> exn
Sourceval at_path : Json_query.path_item list -> exn -> exn
Sourceval at_field : string -> exn -> exn
Sourceval at_index : int -> exn -> exn
Sourceval raise_no_fragment : Restapis_o.Open__.Uri.t -> 'a
Sourceval raise_no_bundling_id : Restapis_o.Open__.Uri.t -> string -> 'a
Sourcemodule MakeCombinator (Repr : Json_repr.Repr) : sig ... end
include DkCoder_Std.SCRIPT
Sourceval __init : DkCoder_Std.Context.t -> unit

__init context is the entry point for running a script module. The DkCoder compiler will inject this function at the top and bottom of the script module. The top __init does nothing, while the bottom __init calls the prior __init.

That means:

  1. calling the __init function guarantees that the script module is initialized; that is, all of the script module's side-effects (ex. let () = Format.printf "Hello world@.") are executed before the __init returns to the caller.
  2. you can override the __init function by simply defining the __init idempotently. That will shadow the top __init and when the bottom __init is executed your __init will be called instead of the do-nothing top __init.

Future versions of DkCoder will call __init in dependency order for all `You script modules. Your __init function may be called several times.

Sourceval __repl : DkCoder_Std.Context.t -> unit

__repl context is the entry point for debugging a script module in a REPL. The DkCoder compiler will inject this function at the top and bottom of the script module. The top __repl does nothing, while the bottom __repl calls the prior __repl.

That means:

  1. you can override the __repl function by simply defining the __repl idempotently. That will shadow the top __repl and when the bottom __repl is executed your __repl will be called instead of the do-nothing top __repl.
Sourceval __module_info : unit -> DkCoder_Std.ModuleInfo.t

The run-time module information for the script module.