package goblint-cil

  1. Overview
  2. Docs

These are pretty-printers that will show you more details on the internal CIL representation, without trying hard to make it look like C

method setCurrentFormals : varinfo list -> unit
method setPrintInstrTerminator : string -> unit
method getPrintInstrTerminator : unit -> string
method pVDecl : unit -> varinfo -> GoblintCil__.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 -> GoblintCil__.Pretty.doc

Invoked on each variable use.

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

Invoked on each lvalue occurrence

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

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

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

Invoked on each instruction occurrence.

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

Print a label.

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

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

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

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

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

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

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

Print a block.

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

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

method dGlobal : out_channel -> global -> unit

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

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

A field declaration

method pType : GoblintCil__.Pretty.doc option -> unit -> typ -> GoblintCil__.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 -> GoblintCil__.Pretty.doc * bool

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

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

Attribute parameter

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

Attribute lists

method pLineDirective : ?forcefile:bool -> location -> GoblintCil__.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 -> GoblintCil__.Pretty.doc

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

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

Print expressions

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

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

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

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

OCaml

Innovation. Community. Security.