package frama-c
Install
    
    dune-project
 Dependency
Authors
- 
  
    
    MMichele Alberti
- 
  
    
    TThibaud Antignac
- 
  
    
    GGergö Barany
- 
  
    
    PPatrick Baudin
- 
  
    
    NNicolas Bellec
- 
  
    
    TThibaut Benjamin
- 
  
    
    AAllan Blanchard
- 
  
    
    LLionel Blatter
- 
  
    
    FFrançois Bobot
- 
  
    
    RRichard Bonichon
- 
  
    
    VVincent Botbol
- 
  
    
    QQuentin Bouillaguet
- 
  
    
    DDavid Bühler
- 
  
    
    ZZakaria Chihani
- 
  
    
    LLoïc Correnson
- 
  
    
    JJulien Crétin
- 
  
    
    PPascal Cuoq
- 
  
    
    ZZaynah Dargaye
- 
  
    
    BBasile Desloges
- 
  
    
    JJean-Christophe Filliâtre
- 
  
    
    PPhilippe Herrmann
- 
  
    
    MMaxime Jacquemin
- 
  
    
    FFlorent Kirchner
- 
  
    
    AAlexander Kogtenkov
- 
  
    
    RRemi Lazarini
- 
  
    
    TTristan Le Gall
- 
  
    
    KKilyan Le Gallic
- 
  
    
    JJean-Christophe Léchenet
- 
  
    
    MMatthieu Lemerre
- 
  
    
    DDara Ly
- 
  
    
    DDavid Maison
- 
  
    
    CClaude Marché
- 
  
    
    AAndré Maroneze
- 
  
    
    TThibault Martin
- 
  
    
    FFonenantsoa Maurica
- 
  
    
    MMelody Méaulle
- 
  
    
    BBenjamin Monate
- 
  
    
    YYannick Moy
- 
  
    
    PPierre Nigron
- 
  
    
    AAnne Pacalet
- 
  
    
    VValentin Perrelle
- 
  
    
    GGuillaume Petiot
- 
  
    
    DDario Pinto
- 
  
    
    VVirgile Prevosto
- 
  
    
    AArmand Puccetti
- 
  
    
    FFélix Ridoux
- 
  
    
    VVirgile Robles
- 
  
    
    JJan Rochel
- 
  
    
    MMuriel Roger
- 
  
    
    CCécile Ruet-Cros
- 
  
    
    JJulien Signoles
- 
  
    
    NNicolas Stouls
- 
  
    
    KKostyantyn Vorobyov
- 
  
    
    BBoris Yakobowski
Maintainers
Sources
sha256=93a291a8764644df2f3618d7ea18258b5fbe0912ec98dfdfd180967afdf24474
    
    
  doc/frama-c.kernel/Frama_c_kernel/Cil_printer/index.html
Module Frama_c_kernel.Cil_printer
Internal Cil printer.
Must not be used by plug-in developers: use module Printer instead. In particular, this pretty-printer is incorrect regarding annotations. It should only be used by modules linked before Annotations.
include Printer_api.S
include Printer_api.S_pp
val pp_varname : Format.formatter -> string -> unitPrinter for C constructs
val pp_location : Format.formatter -> Cil_types.location -> unitval pp_constant : Format.formatter -> Cil_types.constant -> unitval pp_storage : Format.formatter -> Cil_types.storage -> unitval pp_ikind : Format.formatter -> Cil_types.ikind -> unitval pp_fkind : Format.formatter -> Cil_types.fkind -> unitval pp_typ : Format.formatter -> Cil_types.typ -> unitval pp_exp : Format.formatter -> Cil_types.exp -> unitval pp_vdecl : Format.formatter -> Cil_types.varinfo -> unitval pp_varinfo : Format.formatter -> Cil_types.varinfo -> unitval pp_lval : Format.formatter -> Cil_types.lval -> unitval pp_field : Format.formatter -> Cil_types.fieldinfo -> unitval pp_offset : Format.formatter -> Cil_types.offset -> unitval pp_init : Format.formatter -> Cil_types.init -> unitval pp_binop : Format.formatter -> Cil_types.binop -> unitval pp_unop : Format.formatter -> Cil_types.unop -> unitval pp_attribute : Format.formatter -> Cil_types.attribute -> unitval pp_attrparam : Format.formatter -> Cil_types.attrparam -> unitval pp_attributes : Format.formatter -> Cil_types.attributes -> unitval pp_instr : Format.formatter -> Cil_types.instr -> unitval pp_label : Format.formatter -> Cil_types.label -> unitval pp_stmt : Format.formatter -> Cil_types.stmt -> unitval pp_block : Format.formatter -> Cil_types.block -> unitval pp_global : Format.formatter -> Cil_types.global -> unitval pp_file : Format.formatter -> Cil_types.file -> unitval pp_compinfo : Format.formatter -> Cil_types.compinfo -> unitval pp_logic_type_info : Format.formatter -> Cil_types.logic_type_info -> unitval pp_logic_ctor_info : Format.formatter -> Cil_types.logic_ctor_info -> unitval pp_initinfo : Format.formatter -> Cil_types.initinfo -> unitval pp_logic_info : Format.formatter -> Cil_types.logic_info -> unitval pp_logic_constant : Format.formatter -> Cil_types.logic_constant -> unitval pp_fundec : Format.formatter -> Cil_types.fundec -> unitPrinter for ACSL constructs
val pp_relation : Format.formatter -> Cil_types.relation -> unitval pp_model_info : Format.formatter -> Cil_types.model_info -> unitval pp_term_lval : Format.formatter -> Cil_types.term_lval -> unitval pp_term_lhost : Format.formatter -> Cil_types.term_lhost -> unitval pp_logic_var : Format.formatter -> Cil_types.logic_var -> unitval pp_logic_type : Format.formatter -> Cil_types.logic_type -> unitval pp_identified_term : Format.formatter -> Cil_types.identified_term -> unitval pp_term : Format.formatter -> Cil_types.term -> unitval pp_model_field : Format.formatter -> Cil_types.model_info -> unitval pp_term_offset : Format.formatter -> Cil_types.term_offset -> unitval pp_logic_builtin_label : 
  Format.formatter ->
  Cil_types.logic_builtin_label ->
  unitval pp_logic_label : Format.formatter -> Cil_types.logic_label -> unitval pp_builtin_logic_info : 
  Format.formatter ->
  Cil_types.builtin_logic_info ->
  unitval pp_extended : Format.formatter -> Cil_types.acsl_extension -> unitval pp_short_extended : Format.formatter -> Cil_types.acsl_extension -> unitval pp_predicate_node : Format.formatter -> Cil_types.predicate_node -> unitval pp_predicate : Format.formatter -> Cil_types.predicate -> unitval pp_toplevel_predicate : 
  Format.formatter ->
  Cil_types.toplevel_predicate ->
  unitval pp_identified_predicate : 
  Format.formatter ->
  Cil_types.identified_predicate ->
  unitval pp_code_annotation : Format.formatter -> Cil_types.code_annotation -> unitval pp_funspec : Format.formatter -> Cil_types.funspec -> unitval pp_behavior : Format.formatter -> Cil_types.funbehavior -> unitval pp_global_annotation : 
  Format.formatter ->
  Cil_types.global_annotation ->
  unitval pp_decreases : Format.formatter -> Cil_types.variant -> unitval pp_variant : Format.formatter -> Cil_types.variant -> unitval pp_from : Format.formatter -> Cil_types.from -> unitval pp_assigns : Format.formatter -> Cil_types.assigns -> unitval pp_allocation : Format.formatter -> Cil_types.allocation -> unitval pp_loop_from : Format.formatter -> Cil_types.from -> unitval pp_loop_assigns : Format.formatter -> Cil_types.assigns -> unitval pp_loop_allocation : Format.formatter -> Cil_types.allocation -> unitval pp_post_cond : 
  Format.formatter ->
  (Cil_types.termination_kind * Cil_types.identified_predicate) ->
  unitGeneral form of printers
val pp_full_assigns : string -> Format.formatter -> Cil_types.assigns -> unitfirst parameter is the introducing keyword (e.g. loop_assigns or assigns).
val without_annot : 
  (Format.formatter -> 'a -> unit) ->
  Format.formatter ->
  'a ->
  unitwithout_annot printer fmt x pretty prints x by using printer, without pretty-printing its function contracts and code annotations.
val force_brace : 
  (Format.formatter -> 'a -> unit) ->
  Format.formatter ->
  'a ->
  unitself#force_brace printer fmt x pretty prints x by using printer, but add some extra braces '{' and '}' which are hidden by default.
Extensible printer
class extensible_printer : unit -> Frama_c_kernel.Printer_api.extensible_printer_typeExtend this class if you want to obtain a custom pretty-printer.
module type PrinterClass = sig ... endAuxiliary module type for a pretty-printer
module type PrinterExtension = functor (_ : PrinterClass) -> PrinterClassSignature for extending an existing pretty-printer. OCaml forbids inheriting from a class received as argument, so we use a functor instead.
val update_printer : (module PrinterExtension) -> unitRegister a pretty-printer extension. The pretty-printer passed as argument X in the functor PrinterExtension is the current pretty-printer, which you should inherit from.
This is how this function should be used:
  module PrinterClassDeferred (X: Printer.PrinterClass) = struct
    class printer : Printer.extensible_printer = object(self)
      inherit X.printer as super
      (* Override the standard methods *)
    end
  end
  let () = Printer.update_printer
      (module PrinterClassDeferred: Printer.PrinterExtension)val current_printer : unit -> (module PrinterClass)Returns the current pretty-printer, with all the extensions added using update_printer.
val set_printer : (module PrinterClass) -> unitSet the current pretty-printer, typically to a printer previously obtained through current_printer. This can be useful to cancel a modification performed through update_printer.
val string_of_assert : Cil_types.predicate_kind -> string"assert", "check" or "admit".
val name_of_assert : Cil_types.predicate_kind -> string"assertion", "check" or "admit".
val string_of_lemma : Cil_types.predicate_kind -> string"lemma", "check lemma" or "axiom".
val string_of_predicate : kw:string -> Cil_types.predicate_kind -> stringclause, prefixed by "check" or "admit".
val ident_of_lemma : Cil_types.predicate_kind -> stringsame as string_of_lemma with "_" for separator.
val ident_of_predicate : kw:string -> Cil_types.predicate_kind -> stringsame as string_of_predicate with "_" for separator.
val pp_assert_kind : Format.formatter -> Cil_types.predicate_kind -> unitpretty prints string_of_assert.
val pp_lemma_kind : Format.formatter -> Cil_types.predicate_kind -> unitpretty prints string_of_lemma.
val pp_predicate_kind : 
  kw:string ->
  Format.formatter ->
  Cil_types.predicate_kind ->
  unitpretty prints string_of_predicate.
val get_termination_kind_name : Cil_types.termination_kind -> stringRegister an attribute that will never be pretty printed.
val state : Printer_api.stateval print_global : Cil_types.global -> boolIs the given global displayed by the pretty-printer.