Module type
Class type

An interface to the api pass.

Api pass will apply a high level model of a program api to a low level representation, i.e., the program term.

The module is actually a static registry of language processors, that will be applied by the api pass.

The language processors are provide by plugins supporting corresponding languages. Sometimes an abi information is required to apply the api, so the processors are actually provided by even lower level modules, that supports specific architectures.

type filename = string
type api = string
module type S = sig ... end

Language processor interface.

type t = (module S)

language processor type

val process : t -> unit

apply the language processor

val processors : unit -> t list

enumerate all registered language processors