# Module Formatcil

    module Formatcil: sig .. end

An Interpreter for constructing CIL constructs

    val cExp : string -> (string * Cil.formatArg) list -> Cil.exp

Constructs an expression based on the program and the list of arguments. Each argument consists of a name followed by the actual data. This argument will be placed instead of occurrences of "%v:name" in the pattern (where the "v" is dependent on the type of the data). The parsing of the string is memoized. * Only the first expression is parsed.

    val cLval : string -> (string * Cil.formatArg) list -> Cil.lval

Constructs an lval based on the program and the list of arguments. Only the first lvalue is parsed. The parsing of the string is memoized.

    val cType : string -> (string * Cil.formatArg) list -> Cil.typ

Constructs a type based on the program and the list of arguments. Only the first type is parsed. The parsing of the string is memoized.

    val cInstr : string -> Cil.location -> (string * Cil.formatArg) list -> Cil.instr

Constructs an instruction based on the program and the list of arguments. Only the first instruction is parsed. The parsing of the string is memoized.

    val cStmt : string ->
           (string -> Cil.typ -> Cil.varinfo) ->
           Cil.location -> (string * Cil.formatArg) list -> Cil.stmt

    val cStmts : string ->
           (string -> Cil.typ -> Cil.varinfo) ->
           Cil.location -> (string * Cil.formatArg) list -> Cil.stmt list

Constructs a list of statements

    val dExp : string -> Cil.exp -> Cil.formatArg list option

Deconstructs an expression based on the program. Produces an optional list of format arguments. The parsing of the string is memoized.

    val dLval : string -> Cil.lval -> Cil.formatArg list option

Deconstructs an lval based on the program. Produces an optional list of format arguments. The parsing of the string is memoized.

    val dType : string -> Cil.typ -> Cil.formatArg list option

Deconstructs a type based on the program. Produces an optional list of format arguments. The parsing of the string is memoized.

    val dInstr : string -> Cil.instr -> Cil.formatArg list option

Deconstructs an instruction based on the program. Produces an optional list of format arguments. The parsing of the string is memoized.

    val noMemoize : bool ref

If set then will not memoize the parsed patterns

    val test : unit -> unit

Just a testing function