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.
9 lines
28 KiB
9 lines
28 KiB
5 years ago
|
<!DOCTYPE html>
|
||
|
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>InferIR__PredSymb (InferIR.InferIR__PredSymb)</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> — <span class="package">package <a href="../index.html">InferIR</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferIR__PredSymb</span></h1></header><p>The Smallfoot Intermediate Language: Predicate Symbols</p><div class="spec module" id="module-F"><a href="#module-F" class="anchor"></a><div class="def module"><code><span class="keyword">module </span>F = Format</code></div><div class="doc"></div></div><h3>Programs and Types</h3><div class="spec type" id="type-func_attribute"><a href="#type-func_attribute" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>func_attribute</code><code></code><code><span class="keyword"> = </span></code><table class="variant"><tr id="type-func_attribute.FA_sentinel" class="anchored"><td class="def constructor"><a href="#type-func_attribute.FA_sentinel" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">FA_sentinel</span><span class="keyword"> of </span>int<span class="keyword"> * </span>int</code></td></tr></table><code></code></div><div class="doc"></div></div><div class="spec include"><div class="doc"></div><details open="open"><summary><span class="def"><code><span class="keyword">include </span><span class="keyword">sig</span> ... <span class="keyword">end</span></code></span></summary><div class="spec val" id="val-compare_func_attribute"><a href="#val-compare_func_attribute" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>compare_func_attribute : <a href="index.html#type-func_attribute">func_attribute</a> <span class="keyword">‑></span> <a href="index.html#type-func_attribute">func_attribute</a> <span class="keyword">‑></span> int</code></div><div class="doc"></div></div></details></div><div class="spec val" id="val-pp_func_attribute"><a href="#val-pp_func_attribute" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pp_func_attribute : <a href="index.html#module-F">F</a>.formatter <span class="keyword">‑></span> <a href="index.html#type-func_attribute">func_attribute</a> <span class="keyword">‑></span> unit</code></div><div class="doc"></div></div><div class="spec val" id="val-get_sentinel_func_attribute_value"><a href="#val-get_sentinel_func_attribute_value" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>get_sentinel_func_attribute_value : <a href="index.html#type-func_attribute">func_attribute</a> list <span class="keyword">‑></span> (int<span class="keyword"> * </span>int) option</code></div><div class="doc"><p>Return the value of the FA_sentinel attribute in <code class="code">attr_list</code> if it is found</p></div></div><div class="spec type" id="type-access"><a href="#type-access" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>access</code><code></code><code><span class="keyword"> = </span></code><table class="variant"><tr id="type-access.Default" class="anchored"><td class="def constructor"><a href="#type-access.Default" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Default</span></code></td></tr><tr id="type-access.Public" class="anchored"><td class="def constructor"><a href="#type-access.Public" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Public</span></code></td></tr><tr id="type-access.Private" class="anchored"><td class="def constructor"><a href="#type-access.Private" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Private</span></code></td></tr><tr id="type-access.Protected
|
||
|
Anpred atomic formulas. Many operations don't make much sense for nullary predicates, and are
|
||
|
generally treated as no-ops. The first argument is treated specially, as the "anchor" of the
|
||
|
predicate application. For example, adding or removing an attribute uses the anchor to identify
|
||
|
the atom to operate on. Also, abstraction and normalization operations treat the anchor
|
||
|
specially and maintain more information on it than other arguments. Therefore when attaching an
|
||
|
attribute to an expression, that expression should be the first argument, optionally followed by
|
||
|
additional related expressions.</p></div></div><div class="spec include"><div class="doc"></div><details open="open"><summary><span class="def"><code><span class="keyword">include </span><span class="keyword">sig</span> ... <span class="keyword">end</span></code></span></summary><div class="spec val" id="val-compare"><a href="#val-compare" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>compare : <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> int</code></div><div class="doc"></div></div></details></div><div class="spec val" id="val-equal"><a href="#val-equal" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>equal : <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-mem_alloc_pname"><a href="#val-mem_alloc_pname" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mem_alloc_pname : <a href="index.html#type-mem_kind">mem_kind</a> <span class="keyword">‑></span> <a href="../InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a></code></div><div class="doc"><p>name of the allocation function for the given memory kind</p></div></div><div class="spec val" id="val-mem_dealloc_pname"><a href="#val-mem_dealloc_pname" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mem_dealloc_pname : <a href="index.html#type-mem_kind">mem_kind</a> <span class="keyword">‑></span> <a href="../InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a></code></div><div class="doc"><p>name of the deallocation function for the given memory kind</p></div></div><div class="spec type" id="type-category"><a href="#type-category" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>category</code><code></code><code><span class="keyword"> = </span></code><table class="variant"><tr id="type-category.ACresource" class="anchored"><td class="def constructor"><a href="#type-category.ACresource" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">ACresource</span></code></td></tr><tr id="type-category.ACautorelease" class="anchored"><td class="def constructor"><a href="#type-category.ACautorelease" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">ACautorelease</span></code></td></tr><tr id="type-category.AClock" class="anchored"><td class="def constructor"><a href="#type-category.AClock" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">AClock</span></code></td></tr><tr id="type-category.ACdiv0" class="anchored"><td class="def constructor"><a href="#type-category.ACdiv0" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">ACdiv0</span></code></td></tr><tr id="type-category.ACobjc_null" class="anchored"><td class="def constructor"><a href="#type-category.ACobjc_null" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">ACobjc_null</span></code></td></tr><tr id="type-category.ACundef" class="anchored"><td class="def constructor"><a href="#type-category.ACundef" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">ACundef</span></code></td></tr><tr id="type-category.ACretval" class="anchored"><td class="def constructor"><a href="#type-category.ACretval" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">ACretval</span></code></td></tr><tr id="type-category.ACobserver" class="anchored"><td class="def constructor"><a href="#type-category.ACobserver" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">ACobserver</span></code></td></tr><tr id="type-category.ACwontleak" class
|