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
15 KiB

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>JSourceFileInfo (infer.JavaFrontend.JSourceFileInfo)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><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">JavaFrontend</a> &#x00BB; JSourceFileInfo</nav><h1>Module <code>JavaFrontend.JSourceFileInfo</code></h1></header><div class="spec module" id="module-Array"><a href="#module-Array" class="anchor"></a><code><span class="keyword">module</span> <a href="Array/index.html">Array</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><dl><dt class="spec value" id="val-incr_linenum"><a href="#val-incr_linenum" class="anchor"></a><code><span class="keyword">val</span> incr_linenum : Stdlib.Lexing.lexbuf <span>&#45;&gt;</span> unit</code></dt><dd><p>classic Ocamllex function to update current lexbuf line at each end of line</p></dd></dl><dl><dt class="spec value" id="val-end_pos"><a href="#val-end_pos" class="anchor"></a><code><span class="keyword">val</span> end_pos : Stdlib.Lexing.lexbuf <span>&#45;&gt;</span> int * int</code></dt><dd><p>position of the char just after lexbuf</p></dd></dl><dl><dt class="spec value" id="val-location_suffix"><a href="#val-location_suffix" class="anchor"></a><code><span class="keyword">val</span> location_suffix : string <span>&#45;&gt;</span> Stdlib.Lexing.lexbuf <span>&#45;&gt;</span> int * int</code></dt><dd><p>return the exact position start of the suffix <code>classname</code> in <code>lexbuf</code></p></dd></dl><dl><dt class="spec value" id="val-location_start"><a href="#val-location_start" class="anchor"></a><code><span class="keyword">val</span> location_start : Stdlib.Lexing.lexbuf <span>&#45;&gt;</span> int * int</code></dt><dd><p>return the position start of <code>lexbuf</code></p></dd></dl><dl><dt class="spec type" id="type-expr"><a href="#type-expr" class="anchor"></a><code><span class="keyword">type</span> expr</code><code> = </code><table class="variant"><tr id="type-expr.AllocExpr" class="anchored"><td class="def constructor"><a href="#type-expr.AllocExpr" class="anchor"></a><code>| </code><code><span class="constructor">AllocExpr</span></code></td></tr><tr id="type-expr.OtherExpr" class="anchored"><td class="def constructor"><a href="#type-expr.OtherExpr" class="anchor"></a><code>| </code><code><span class="constructor">OtherExpr</span></code></td></tr></table></dt><dd><p>We traverse the structure of the source file by recording the encompassing blocks in a stack of frame. We use the stack to recover the full inner class name at bytecode level</p></dd></dl><dl><dt class="spec type" id="type-frame"><a href="#type-frame" class="anchor"></a><code><span class="keyword">type</span> frame</code><code> = </code><code>{</code><table class="record"><tr id="type-frame.short_class_name" class="anchored"><td class="def field"><a href="#type-frame.short_class_name" class="anchor"></a><code>short_class_name : string;</code></td></tr><tr id="type-frame.is_enum" class="anchored"><td class="def field"><a href="#type-frame.is_enum" class="anchor"></a><code>is_enum : bool;</code></td></tr><tr id="type-frame.next_anonymous_class" class="anchored"><td class="def field"><a href="#type-frame.next_anonymous_class" class="anchor"></a><code>next_anonymous_class : int;</code></td></tr><tr id="type-frame.opened_blocks" class="anchored"><td class="def field"><a href="#type-frame.opened_blocks" class="anchor"></a><code>opened_blocks : int;</code></td></tr><tr id="type-frame.exprs" class="anchored"><td class="def field"><a href="#type-frame.exprs" class="anchor"></a><code>exprs : <span><a href="index.html#type-expr">expr</a> list</span>;</code></td></tr></table><code>}</code></dt><dt class="spec type" id="type-state"><a href="#type-state