package mopsa
MOPSA: A Modular and Open Platform for Static Analysis using Abstract Interpretation
Install
dune-project
Dependency
Authors
Maintainers
Sources
mopsa-analyzer-v1.2.tar.gz
md5=37966e98ffeebcedc09bd6e9b2b81f69
sha512=40d4d826c25f680766c07eccbabdf5e8a4fa023016e8a164e4e4f6b3781c8484dc4df437055721dfd19b9db8fb7fe3b61236c4833186d346fc7204a68d01eaaa
doc/mopsa.mopsa_analyzer/Mopsa_analyzer/Framework/Combiners/Common/index.html
Module Combiners.Common
Common utility definitions used by combiners
type Core.All.id +=
| C_empty : unit Core.All.id
| C_pair : combiner * 'a Core.All.id * 'b Core.All.id -> ('a * 'b) Core.All.id
GADT identifiers used by domain combiners
GADT identifiers used by value combiners
val sat_targets :
targets:Core.Route.DomainSet.t option ->
domains:Core.Route.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.Route.DomainSet.t -> unit
val cascade_call :
Core.Route.DomainSet.t option ->
(Core.Route.DomainSet.t option ->
'a ->
('b, 'c) Core.All.man ->
'b Core.Flow.flow ->
('b, 'd) Core.Cases.cases option) ->
Core.Route.DomainSet.t ->
(Core.Route.DomainSet.t option ->
'a ->
('b, 'e) Core.All.man ->
'b Core.Flow.flow ->
('b, 'd) Core.Cases.cases option) ->
Core.Route.DomainSet.t ->
'a ->
('b, 'c * 'e) Core.All.man ->
'b Core.Flow.flow ->
('b, 'd) Core.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.Route.DomainSet.t option ->
(Core.Route.DomainSet.t option ->
'a ->
('b, 'c) Core.All.man ->
'b Core.Flow.flow ->
('b, 'd) Core.Cases.cases option) ->
Core.Route.DomainSet.t ->
(Core.Route.DomainSet.t option ->
'a ->
('b, 'c) Core.All.man ->
'b Core.Flow.flow ->
('b, 'd) Core.Cases.cases option) ->
Core.Route.DomainSet.t ->
'a ->
('b, 'c) Core.All.man ->
'b Core.Flow.flow ->
('b, 'd) Core.Cases.cases option
val broadcast_call :
Core.Route.DomainSet.t option ->
(Core.Route.DomainSet.t option ->
'a ->
('b, 'c) Core.All.man ->
'd ->
('e, 'f) Core.Cases.cases option) ->
Core.Route.DomainSet.t ->
(Core.Route.DomainSet.t option ->
'a ->
('b, 'g) Core.All.man ->
'd ->
('e, 'f) Core.Cases.cases option) ->
Core.Route.DomainSet.t ->
'a ->
('b, 'c * 'g) Core.All.man ->
'd ->
('e, 'f) Core.Cases.cases option
val broadcast_stateless_call :
Core.Route.DomainSet.t option ->
(Core.Route.DomainSet.t option ->
'a ->
'b ->
'c ->
('d, 'e) Core.Cases.cases option) ->
Core.Route.DomainSet.t ->
(Core.Route.DomainSet.t option ->
'a ->
'b ->
'c ->
('d, 'e) Core.Cases.cases option) ->
Core.Route.DomainSet.t ->
'a ->
'b ->
'c ->
('d, 'e) Core.Cases.cases option
val broadcast_init :
('a ->
('b, 'c) Core.All.man ->
'd Core.Flow.flow ->
'd Core.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
val broadcast_stateless_init :
('a -> 'b -> 'c Core.Flow.flow -> 'c Core.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
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>