Module Coccilib.Ana

module Ana: sig .. end

external analysis integration. Note: do not use after transformations.


type result = Externalanalysis.result 

the type of analysis results: currently only integer ranges.

type bound = Externalanalysis.bound 
val show_bound : Externalanalysis.bound -> string

convert a bound to a string for showing.

val show_result : Externalanalysis.result -> string

convert a result value to a string for showing.

val load_results : string -> unit

loads some analysis results from the given file.

val find : Coccilib.pos -> Externalanalysis.result list

finds the analysis results for a given position.

Parameters:
pos :
Coccilib.pos
val inter : Externalanalysis.result ->
Externalanalysis.result -> Externalanalysis.result option

computes the intersection of analysis results, if possible.

val satisfy : (Externalanalysis.result list -> bool) -> Coccilib.pos -> bool

predicate over a list of analysis results of a given position.

Parameters:
f :
Externalanalysis.result list -> bool
pos :
Coccilib.pos
val satisfy1 : (Externalanalysis.result -> bool) -> Coccilib.pos -> bool

predicate over the intersection of analysis results.

Parameters:
f :
Externalanalysis.result -> bool
pos :
Coccilib.pos
val has_any : Coccilib.pos -> bool

true if an analysis result exists for the given position.

Parameters:
pos :
Coccilib.pos
val for_all : (Externalanalysis.result -> bool) -> Coccilib.pos -> bool

predicate over all analysis results of a given position.

Parameters:
p :
Externalanalysis.result -> bool
pos :
Coccilib.pos
val for_all1 : (Externalanalysis.result -> bool) -> Coccilib.pos -> bool

predicate over all analysis results (at least one) of a given position.

Parameters:
p :
Externalanalysis.result -> bool
pos :
Coccilib.pos
val exists : (Externalanalysis.result -> bool) -> Coccilib.pos -> bool

true if the predicate is satisfied for at least one result of a given position.

Parameters:
p :
Externalanalysis.result -> bool
pos :
Coccilib.pos
val single_int : int64 -> Externalanalysis.result -> bool

true if the result contains only a single integer as range

val contains_int : int64 -> Externalanalysis.result -> bool

true if the result range contains the given integer.

val has_only_nul : Coccilib.pos -> bool

analysis result of the position has only the zero value.

Parameters:
pos :
Coccilib.pos
val has_also_nul : Coccilib.pos -> bool

analysis result of the position contains also the zero value.

Parameters:
pos :
Coccilib.pos
val has_also_int : int64 -> Coccilib.pos -> bool

analysis result of the position contains also the given integer.

Parameters:
c :
int64
pos :
Coccilib.pos