123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131(**************************************************************************)(* *)(* SPDX-License-Identifier LGPL-2.1 *)(* Copyright (C) *)(* CEA (Commissariat à l'énergie atomique et aux énergies alternatives) *)(* *)(**************************************************************************)(** Eva public API.
Apart from [Analysis] and [Results], all modules exported here are
development interfaces which may change with each Frama-C release. *)(** {2 Main stable API} *)(** Run the analysis and check analysis status. *)moduleAnalysis=Analysis(** Main API to access the results of an analysis, such as the possible values
of expressions and memory locations of lvalues at each program point. *)moduleResults=Results(** {2 Statistics} *)(** Statistics about the analysis performance. *)moduleEva_perf=(Eva_perf:Eva_perf_sig.API)(** Various statistics collected during an analysis. *)moduleStatistics=Statistics(** {2 Types used in Eva} *)(** AST used by Eva. *)moduleEva_ast=Eva_ast(** Position in the analysis *)modulePosition=Position(** Types of callstack. *)moduleCallstack=Callstack(** Types for the memory dependencies of an expression or lvalue. *)moduleDeps=Deps(** {2 Configuration of the analysis} *)(** Command-line parameters of the analysis. *)moduleParameters=Parameters(** Add local annotations to guide the analysis. *)moduleEva_annotations=Eva_annotations(** Register OCaml builtins to be used by the cvalue domain instead of analysing
the body of some C functions. *)moduleBuiltins=(Builtins:Builtins_sig.API)(** {2 Registration of new abstractions} *)(** Various types used in abstract domain signature. *)moduleEval=Eval(** Signature of abstract domains, inferring properties about the program
during the analysis. *)moduleAbstract_domain=Abstract_domain(** Signature of abstract numerical values, representing the set of possible
values of an expression or lvalue. Used to exchange information between
abstract domains. *)moduleAbstract_value=Abstract_value(** Signature of abstract memory locations, representing the set of possible
memory locations pointed to by an lvalue. *)moduleAbstract_location=Abstract_location(** Signature of abstract state, which can be used to transfer information from
states of abstract domains to abstract values. *)moduleAbstract_context=Abstract_context(** Empty context. *)moduleUnit_context=Unit_context(** Automatic builders to complete abstract domains from different
simplified interfaces. *)moduleDomain_builder=Domain_builder(** Simplified interfaces for abstract domains. Complete abstract domains can be
built from these interfaces through the functors in {!Domain_builder}. *)moduleSimpler_domains=Simpler_domains(** Build a domain upon a value abstraction with a very simple memory model
for scalar non-volatile variables. *)moduleSimple_memory=Simple_memory(** Register new abstract domains. *)moduleDomain=Abstractions.Domain(** Common value abstractions shared by many abstract domains. *)moduleMain_values=Main_values(** Common location abstractions shared by many abstract domains. *)moduleMain_locations=Main_locations(** {2 Internal API}
These modules are for internal use only.
They may be modified or removed in future versions.
Please contact us if you need features from these modules. *)(** Generation of annotations. *)moduleExport=Export(** Types and operations for the From plugin. *)moduleAssigns=Assigns(** Register hooks called during the analysis with states of the cvalue domain. *)moduleCvalue_callbacks=(Cvalue_callbacks:Cvalue_callbacks_sig.API)(** Interpretation of predicates and assigns clauses for Inout and From plugins. *)moduleLogic_inout=Logic_inout(** Undocumented. *)moduleEva_results=Eva_results(** Unit testing. *)moduleUnit_tests=Unit_tests