<htmlxmlns="http://www.w3.org/1999/xhtml"><head><title>ClangFrontend__Capture (infer.ClangFrontend__Capture)</title><linkrel="stylesheet"href="../../odoc.css"/><metacharset="utf-8"/><metaname="generator"content="odoc 1.5.2"/><metaname="viewport"content="width=device-width,initial-scale=1.0"/><scriptsrc="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><divclass="content"><header><nav><ahref="../index.html">Up</a>–<ahref="../index.html">infer</a>» ClangFrontend__Capture</nav><h1>Module <code>ClangFrontend__Capture</code></h1></header><dl><dtclass="spec value"id="val-run_clang"><ahref="#val-run_clang"class="anchor"></a><code><spanclass="keyword">val</span> run_clang : <ahref="../ClangFrontend/ClangCommand/index.html#type-t">ClangFrontend.ClangCommand.t</a><span>-></span><span>(<ahref="../IStdlib/index.html#module-IStd">IStdlib.IStd</a>.In_channel.t <span>-></span><spanclass="type-var">'a</span>)</span><span>-></span><spanclass="type-var">'a</span></code></dt><dtclass="spec value"id="val-capture"><ahref="#val-capture"class="anchor"></a><code><spanclass="keyword">val</span> capture : <ahref="../ClangFrontend/ClangCommand/index.html#type-t">ClangFrontend.ClangCommand.t</a><span>-></span> unit</code></dt><dd><p>If the command is detected to correspond to a source file, translate it.</p><ol><li>Given a compilation command, attach our <code>ASTExporter</code> clang plugin to the command and run it.</li><li>Our clang plugin emits the AST (Abstract Syntax Tree) as Biniou data that we deserialize. The AST format is described in <ahref="../ATDGenerated/Clang_ast_t/index.html"><code>Clang_ast_t</code></a> (and its Biniou API is in <ahref="../ATDGenerated/Clang_ast_b/index.html"><code>Clang_ast_b</code></a>).</li><li>If enabled, invoke translation to <ahref="../IR/Sil/index.html"><code>Sil</code></a> via <code>CFrontend</code>.</li><li>If enabled, invoke linters callbacks from <code>ASTLanguage</code> (see below). More on linters here: <ahref="http://fbinfer.com/docs/linters.html">http://fbinfer.com/docs/linters.html</a>.</li></ol></dd></dl><dl><dtclass="spec value"id="val-al_callback_ref"><ahref="#val-al_callback_ref"class="anchor"></a><code><spanclass="keyword">val</span> al_callback_ref : <span><span>(<ahref="../ClangFrontend/CFrontend_config/index.html#type-translation_unit_context">ClangFrontend.CFrontend_config.translation_unit_context</a><span>-></span><ahref="../ATDGenerated/Clang_ast_t/index.html#type-decl">ATDGenerated.Clang_ast_t.decl</a><span>-></span> unit)</span><ahref="../IStdlib/index.html#module-IStd">IStdlib.IStd</a>.ref</span></code></dt><dd><p>callback set by AL to avoid circular dependencies between clang/ and al/ without having to expose the clang-only types involved all the way to integration/</p></dd></dl></div></body></html>