`type translation````=`

`|` `Skip`
`|` `Instr of InferIR.Procdesc.Node.t`
`|` `Prune of InferIR.Procdesc.Node.t * InferIR.Procdesc.Node.t`
`|` `Loop of InferIR.Procdesc.Node.t * InferIR.Procdesc.Node.t * InferIR.Procdesc.Node.t`

``

Data structure for storing the results of the translation of an instruction.

`val is_java_native : Javalib_pack.JCode.jcode Javalib_pack.Javalib.concrete_method ‑> bool`
`val create_callee_attributes : InferIR.Tenv.t ‑> JClasspath.program ‑> Javalib_pack.JBasics.class_name ‑> Javalib_pack.JBasics.method_signature ‑> InferIR.Typ.Procname.t ‑> InferIR.ProcAttributes.t option`
`val create_am_procdesc : InferBase.SourceFile.t ‑> JClasspath.program ‑> JContext.icfg ‑> Javalib_pack.Javalib.abstract_method ‑> InferIR.Typ.Procname.t ‑> InferIR.Procdesc.t`

Create the procedure description for an abstract method

`val create_native_procdesc : InferBase.SourceFile.t ‑> JClasspath.program ‑> JContext.icfg ‑> Javalib_pack.JCode.jcode Javalib_pack.Javalib.concrete_method ‑> InferIR.Typ.Procname.t ‑> InferIR.Procdesc.t`

Create the procedure description for a concrete method

`val create_empty_procdesc : InferBase.SourceFile.t ‑> JClasspath.program ‑> Printer.LineReader.t ‑> JContext.icfg ‑> Javalib_pack.JCode.jcode Javalib_pack.Javalib.concrete_method ‑> InferIR.Typ.Procname.t ‑> InferIR.Procdesc.t`
`val create_cm_procdesc : InferBase.SourceFile.t ‑> JClasspath.program ‑> Printer.LineReader.t ‑> JContext.icfg ‑> Javalib_pack.JCode.jcode Javalib_pack.Javalib.concrete_method ‑> InferIR.Typ.Procname.t ‑> (InferIR.Procdesc.t * InferIR.Procdesc.Node.t * InferIR.Procdesc.Node.t * InferIR.Procdesc.Node.t * Sawja_pack.JBir.t) option`

`create_procdesc source_file program linereader icfg cm proc_name` creates a procedure description for the concrete method cm and adds it to cfg

`val instruction : JContext.t ‑> int ‑> Sawja_pack.JBir.instr ‑> translation`

translates an instruction into a statement node or prune nodes in the cfg

`exception` `Frontend_error of string`