Module Metrics_cilast


module Metrics_cilast: sig .. end
Syntactic metrics ================= The goal is to collect various (syntactic) information about the source code (slocs, assignments, loops, ...). From those one can compute McCabe's cyclomatic complexity.

Visitor to compute various syntactic metrics. In particular, it fetches all necessary informations to compute cyclomatic complexity .


class type sloc_visitor = object .. end
Syntactic metrics ================= The goal is to collect various (syntactic) information about the source code (slocs, assignments, loops, ...).
class slocVisitor : ( object
Inherits
val global_metrics : Metrics_base.my_metrics Pervasives.ref
val local_metrics : Metrics_base.my_metrics Pervasives.ref
val mutable metrics_map : Metrics_base.my_metrics Datatype.String.Map.t Datatype.String.Map.t
val fundecl_calls : int Metrics_base.VInfoMap.t Pervasives.ref
val fundef_calls : int Metrics_base.VInfoMap.t Pervasives.ref
method fundecl_calls : int Metrics_base.VInfoMap.t
method fundef_calls : int Metrics_base.VInfoMap.t
method get_metrics : Metrics_base.my_metrics
method private update_metrics_map : Datatype.String.Map.key ->
Metrics_base.my_metrics Datatype.String.Map.t -> unit
method private incr_slocs : Metrics_base.my_metrics Pervasives.ref -> unit
method private incr_assigns : Metrics_base.my_metrics Pervasives.ref -> unit
method private incr_calls : Metrics_base.my_metrics Pervasives.ref -> unit
method private incr_exits : Metrics_base.my_metrics Pervasives.ref -> unit
method private incr_funcs : Metrics_base.my_metrics Pervasives.ref -> unit
method private incr_gotos : Metrics_base.my_metrics Pervasives.ref -> unit
method private incr_ifs : Metrics_base.my_metrics Pervasives.ref -> unit
method private incr_loops : Metrics_base.my_metrics Pervasives.ref -> unit
method private incr_ptrs : Metrics_base.my_metrics Pervasives.ref -> unit
method private incr_dpoints : Metrics_base.my_metrics Pervasives.ref -> unit
method private incr_both_metrics : (Metrics_base.my_metrics Pervasives.ref -> unit) -> unit
method private add_map : int Metrics_base.VInfoMap.t Pervasives.ref ->
Metrics_base.VInfoMap.key -> int -> unit
method private stats_of_filename : Datatype.String.Map.key -> Metrics_base.my_metrics Datatype.String.Map.t
method pp_file_metrics : Format.formatter -> Datatype.String.Map.key -> unit
method pp_detailed_text_metrics : Format.formatter -> unit
method print_stats : Format.formatter -> unit
method private record_and_clear_function_metrics : Metrics_base.my_metrics -> unit
method vvdec : Metrics_base.VInfoMap.key -> Cil_types.varinfo Cil.visitAction
method vfunc : Cil_types.fundec -> Cil_types.fundec Cil.visitAction
method vlval : Cil_types.lval -> Cil_types.lval Cil.visitAction
method vstmt : Cil_types.stmt -> Cil_types.stmt Cil.visitAction
method vexpr : Cil_types.exp -> Cil_types.exp Cil.visitAction
method private is_defined_function : Metrics_base.VInfoMap.key -> bool
method private image : Cil_types.global -> string
method private images : Cil_types.global list -> string
method vinst : Cil_types.instr -> Cil_types.instr list Cil.visitAction
end : object ... end )
val dump_html : Format.formatter ->
< fundecl_calls : int Metrics_base.VInfoMap.t;
fundef_calls : int Metrics_base.VInfoMap.t;
get_metrics : Metrics_base.my_metrics;
print_stats : Format.formatter -> unit; .. > ->
unit
val metrics_to_result : slocVisitor -> Db.Metrics.t
val compute_on_cilast : unit -> Db.Metrics.t
Compute metrics on whole CIL AST