package rfsm

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Parameters

module HS : Syntax.SYNTAX
module HT : Typing.TYPING with module HostSyntax = HS
module GV : Guest.VALUE with type typ = HS.typ
module GS : Guest.STATIC with type expr = HS.expr and type value = GV.t

Signature

module Syntax = HS
module Typing = HT
module Value = GV
type fsm = {
  1. name : Ident.t;
  2. model : Syntax.model;
    (*

    Normalized, type-refined model

    *)
  3. q : Ident.t;
  4. vars : Value.t Env.t;
}

FSM instances

type ctx_comp = {
  1. ct_typ : Syntax.typ;
  2. ct_stim : Syntax.stimulus_desc option;
    (*

    For inputs only

    *)
  3. ct_rds : Ident.t list;
    (*

    Readers, for inputs and shareds

    *)
  4. ct_wrs : Ident.t list;
    (*

    Writers, for outputs and shareds

    *)
}
type ctx = {
  1. inputs : (Ident.t * ctx_comp) list;
  2. outputs : (Ident.t * ctx_comp) list;
  3. shared : (Ident.t * ctx_comp) list;
}
type t = {
  1. ctx : ctx;
  2. models : Syntax.model list;
    (*

    Original, un-type-refined and un-normalized models. Not used any longer

    *)
  3. fsms : fsm list;
  4. globals : Value.t Env.t;
    (*

    Functions and constants

    *)
  5. fns : Syntax.fun_decl list;
    (*

    Functions

    *)
  6. csts : Syntax.cst_decl list;
    (*

    Constants

    *)
  7. types : Syntax.Guest.type_decl list;
    (*

    User-defined types

    *)
  8. dep_order : (Ident.t * int) list;
}
val pp : verbose_level:int -> Stdlib.Format.formatter -> t -> unit
val pp_fsm : verbose_level:int -> Stdlib.Format.formatter -> fsm -> unit
val is_rtl : fsm -> bool