Module Metrics_cabs.Halstead

module Halstead: sig .. end
Halstead metrics computation

val update_val : int -> 'a -> ('a, int) Hashtbl.t -> unit
val update_val_incr : 'a -> ('a, int) Hashtbl.t -> unit
type operand_tbl = {
   var_tbl : (string, int) Hashtbl.t;
   cst_tbl : (Cabs.constant, int) Hashtbl.t;
}
type operator_tbl = {
   knownop_tbl : (string, int) Hashtbl.t;
   otherop_tbl : (string, int) Hashtbl.t;
   reserved_tbl : (string, int) Hashtbl.t;
   tspec_tbl : (Cabs.typeSpecifier, int) Hashtbl.t;
}
val id_from_init : ('a * 'b * 'c * 'd) * 'e -> 'a
class halsteadCabsVisitor : object .. end
val compose : 'a -> int -> int * int -> int * int
val fold : ('a, int) Hashtbl.t -> int * int -> int * int
val compute_operators : operator_tbl -> float * float
val compute_operands : operand_tbl -> float * float
type halstead_metrics = {
   distinct_operators : float;
   total_operators : float;
   distinct_operands : float;
   total_operands : float;
   program_length : float;
   program_volume : float;
   program_level : float;
   vocabulary_size : float;
   difficulty_level : float;
   effort_to_implement : float;
   time_to_implement : float;
   bugs_delivered : float;
}
val get_metrics : unit -> halstead_metrics
val to_list : halstead_metrics -> string list list
val pp_metrics : Format.formatter ->
< get_operand_tbl : unit -> operand_tbl;
get_operator_tbl : unit -> operator_tbl; .. > ->
unit
val compute_metrics : unit -> unit
val get_metrics : unit -> halstead_metrics