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;
}
type halstead_metrics = {
   distinct_operators : int;
   distinct_operands : int;
   total_operators : int;
   total_operands : int;
}
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
val pp_metrics : Format.formatter ->
< get_operand_tbl : unit -> operand_tbl;
get_operator_tbl : unit -> operator_tbl; .. > ->
unit
val compute_metrics : unit -> unit