Module Sysm

module Sysm: sig .. end

System description as a composition of FSM instances and global objects


module DepG: Graph.Sig.IM  with type V.label = string and type E.label = string
type t = {
   m_name : string;
   m_fsms : Fsm.inst list;
   m_inputs : (string * global) list;
   m_outputs : (string * global) list;
   m_types : (string * Types.typ) list;
   m_fns : (string * global) list;
   m_consts : (string * global) list;
   m_shared : (string * global) list;
   m_deps : dependencies; (*

dependency graph

*)
}
type global = Types.typ * mg_desc 
type mg_desc = 
| MInp of Global.stim_desc * string list (*

stimuli desc, reader(s)

*)
| MOutp of string list (*

writer(s)

*)
| MFun of string list * Expr.t (*

args, body

*)
| MConst of Expr.value (*

value

*)
| MShared of string list * string list (*

writer(s), reader(s)

*)
type dependencies = {
   md_graph : DepG.t;
   md_node : string -> DepG.V.t;
}

Exceptions

exception Illegal_const_expr of Expr.t

Builders

val build : name:string ->
?gtyps:(string * Types.typ) list ->
?gfns:(string * global) list ->
?gcsts:(string * global) list -> Fsm.inst list -> t

build name gtyps gfns gcsts fsms builds a system description from a list of global types, function and constant declarations and FSM instances

Printers

val dot_output : string ->
?dot_options:Utils.Dot.graph_style list ->
?fsm_options:Fsm.dot_options list ->
?with_insts:bool -> ?with_models:bool -> t -> string list

dot_output dir m writes a DOT representation of system m in directory dir and returns a list of the written files

val dump : Pervasives.out_channel -> t -> unit