module Key:sig
..end
t
to know which kind of elements can be
identified.type
key =
| |
SigKey of |
(* |
input/output nodes of the function
key for an element of the function signature | *) |
| |
VarDecl of |
(* |
local, parameter or global variable definition
variable declaration | *) |
| |
Stmt of |
(* |
simple statement (not call) excluding its label (stmt.id)
any statement, except a call | *) |
| |
CallStmt of |
(* |
call statement
call statement | *) |
| |
Label of |
(* |
Labels are considered as function elements by themselves.
program label | *) |
| |
SigCallKey of |
(* |
Key for an element of a call (input or output).
The call is identified by the statement.
key for an element of a call signature | *) |
val entry_point : key
val top_input : key
val param_key : int -> key
val implicit_in_key : Locations.Zone.t -> key
val output_key : key
val out_from_key : Locations.Zone.t -> key
val decl_var_key : Cil_types.varinfo -> key
val label_key : Cil_types.stmt -> Cil_types.label -> key
val call_key : Cil_types.stmt -> key
val stmt_key : Cil_types.stmt -> key
val call_input_key : Cil_types.stmt -> int -> key
val call_outret_key : Cil_types.stmt -> key
val call_output_key : Cil_types.stmt -> Locations.Zone.t -> key
val call_ctrl_key : Cil_types.stmt -> key
val call_topin_key : Cil_types.stmt -> key
val call_from_id : 'a -> 'a
val stmt : key -> Cil_types.stmt option
val pretty_node : Format.formatter -> key -> unit
include struct ... end