Functor Cil_builder.Stateful

module Stateful: 
functor (Location : T-> sig .. end
Parameters:
Location : T

include Cil_builder.Exp
val open_function : ?ghost:bool -> ?vorig_name:string -> string -> [> var ]
val set_return_type : ('s, 'v) typ -> unit
val set_return_type' : Cil_types.typ -> unit
val add_attribute : Cil_types.attribute -> unit
val add_new_attribute : string -> Cil_types.attrparam list -> unit
val add_stdlib_generated : unit -> unit
val finish_function : ?register:bool -> unit -> Cil_types.global
val finish_declaration : ?register:bool -> unit -> Cil_types.global
type source = [ `const of const'
| `exp of exp'
| `indirect of exp
| `lval of lval'
| `var of var' ]
val indirect : [< source ] -> [> source ]
val assigns : [< exp ] list ->
[< `const of const'
| `exp of exp'
| `indirect of [< exp ]
| `lval of lval'
| `var of var' ]
list -> unit
val requires : [< exp ] -> unit
val ensures : [< exp ] -> unit
val of_stmtkind : Cil_types.stmtkind -> unit
val of_stmt : Cil_types.stmt -> unit
val of_stmts : Cil_types.stmt list -> unit
val open_block : ?into:Cil_types.fundec -> ?ghost:bool -> unit -> unit
val open_ghost : ?into:Cil_types.fundec -> unit -> unit
val open_switch : ?into:Cil_types.fundec -> [< exp ] -> unit
val open_if : ?into:Cil_types.fundec -> [< exp ] -> unit
val open_else : unit -> unit
val close : unit -> unit
val finish_block : unit -> Cil_types.block
val finish_instr_list : ?scope:Cil_types.block -> unit -> Cil_types.instr list
val finish_stmt : unit -> Cil_types.stmt
val case : [< exp ] -> unit
val break : unit -> unit
val return : [< `const of const' | `exp of exp' | `lval of lval' | `none | `var of var' ] ->
unit
val local : ?ghost:bool -> ?init:'v -> (init, 'v) typ -> string -> [> var ]
val local' : ?ghost:bool -> ?init:init -> Cil_types.typ -> string -> [> var ]
val local_copy : ?ghost:bool -> ?suffix:string -> [< var ] -> [> var ]
val parameter : ?ghost:bool ->
?attributes:Cil_types.attributes -> Cil_types.typ -> string -> [> var ]
val of_instr : Cil_types.instr -> unit
val skip : unit -> unit
val assign : [< lval ] -> [< exp ] -> unit
val incr : [< lval ] -> unit
val call : [< `lval of lval' | `none | `var of var' ] ->
[< exp ] -> [< exp ] list -> unit
val pure : [< exp ] -> unit
val (:=) : [< lval ] -> [< exp ] -> unit
val (+=) : [< lval ] -> [< exp ] -> unit
val (-=) : [< lval ] -> [< exp ] -> unit