package mopsa

  1. Overview
  2. Docs
MOPSA: A Modular and Open Platform for Static Analysis using Abstract Interpretation

Install

Dune Dependency

Authors

Maintainers

Sources

mopsa-analyzer-v1.1.tar.gz
md5=fdee20e988343751de440b4f6b67c0f4
sha512=f5cbf1328785d3f5ce40155dada2d95e5de5cce4f084ea30cfb04d1ab10cc9403a26cfb3fa55d0f9da72244482130fdb89c286a9aed0d640bba46b7c00e09500

doc/combiners_common/Combiners_common/Common/index.html

Module Combiners_common.CommonSource

Common utility definitions used by combiners

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

Kinds of domain combiners

Sourcetype 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

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

GADT identifiers used by value combiners

Sourcetype Core.All.id +=
  1. | V_pair : 'a Core.All.id * 'b Core.All.id -> ('a * 'b) Core.All.id
Sourceval 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

Sourcetype Core.All.accessor +=
  1. | Ax_pair_left
  2. | Ax_pair_right
Sourceval fst_pair_man : ('a, 'b * 'c) Core.All.man -> ('a, 'b) Core.All.man

Manager of the left argument in a pair of domains

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

Manager of the right argument in a pair of domains

Sourceval 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

Sourceval 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

Sourceval pp_domains : Stdlib.Format.formatter -> Core.All.DomainSet.t -> unit
Sourceval 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.

Sourceval 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
Sourceval 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
Sourceval 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
Sourceval broadcast_init : ('a -> ('b, 'c) Core.All.man -> 'd Core.Flow.flow -> 'd Core.All.Post.post option) -> ('a -> ('b, 'e) Core.All.man -> 'd Core.Flow.flow -> ('d, unit) Core.Cases.cases option) -> 'a -> ('b, 'c * 'e) Core.All.man -> 'd Core.Flow.flow -> ('d, unit) Core.Cases.cases option
Sourceval broadcast_stateless_init : ('a -> 'b -> 'c Core.Flow.flow -> 'c Core.All.Post.post option) -> ('a -> 'b -> 'c Core.Flow.flow -> ('c, unit) Core.Cases.cases option) -> 'a -> 'b -> 'c Core.Flow.flow -> ('c, unit) Core.Cases.cases option
OCaml

Innovation. Community. Security.