package lutin

  1. Overview
  2. Docs

COMPILATION/EXPANSION : expressions de traces

------------------------------------------------------------

Représentation des expressions de traces

Comme son nom l'indique, sert exclusivement à représenter les expressions de traces~! Le "cast" des CoAlgExp.t booléennes en trace est explicite.

N.B. les exceptions sont entièrement "résolue" à

----------------------------------------------------------

type escope = (CoIdent.t * CoAlgExp.t option) list

On exporte la structure du type

val new_escope : unit -> escope
val add_escope : escope -> (CoIdent.t * CoAlgExp.t option) -> escope
type src_info = CoIdent.scope_stack
type 't t =
  1. | TE_eps
  2. | TE_ref of CoIdent.t
  3. | TE_constraint of CoAlgExp.t * src_info
  4. | TE_fby of 't t * 't t
  5. | TE_prio of 't t list
  6. | TE_para of 't t list
  7. | TE_choice of ('t t * CoAlgExp.t option) list
  8. | TE_dyn_choice of int * (int * 't t) list
  9. | TE_noeps of 't t
  10. | TE_loop of 't t
  11. | TE_omega of 't t
  12. | TE_loopi of int * CoAlgExp.t * CoAlgExp.t * 't t * src_info
  13. | TE_loopa of int * CoAlgExp.t * CoAlgExp.t option * 't t * src_info
  14. | TE_dyn_loop of int -> int * int * int * 't t
  15. | TE_assert of CoAlgExp.t * 't t * src_info
  16. | TE_strong_assert of CoAlgExp.t * 't t * src_info
  17. | TE_exist of escope * 't t
  18. | TE_raise of string
  19. | TE_try of 't t * 't t option
  20. | TE_catch of string * 't t * 't t option
  21. | TE_erun of string * escope * CoAlgExp.t list * 't t
  22. | TE_dyn_erun of string * Reactive.prg * CoIdent.t list * CoAlgExp.t list * 't t
  23. | TE_dyn_erun_ldbg of string * 't Reactive.prg_ldbg * CoIdent.t list * CoAlgExp.t list * 't t
  24. | TE_run of string * CoAlgExp.t * escope * CoAlgExp.t list * 't t * src_info
  25. | TE_dyn_run of string * Reactive.prg * CoAlgExp.t * escope * CoAlgExp.t list * 't t * src_info
  26. | TE_dyn_run_ldbg of string * 't Reactive.prg_ldbg * CoAlgExp.t * escope * CoAlgExp.t list * 't t * src_info
val reset : unit -> unit

Réinitialisation du module pour les compteurs de loop (au cas où) ?

val nb_loops : unit -> int

Batterie de créateurs

val of_erun : string -> escope -> CoAlgExp.t list -> 't t -> 't t
val of_run : string -> CoAlgExp.t -> escope -> CoAlgExp.t list -> 't t -> src_info -> 't t
val of_constraint : CoAlgExp.t -> src_info -> 't t
val of_ref : CoIdent.t -> 't t
val of_loop : 't t -> 't t
val of_omega : 't t -> 't t
val of_loope : CoAlgExp.t -> 't t -> src_info -> 't t
val of_loopi : CoAlgExp.t -> CoAlgExp.t -> 't t -> src_info -> 't t
val of_loopa : CoAlgExp.t -> CoAlgExp.t option -> 't t -> src_info -> 't t
val of_fby : 't t -> 't t -> 't t
val of_prio : 't t list -> 't t
val of_para : 't t list -> 't t
val of_choice : ('t t * CoAlgExp.t option) list -> 't t
val of_assert : CoAlgExp.t -> 't t -> src_info -> 't t
val of_strong_assert : CoAlgExp.t -> 't t -> src_info -> 't t
val of_exist : escope -> 't t -> 't t
val of_raise : string -> 't t
val of_catch : string -> 't t -> 't t option -> 't t
val of_try : 't t -> 't t option -> 't t
val dump : 't t -> unit

Pretty print

val dumps : 't t -> string
OCaml

Innovation. Community. Security.