Module InferModules.JTrans

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