Module Imandra_codegen

Code Generation for (de)serializers

This module provides serialization/deserialization for all types defined in logic mode.

module Serde_yojson : sig ... end
module Gen_pp : sig ... end
module Gen_json : sig ... end
module Gen_rand : sig ... end
module Gen_finite_type : sig ... end
type t
val make : unit -> t

Make a new code generator

  • parameter timestamp

    if true, prefix generated code with the current timestamp

  • parameter mod_name

    if provided, wrap generated code in a module

val plugins : t -> Imandra_surface.Event_def_plugin.set

Current set of plugins

val add_yojson : t -> unit

Add yojson plugin to the code generator

val add_pp : t -> unit

Add pretty-printing plugin to the code generator

val add_rand : t -> unit

Add random generation plugin to the code generator

val add_json : mod_name:string -> t -> unit

Add json plugin to the code generator

val add_event : t -> Imandra_surface.Event.DB.t -> Imandra_surface.Event.t -> Imandra_surface.Event.DB.t * Imandra_surface.Event_def_plugin.action list
val add_events : t -> Imandra_surface.Event.DB.t -> Imandra_surface.Event.t list -> Imandra_surface.Event.DB.t * Imandra_surface.Event_def_plugin.action list

Do code generation for the given events