2 lines
6.2 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>InferModules__Callbacks (infer.InferModules__Callbacks)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../index.html">infer</a> &#x00BB; InferModules__Callbacks</nav><h1>Module <code>InferModules__Callbacks</code></h1><p>Module to register and invoke callbacks</p></header><dl><dt class="spec type" id="type-proc_callback_args"><a href="#type-proc_callback_args" class="anchor"></a><code><span class="keyword">type</span> proc_callback_args</code><code> = </code><code>{</code><table class="record"><tr id="type-proc_callback_args.get_procs_in_file" class="anchored"><td class="def field"><a href="#type-proc_callback_args.get_procs_in_file" class="anchor"></a><code>get_procs_in_file : <a href="../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a> <span>&#45;&gt;</span> <span><a href="../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a> list</span>;</code></td></tr><tr id="type-proc_callback_args.summary" class="anchored"><td class="def field"><a href="#type-proc_callback_args.summary" class="anchor"></a><code>summary : <a href="../InferModules/Summary/index.html#type-t">InferModules.Summary.t</a>;</code></td></tr><tr id="type-proc_callback_args.exe_env" class="anchored"><td class="def field"><a href="#type-proc_callback_args.exe_env" class="anchor"></a><code>exe_env : <a href="../InferModules/Exe_env/index.html#type-t">InferModules.Exe_env.t</a>;</code></td></tr></table><code>}</code></dt><dt class="spec type" id="type-proc_callback_t"><a href="#type-proc_callback_t" class="anchor"></a><code><span class="keyword">type</span> proc_callback_t</code><code> = <a href="index.html#type-proc_callback_args">proc_callback_args</a> <span>&#45;&gt;</span> <a href="../InferModules/Summary/index.html#type-t">InferModules.Summary.t</a></code></dt><dd><p>Type of a procedure callback:</p><ul><li>List of all the procedures the callback will be called on.</li><li>get_proc_desc to get a proc desc from a proc name</li><li>Type environment.</li><li>Procedure for the callback to act on.</li></ul></dd></dl><dl><dt class="spec type" id="type-cluster_callback_args"><a href="#type-cluster_callback_args" class="anchor"></a><code><span class="keyword">type</span> cluster_callback_args</code><code> = </code><code>{</code><table class="record"><tr id="type-cluster_callback_args.procedures" class="anchored"><td class="def field"><a href="#type-cluster_callback_args.procedures" class="anchor"></a><code>procedures : <span><span>(<a href="../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a> * <a href="../InferModules/Summary/index.html#type-t">InferModules.Summary.t</a>)</span> list</span>;</code></td></tr><tr id="type-cluster_callback_args.source_file" class="anchored"><td class="def field"><a href="#type-cluster_callback_args.source_file" class="anchor"></a><code>source_file : <a href="../../InferBase/InferBase/SourceFile/index.html#type-t">InferBase.SourceFile.t</a>;</code></td></tr><tr id="type-cluster_callback_args.exe_env" class="anchored"><td class="def field"><a href="#type-cluster_callback_args.exe_env" class="anchor"></a><code>exe_env : <a href="../InferModules/Exe_env/index.html#type-t">InferModules.Exe_env.t</a>;</code></td></tr></table><code>}</code></dt><dt class="spec type" id="type-cluster_callback_t"><a href="#type-cluster_callback_t" class="anchor"></a><code><span class="keyword">type</span> cluster_callback_t</code><code> = <a href="index.html#type-cluster_callback_args">cluster_callback_args</a> <span>&#45;&gt;</span> unit</code></dt></dl><dl><dt class="spec value" id="val-register_procedure_callback"><a href="#val-register_procedure_callback" class="anchor"></a><code><span class="keyword">val</span> register_procedure_callback : <span>name:string</span> <span>&#45;&gt;</span> <span>?&#8288;dynamic_dispatch:bool</span> <span>&#45;&gt;</span> <a href="../../InferBase/InferBase/Language/index.html#type-t">InferBase.Language.t</a> <span>&#45;&gt;</span> <a href="index.html#type-proc_callback_t">proc_callback_t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>register a procedure callback</p></dd></dl><dl><dt class="spec value" id="val-register_cluster_callback"><a href="#val-register_cluster_callback" class="anchor"></a><code><span class="keyword">val</span> register_cluster_callback : <span>name:string</span> <span>&#45;&gt;</span> <a href="../../InferBase/InferBase/Language/index.html#type-t">InferBase.Language.t</a> <span>&#45;&gt;</span> <a href="index.html#type-cluster_callback_t">cluster_callback_t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>register a cluster callback</p></dd></dl><dl><dt class="spec value" id="val-iterate_procedure_callbacks"><a href="#val-iterate_procedure_callbacks" class="anchor"></a><code><span class="keyword">val</span> iterate_procedure_callbacks : <a href="../InferModules/Exe_env/index.html#type-t">InferModules.Exe_env.t</a> <span>&#45;&gt;</span> <a href="../InferModules/Summary/index.html#type-t">InferModules.Summary.t</a> <span>&#45;&gt;</span> <a href="../InferModules/Summary/index.html#type-t">InferModules.Summary.t</a></code></dt><dd><p>Invoke all registered procedure callbacks on the given procedure.</p></dd></dl><dl><dt class="spec value" id="val-iterate_cluster_callbacks"><a href="#val-iterate_cluster_callbacks" class="anchor"></a><code><span class="keyword">val</span> iterate_cluster_callbacks : <span><a href="../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a> <a href="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.sexp_list</span> <span>&#45;&gt;</span> <a href="../InferModules/Exe_env/index.html#type-t">InferModules.Exe_env.t</a> <span>&#45;&gt;</span> <a href="../../InferBase/InferBase/SourceFile/index.html#type-t">InferBase.SourceFile.t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>Invoke all registered cluster callbacks on a cluster of procedures.</p></dd></dl></div></body></html>