-
Loïc Correnson authored
(blind make headers from specifications)
Loïc Correnson authored(blind make headers from specifications)
metrics_parameters.ml 3.97 KiB
(**************************************************************************)
(* *)
(* This file is part of Frama-C. *)
(* *)
(* Copyright (C) 2007-2019 *)
(* CEA (Commissariat à l'énergie atomique et aux énergies *)
(* alternatives) *)
(* *)
(* you can redistribute it and/or modify it under the terms of the GNU *)
(* Lesser General Public License as published by the Free Software *)
(* Foundation, version 2.1. *)
(* *)
(* It is distributed in the hope that it will be useful, *)
(* but WITHOUT ANY WARRANTY; without even the implied warranty of *)
(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *)
(* GNU Lesser General Public License for more details. *)
(* *)
(* See the GNU Lesser General Public License version 2.1 *)
(* for more details (enclosed in the file licenses/LGPLv2.1). *)
(* *)
(**************************************************************************)
include Plugin.Register
(struct
let name = "metrics"
let shortname = "metrics"
let help = "syntactic metrics"
end)
module Enabled =
WithOutput
(struct
let option_name = "-metrics"
let help = "activate metrics computation"
let output_by_default = true
end)
module ByFunction =
WithOutput
(struct
let option_name = "-metrics-by-function"
let help = "also compute metrics on a per-function basis"
let output_by_default = true
end)
module OutputFile =
Empty_string
(struct
let option_name = "-metrics-output"
let arg_name = "filename"
let help = "print some metrics into the specified file; \
the output format is recognized through the extension."
end)
module ValueCoverage =
WithOutput (
struct
let option_name = "-metrics-eva-cover"
let help = "estimate Eva coverage w.r.t. \
to reachable syntactic definitions"
let output_by_default = true
end)
let () = ValueCoverage.add_aliases [ "-metrics-value-cover" ]
module AstType =
String
(struct
let option_name = "-metrics-ast"
let arg_name = "[cabs | cil | acsl]"
let help = "apply metrics to Cabs or CIL AST, or to ACSL specs"
let default = "cil"
end
)
module Libc =
False
(struct
let option_name = "-metrics-libc"
let help = "show functions from Frama-C standard C library in the \
results; deactivated by default."
end
)
let () = AstType.set_possible_values ["cil"; "cabs"; "acsl"]
module SyntacticallyReachable =
Kernel_function_set
(struct
let option_name = "-metrics-cover"
let arg_name = "f1,..,fn"
let help = "compute an overapproximation of the functions reachable from \
f1,..,fn."
end
)
module LocalsSize =
Kernel_function_set
(struct
let option_name = "-metrics-locals-size"
let arg_name = "f1,...,fn"
let help = "prints the size of local variables for functions f1,...,fn, \
and for the functions called within them \
(does not support recursive calls)"
end)
module UsedFiles =
False
(struct
let option_name = "-metrics-used-files"
let help = "list files containing global definitions reachable by main"
end)
(*
Local Variables:
compile-command: "make -C ../../.."
End:
*)