1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- (** This module is a meta-checker. It will take many checkers and aggregate
- their result together before providing an unified result.
- The modules required to be declared before being used, using the [build]
- method, and provided as an array :
- {[
- let _, e1 = build (module …)
- let _, e2 = build (module …)
-
- module Check = Make (struct
- let t = [| e1; e2 |]
- end)
- ]}
- *)
- module Id : sig
- type 'a typeid
- (** The type created on-the-fly. *)
- end
- type t
- (** Type of check to apply *)
- val build :
- (module S.Analyzer
- with type Expression.t = _
- and type Expression.t' = _
- and type Instruction.t = _
- and type Instruction.t' = _
- and type Location.t = 'a
- and type context = _) ->
- 'a Id.typeid * t
- (** Build a new check from a module following S.Analyzer signature.
- Return the result type which hold the final result value, and checker
- itself. *)
- val get_module : t -> (module S.Analyzer)
- type result
- val get : 'a Id.typeid -> result -> 'a option
- (** The method [get] can be used to get the internal value for one of the
- checker used.
- *)
- module Make (A : sig
- val t : t array
- end) : sig
- include S.Analyzer with type Location.t = result array
- end
- [@@warning "-67"]
|