package goblint

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

A printer interface for CIL trees. Create instantiations of * this type by specializing the class Cil.defaultCilPrinterClass.

method setCurrentFormals : varinfo list -> unit
method setPrintInstrTerminator : string -> unit
method getPrintInstrTerminator : unit -> string
method pVDecl : unit -> varinfo -> Pretty.doc

Invoked for each variable declaration. Note that variable * declarations are all the GVar, GVarDecl, GFun, all the varinfo * in formals of function types, and the formals and locals for function * definitions.

method pVar : varinfo -> Pretty.doc

Invoked on each variable use.

method pLval : unit -> lval -> Pretty.doc

Invoked on each lvalue occurrence

method pOffset : Pretty.doc -> offset -> Pretty.doc

Invoked on each offset occurrence. The second argument is the base.

method pInstr : unit -> instr -> Pretty.doc

Invoked on each instruction occurrence.

method pLabel : unit -> label -> Pretty.doc

Print a label.

method pStmt : unit -> stmt -> Pretty.doc

Control-flow statement. This is used by * Cil.printGlobal and by Cil.dumpGlobal.

method dStmt : out_channel -> int -> stmt -> unit

Dump a control-flow statement to a file with a given indentation. * This is used by Cil.dumpGlobal.

method dBlock : out_channel -> int -> block -> unit

Dump a control-flow block to a file with a given indentation. * This is used by Cil.dumpGlobal.

method pBlock : unit -> block -> Pretty.doc

Print a block.

method pGlobal : unit -> global -> Pretty.doc

Global (vars, types, etc.). This can be slow and is used only by * Cil.printGlobal but not by Cil.dumpGlobal.

method dGlobal : out_channel -> global -> unit

Dump a global to a file with a given indentation. This is used by * Cil.dumpGlobal

method pFieldDecl : unit -> fieldinfo -> Pretty.doc

A field declaration

method pType : Pretty.doc option -> unit -> typ -> Pretty.doc

Use of some type in some declaration. The first argument is used to print * the declared element, or is None if we are just printing a type with no * name being declared. Note that for structure/union and enumeration types * the definition of the composite type is not visited. Use vglob to * visit it.

method pAttr : attribute -> Pretty.doc * bool

Attribute. Also return an indication whether this attribute must be * printed inside the __attribute__ list or not.

method pAttrParam : unit -> attrparam -> Pretty.doc

Attribute parameter

method pAttrs : unit -> attributes -> Pretty.doc

Attribute lists

method pLineDirective : ?forcefile:bool -> location -> Pretty.doc

Print a line-number. This is assumed to come always on an empty line. * If the forcefile argument is present and is true then the file name * will be printed always. Otherwise the file name is printed only if it * is different from the last time time this function is called. The last * file name is stored in a private field inside the cilPrinter object.

method pStmtKind : stmt -> unit -> stmtkind -> Pretty.doc

Print a statement kind. The code to be printed is given in the * Cil.stmtkind argument. The initial Cil.stmt argument * records the statement which follows the one being printed; * Cil.defaultCilPrinterClass uses this information to prettify * statement printing in certain special cases.

method pExp : unit -> exp -> Pretty.doc

Print expressions

method pInit : unit -> init -> Pretty.doc

Print initializers. This can be slow and is used by * Cil.printGlobal but not by Cil.dumpGlobal.

method dInit : out_channel -> int -> init -> unit

Dump a global to a file with a given indentation. This is used by * Cil.dumpGlobal

OCaml

Innovation. Community. Security.