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.

2 lines
6.0 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>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; <a href="../index.html">InferModules</a> &#x00BB; Callbacks</nav><h1>Module <code>InferModules.Callbacks</code></h1></header><aside><p>Module to register and invoke callbacks</p></aside><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="../Summary/index.html#type-t">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="../Exe_env/index.html#type-t">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="../Summary/index.html#type-t">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="../Summary/index.html#type-t">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="../Exe_env/index.html#type-t">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="../Exe_env/index.html#type-t">Exe_env.t</a> <span>&#45;&gt;</span> <a href="../Summary/index.html#type-t">Summary.t</a> <span>&#45;&gt;</span> <a href="../Summary/index.html#type-t">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="../Exe_env/index.html#type-t">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>