package mopsa

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

Common utility definitions used by combiners

type combiner =
  1. | Sequence
  2. | Compose
  3. | Product

Kinds of domain combiners

type Core.All.id +=
  1. | C_empty : unit Core.All.id
  2. | C_pair : combiner * 'a Core.All.id * 'b Core.All.id -> ('a * 'b) Core.All.id

GADT identifiers used by domain combiners

type Core.All.id +=
  1. | V_empty : unit Core.All.id

GADT identifiers used by value combiners

type Core.All.id +=
  1. | V_pair : 'a Core.All.id * 'b Core.All.id -> ('a * 'b) Core.All.id
val sat_targets : targets:Core.All.DomainSet.t option -> domains:Core.All.DomainSet.t -> bool

sat_targets ~domains ~targets checks whether a combiner containing domains satisifies some route targets

val fst_pair_man : ('a, 'b * 'c) Core.All.man -> ('a, 'b) Core.All.man

Manager of the left argument in a pair of domains

val snd_pair_man : ('a, 'b * 'c) Core.All.man -> ('a, 'c) Core.All.man

Manager of the right argument in a pair of domains

val find_domain_man : 'b 'c. target:'b Core.All.id -> tree:'c Core.All.id -> ('a, 'c) Core.All.man -> ('a, 'b) Core.All.man

Find the manager of a domain given the manager of a combiner containing it

val mem_domain : 'b 'c. target:'b Core.All.id -> tree:'c Core.All.id -> bool

Check whether a domain is part of a combiner tree

val pp_domains : Format.formatter -> Core.All.DomainSet.t -> unit
val cascade_call : Core.All.DomainSet.t option -> (Core.All.DomainSet.t option -> 'a -> ('b, 'c) Core.All.man -> 'b Core.Flow.flow -> ('b, 'd) Core.All.Cases.cases option) -> Core.All.DomainSet.t -> (Core.All.DomainSet.t option -> 'a -> ('b, 'e) Core.All.man -> 'b Core.Flow.flow -> ('b, 'd) Core.All.Cases.cases option) -> Core.All.DomainSet.t -> 'a -> ('b, 'c * 'e) Core.All.man -> 'b Core.Flow.flow -> ('b, 'd) Core.All.Cases.cases option

Apply transfer functions f1 and f2 in cascade. Function f1 is called first. When f1 returns None or not-handled cases, f2 is called. Note that not-handled cases are joined in order to call f2 only once.

val cascade_stateless_call : Core.All.DomainSet.t option -> (Core.All.DomainSet.t option -> 'a -> ('b, 'c) Core.All.man -> 'b Core.Flow.flow -> ('b, 'd) Core.All.Cases.cases option) -> Core.All.DomainSet.t -> (Core.All.DomainSet.t option -> 'a -> ('b, 'c) Core.All.man -> 'b Core.Flow.flow -> ('b, 'd) Core.All.Cases.cases option) -> Core.All.DomainSet.t -> 'a -> ('b, 'c) Core.All.man -> 'b Core.Flow.flow -> ('b, 'd) Core.All.Cases.cases option
val broadcast_call : Core.All.DomainSet.t option -> (Core.All.DomainSet.t option -> 'a -> ('b, 'c) Core.All.man -> 'd -> ('e, 'f) Core.All.Cases.cases option) -> Core.All.DomainSet.t -> (Core.All.DomainSet.t option -> 'a -> ('b, 'g) Core.All.man -> 'd -> ('e, 'f) Core.All.Cases.cases option) -> Core.All.DomainSet.t -> 'a -> ('b, 'c * 'g) Core.All.man -> 'd -> ('e, 'f) Core.All.Cases.cases option
val broadcast_stateless_call : Core.All.DomainSet.t option -> (Core.All.DomainSet.t option -> 'a -> 'b -> 'c -> ('d, 'e) Core.All.Cases.cases option) -> Core.All.DomainSet.t -> (Core.All.DomainSet.t option -> 'a -> 'b -> 'c -> ('d, 'e) Core.All.Cases.cases option) -> Core.All.DomainSet.t -> 'a -> 'b -> 'c -> ('d, 'e) Core.All.Cases.cases option
OCaml

Innovation. Community. Security.