sig
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
val operand_tbl : Metrics_cabs.Halstead.operand_tbl
val operator_tbl : Metrics_cabs.Halstead.operator_tbl
method add_paren : unit -> unit
method get_operand_tbl : unit -> Metrics_cabs.Halstead.operand_tbl
method get_operator_tbl : unit -> Metrics_cabs.Halstead.operator_tbl
method vEnterScope : unit -> unit
method vExitScope : unit -> unit
method vattr : Cabs.attribute -> Cabs.attribute list Cil.visitAction
method vblock : Cabs.block -> Cabs.block Cil.visitAction
method vdecltype : Cabs.decl_type -> Cabs.decl_type Cil.visitAction
method vdef : Cabs.definition -> Cabs.definition list Cil.visitAction
method vexpr : Cabs.expression -> Cabs.expression Cil.visitAction
method vinitexpr :
Cabs.init_expression -> Cabs.init_expression Cil.visitAction
method vname :
Cabsvisit.nameKind ->
Cabs.specifier -> Cabs.name -> Cabs.name Cil.visitAction
method vspec : Cabs.specifier -> Cabs.specifier Cil.visitAction
method vstmt : Cabs.statement -> Cabs.statement list Cil.visitAction
method vtypespec :
Cabs.typeSpecifier -> Cabs.typeSpecifier Cil.visitAction
method vvar : string -> string
end
val compose : 'a -> int -> int * int -> int * int
val fold : ('a, int) Hashtbl.t -> int * int -> int * int
val compute_operators : Metrics_cabs.Halstead.operator_tbl -> float * float
val compute_operands : Metrics_cabs.Halstead.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 to_list : Metrics_cabs.Halstead.halstead_metrics -> string list list
val pp_metrics :
Format.formatter ->
< get_operand_tbl : unit -> Metrics_cabs.Halstead.operand_tbl;
get_operator_tbl : unit -> Metrics_cabs.Halstead.operator_tbl; .. > ->
unit
val compute_metrics : unit -> unit
val get_metrics : unit -> Metrics_cabs.Halstead.halstead_metrics
end