Frama_c_kernel.Printer_tagUtilities to pretty print source with located Ast elements
type localizable = | PStmt of Cil_types.kernel_function * Cil_types.stmt | |
| PStmtStart of Cil_types.kernel_function * Cil_types.stmt | |
| PLval of Cil_types.kernel_function option * Cil_types.kinstr * Cil_types.lval | |
| PExp of Cil_types.kernel_function option * Cil_types.kinstr * Cil_types.exp | |
| PTermLval of Cil_types.kernel_function option
* Cil_types.kinstr
* Property.t
* Cil_types.term_lval | |
| PVDecl of Cil_types.kernel_function option
* Cil_types.kinstr
* Cil_types.varinfo | (* Declaration and definition of variables and function. Check the type of the varinfo to distinguish between the various possibilities. If the varinfo is a global or a local, the kernel_function is the one in which the variable is declared. The |
| PGlobal of Cil_types.global | (* all globals but variable declarations and function definitions. *) |
| PIP of Property.t |
The kind of object that can be selected in the source viewer.
val label : localizable -> stringName (or category).
val glabel : Cil_types.global -> stringName (or category).
val pretty : Stdlib.Format.formatter -> localizable -> unitDescription of a localizable.
val pp_debug : Stdlib.Format.formatter -> localizable -> unitDebugging.
module Localizable : Datatype.S_with_collections with type t = localizableval localizable_of_global : Cil_types.global -> localizableval localizable_of_kf : Cil_types.kernel_function -> localizableval kf_of_localizable : localizable -> Cil_types.kernel_function optionval ki_of_localizable : localizable -> Cil_types.kinstrval varinfo_of_localizable : localizable -> Cil_types.varinfo optionval typ_of_localizable : localizable -> Cil_types.typ optionval loc_of_localizable : localizable -> Cil_types.locationMight return Location.unknown
val loc_to_localizable :
?precise_col:bool ->
Filepath.position ->
localizable optionreturn the (hopefully) most precise localizable that contains the given Filepath.position. If precise_col is true, takes the column number into account (possibly a more precise, but costly, result).
module type Tag = sig ... endmodule type S_pp = sig ... end