You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3 lines
9.1 KiB

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>JTrans (infer.InferModules.JTrans)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../index.html">infer</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferModules.JTrans</span></h1></header><div class="spec type" id="type-translation"><a href="#type-translation" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>translation</code><code></code><code><span class="keyword"> = </span></code><table class="variant"><tr id="type-translation.Skip" class="anchored"><td class="def constructor"><a href="#type-translation.Skip" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Skip</span></code></td></tr><tr id="type-translation.Instr" class="anchored"><td class="def constructor"><a href="#type-translation.Instr" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Instr</span><span class="keyword"> of </span><a href="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a></code></td></tr><tr id="type-translation.Prune" class="anchored"><td class="def constructor"><a href="#type-translation.Prune" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Prune</span><span class="keyword"> of </span><a href="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a><span class="keyword"> * </span><a href="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a></code></td></tr><tr id="type-translation.Loop" class="anchored"><td class="def constructor"><a href="#type-translation.Loop" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Loop</span><span class="keyword"> of </span><a href="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a><span class="keyword"> * </span><a href="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a><span class="keyword"> * </span><a href="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a></code></td></tr></table><code></code></div><div class="doc"><p>Data structure for storing the results of the translation of an instruction.</p></div></div><div class="spec val" id="val-is_java_native"><a href="#val-is_java_native" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>is_java_native : Javalib_pack.JCode.jcode Javalib_pack.Javalib.concrete_method <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-create_callee_attributes"><a href="#val-create_callee_attributes" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>create_callee_attributes : <a href="../../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a> <span class="keyword">&#8209;&gt;</span> <a href="../JClasspath/index.html#type-program">JClasspath.program</a> <span class="keyword">&#8209;&gt;</span> Javalib_pack.JBasics.class_name <span class="keyword">&#8209;&gt;</span> Javalib_pack.JBasics.method_signature <span class="keyword">&#8209;&gt;</span> <a href="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a> <span class="keyword">&#8209;&gt;</span> <a href="../../../InferIR/InferIR/ProcAttributes/index.html#type-t">InferIR.ProcAttributes.t</a> option</code></div><div class="doc"></div></div><div class="spec val" id="val-create_am_procdesc"><a href="#val-create_am_procdesc" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>create_am_procdesc : <a href="../../../InferBase/InferBase/SourceFile/index.html#type-t">InferBase.SourceFile.t</a> <span class="keyword">&#8209;&gt;</span> <a href="../JClasspath/index.html#type-program">JClasspath.program</a> <span class="keyword">&#8209;&gt;</span> <a href="../JContext/index.html#type-icfg">JContext.icfg</a> <span class="keyword">&#8209;&gt;</span> Javalib_pack.Javalib.abstract_method <span class="keyword">&#8209;&gt;</span> <a href="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a> <span class="keyword">&#8209;&gt;</span> <a href="../../../InferIR/InferIR/Procdesc/index.html#type-t">InferIR.Procdesc.t</a></code></div><div class="doc"><p>Create the procedure description for an abstract method</p></div></div><div class="spec val" id="val-create_native_procdesc"><a href="#val-create_native_procdesc" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>create_native_procdesc : <a href="../../../InferBase/InferBase/SourceFile/index.html#type-t">InferBase.SourceFile.t</a> <span class="keyword">&#8209;&gt;</span> <a href="../JClasspath/index.html#type-program">JClasspath.program</a> <span class="keyword">&#8209;&gt;</span> <a href="../JContext/index.html#type-icfg">JContext.icfg</a> <span class="keyword">&#8209;&gt;</span> Javalib_pack.JCode.jcode Javalib_pack.Javalib.concrete_method <span class="keyword">&#8209;&gt;</span> <a href="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a> <span class="keyword">&#8209;&gt;</span> <a href="../../../InferIR/InferIR/Procdesc/index.html#type-t">InferIR.Procdesc.t</a></code></div><div class="doc"><p>Create the procedure description for a concrete method</p></div></div><div class="spec val" id="val-create_empty_procdesc"><a href="#val-create_empty_procdesc" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>create_empty_procdesc : <a href="../../../InferBase/InferBase/SourceFile/index.html#type-t">InferBase.SourceFile.t</a> <span class="keyword">&#8209;&gt;</span> <a href="../JClasspath/index.html#type-program">JClasspath.program</a> <span class="keyword">&#8209;&gt;</span> <a href="../Printer/LineReader/index.html#type-t">Printer.LineReader.t</a> <span class="keyword">&#8209;&gt;</span> <a href="../JContext/index.html#type-icfg">JContext.icfg</a> <span class="keyword">&#8209;&gt;</span> Javalib_pack.JCode.jcode Javalib_pack.Javalib.concrete_method <span class="keyword">&#8209;&gt;</span> <a href="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a> <span class="keyword">&#8209;&gt;</span> <a href="../../../InferIR/InferIR/Procdesc/index.html#type-t">InferIR.Procdesc.t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-create_cm_procdesc"><a href="#val-create_cm_procdesc" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>create_cm_procdesc : <a href="../../../InferBase/InferBase/SourceFile/index.html#type-t">InferBase.SourceFile.t</a> <span class="keyword">&#8209;&gt;</span> <a href="../JClasspath/index.html#type-program">JClasspath.program</a> <span class="keyword">&#8209;&gt;</span> <a href="../Printer/LineReader/index.html#type-t">Printer.LineReader.t</a> <span class="keyword">&#8209;&gt;</span> <a href="../JContext/index.html#type-icfg">JContext.icfg</a> <span class="keyword">&#8209;&gt;</span> Javalib_pack.JCode.jcode Javalib_pack.Javalib.concrete_method <span class="keyword">&#8209;&gt;</span> <a href="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a> <span class="keyword">&#8209;&gt;</span> (<a href="../../../InferIR/InferIR/Procdesc/index.html#type-t">InferIR.Procdesc.t</a><span class="keyword"> * </span><a href="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a><span class="keyword"> * </span><a href="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a><span class="keyword"> * </span><a href="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a><span class="keyword"> * </span>Sawja_pack.JBir.t) option</code></div><div class="doc"><p><code class="code">create_procdesc source_file program linereader icfg cm proc_name</code> creates
a procedure description for the concrete method cm and adds it to cfg</p></div></div><div class="spec val" id="val-instruction"><a href="#val-instruction" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>instruction : <a href="../JContext/index.html#type-t">JContext.t</a> <span class="keyword">&#8209;&gt;</span> int <span class="keyword">&#8209;&gt;</span> Sawja_pack.JBir.instr <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-translation">translation</a></code></div><div class="doc"><p>translates an instruction into a statement node or prune nodes in the cfg</p></div></div><div class="spec exception" id="exception-Frontend_error"><a href="#exception-Frontend_error" class="anchor"></a><div class="def exception"><code><span class="keyword">exception </span></code><code><span class="exception">Frontend_error</span><span class="keyword"> of </span>string</code></div><div class="doc"></div></div></body></html>