package dolmen_loop

  1. Overview
  2. Docs

Module Dolmen_loop.CodeSource

Exit codes

Sourcetype t

An abstraction over exit status.

Concretely this corresponds to an exit/return code for the binary (in the case of the dolmen binary or solver-like binaries).

In practice, the exact error code corresponding to a value of this type can be set later. This is useful so that users of the library can decide the codes, and among other things, ensure that error codes are stable.

Sourceval hash : t -> int
Sourceval equal : t -> t -> bool
Sourceval compare : t -> t -> int

Usual functions

Manipulating error codes

Sourceval init : ?full:bool -> (t * int) list -> unit

Initialise all retcodes with the given association list. All codes that are not present in the list are assigned a arbitrary free return code. If ~full is true, and not all retcodes are present in the association list, then this function with raise a Failure _ exception.

Sourceval create : category:string -> descr:string -> t

Create a new exit code. The string given is used as a description for the exit code. The create code is active by default.

Sourceval descr : t -> int * string

Return the actual integer associated to the code,

Sourceval category : t -> string

Category (used mainly for report documentation).

Sourceval errors : unit -> t list

Return the list of all created error exit codes.

Special exit codes

Sourceval ok : t

The 0 exit code, signalling everything ran fine.

Sourceval bug : t

Unexpected errors. This uses retcode 125 since this is also what cmdliner uses. This code will not appear in the list returned by rrors.

Predefined exit codes

Sourceval generic : t

Generic exit code.

Sourceval limit : t
Sourceval parsing : t

Exit code for parsing errors.

Sourceval typing : t

Exit codes for typing errors.

Exit code status

Sourceval exit : t -> _

Exit with the given code (or abort if the exit code is marked as an abort code).

Sourceval is_abort : t -> bool

Whether an exit code is active.

Sourceval abort : t -> unit

Make the exit code abort instead of properly exiting.

Sourceval error : t -> unit

Make the exit code properly exit.