Skip to content

Commit 1a1e29f

Browse files
committed
Update documentation
1 parent e513c8e commit 1a1e29f

140 files changed

Lines changed: 19098 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

doc/html/cil/CIL.pdf

304 KB
Binary file not shown.

doc/html/cil/api/Alpha.html

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2+
<html>
3+
<head>
4+
<link rel="stylesheet" href="style.css" type="text/css">
5+
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
6+
<link rel="Start" href="index.html">
7+
<link rel="next" href="Cfg.html">
8+
<link rel="Up" href="index.html">
9+
<link title="Index of types" rel=Appendix href="index_types.html">
10+
<link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
11+
<link title="Index of values" rel=Appendix href="index_values.html">
12+
<link title="Index of class methods" rel=Appendix href="index_methods.html">
13+
<link title="Index of classes" rel=Appendix href="index_classes.html">
14+
<link title="Index of class types" rel=Appendix href="index_class_types.html">
15+
<link title="Index of modules" rel=Appendix href="index_modules.html">
16+
<link title="Index of module types" rel=Appendix href="index_module_types.html">
17+
<link title="Alpha" rel="Chapter" href="Alpha.html">
18+
<link title="Cfg" rel="Chapter" href="Cfg.html">
19+
<link title="Cil" rel="Chapter" href="Cil.html">
20+
<link title="Cillower" rel="Chapter" href="Cillower.html">
21+
<link title="Clist" rel="Chapter" href="Clist.html">
22+
<link title="Dataflow" rel="Chapter" href="Dataflow.html">
23+
<link title="Dominators" rel="Chapter" href="Dominators.html">
24+
<link title="Errormsg" rel="Chapter" href="Errormsg.html">
25+
<link title="Formatcil" rel="Chapter" href="Formatcil.html">
26+
<link title="Pretty" rel="Chapter" href="Pretty.html">
27+
<link title="Stats" rel="Chapter" href="Stats.html"><title>CIL API Documentation (version 1.7.1) : Alpha</title>
28+
</head>
29+
<body>
30+
<div class="navbar">&nbsp;<a class="up" href="index.html" title="Index">Up</a>
31+
&nbsp;<a class="post" href="Cfg.html" title="Cfg">Next</a>
32+
</div>
33+
<h1>Module <a href="type_Alpha.html">Alpha</a></h1>
34+
<pre><span class="keyword">module</span> Alpha: <code class="code">sig</code> <a href="Alpha.html">..</a> <code class="code">end</code></pre><div class="info">
35+
ALPHA conversion<br>
36+
</div>
37+
<hr width="100%">
38+
<pre><span id="TYPEundoAlphaElement"><span class="keyword">type</span> <code class="type">'a</code> undoAlphaElement</span> </pre>
39+
<div class="info">
40+
This is the type of the elements that are recorded by the alpha
41+
conversion functions in order to be able to undo changes to the tables
42+
they modify. Useful for implementing
43+
scoping<br>
44+
</div>
45+
46+
<pre><span id="TYPEalphaTableData"><span class="keyword">type</span> <code class="type">'a</code> alphaTableData</span> </pre>
47+
<div class="info">
48+
This is the type of the elements of the alpha renaming table. These
49+
elements can carry some data associated with each occurrence of the name.<br>
50+
</div>
51+
52+
<pre><span id="VALnewAlphaName"><span class="keyword">val</span> newAlphaName</span> : <code class="type">alphaTable:(string, 'a <a href="Alpha.html#TYPEalphaTableData">alphaTableData</a> ref) Hashtbl.t -><br> undolist:'a <a href="Alpha.html#TYPEundoAlphaElement">undoAlphaElement</a> list ref option -><br> lookupname:string -> data:'a -> string * 'a</code></pre><div class="info">
53+
Create a new name based on a given name. The new name is formed from a
54+
prefix (obtained from the given name by stripping a suffix consisting of ___
55+
followed by up to 9 digits), followed by a special separator and then by a
56+
positive integer suffix. The first argument is a table mapping name
57+
prefixes to some data that specifies what suffixes have been used and how
58+
to create the new one. This function updates the table with the new
59+
largest suffix generated. The "undolist" argument, when present, will be
60+
used by the function to record information that can be used by
61+
<a href="Alpha.html#VALundoAlphaChanges"><code class="code">Alpha.undoAlphaChanges</code></a> to undo those changes. Note that the undo
62+
information will be in reverse order in which the action occurred. Returns
63+
the new name and, if different from the lookupname, the location of the
64+
previous occurrence. This function knows about the location implicitly
65+
from the <a href="Cil.html#VALcurrentLoc"><code class="code">Cil.currentLoc</code></a>.<br>
66+
</div>
67+
<pre><span id="VALregisterAlphaName"><span class="keyword">val</span> registerAlphaName</span> : <code class="type">alphaTable:(string, 'a <a href="Alpha.html#TYPEalphaTableData">alphaTableData</a> ref) Hashtbl.t -><br> undolist:'a <a href="Alpha.html#TYPEundoAlphaElement">undoAlphaElement</a> list ref option -><br> lookupname:string -> data:'a -> unit</code></pre><div class="info">
68+
Register a name with an alpha conversion table to ensure that when later
69+
we call newAlphaName we do not end up generating this one<br>
70+
</div>
71+
<pre><span id="VALdocAlphaTable"><span class="keyword">val</span> docAlphaTable</span> : <code class="type">unit -><br> (string, 'a <a href="Alpha.html#TYPEalphaTableData">alphaTableData</a> ref) Hashtbl.t -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info">
72+
Split the name in preparation for newAlphaName. The prefix returned is
73+
used to index into the hashtable. The next result value is a separator
74+
(either empty or the separator chosen to separate the original name from
75+
the index)<br>
76+
</div>
77+
<pre><span id="VALgetAlphaPrefix"><span class="keyword">val</span> getAlphaPrefix</span> : <code class="type">lookupname:string -> string</code></pre><pre><span id="VALundoAlphaChanges"><span class="keyword">val</span> undoAlphaChanges</span> : <code class="type">alphaTable:(string, 'a <a href="Alpha.html#TYPEalphaTableData">alphaTableData</a> ref) Hashtbl.t -><br> undolist:'a <a href="Alpha.html#TYPEundoAlphaElement">undoAlphaElement</a> list -> unit</code></pre><div class="info">
78+
Undo the changes to a table<br>
79+
</div>
80+
</body></html>

doc/html/cil/api/Cfg.html

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2+
<html>
3+
<head>
4+
<link rel="stylesheet" href="style.css" type="text/css">
5+
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
6+
<link rel="Start" href="index.html">
7+
<link rel="previous" href="Alpha.html">
8+
<link rel="next" href="Cil.html">
9+
<link rel="Up" href="index.html">
10+
<link title="Index of types" rel=Appendix href="index_types.html">
11+
<link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
12+
<link title="Index of values" rel=Appendix href="index_values.html">
13+
<link title="Index of class methods" rel=Appendix href="index_methods.html">
14+
<link title="Index of classes" rel=Appendix href="index_classes.html">
15+
<link title="Index of class types" rel=Appendix href="index_class_types.html">
16+
<link title="Index of modules" rel=Appendix href="index_modules.html">
17+
<link title="Index of module types" rel=Appendix href="index_module_types.html">
18+
<link title="Alpha" rel="Chapter" href="Alpha.html">
19+
<link title="Cfg" rel="Chapter" href="Cfg.html">
20+
<link title="Cil" rel="Chapter" href="Cil.html">
21+
<link title="Cillower" rel="Chapter" href="Cillower.html">
22+
<link title="Clist" rel="Chapter" href="Clist.html">
23+
<link title="Dataflow" rel="Chapter" href="Dataflow.html">
24+
<link title="Dominators" rel="Chapter" href="Dominators.html">
25+
<link title="Errormsg" rel="Chapter" href="Errormsg.html">
26+
<link title="Formatcil" rel="Chapter" href="Formatcil.html">
27+
<link title="Pretty" rel="Chapter" href="Pretty.html">
28+
<link title="Stats" rel="Chapter" href="Stats.html"><title>CIL API Documentation (version 1.7.1) : Cfg</title>
29+
</head>
30+
<body>
31+
<div class="navbar"><a class="pre" href="Alpha.html" title="Alpha">Previous</a>
32+
&nbsp;<a class="up" href="index.html" title="Index">Up</a>
33+
&nbsp;<a class="post" href="Cil.html" title="Cil">Next</a>
34+
</div>
35+
<h1>Module <a href="type_Cfg.html">Cfg</a></h1>
36+
<pre><span class="keyword">module</span> Cfg: <code class="code">sig</code> <a href="Cfg.html">..</a> <code class="code">end</code></pre><div class="info">
37+
Code to compute the control-flow graph of a function or file.
38+
This will fill in the <code class="code">preds</code> and <code class="code">succs</code> fields of <a href="Cil.html#TYPEstmt"><code class="code">Cil.stmt</code></a>
39+
<p>
40+
41+
This is required for several other extensions, such as <a href="Dataflow.html"><code class="code">Dataflow</code></a>.<br>
42+
</div>
43+
<hr width="100%">
44+
<pre><span id="VALcomputeFileCFG"><span class="keyword">val</span> computeFileCFG</span> : <code class="type"><a href="Cil.html#TYPEfile">Cil.file</a> -> unit</code></pre><div class="info">
45+
Compute the CFG for an entire file, by calling cfgFun on each function.<br>
46+
</div>
47+
<pre><span id="VALclearFileCFG"><span class="keyword">val</span> clearFileCFG</span> : <code class="type"><a href="Cil.html#TYPEfile">Cil.file</a> -> unit</code></pre><div class="info">
48+
clear the sid, succs, and preds fields of each statement.<br>
49+
</div>
50+
<pre><span id="VALcfgFun"><span class="keyword">val</span> cfgFun</span> : <code class="type"><a href="Cil.html#TYPEfundec">Cil.fundec</a> -> int</code></pre><div class="info">
51+
Compute a control flow graph for fd. Stmts in fd have preds and succs
52+
filled in<br>
53+
</div>
54+
<pre><span id="VALclearCFGinfo"><span class="keyword">val</span> clearCFGinfo</span> : <code class="type"><a href="Cil.html#TYPEfundec">Cil.fundec</a> -> unit</code></pre><div class="info">
55+
clear the sid, succs, and preds fields of each statment in a function<br>
56+
</div>
57+
<pre><span id="VALprintCfgChannel"><span class="keyword">val</span> printCfgChannel</span> : <code class="type">out_channel -> <a href="Cil.html#TYPEfundec">Cil.fundec</a> -> unit</code></pre><div class="info">
58+
print control flow graph (in dot form) for fundec to channel<br>
59+
</div>
60+
<pre><span id="VALprintCfgFilename"><span class="keyword">val</span> printCfgFilename</span> : <code class="type">string -> <a href="Cil.html#TYPEfundec">Cil.fundec</a> -> unit</code></pre><div class="info">
61+
Print control flow graph (in dot form) for fundec to file<br>
62+
</div>
63+
<pre><span id="VALstart_id"><span class="keyword">val</span> start_id</span> : <code class="type">int ref</code></pre><div class="info">
64+
Next statement id that will be assigned.<br>
65+
</div>
66+
<pre><span id="VALallStmts"><span class="keyword">val</span> allStmts</span> : <code class="type"><a href="Cil.html#TYPEfile">Cil.file</a> -> <a href="Cil.html#TYPEstmt">Cil.stmt</a> list</code></pre><div class="info">
67+
Return all statements in a file - valid after computeFileCfg only<br>
68+
</div>
69+
</body></html>

0 commit comments

Comments
 (0)