class type cilPrinter = object
.. end
A printer interface for CIL trees. Create instantiations of
this type by specializing the class Cil.defaultCilPrinterClass
.
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
method dStmt : Pervasives.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 : Pervasives.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
method pBlock : unit -> block -> Pretty.doc
Print a block.
method pGlobal : unit -> global -> Pretty.doc
method dGlobal : Pervasives.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
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
method dInit : Pervasives.out_channel -> int -> init -> unit
Dump a global to a file with a given indentation. This is used by
Cil.dumpGlobal