Added: lucy/site/trunk/content/docs/c/Clownfish/Hash.mdtext
URL: 
http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Clownfish/Hash.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Clownfish/Hash.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Clownfish/Hash.mdtext Mon Apr  4 12:55:10 
2016
@@ -0,0 +1,237 @@
+Title: Clownfish::Hash – C API Documentation
+
+<div class="c-api">
+<h2>Clownfish::Hash</h2>
+<table>
+<tr>
+<td class="label">parcel</td>
+<td><a href="../cfish.html">Clownfish</a></td>
+</tr>
+<tr>
+<td class="label">class variable</td>
+<td><code><span class="prefix">CFISH_</span>HASH</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">cfish_</span>Hash</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">cfish_</span>Hash</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Clownfish/Hash.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Clownfish::Hash – Hashtable.</p>
+<h3>Description</h3>
+<p>Values are stored by reference and may be any kind of Obj.</p>
+<h3>Functions</h3>
+<dl>
+<dt id="func_new">new</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span>Hash* <span class="comment">// 
incremented</span>
+<span class="prefix">cfish_</span><strong>Hash_new</strong>(
+    size_t <strong>capacity</strong>
+);
+</code></pre>
+<p>Return a new Hash.</p>
+<dl>
+<dt>capacity</dt>
+<dd><p>The number of elements that the hash will be asked to
+hold initially.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_init">init</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span>Hash*
+<span class="prefix">cfish_</span><strong>Hash_init</strong>(
+    <span class="prefix">cfish_</span>Hash *<strong>self</strong>,
+    size_t <strong>capacity</strong>
+);
+</code></pre>
+<p>Initialize a Hash.</p>
+<dl>
+<dt>capacity</dt>
+<dd><p>The number of elements that the hash will be asked to
+hold initially.</p>
+</dd>
+</dl>
+</dd>
+</dl>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Clear">Clear</dt>
+<dd>
+<pre><code>void
+<span class="prefix">cfish_</span><strong>Hash_Clear</strong>(
+    <span class="prefix">cfish_</span>Hash *<strong>self</strong>
+);
+</code></pre>
+<p>Empty the hash of all key-value pairs.</p>
+</dd>
+<dt id="func_Store">Store</dt>
+<dd>
+<pre><code>void
+<span class="prefix">cfish_</span><strong>Hash_Store</strong>(
+    <span class="prefix">cfish_</span>Hash *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../Clownfish/String.html">String</a> *<strong>key</strong>,
+    <span class="prefix">cfish_</span><a href="../Clownfish/Obj.html">Obj</a> 
*<strong>value</strong> <span class="comment">// decremented</span>
+);
+</code></pre>
+<p>Store a key-value pair.</p>
+</dd>
+<dt id="func_Store_Utf8">Store_Utf8</dt>
+<dd>
+<pre><code>void
+<span class="prefix">cfish_</span><strong>Hash_Store_Utf8</strong>(
+    <span class="prefix">cfish_</span>Hash *<strong>self</strong>,
+    char *<strong>utf8</strong>,
+    size_t <strong>size</strong>,
+    <span class="prefix">cfish_</span><a href="../Clownfish/Obj.html">Obj</a> 
*<strong>value</strong> <span class="comment">// decremented</span>
+);
+</code></pre>
+<p>Store a key-value pair using a raw UTF-8 key.</p>
+<dl>
+<dt>utf8</dt>
+<dd><p>Pointer to UTF-8 character data of the key.</p>
+</dd>
+<dt>size</dt>
+<dd><p>Size of UTF-8 character data in bytes.</p>
+</dd>
+<dt>value</dt>
+<dd><p>The Obj to store.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Fetch">Fetch</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../Clownfish/Obj.html">Obj</a>*
+<span class="prefix">cfish_</span><strong>Hash_Fetch</strong>(
+    <span class="prefix">cfish_</span>Hash *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../Clownfish/String.html">String</a> *<strong>key</strong>
+);
+</code></pre>
+<p>Fetch the value associated with <code>key</code>.</p>
+<p><strong>Returns:</strong> the value, or NULL if <code>key</code> is not 
present.</p>
+</dd>
+<dt id="func_Fetch_Utf8">Fetch_Utf8</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../Clownfish/Obj.html">Obj</a>*
+<span class="prefix">cfish_</span><strong>Hash_Fetch_Utf8</strong>(
+    <span class="prefix">cfish_</span>Hash *<strong>self</strong>,
+    char *<strong>utf8</strong>,
+    size_t <strong>size</strong>
+);
+</code></pre>
+<p>Fetch the value associated with a raw UTF-8 key.</p>
+<dl>
+<dt>utf8</dt>
+<dd><p>Pointer to UTF-8 character data of the key.</p>
+</dd>
+<dt>size</dt>
+<dd><p>Size of UTF-8 character data in bytes.</p>
+</dd>
+</dl>
+<p><strong>Returns:</strong> the value, or NULL if <code>key</code> is not 
present.</p>
+</dd>
+<dt id="func_Delete">Delete</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../Clownfish/Obj.html">Obj</a>* <span class="comment">// 
incremented</span>
+<span class="prefix">cfish_</span><strong>Hash_Delete</strong>(
+    <span class="prefix">cfish_</span>Hash *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../Clownfish/String.html">String</a> *<strong>key</strong>
+);
+</code></pre>
+<p>Attempt to delete a key-value pair from the hash.</p>
+<p><strong>Returns:</strong> the value if <code>key</code> exists and thus 
deletion
+succeeds; otherwise NULL.</p>
+</dd>
+<dt id="func_Delete_Utf8">Delete_Utf8</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../Clownfish/Obj.html">Obj</a>* <span class="comment">// 
incremented</span>
+<span class="prefix">cfish_</span><strong>Hash_Delete_Utf8</strong>(
+    <span class="prefix">cfish_</span>Hash *<strong>self</strong>,
+    char *<strong>utf8</strong>,
+    size_t <strong>size</strong>
+);
+</code></pre>
+<p>Attempt to delete a key-value pair from the hash.</p>
+<dl>
+<dt>utf8</dt>
+<dd><p>Pointer to UTF-8 character data of the key.</p>
+</dd>
+<dt>size</dt>
+<dd><p>Size of UTF-8 character data in bytes.</p>
+</dd>
+</dl>
+<p><strong>Returns:</strong> the value if <code>key</code> exists and thus 
deletion
+succeeds; otherwise NULL.</p>
+</dd>
+<dt id="func_Has_Key">Has_Key</dt>
+<dd>
+<pre><code>bool
+<span class="prefix">cfish_</span><strong>Hash_Has_Key</strong>(
+    <span class="prefix">cfish_</span>Hash *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../Clownfish/String.html">String</a> *<strong>key</strong>
+);
+</code></pre>
+<p>Indicate whether the supplied <code>key</code> is present.</p>
+</dd>
+<dt id="func_Keys">Keys</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../Clownfish/Vector.html">Vector</a>* <span class="comment">// 
incremented</span>
+<span class="prefix">cfish_</span><strong>Hash_Keys</strong>(
+    <span class="prefix">cfish_</span>Hash *<strong>self</strong>
+);
+</code></pre>
+<p>Return the Hash’s keys.</p>
+</dd>
+<dt id="func_Values">Values</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../Clownfish/Vector.html">Vector</a>* <span class="comment">// 
incremented</span>
+<span class="prefix">cfish_</span><strong>Hash_Values</strong>(
+    <span class="prefix">cfish_</span>Hash *<strong>self</strong>
+);
+</code></pre>
+<p>Return the Hash’s values.</p>
+</dd>
+<dt id="func_Get_Size">Get_Size</dt>
+<dd>
+<pre><code>size_t
+<span class="prefix">cfish_</span><strong>Hash_Get_Size</strong>(
+    <span class="prefix">cfish_</span>Hash *<strong>self</strong>
+);
+</code></pre>
+<p>Return the number of key-value pairs.</p>
+</dd>
+<dt id="func_Equals">Equals</dt>
+<dd>
+<pre><code>bool
+<span class="prefix">cfish_</span><strong>Hash_Equals</strong>(
+    <span class="prefix">cfish_</span>Hash *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../Clownfish/Obj.html">Obj</a> 
*<strong>other</strong>
+);
+</code></pre>
+<p>Equality test.</p>
+<p><strong>Returns:</strong> true if <code>other</code> is a Hash with the 
same key-value pairs as
+<code>self</code>.  Keys and values are compared using their respective 
<code>Equals</code>
+methods.</p>
+</dd>
+<dt id="func_Destroy">Destroy</dt>
+<dd>
+<pre><code>void
+<span class="prefix">cfish_</span><strong>Hash_Destroy</strong>(
+    <span class="prefix">cfish_</span>Hash *<strong>self</strong>
+);
+</code></pre>
+<p>Generic destructor.  Frees the struct itself but not any complex
+member elements.</p>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Clownfish::Hash is a <a href="../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>

Added: lucy/site/trunk/content/docs/c/Clownfish/HashIterator.mdtext
URL: 
http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Clownfish/HashIterator.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Clownfish/HashIterator.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Clownfish/HashIterator.mdtext Mon Apr  4 
12:55:10 2016
@@ -0,0 +1,99 @@
+Title: Clownfish::HashIterator – C API Documentation
+
+<div class="c-api">
+<h2>Clownfish::HashIterator</h2>
+<table>
+<tr>
+<td class="label">parcel</td>
+<td><a href="../cfish.html">Clownfish</a></td>
+</tr>
+<tr>
+<td class="label">class variable</td>
+<td><code><span class="prefix">CFISH_</span>HASHITERATOR</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">cfish_</span>HashIterator</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">cfish_</span>HashIter</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Clownfish/HashIterator.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Clownfish::HashIterator – Hashtable Iterator.</p>
+<h3>Functions</h3>
+<dl>
+<dt id="func_new">new</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span>HashIterator* <span 
class="comment">// incremented</span>
+<span class="prefix">cfish_</span><strong>HashIter_new</strong>(
+    <span class="prefix">cfish_</span><a 
href="../Clownfish/Hash.html">Hash</a> *<strong>hash</strong>
+);
+</code></pre>
+<p>Return a HashIterator for <code>hash</code>.</p>
+</dd>
+<dt id="func_init">init</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span>HashIterator*
+<span class="prefix">cfish_</span><strong>HashIter_init</strong>(
+    <span class="prefix">cfish_</span>HashIterator *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../Clownfish/Hash.html">Hash</a> *<strong>hash</strong>
+);
+</code></pre>
+<p>Initialize a HashIterator for <code>hash</code>.</p>
+</dd>
+</dl>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Next">Next</dt>
+<dd>
+<pre><code>bool
+<span class="prefix">cfish_</span><strong>HashIter_Next</strong>(
+    <span class="prefix">cfish_</span>HashIterator *<strong>self</strong>
+);
+</code></pre>
+<p>Advance the iterator to the next key-value pair.</p>
+<p><strong>Returns:</strong> true if there’s another key-value pair, false 
if the iterator
+is exhausted.</p>
+</dd>
+<dt id="func_Get_Key">Get_Key</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../Clownfish/String.html">String</a>*
+<span class="prefix">cfish_</span><strong>HashIter_Get_Key</strong>(
+    <span class="prefix">cfish_</span>HashIterator *<strong>self</strong>
+);
+</code></pre>
+<p>Return the key of the current key-value pair.  It’s not allowed to
+call this method before <a 
href="../Clownfish/HashIterator.html#func_Next">Next()</a> was called for the 
first time or
+after the iterator was exhausted.</p>
+</dd>
+<dt id="func_Get_Value">Get_Value</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../Clownfish/Obj.html">Obj</a>*
+<span class="prefix">cfish_</span><strong>HashIter_Get_Value</strong>(
+    <span class="prefix">cfish_</span>HashIterator *<strong>self</strong>
+);
+</code></pre>
+<p>Return the value of the current key-value pair.  It’s not allowed to
+call this method before <a 
href="../Clownfish/HashIterator.html#func_Next">Next()</a> was called for the 
first time or
+after the iterator was exhausted.</p>
+</dd>
+<dt id="func_Destroy">Destroy</dt>
+<dd>
+<pre><code>void
+<span class="prefix">cfish_</span><strong>HashIter_Destroy</strong>(
+    <span class="prefix">cfish_</span>HashIterator *<strong>self</strong>
+);
+</code></pre>
+<p>Generic destructor.  Frees the struct itself but not any complex
+member elements.</p>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Clownfish::HashIterator is a <a 
href="../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>

Added: lucy/site/trunk/content/docs/c/Clownfish/Integer.mdtext
URL: 
http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Clownfish/Integer.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Clownfish/Integer.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Clownfish/Integer.mdtext Mon Apr  4 12:55:10 
2016
@@ -0,0 +1,129 @@
+Title: Clownfish::Integer – C API Documentation
+
+<div class="c-api">
+<h2>Clownfish::Integer</h2>
+<table>
+<tr>
+<td class="label">parcel</td>
+<td><a href="../cfish.html">Clownfish</a></td>
+</tr>
+<tr>
+<td class="label">class variable</td>
+<td><code><span class="prefix">CFISH_</span>INTEGER</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">cfish_</span>Integer</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">cfish_</span>Int</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Clownfish/Num.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Clownfish::Integer – Immutable 64-bit signed integer.</p>
+<h3>Functions</h3>
+<dl>
+<dt id="func_new">new</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span>Integer*
+<span class="prefix">cfish_</span><strong>Int_new</strong>(
+    int64_t <strong>value</strong>
+);
+</code></pre>
+<p>Return a new Integer.</p>
+<dl>
+<dt>value</dt>
+<dd><p>Initial value.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_init">init</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span>Integer*
+<span class="prefix">cfish_</span><strong>Int_init</strong>(
+    <span class="prefix">cfish_</span>Integer *<strong>self</strong>,
+    int64_t <strong>value</strong>
+);
+</code></pre>
+<p>Initialize an Integer.</p>
+<dl>
+<dt>value</dt>
+<dd><p>Initial value.</p>
+</dd>
+</dl>
+</dd>
+</dl>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Get_Value">Get_Value</dt>
+<dd>
+<pre><code>int64_t
+<span class="prefix">cfish_</span><strong>Int_Get_Value</strong>(
+    <span class="prefix">cfish_</span>Integer *<strong>self</strong>
+);
+</code></pre>
+<p>Return the value of the Integer.</p>
+</dd>
+<dt id="func_To_F64">To_F64</dt>
+<dd>
+<pre><code>double
+<span class="prefix">cfish_</span><strong>Int_To_F64</strong>(
+    <span class="prefix">cfish_</span>Integer *<strong>self</strong>
+);
+</code></pre>
+<p>Convert the Integer to floating point.</p>
+</dd>
+<dt id="func_To_String">To_String</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../Clownfish/String.html">String</a>* <span class="comment">// 
incremented</span>
+<span class="prefix">cfish_</span><strong>Int_To_String</strong>(
+    <span class="prefix">cfish_</span>Integer *<strong>self</strong>
+);
+</code></pre>
+<p>Return the Integer formatted as String.</p>
+</dd>
+<dt id="func_Equals">Equals</dt>
+<dd>
+<pre><code>bool
+<span class="prefix">cfish_</span><strong>Int_Equals</strong>(
+    <span class="prefix">cfish_</span>Integer *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../Clownfish/Obj.html">Obj</a> 
*<strong>other</strong>
+);
+</code></pre>
+<p>Indicate whether two numbers are the same.</p>
+<p><strong>Returns:</strong> true if <code>other</code> is an Integer or Float 
with the same value as
+<code>self</code>.</p>
+</dd>
+<dt id="func_Compare_To">Compare_To</dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">cfish_</span><strong>Int_Compare_To</strong>(
+    <span class="prefix">cfish_</span>Integer *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../Clownfish/Obj.html">Obj</a> 
*<strong>other</strong>
+);
+</code></pre>
+<p>Indicate whether one number is less than, equal to, or greater than
+another.  Throws an exception if <code>other</code> is neither an Integer nor a
+Float.</p>
+<p><strong>Returns:</strong> 0 if the numbers are equal, a negative number if 
<code>self</code> is
+less than <code>other</code>, and a positive number if <code>self</code> is 
greater than
+<code>other</code>.</p>
+</dd>
+<dt id="func_Clone">Clone</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span>Integer* <span class="comment">// 
incremented</span>
+<span class="prefix">cfish_</span><strong>Int_Clone</strong>(
+    <span class="prefix">cfish_</span>Integer *<strong>self</strong>
+);
+</code></pre>
+<p>Return a clone of the object.</p>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Clownfish::Integer is a <a 
href="../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>

Added: lucy/site/trunk/content/docs/c/Clownfish/Obj.mdtext
URL: 
http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Clownfish/Obj.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Clownfish/Obj.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Clownfish/Obj.mdtext Mon Apr  4 12:55:10 2016
@@ -0,0 +1,135 @@
+Title: Clownfish::Obj – C API Documentation
+
+<div class="c-api">
+<h2>Clownfish::Obj</h2>
+<table>
+<tr>
+<td class="label">parcel</td>
+<td><a href="../cfish.html">Clownfish</a></td>
+</tr>
+<tr>
+<td class="label">class variable</td>
+<td><code><span class="prefix">CFISH_</span>OBJ</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">cfish_</span>Obj</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">cfish_</span>Obj</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Clownfish/Obj.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Clownfish::Obj – Base class for all objects.</p>
+<h3>Functions</h3>
+<dl>
+<dt id="func_init">init</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span>Obj*
+<span class="prefix">cfish_</span><strong>Obj_init</strong>(
+    <span class="prefix">cfish_</span>Obj *<strong>self</strong>
+);
+</code></pre>
+<p>Abstract initializer.</p>
+</dd>
+<dt id="func_get_class">get_class</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../Clownfish/Class.html">Class</a>*
+<span class="prefix">cfish_</span><strong>Obj_get_class</strong>(
+    <span class="prefix">cfish_</span>Obj *<strong>self</strong>
+);
+</code></pre>
+<p>Return the object’s Class.</p>
+</dd>
+<dt id="func_get_class_name">get_class_name</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../Clownfish/String.html">String</a>*
+<span class="prefix">cfish_</span><strong>Obj_get_class_name</strong>(
+    <span class="prefix">cfish_</span>Obj *<strong>self</strong>
+);
+</code></pre>
+<p>Return the name of the class that the object belongs to.</p>
+</dd>
+<dt id="func_is_a">is_a</dt>
+<dd>
+<pre><code>bool
+<span class="prefix">cfish_</span><strong>Obj_is_a</strong>(
+    <span class="prefix">cfish_</span>Obj *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../Clownfish/Class.html">Class</a> *<strong>ancestor</strong>
+);
+</code></pre>
+<p>Indicate whether the object is a descendent of <code>ancestor</code>.</p>
+</dd>
+</dl>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Clone">Clone <span class="comment">(abstract)</span></dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span>Obj* <span class="comment">// 
incremented</span>
+<span class="prefix">cfish_</span><strong>Obj_Clone</strong>(
+    <span class="prefix">cfish_</span>Obj *<strong>self</strong>
+);
+</code></pre>
+<p>Return a clone of the object.</p>
+</dd>
+<dt id="func_Equals">Equals</dt>
+<dd>
+<pre><code>bool
+<span class="prefix">cfish_</span><strong>Obj_Equals</strong>(
+    <span class="prefix">cfish_</span>Obj *<strong>self</strong>,
+    <span class="prefix">cfish_</span>Obj *<strong>other</strong>
+);
+</code></pre>
+<p>Indicate whether two objects are the same.  By default, compares the
+memory address.</p>
+<dl>
+<dt>other</dt>
+<dd><p>Another Obj.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Compare_To">Compare_To <span 
class="comment">(abstract)</span></dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">cfish_</span><strong>Obj_Compare_To</strong>(
+    <span class="prefix">cfish_</span>Obj *<strong>self</strong>,
+    <span class="prefix">cfish_</span>Obj *<strong>other</strong>
+);
+</code></pre>
+<p>Indicate whether one object is less than, equal to, or greater than
+another.</p>
+<dl>
+<dt>other</dt>
+<dd><p>Another Obj.</p>
+</dd>
+</dl>
+<p><strong>Returns:</strong> 0 if the objects are equal, a negative number if
+<code>self</code> is less than <code>other</code>, and a positive
+number if <code>self</code> is greater than <code>other</code>.</p>
+</dd>
+<dt id="func_Destroy">Destroy</dt>
+<dd>
+<pre><code>void
+<span class="prefix">cfish_</span><strong>Obj_Destroy</strong>(
+    <span class="prefix">cfish_</span>Obj *<strong>self</strong>
+);
+</code></pre>
+<p>Generic destructor.  Frees the struct itself but not any complex
+member elements.</p>
+</dd>
+<dt id="func_To_String">To_String</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../Clownfish/String.html">String</a>* <span class="comment">// 
incremented</span>
+<span class="prefix">cfish_</span><strong>Obj_To_String</strong>(
+    <span class="prefix">cfish_</span>Obj *<strong>self</strong>
+);
+</code></pre>
+<p>Generic stringification: “ClassName@hex_mem_address”.</p>
+</dd>
+</dl>
+</div>

Added: lucy/site/trunk/content/docs/c/Clownfish/String.mdtext
URL: 
http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Clownfish/String.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Clownfish/String.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Clownfish/String.mdtext Mon Apr  4 12:55:10 
2016
@@ -0,0 +1,657 @@
+Title: Clownfish::String – C API Documentation
+
+<div class="c-api">
+<h2>Clownfish::String</h2>
+<table>
+<tr>
+<td class="label">parcel</td>
+<td><a href="../cfish.html">Clownfish</a></td>
+</tr>
+<tr>
+<td class="label">class variable</td>
+<td><code><span class="prefix">CFISH_</span>STRING</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">cfish_</span>String</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">cfish_</span>Str</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Clownfish/String.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Clownfish::String – Immutable string holding Unicode characters.</p>
+<h3>Functions</h3>
+<dl>
+<dt id="func_new_from_utf8">new_from_utf8</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span>String* <span class="comment">// 
incremented</span>
+<span class="prefix">cfish_</span><strong>Str_new_from_utf8</strong>(
+    char *<strong>utf8</strong>,
+    size_t <strong>size</strong>
+);
+</code></pre>
+<p>Return a String which holds a copy of the supplied UTF-8 character
+data after checking for validity.</p>
+<dl>
+<dt>utf8</dt>
+<dd><p>Pointer to UTF-8 character data.</p>
+</dd>
+<dt>size</dt>
+<dd><p>Size of UTF-8 character data in bytes.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_new_from_trusted_utf8">new_from_trusted_utf8</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span>String* <span class="comment">// 
incremented</span>
+<span class="prefix">cfish_</span><strong>Str_new_from_trusted_utf8</strong>(
+    char *<strong>utf8</strong>,
+    size_t <strong>size</strong>
+);
+</code></pre>
+<p>Return a String which holds a copy of the supplied UTF-8 character
+data, skipping validity checks.</p>
+<dl>
+<dt>utf8</dt>
+<dd><p>Pointer to UTF-8 character data.</p>
+</dd>
+<dt>size</dt>
+<dd><p>Size of UTF-8 character data in bytes.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_init_from_trusted_utf8">init_from_trusted_utf8</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span>String*
+<span class="prefix">cfish_</span><strong>Str_init_from_trusted_utf8</strong>(
+    <span class="prefix">cfish_</span>String *<strong>self</strong>,
+    char *<strong>utf8</strong>,
+    size_t <strong>size</strong>
+);
+</code></pre>
+<p>Initialize a String which holds a copy of the supplied UTF-8 character
+data, skipping validity checks.</p>
+<dl>
+<dt>utf8</dt>
+<dd><p>Pointer to UTF-8 character data.</p>
+</dd>
+<dt>size</dt>
+<dd><p>Size of UTF-8 character data in bytes.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_new_steal_utf8">new_steal_utf8</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span>String* <span class="comment">// 
incremented</span>
+<span class="prefix">cfish_</span><strong>Str_new_steal_utf8</strong>(
+    char *<strong>utf8</strong>,
+    size_t <strong>size</strong>
+);
+</code></pre>
+<p>Return a String which assumes ownership of the supplied buffer
+containing UTF-8 character data after checking for validity.</p>
+<dl>
+<dt>utf8</dt>
+<dd><p>Pointer to UTF-8 character data.</p>
+</dd>
+<dt>size</dt>
+<dd><p>Size of UTF-8 character data in bytes.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_new_steal_trusted_utf8">new_steal_trusted_utf8</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span>String* <span class="comment">// 
incremented</span>
+<span class="prefix">cfish_</span><strong>Str_new_steal_trusted_utf8</strong>(
+    char *<strong>utf8</strong>,
+    size_t <strong>size</strong>
+);
+</code></pre>
+<p>Return a String which assumes ownership of the supplied buffer
+containing UTF-8 character data, skipping validity checks.</p>
+<dl>
+<dt>utf8</dt>
+<dd><p>Pointer to UTF-8 character data.</p>
+</dd>
+<dt>size</dt>
+<dd><p>Size of UTF-8 character data in bytes.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_init_steal_trusted_utf8">init_steal_trusted_utf8</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span>String*
+<span class="prefix">cfish_</span><strong>Str_init_steal_trusted_utf8</strong>(
+    <span class="prefix">cfish_</span>String *<strong>self</strong>,
+    char *<strong>utf8</strong>,
+    size_t <strong>size</strong>
+);
+</code></pre>
+<p>Initialize a String which assumes ownership of the supplied buffer
+containing UTF-8 character data, skipping validity checks.</p>
+<dl>
+<dt>utf8</dt>
+<dd><p>Pointer to UTF-8 character data.</p>
+</dd>
+<dt>size</dt>
+<dd><p>Size of UTF-8 character data in bytes.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_new_wrap_utf8">new_wrap_utf8</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span>String* <span class="comment">// 
incremented</span>
+<span class="prefix">cfish_</span><strong>Str_new_wrap_utf8</strong>(
+    char *<strong>utf8</strong>,
+    size_t <strong>size</strong>
+);
+</code></pre>
+<p>Return a String which wraps an external buffer containing UTF-8
+character data after checking for validity.  The buffer must stay
+unchanged for the lifetime of the String.</p>
+<dl>
+<dt>utf8</dt>
+<dd><p>Pointer to UTF-8 character data.</p>
+</dd>
+<dt>size</dt>
+<dd><p>Size of UTF-8 character data in bytes.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_new_wrap_trusted_utf8">new_wrap_trusted_utf8</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span>String* <span class="comment">// 
incremented</span>
+<span class="prefix">cfish_</span><strong>Str_new_wrap_trusted_utf8</strong>(
+    char *<strong>utf8</strong>,
+    size_t <strong>size</strong>
+);
+</code></pre>
+<p>Return a String which wraps an external buffer containing UTF-8
+character data, skipping validity checks.  The buffer must stay
+unchanged for the lifetime of the String.</p>
+<dl>
+<dt>utf8</dt>
+<dd><p>Pointer to UTF-8 character data.</p>
+</dd>
+<dt>size</dt>
+<dd><p>Size of UTF-8 character data in bytes.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_init_wrap_trusted_utf8">init_wrap_trusted_utf8</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span>String*
+<span class="prefix">cfish_</span><strong>Str_init_wrap_trusted_utf8</strong>(
+    <span class="prefix">cfish_</span>String *<strong>self</strong>,
+    char *<strong>utf8</strong>,
+    size_t <strong>size</strong>
+);
+</code></pre>
+<p>Initialize a String which wraps an external buffer containing UTF-8
+character data after checking for validity.</p>
+<dl>
+<dt>utf8</dt>
+<dd><p>Pointer to UTF-8 character data.</p>
+</dd>
+<dt>size</dt>
+<dd><p>Size of UTF-8 character data in bytes.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_new_from_char">new_from_char</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span>String* <span class="comment">// 
incremented</span>
+<span class="prefix">cfish_</span><strong>Str_new_from_char</strong>(
+    int32_t <strong>code_point</strong>
+);
+</code></pre>
+<p>Return a String which holds a single character.</p>
+<dl>
+<dt>code_point</dt>
+<dd><p>Unicode code point of the character.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_newf">newf</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span>String* <span class="comment">// 
incremented</span>
+<span class="prefix">cfish_</span><strong>Str_newf</strong>(
+    char *<strong>pattern</strong>
+);
+</code></pre>
+<p>Return a String with content expanded from a pattern and arguments
+conforming to the spec defined by <a 
href="../Clownfish/CharBuf.html#func_VCatF">VCatF()</a>.</p>
+<p>Note: a user-supplied <code>pattern</code> string is a security hole
+and must not be allowed.</p>
+<dl>
+<dt>pattern</dt>
+<dd><p>A format string.</p>
+</dd>
+</dl>
+</dd>
+</dl>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Cat">Cat</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span>String* <span class="comment">// 
incremented</span>
+<span class="prefix">cfish_</span><strong>Str_Cat</strong>(
+    <span class="prefix">cfish_</span>String *<strong>self</strong>,
+    <span class="prefix">cfish_</span>String *<strong>other</strong>
+);
+</code></pre>
+<p>Return the concatenation of the String and <code>other</code>.</p>
+</dd>
+<dt id="func_Cat_Utf8">Cat_Utf8</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span>String* <span class="comment">// 
incremented</span>
+<span class="prefix">cfish_</span><strong>Str_Cat_Utf8</strong>(
+    <span class="prefix">cfish_</span>String *<strong>self</strong>,
+    char *<strong>utf8</strong>,
+    size_t <strong>size</strong>
+);
+</code></pre>
+<p>Return the concatenation of the String and the supplied UTF-8
+character data after checking for validity.</p>
+<dl>
+<dt>utf8</dt>
+<dd><p>Pointer to UTF-8 character data.</p>
+</dd>
+<dt>size</dt>
+<dd><p>Size of UTF-8 character data in bytes.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Cat_Trusted_Utf8">Cat_Trusted_Utf8</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span>String* <span class="comment">// 
incremented</span>
+<span class="prefix">cfish_</span><strong>Str_Cat_Trusted_Utf8</strong>(
+    <span class="prefix">cfish_</span>String *<strong>self</strong>,
+    char *<strong>utf8</strong>,
+    size_t <strong>size</strong>
+);
+</code></pre>
+<p>Return the concatenation of the String and the supplied UTF-8
+character data, skipping validity checks.</p>
+<dl>
+<dt>utf8</dt>
+<dd><p>Pointer to UTF-8 character data.</p>
+</dd>
+<dt>size</dt>
+<dd><p>Size of UTF-8 character data in bytes.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_To_I64">To_I64</dt>
+<dd>
+<pre><code>int64_t
+<span class="prefix">cfish_</span><strong>Str_To_I64</strong>(
+    <span class="prefix">cfish_</span>String *<strong>self</strong>
+);
+</code></pre>
+<p>Extract a 64-bit integer from a decimal string.  See <a 
href="../Clownfish/String.html#func_BaseX_To_I64">BaseX_To_I64()</a>
+for details.</p>
+</dd>
+<dt id="func_BaseX_To_I64">BaseX_To_I64</dt>
+<dd>
+<pre><code>int64_t
+<span class="prefix">cfish_</span><strong>Str_BaseX_To_I64</strong>(
+    <span class="prefix">cfish_</span>String *<strong>self</strong>,
+    uint32_t <strong>base</strong>
+);
+</code></pre>
+<p>Extract a 64-bit integer from a variable-base stringified version.
+Expects an optional minus sign followed by base-x digits, stopping at
+any non-digit character.  Returns zero if no digits are found.  If the
+value exceeds the range of an <code>int64_t</code>, the result is 
undefined.</p>
+<dl>
+<dt>base</dt>
+<dd><p>A base between 2 and 36.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_To_F64">To_F64</dt>
+<dd>
+<pre><code>double
+<span class="prefix">cfish_</span><strong>Str_To_F64</strong>(
+    <span class="prefix">cfish_</span>String *<strong>self</strong>
+);
+</code></pre>
+<p>Convert a string to a floating-point number using the C library
+function <code>strtod</code>.</p>
+</dd>
+<dt id="func_Starts_With">Starts_With</dt>
+<dd>
+<pre><code>bool
+<span class="prefix">cfish_</span><strong>Str_Starts_With</strong>(
+    <span class="prefix">cfish_</span>String *<strong>self</strong>,
+    <span class="prefix">cfish_</span>String *<strong>prefix</strong>
+);
+</code></pre>
+<p>Test whether the String starts with <code>prefix</code>.</p>
+</dd>
+<dt id="func_Starts_With_Utf8">Starts_With_Utf8</dt>
+<dd>
+<pre><code>bool
+<span class="prefix">cfish_</span><strong>Str_Starts_With_Utf8</strong>(
+    <span class="prefix">cfish_</span>String *<strong>self</strong>,
+    char *<strong>utf8</strong>,
+    size_t <strong>size</strong>
+);
+</code></pre>
+<p>Test whether the String starts with a prefix supplied as raw UTF-8.</p>
+<dl>
+<dt>utf8</dt>
+<dd><p>Pointer to UTF-8 character data.</p>
+</dd>
+<dt>size</dt>
+<dd><p>Size of UTF-8 character data in bytes.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Ends_With">Ends_With</dt>
+<dd>
+<pre><code>bool
+<span class="prefix">cfish_</span><strong>Str_Ends_With</strong>(
+    <span class="prefix">cfish_</span>String *<strong>self</strong>,
+    <span class="prefix">cfish_</span>String *<strong>suffix</strong>
+);
+</code></pre>
+<p>Test whether the String ends with <code>suffix</code>.</p>
+</dd>
+<dt id="func_Ends_With_Utf8">Ends_With_Utf8</dt>
+<dd>
+<pre><code>bool
+<span class="prefix">cfish_</span><strong>Str_Ends_With_Utf8</strong>(
+    <span class="prefix">cfish_</span>String *<strong>self</strong>,
+    char *<strong>utf8</strong>,
+    size_t <strong>size</strong>
+);
+</code></pre>
+<p>Test whether the String ends with a suffix supplied as raw UTF-8.</p>
+<dl>
+<dt>utf8</dt>
+<dd><p>Pointer to UTF-8 character data.</p>
+</dd>
+<dt>size</dt>
+<dd><p>Size of UTF-8 character data in bytes.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Contains">Contains</dt>
+<dd>
+<pre><code>bool
+<span class="prefix">cfish_</span><strong>Str_Contains</strong>(
+    <span class="prefix">cfish_</span>String *<strong>self</strong>,
+    <span class="prefix">cfish_</span>String *<strong>substring</strong>
+);
+</code></pre>
+<p>Test whether the String contains <code>substring</code>.</p>
+</dd>
+<dt id="func_Contains_Utf8">Contains_Utf8</dt>
+<dd>
+<pre><code>bool
+<span class="prefix">cfish_</span><strong>Str_Contains_Utf8</strong>(
+    <span class="prefix">cfish_</span>String *<strong>self</strong>,
+    char *<strong>utf8</strong>,
+    size_t <strong>size</strong>
+);
+</code></pre>
+<p>Test whether the String contains a substring supplied as raw UTF-8.</p>
+<dl>
+<dt>utf8</dt>
+<dd><p>Pointer to UTF-8 character data.</p>
+</dd>
+<dt>size</dt>
+<dd><p>Size of UTF-8 character data in bytes.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Find">Find</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../Clownfish/StringIterator.html">StringIterator</a>* <span 
class="comment">// incremented</span>
+<span class="prefix">cfish_</span><strong>Str_Find</strong>(
+    <span class="prefix">cfish_</span>String *<strong>self</strong>,
+    <span class="prefix">cfish_</span>String *<strong>substring</strong>
+);
+</code></pre>
+<p>Return a <a href="../Clownfish/StringIterator.html">StringIterator</a> 
pointing to the first occurrence of
+<code>substring</code> within the String, or NULL if the substring does not
+match.</p>
+</dd>
+<dt id="func_Find_Utf8">Find_Utf8</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../Clownfish/StringIterator.html">StringIterator</a>* <span 
class="comment">// incremented</span>
+<span class="prefix">cfish_</span><strong>Str_Find_Utf8</strong>(
+    <span class="prefix">cfish_</span>String *<strong>self</strong>,
+    char *<strong>utf8</strong>,
+    size_t <strong>size</strong>
+);
+</code></pre>
+<p>Return a <a href="../Clownfish/StringIterator.html">StringIterator</a> 
pointing to the first occurrence of the
+substring within the String, or NULL if the substring does not
+match.  The substring is supplied as raw UTF-8.</p>
+<dl>
+<dt>utf8</dt>
+<dd><p>Pointer to UTF-8 character data.</p>
+</dd>
+<dt>size</dt>
+<dd><p>Size of UTF-8 character data in bytes.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Equals">Equals</dt>
+<dd>
+<pre><code>bool
+<span class="prefix">cfish_</span><strong>Str_Equals</strong>(
+    <span class="prefix">cfish_</span>String *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../Clownfish/Obj.html">Obj</a> 
*<strong>other</strong>
+);
+</code></pre>
+<p>Equality test.</p>
+<p><strong>Returns:</strong> true if <code>other</code> is a String with the 
same character data as
+<code>self</code>.</p>
+</dd>
+<dt id="func_Equals_Utf8">Equals_Utf8</dt>
+<dd>
+<pre><code>bool
+<span class="prefix">cfish_</span><strong>Str_Equals_Utf8</strong>(
+    <span class="prefix">cfish_</span>String *<strong>self</strong>,
+    char *<strong>utf8</strong>,
+    size_t <strong>size</strong>
+);
+</code></pre>
+<p>Test whether the String matches the supplied UTF-8 character data.</p>
+</dd>
+<dt id="func_Length">Length</dt>
+<dd>
+<pre><code>size_t
+<span class="prefix">cfish_</span><strong>Str_Length</strong>(
+    <span class="prefix">cfish_</span>String *<strong>self</strong>
+);
+</code></pre>
+<p>Return the number of Unicode code points the String contains.</p>
+</dd>
+<dt id="func_Get_Size">Get_Size</dt>
+<dd>
+<pre><code>size_t
+<span class="prefix">cfish_</span><strong>Str_Get_Size</strong>(
+    <span class="prefix">cfish_</span>String *<strong>self</strong>
+);
+</code></pre>
+<p>Return the number of bytes occupied by the String’s internal content.</p>
+</dd>
+<dt id="func_Get_Ptr8">Get_Ptr8</dt>
+<dd>
+<pre><code>char*
+<span class="prefix">cfish_</span><strong>Str_Get_Ptr8</strong>(
+    <span class="prefix">cfish_</span>String *<strong>self</strong>
+);
+</code></pre>
+<p>Return the internal backing array for the String if its internal
+encoding is UTF-8.  If it is not encoded as UTF-8 throw an exception.
+The character data is not null-terminated.</p>
+</dd>
+<dt id="func_To_Utf8">To_Utf8</dt>
+<dd>
+<pre><code>char*
+<span class="prefix">cfish_</span><strong>Str_To_Utf8</strong>(
+    <span class="prefix">cfish_</span>String *<strong>self</strong>
+);
+</code></pre>
+<p>Return a NULL-terminated copy of the string data in UTF-8 encoding.
+The buffer must be freed by the caller.</p>
+</dd>
+<dt id="func_To_ByteBuf">To_ByteBuf</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../Clownfish/ByteBuf.html">ByteBuf</a>* <span class="comment">// 
incremented</span>
+<span class="prefix">cfish_</span><strong>Str_To_ByteBuf</strong>(
+    <span class="prefix">cfish_</span>String *<strong>self</strong>
+);
+</code></pre>
+<p>Return a ByteBuf which holds a copy of the String.</p>
+</dd>
+<dt id="func_Clone">Clone</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span>String* <span class="comment">// 
incremented</span>
+<span class="prefix">cfish_</span><strong>Str_Clone</strong>(
+    <span class="prefix">cfish_</span>String *<strong>self</strong>
+);
+</code></pre>
+<p>Return a clone of the object.</p>
+</dd>
+<dt id="func_Compare_To">Compare_To</dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">cfish_</span><strong>Str_Compare_To</strong>(
+    <span class="prefix">cfish_</span>String *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../Clownfish/Obj.html">Obj</a> 
*<strong>other</strong>
+);
+</code></pre>
+<p>Indicate whether one String is less than, equal to, or greater than
+another.  The Unicode code points of the Strings are compared
+lexicographically.  Throws an exception if <code>other</code> is not a 
String.</p>
+<p><strong>Returns:</strong> 0 if the Strings are equal, a negative number if 
<code>self</code> is less
+than <code>other</code>, and a positive number if <code>self</code> is greater 
than <code>other</code>.</p>
+</dd>
+<dt id="func_To_String">To_String</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span>String* <span class="comment">// 
incremented</span>
+<span class="prefix">cfish_</span><strong>Str_To_String</strong>(
+    <span class="prefix">cfish_</span>String *<strong>self</strong>
+);
+</code></pre>
+<p>Return a copy of the String.</p>
+</dd>
+<dt id="func_Trim">Trim</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span>String* <span class="comment">// 
incremented</span>
+<span class="prefix">cfish_</span><strong>Str_Trim</strong>(
+    <span class="prefix">cfish_</span>String *<strong>self</strong>
+);
+</code></pre>
+<p>Return a copy of the String with Unicode whitespace characters
+removed from both top and tail.  Whitespace is any character that has
+the Unicode property <code>White_Space</code>.</p>
+</dd>
+<dt id="func_Trim_Top">Trim_Top</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span>String* <span class="comment">// 
incremented</span>
+<span class="prefix">cfish_</span><strong>Str_Trim_Top</strong>(
+    <span class="prefix">cfish_</span>String *<strong>self</strong>
+);
+</code></pre>
+<p>Return a copy of the String with leading Unicode whitespace
+removed. Whitespace is any character that has the Unicode property
+<code>White_Space</code>.</p>
+</dd>
+<dt id="func_Trim_Tail">Trim_Tail</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span>String* <span class="comment">// 
incremented</span>
+<span class="prefix">cfish_</span><strong>Str_Trim_Tail</strong>(
+    <span class="prefix">cfish_</span>String *<strong>self</strong>
+);
+</code></pre>
+<p>Return a copy of the String with trailing Unicode whitespace
+removed. Whitespace is any character that has the Unicode property
+<code>White_Space</code>.</p>
+</dd>
+<dt id="func_Code_Point_At">Code_Point_At</dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">cfish_</span><strong>Str_Code_Point_At</strong>(
+    <span class="prefix">cfish_</span>String *<strong>self</strong>,
+    size_t <strong>tick</strong>
+);
+</code></pre>
+<p>Return the Unicode code point located <code>tick</code> code points in from 
the
+top.  Return <code>CFISH_STR_OOB</code> if out of bounds.</p>
+</dd>
+<dt id="func_Code_Point_From">Code_Point_From</dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">cfish_</span><strong>Str_Code_Point_From</strong>(
+    <span class="prefix">cfish_</span>String *<strong>self</strong>,
+    size_t <strong>tick</strong>
+);
+</code></pre>
+<p>Return the Unicode code point located <code>tick</code> code points counting
+backwards from the end.  Return <code>CFISH_STR_OOB</code> if out of 
bounds.</p>
+</dd>
+<dt id="func_SubString">SubString</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span>String* <span class="comment">// 
incremented</span>
+<span class="prefix">cfish_</span><strong>Str_SubString</strong>(
+    <span class="prefix">cfish_</span>String *<strong>self</strong>,
+    size_t <strong>offset</strong>,
+    size_t <strong>length</strong>
+);
+</code></pre>
+<p>Return a new substring containing a copy of the specified range.</p>
+<dl>
+<dt>offset</dt>
+<dd><p>Offset from the top, in code points.</p>
+</dd>
+<dt>length</dt>
+<dd><p>The desired length of the substring, in code points.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Top">Top</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../Clownfish/StringIterator.html">StringIterator</a>* <span 
class="comment">// incremented</span>
+<span class="prefix">cfish_</span><strong>Str_Top</strong>(
+    <span class="prefix">cfish_</span>String *<strong>self</strong>
+);
+</code></pre>
+<p>Return an iterator initialized to the start of the string.</p>
+</dd>
+<dt id="func_Tail">Tail</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../Clownfish/StringIterator.html">StringIterator</a>* <span 
class="comment">// incremented</span>
+<span class="prefix">cfish_</span><strong>Str_Tail</strong>(
+    <span class="prefix">cfish_</span>String *<strong>self</strong>
+);
+</code></pre>
+<p>Return an iterator initialized to the end of the string.</p>
+</dd>
+<dt id="func_Destroy">Destroy</dt>
+<dd>
+<pre><code>void
+<span class="prefix">cfish_</span><strong>Str_Destroy</strong>(
+    <span class="prefix">cfish_</span>String *<strong>self</strong>
+);
+</code></pre>
+<p>Generic destructor.  Frees the struct itself but not any complex
+member elements.</p>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Clownfish::String is a <a 
href="../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>

Added: lucy/site/trunk/content/docs/c/Clownfish/StringIterator.mdtext
URL: 
http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Clownfish/StringIterator.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Clownfish/StringIterator.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Clownfish/StringIterator.mdtext Mon Apr  4 
12:55:10 2016
@@ -0,0 +1,266 @@
+Title: Clownfish::StringIterator – C API Documentation
+
+<div class="c-api">
+<h2>Clownfish::StringIterator</h2>
+<table>
+<tr>
+<td class="label">parcel</td>
+<td><a href="../cfish.html">Clownfish</a></td>
+</tr>
+<tr>
+<td class="label">class variable</td>
+<td><code><span class="prefix">CFISH_</span>STRINGITERATOR</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">cfish_</span>StringIterator</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">cfish_</span>StrIter</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Clownfish/String.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Clownfish::StringIterator – Iterate Unicode code points in a String.</p>
+<h3>Functions</h3>
+<dl>
+<dt id="func_crop">crop</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../Clownfish/String.html">String</a>* <span class="comment">// 
incremented</span>
+<span class="prefix">cfish_</span><strong>StrIter_crop</strong>(
+    <span class="prefix">cfish_</span>StringIterator *<strong>top</strong>,
+    <span class="prefix">cfish_</span>StringIterator *<strong>tail</strong>
+);
+</code></pre>
+<p>Return the substring between the top and tail iterators.</p>
+<dl>
+<dt>top</dt>
+<dd><p>Top iterator. Use start of string if NULL.</p>
+</dd>
+<dt>tail</dt>
+<dd><p>Tail iterator. Use end of string if NULL.</p>
+</dd>
+</dl>
+</dd>
+</dl>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Clone">Clone</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span>StringIterator* <span 
class="comment">// incremented</span>
+<span class="prefix">cfish_</span><strong>StrIter_Clone</strong>(
+    <span class="prefix">cfish_</span>StringIterator *<strong>self</strong>
+);
+</code></pre>
+<p>Return a clone of the object.</p>
+</dd>
+<dt id="func_Assign">Assign</dt>
+<dd>
+<pre><code>void
+<span class="prefix">cfish_</span><strong>StrIter_Assign</strong>(
+    <span class="prefix">cfish_</span>StringIterator *<strong>self</strong>,
+    <span class="prefix">cfish_</span>StringIterator *<strong>other</strong>
+);
+</code></pre>
+<p>Assign the source string and current position of <code>other</code> to 
<code>self</code>.</p>
+</dd>
+<dt id="func_Equals">Equals</dt>
+<dd>
+<pre><code>bool
+<span class="prefix">cfish_</span><strong>StrIter_Equals</strong>(
+    <span class="prefix">cfish_</span>StringIterator *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../Clownfish/Obj.html">Obj</a> 
*<strong>other</strong>
+);
+</code></pre>
+<p>Equality test.</p>
+<p><strong>Returns:</strong> true if <code>other</code> is a StringIterator 
with the same source
+string and character position as <code>self</code>.</p>
+</dd>
+<dt id="func_Compare_To">Compare_To</dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">cfish_</span><strong>StrIter_Compare_To</strong>(
+    <span class="prefix">cfish_</span>StringIterator *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../Clownfish/Obj.html">Obj</a> 
*<strong>other</strong>
+);
+</code></pre>
+<p>Indicate whether one StringIterator is less than, equal to, or
+greater than another by comparing their character positions. Throws an
+exception if <code>other</code> is not a StringIterator pointing to the same
+source string as <code>self</code>.</p>
+<p><strong>Returns:</strong> 0 if the StringIterators are equal, a negative 
number if <code>self</code>
+is less than <code>other</code>, and a positive number if <code>self</code> is 
greater than
+<code>other</code>.</p>
+</dd>
+<dt id="func_Has_Next">Has_Next</dt>
+<dd>
+<pre><code>bool
+<span class="prefix">cfish_</span><strong>StrIter_Has_Next</strong>(
+    <span class="prefix">cfish_</span>StringIterator *<strong>self</strong>
+);
+</code></pre>
+<p>Return true if the iterator is not at the end of the string.</p>
+</dd>
+<dt id="func_Has_Prev">Has_Prev</dt>
+<dd>
+<pre><code>bool
+<span class="prefix">cfish_</span><strong>StrIter_Has_Prev</strong>(
+    <span class="prefix">cfish_</span>StringIterator *<strong>self</strong>
+);
+</code></pre>
+<p>Return true if the iterator is not at the start of the string.</p>
+</dd>
+<dt id="func_Next">Next</dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">cfish_</span><strong>StrIter_Next</strong>(
+    <span class="prefix">cfish_</span>StringIterator *<strong>self</strong>
+);
+</code></pre>
+<p>Return the code point after the current position and advance the
+iterator. Return <code>CFISH_STR_OOB</code> at the end of the string.</p>
+</dd>
+<dt id="func_Prev">Prev</dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">cfish_</span><strong>StrIter_Prev</strong>(
+    <span class="prefix">cfish_</span>StringIterator *<strong>self</strong>
+);
+</code></pre>
+<p>Return the code point before the current position and go one step back.
+Return <code>CFISH_STR_OOB</code> at the start of the string.</p>
+</dd>
+<dt id="func_Advance">Advance</dt>
+<dd>
+<pre><code>size_t
+<span class="prefix">cfish_</span><strong>StrIter_Advance</strong>(
+    <span class="prefix">cfish_</span>StringIterator *<strong>self</strong>,
+    size_t <strong>num</strong>
+);
+</code></pre>
+<p>Skip code points.</p>
+<dl>
+<dt>num</dt>
+<dd><p>The number of code points to skip.</p>
+</dd>
+</dl>
+<p><strong>Returns:</strong> the number of code points actually skipped. This 
can be less
+than the requested number if the end of the string is reached.</p>
+</dd>
+<dt id="func_Recede">Recede</dt>
+<dd>
+<pre><code>size_t
+<span class="prefix">cfish_</span><strong>StrIter_Recede</strong>(
+    <span class="prefix">cfish_</span>StringIterator *<strong>self</strong>,
+    size_t <strong>num</strong>
+);
+</code></pre>
+<p>Skip code points backward.</p>
+<dl>
+<dt>num</dt>
+<dd><p>The number of code points to skip.</p>
+</dd>
+</dl>
+<p><strong>Returns:</strong> the number of code points actually skipped. This 
can be less
+than the requested number if the start of the string is reached.</p>
+</dd>
+<dt id="func_Skip_Whitespace">Skip_Whitespace</dt>
+<dd>
+<pre><code>size_t
+<span class="prefix">cfish_</span><strong>StrIter_Skip_Whitespace</strong>(
+    <span class="prefix">cfish_</span>StringIterator *<strong>self</strong>
+);
+</code></pre>
+<p>Skip whitespace.  Whitespace is any character that has the Unicode
+property <code>White_Space</code>.</p>
+<p><strong>Returns:</strong> the number of code points skipped.</p>
+</dd>
+<dt id="func_Skip_Whitespace_Back">Skip_Whitespace_Back</dt>
+<dd>
+<pre><code>size_t
+<span 
class="prefix">cfish_</span><strong>StrIter_Skip_Whitespace_Back</strong>(
+    <span class="prefix">cfish_</span>StringIterator *<strong>self</strong>
+);
+</code></pre>
+<p>Skip whitespace backward.  Whitespace is any character that has the
+Unicode property <code>White_Space</code>.</p>
+<p><strong>Returns:</strong> the number of code points skipped.</p>
+</dd>
+<dt id="func_Starts_With">Starts_With</dt>
+<dd>
+<pre><code>bool
+<span class="prefix">cfish_</span><strong>StrIter_Starts_With</strong>(
+    <span class="prefix">cfish_</span>StringIterator *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../Clownfish/String.html">String</a> *<strong>prefix</strong>
+);
+</code></pre>
+<p>Test whether the content after the iterator starts with 
<code>prefix</code>.</p>
+</dd>
+<dt id="func_Starts_With_Utf8">Starts_With_Utf8</dt>
+<dd>
+<pre><code>bool
+<span class="prefix">cfish_</span><strong>StrIter_Starts_With_Utf8</strong>(
+    <span class="prefix">cfish_</span>StringIterator *<strong>self</strong>,
+    char *<strong>utf8</strong>,
+    size_t <strong>size</strong>
+);
+</code></pre>
+<p>Test whether the content after the iterator starts with a prefix
+supplied as raw UTF-8.</p>
+<dl>
+<dt>utf8</dt>
+<dd><p>Pointer to UTF-8 character data.</p>
+</dd>
+<dt>size</dt>
+<dd><p>Size of UTF-8 character data in bytes.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Ends_With">Ends_With</dt>
+<dd>
+<pre><code>bool
+<span class="prefix">cfish_</span><strong>StrIter_Ends_With</strong>(
+    <span class="prefix">cfish_</span>StringIterator *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../Clownfish/String.html">String</a> *<strong>suffix</strong>
+);
+</code></pre>
+<p>Test whether the content before the iterator ends with 
<code>suffix</code>.</p>
+</dd>
+<dt id="func_Ends_With_Utf8">Ends_With_Utf8</dt>
+<dd>
+<pre><code>bool
+<span class="prefix">cfish_</span><strong>StrIter_Ends_With_Utf8</strong>(
+    <span class="prefix">cfish_</span>StringIterator *<strong>self</strong>,
+    char *<strong>utf8</strong>,
+    size_t <strong>size</strong>
+);
+</code></pre>
+<p>Test whether the content before the iterator ends with a suffix
+supplied as raw UTF-8.</p>
+<dl>
+<dt>utf8</dt>
+<dd><p>Pointer to UTF-8 character data.</p>
+</dd>
+<dt>size</dt>
+<dd><p>Size of UTF-8 character data in bytes.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Destroy">Destroy</dt>
+<dd>
+<pre><code>void
+<span class="prefix">cfish_</span><strong>StrIter_Destroy</strong>(
+    <span class="prefix">cfish_</span>StringIterator *<strong>self</strong>
+);
+</code></pre>
+<p>Generic destructor.  Frees the struct itself but not any complex
+member elements.</p>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Clownfish::StringIterator is a <a 
href="../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>

Added: lucy/site/trunk/content/docs/c/Clownfish/Vector.mdtext
URL: 
http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Clownfish/Vector.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Clownfish/Vector.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Clownfish/Vector.mdtext Mon Apr  4 12:55:10 
2016
@@ -0,0 +1,261 @@
+Title: Clownfish::Vector – C API Documentation
+
+<div class="c-api">
+<h2>Clownfish::Vector</h2>
+<table>
+<tr>
+<td class="label">parcel</td>
+<td><a href="../cfish.html">Clownfish</a></td>
+</tr>
+<tr>
+<td class="label">class variable</td>
+<td><code><span class="prefix">CFISH_</span>VECTOR</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">cfish_</span>Vector</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">cfish_</span>Vec</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Clownfish/Vector.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Clownfish::Vector – Variable-sized array.</p>
+<h3>Functions</h3>
+<dl>
+<dt id="func_new">new</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span>Vector* <span class="comment">// 
incremented</span>
+<span class="prefix">cfish_</span><strong>Vec_new</strong>(
+    size_t <strong>capacity</strong>
+);
+</code></pre>
+<p>Return a new Vector.</p>
+<dl>
+<dt>capacity</dt>
+<dd><p>Initial number of elements that the object will be able
+to hold before reallocation.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_init">init</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span>Vector*
+<span class="prefix">cfish_</span><strong>Vec_init</strong>(
+    <span class="prefix">cfish_</span>Vector *<strong>self</strong>,
+    size_t <strong>capacity</strong>
+);
+</code></pre>
+<p>Initialize a Vector.</p>
+<dl>
+<dt>capacity</dt>
+<dd><p>Initial number of elements that the object will be able
+to hold before reallocation.</p>
+</dd>
+</dl>
+</dd>
+</dl>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Push">Push</dt>
+<dd>
+<pre><code>void
+<span class="prefix">cfish_</span><strong>Vec_Push</strong>(
+    <span class="prefix">cfish_</span>Vector *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../Clownfish/Obj.html">Obj</a> 
*<strong>element</strong> <span class="comment">// decremented</span>
+);
+</code></pre>
+<p>Push an item onto the end of a Vector.</p>
+</dd>
+<dt id="func_Push_All">Push_All</dt>
+<dd>
+<pre><code>void
+<span class="prefix">cfish_</span><strong>Vec_Push_All</strong>(
+    <span class="prefix">cfish_</span>Vector *<strong>self</strong>,
+    <span class="prefix">cfish_</span>Vector *<strong>other</strong>
+);
+</code></pre>
+<p>Push all the elements of another Vector onto the end of this one.</p>
+</dd>
+<dt id="func_Pop">Pop</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../Clownfish/Obj.html">Obj</a>* <span class="comment">// 
incremented</span>
+<span class="prefix">cfish_</span><strong>Vec_Pop</strong>(
+    <span class="prefix">cfish_</span>Vector *<strong>self</strong>
+);
+</code></pre>
+<p>Pop an item off of the end of a Vector.</p>
+<p><strong>Returns:</strong> the element or NULL if the Vector is empty.</p>
+</dd>
+<dt id="func_Insert">Insert</dt>
+<dd>
+<pre><code>void
+<span class="prefix">cfish_</span><strong>Vec_Insert</strong>(
+    <span class="prefix">cfish_</span>Vector *<strong>self</strong>,
+    size_t <strong>tick</strong>,
+    <span class="prefix">cfish_</span><a href="../Clownfish/Obj.html">Obj</a> 
*<strong>element</strong> <span class="comment">// decremented</span>
+);
+</code></pre>
+<p>Insert an element at <code>tick</code> moving the following elements.</p>
+</dd>
+<dt id="func_Insert_All">Insert_All</dt>
+<dd>
+<pre><code>void
+<span class="prefix">cfish_</span><strong>Vec_Insert_All</strong>(
+    <span class="prefix">cfish_</span>Vector *<strong>self</strong>,
+    size_t <strong>tick</strong>,
+    <span class="prefix">cfish_</span>Vector *<strong>other</strong>
+);
+</code></pre>
+<p>Inserts elements from <code>other</code> vector at <code>tick</code> moving 
the following
+elements.</p>
+</dd>
+<dt id="func_Fetch">Fetch</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../Clownfish/Obj.html">Obj</a>*
+<span class="prefix">cfish_</span><strong>Vec_Fetch</strong>(
+    <span class="prefix">cfish_</span>Vector *<strong>self</strong>,
+    size_t <strong>tick</strong>
+);
+</code></pre>
+<p>Fetch the element at <code>tick</code>.</p>
+<p><strong>Returns:</strong> the element or NULL if <code>tick</code> is out 
of bounds.</p>
+</dd>
+<dt id="func_Store">Store</dt>
+<dd>
+<pre><code>void
+<span class="prefix">cfish_</span><strong>Vec_Store</strong>(
+    <span class="prefix">cfish_</span>Vector *<strong>self</strong>,
+    size_t <strong>tick</strong>,
+    <span class="prefix">cfish_</span><a href="../Clownfish/Obj.html">Obj</a> 
*<strong>elem</strong> <span class="comment">// decremented</span>
+);
+</code></pre>
+<p>Store an element at index <code>tick</code>, possibly displacing an
+existing element.</p>
+</dd>
+<dt id="func_Delete">Delete</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../Clownfish/Obj.html">Obj</a>* <span class="comment">// 
incremented</span>
+<span class="prefix">cfish_</span><strong>Vec_Delete</strong>(
+    <span class="prefix">cfish_</span>Vector *<strong>self</strong>,
+    size_t <strong>tick</strong>
+);
+</code></pre>
+<p>Replace an element in the Vector with NULL and return it.</p>
+<p><strong>Returns:</strong> the element stored at <code>tick</code> or NULL 
if <code>tick</code> is out of
+bounds.</p>
+</dd>
+<dt id="func_Excise">Excise</dt>
+<dd>
+<pre><code>void
+<span class="prefix">cfish_</span><strong>Vec_Excise</strong>(
+    <span class="prefix">cfish_</span>Vector *<strong>self</strong>,
+    size_t <strong>offset</strong>,
+    size_t <strong>length</strong>
+);
+</code></pre>
+<p>Remove <code>length</code> elements from the Vector, starting at 
<code>offset</code>.
+Move elements over to fill in the gap.</p>
+</dd>
+<dt id="func_Clone">Clone</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span>Vector* <span class="comment">// 
incremented</span>
+<span class="prefix">cfish_</span><strong>Vec_Clone</strong>(
+    <span class="prefix">cfish_</span>Vector *<strong>self</strong>
+);
+</code></pre>
+<p>Clone the Vector but merely increment the refcounts of its elements
+rather than clone them.</p>
+</dd>
+<dt id="func_Sort">Sort</dt>
+<dd>
+<pre><code>void
+<span class="prefix">cfish_</span><strong>Vec_Sort</strong>(
+    <span class="prefix">cfish_</span>Vector *<strong>self</strong>
+);
+</code></pre>
+<p>Sort the Vector.  Sort order is guaranteed to be <em>stable</em>: the
+relative order of elements which compare as equal will not change.</p>
+</dd>
+<dt id="func_Resize">Resize</dt>
+<dd>
+<pre><code>void
+<span class="prefix">cfish_</span><strong>Vec_Resize</strong>(
+    <span class="prefix">cfish_</span>Vector *<strong>self</strong>,
+    size_t <strong>size</strong>
+);
+</code></pre>
+<p>Set the size for the Vector.  If the new size is larger than the
+current size, grow the object to accommodate NULL elements; if
+smaller than the current size, decrement and discard truncated elements.</p>
+</dd>
+<dt id="func_Clear">Clear</dt>
+<dd>
+<pre><code>void
+<span class="prefix">cfish_</span><strong>Vec_Clear</strong>(
+    <span class="prefix">cfish_</span>Vector *<strong>self</strong>
+);
+</code></pre>
+<p>Empty the Vector.</p>
+</dd>
+<dt id="func_Get_Size">Get_Size</dt>
+<dd>
+<pre><code>size_t
+<span class="prefix">cfish_</span><strong>Vec_Get_Size</strong>(
+    <span class="prefix">cfish_</span>Vector *<strong>self</strong>
+);
+</code></pre>
+<p>Return the size of the Vector.</p>
+</dd>
+<dt id="func_Slice">Slice</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span>Vector* <span class="comment">// 
incremented</span>
+<span class="prefix">cfish_</span><strong>Vec_Slice</strong>(
+    <span class="prefix">cfish_</span>Vector *<strong>self</strong>,
+    size_t <strong>offset</strong>,
+    size_t <strong>length</strong>
+);
+</code></pre>
+<p>Return a slice of the Vector consisting of elements from a contiguous
+range.  If the specified range is out of bounds, return a slice with
+fewer elements – potentially none.</p>
+<dl>
+<dt>offset</dt>
+<dd><p>The index of the element to start at.</p>
+</dd>
+<dt>length</dt>
+<dd><p>The maximum number of elements to slice.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Equals">Equals</dt>
+<dd>
+<pre><code>bool
+<span class="prefix">cfish_</span><strong>Vec_Equals</strong>(
+    <span class="prefix">cfish_</span>Vector *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../Clownfish/Obj.html">Obj</a> 
*<strong>other</strong>
+);
+</code></pre>
+<p>Equality test.</p>
+<p><strong>Returns:</strong> true if <code>other</code> is a Vector with the 
same values as <code>self</code>.
+Values are compared using their respective <code>Equals</code> methods.</p>
+</dd>
+<dt id="func_Destroy">Destroy</dt>
+<dd>
+<pre><code>void
+<span class="prefix">cfish_</span><strong>Vec_Destroy</strong>(
+    <span class="prefix">cfish_</span>Vector *<strong>self</strong>
+);
+</code></pre>
+<p>Generic destructor.  Frees the struct itself but not any complex
+member elements.</p>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Clownfish::Vector is a <a 
href="../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>

Added: lucy/site/trunk/content/docs/c/Lucy/Analysis/Analyzer.mdtext
URL: 
http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Lucy/Analysis/Analyzer.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Lucy/Analysis/Analyzer.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Lucy/Analysis/Analyzer.mdtext Mon Apr  4 
12:55:10 2016
@@ -0,0 +1,135 @@
+Title: Lucy::Analysis::Analyzer – C API Documentation
+
+<div class="c-api">
+<h2>Lucy::Analysis::Analyzer</h2>
+<table>
+<tr>
+<td class="label">parcel</td>
+<td><a href="../../lucy.html">Lucy</a></td>
+</tr>
+<tr>
+<td class="label">class variable</td>
+<td><code><span class="prefix">LUCY_</span>ANALYZER</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">lucy_</span>Analyzer</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">lucy_</span>Analyzer</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Lucy/Analysis/Analyzer.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Lucy::Analysis::Analyzer – Tokenize/modify/filter text.</p>
+<h3>Description</h3>
+<p>An Analyzer is a filter which processes text, transforming it from one form
+into another.  For instance, an analyzer might break up a long text into
+smaller pieces (<a 
href="../../Lucy/Analysis/RegexTokenizer.html">RegexTokenizer</a>), or it
+might perform case folding to facilitate case-insensitive search
+(<a href="../../Lucy/Analysis/Normalizer.html">Normalizer</a>).</p>
+<h3>Functions</h3>
+<dl>
+<dt id="func_init">init</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>Analyzer*
+<span class="prefix">lucy_</span><strong>Analyzer_init</strong>(
+    <span class="prefix">lucy_</span>Analyzer *<strong>self</strong>
+);
+</code></pre>
+<p>Abstract initializer.</p>
+</dd>
+</dl>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Transform">Transform <span class="comment">(abstract)</span></dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a 
href="../../Lucy/Analysis/Inversion.html">Inversion</a>* <span 
class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>Analyzer_Transform</strong>(
+    <span class="prefix">lucy_</span>Analyzer *<strong>self</strong>,
+    <span class="prefix">lucy_</span><a 
href="../../Lucy/Analysis/Inversion.html">Inversion</a> 
*<strong>inversion</strong>
+);
+</code></pre>
+<p>Take a single <a href="../../Lucy/Analysis/Inversion.html">Inversion</a> as 
input
+and returns an Inversion, either the same one (presumably transformed
+in some way), or a new one.</p>
+<dl>
+<dt>inversion</dt>
+<dd><p>An inversion.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Transform_Text">Transform_Text</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a 
href="../../Lucy/Analysis/Inversion.html">Inversion</a>* <span 
class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>Analyzer_Transform_Text</strong>(
+    <span class="prefix">lucy_</span>Analyzer *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/String.html">String</a> *<strong>text</strong>
+);
+</code></pre>
+<p>Kick off an analysis chain, creating an Inversion from string input.
+The default implementation simply creates an initial Inversion with a
+single Token, then calls <a 
href="../../Lucy/Analysis/Analyzer.html#func_Transform">Transform()</a>, but 
occasionally subclasses will
+provide an optimized implementation which minimizes string copies.</p>
+<dl>
+<dt>text</dt>
+<dd><p>A string.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Split">Split</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../../Clownfish/Vector.html">Vector</a>* <span class="comment">// 
incremented</span>
+<span class="prefix">lucy_</span><strong>Analyzer_Split</strong>(
+    <span class="prefix">lucy_</span>Analyzer *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/String.html">String</a> *<strong>text</strong>
+);
+</code></pre>
+<p>Analyze text and return an array of token texts.</p>
+<dl>
+<dt>text</dt>
+<dd><p>A string.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Dump">Dump</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../../Clownfish/Obj.html">Obj</a>* <span class="comment">// 
incremented</span>
+<span class="prefix">lucy_</span><strong>Analyzer_Dump</strong>(
+    <span class="prefix">lucy_</span>Analyzer *<strong>self</strong>
+);
+</code></pre>
+<p>Dump the analyzer as hash.</p>
+<p>Subclasses should call <a 
href="../../Lucy/Analysis/Analyzer.html#func_Dump">Dump()</a> on the 
superclass. The returned
+object is a hash which should be populated with parameters of
+the analyzer.</p>
+<p><strong>Returns:</strong> A hash containing a description of the 
analyzer.</p>
+</dd>
+<dt id="func_Load">Load</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../../Clownfish/Obj.html">Obj</a>* <span class="comment">// 
incremented</span>
+<span class="prefix">lucy_</span><strong>Analyzer_Load</strong>(
+    <span class="prefix">lucy_</span>Analyzer *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/Obj.html">Obj</a> *<strong>dump</strong>
+);
+</code></pre>
+<p>Reconstruct an analyzer from a dump.</p>
+<p>Subclasses should first call <a 
href="../../Lucy/Analysis/Analyzer.html#func_Load">Load()</a> on the 
superclass. The
+returned object is an analyzer which should be reconstructed by
+setting the dumped parameters from the hash contained in <code>dump</code>.</p>
+<p>Note that the invocant analyzer is unused.</p>
+<dl>
+<dt>dump</dt>
+<dd><p>A hash.</p>
+</dd>
+</dl>
+<p><strong>Returns:</strong> An analyzer.</p>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Lucy::Analysis::Analyzer is a <a 
href="../../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>

Added: lucy/site/trunk/content/docs/c/Lucy/Analysis/CaseFolder.mdtext
URL: 
http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Lucy/Analysis/CaseFolder.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Lucy/Analysis/CaseFolder.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Lucy/Analysis/CaseFolder.mdtext Mon Apr  4 
12:55:10 2016
@@ -0,0 +1,152 @@
+Title: Lucy::Analysis::CaseFolder – C API Documentation
+
+<div class="c-api">
+<h2>Lucy::Analysis::CaseFolder</h2>
+<table>
+<tr>
+<td class="label">parcel</td>
+<td><a href="../../lucy.html">Lucy</a></td>
+</tr>
+<tr>
+<td class="label">class variable</td>
+<td><code><span class="prefix">LUCY_</span>CASEFOLDER</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">lucy_</span>CaseFolder</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">lucy_</span>CaseFolder</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Lucy/Analysis/CaseFolder.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Lucy::Analysis::CaseFolder – Normalize case, facilitating 
case-insensitive search.</p>
+<h3>Description</h3>
+<p>CaseFolder is DEPRECATED. Use <a 
href="../../Lucy/Analysis/Normalizer.html">Normalizer</a>
+instead.</p>
+<p>CaseFolder normalizes text according to Unicode case-folding rules, so that
+searches will be case-insensitive.</p>
+<h3>Functions</h3>
+<dl>
+<dt id="func_new">new</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>CaseFolder* <span 
class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>CaseFolder_new</strong>(void);
+</code></pre>
+<p>Constructor.  Takes no arguments.</p>
+</dd>
+<dt id="func_init">init</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>CaseFolder*
+<span class="prefix">lucy_</span><strong>CaseFolder_init</strong>(
+    <span class="prefix">lucy_</span>CaseFolder *<strong>self</strong>
+);
+</code></pre>
+<p>Initialize a CaseFolder.</p>
+</dd>
+</dl>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Transform">Transform</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a 
href="../../Lucy/Analysis/Inversion.html">Inversion</a>* <span 
class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>CaseFolder_Transform</strong>(
+    <span class="prefix">lucy_</span>CaseFolder *<strong>self</strong>,
+    <span class="prefix">lucy_</span><a 
href="../../Lucy/Analysis/Inversion.html">Inversion</a> 
*<strong>inversion</strong>
+);
+</code></pre>
+<p>Take a single <a href="../../Lucy/Analysis/Inversion.html">Inversion</a> as 
input
+and returns an Inversion, either the same one (presumably transformed
+in some way), or a new one.</p>
+<dl>
+<dt>inversion</dt>
+<dd><p>An inversion.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Transform_Text">Transform_Text</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a 
href="../../Lucy/Analysis/Inversion.html">Inversion</a>* <span 
class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>CaseFolder_Transform_Text</strong>(
+    <span class="prefix">lucy_</span>CaseFolder *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/String.html">String</a> *<strong>text</strong>
+);
+</code></pre>
+<p>Kick off an analysis chain, creating an Inversion from string input.
+The default implementation simply creates an initial Inversion with a
+single Token, then calls <a 
href="../../Lucy/Analysis/CaseFolder.html#func_Transform">Transform()</a>, but 
occasionally subclasses will
+provide an optimized implementation which minimizes string copies.</p>
+<dl>
+<dt>text</dt>
+<dd><p>A string.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Equals">Equals</dt>
+<dd>
+<pre><code>bool
+<span class="prefix">lucy_</span><strong>CaseFolder_Equals</strong>(
+    <span class="prefix">lucy_</span>CaseFolder *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/Obj.html">Obj</a> *<strong>other</strong>
+);
+</code></pre>
+<p>Indicate whether two objects are the same.  By default, compares the
+memory address.</p>
+<dl>
+<dt>other</dt>
+<dd><p>Another Obj.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Dump">Dump</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../../Clownfish/Hash.html">Hash</a>* <span class="comment">// 
incremented</span>
+<span class="prefix">lucy_</span><strong>CaseFolder_Dump</strong>(
+    <span class="prefix">lucy_</span>CaseFolder *<strong>self</strong>
+);
+</code></pre>
+<p>Dump the analyzer as hash.</p>
+<p>Subclasses should call <a 
href="../../Lucy/Analysis/CaseFolder.html#func_Dump">Dump()</a> on the 
superclass. The returned
+object is a hash which should be populated with parameters of
+the analyzer.</p>
+<p><strong>Returns:</strong> A hash containing a description of the 
analyzer.</p>
+</dd>
+<dt id="func_Load">Load</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>CaseFolder* <span 
class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>CaseFolder_Load</strong>(
+    <span class="prefix">lucy_</span>CaseFolder *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/Obj.html">Obj</a> *<strong>dump</strong>
+);
+</code></pre>
+<p>Reconstruct an analyzer from a dump.</p>
+<p>Subclasses should first call <a 
href="../../Lucy/Analysis/CaseFolder.html#func_Load">Load()</a> on the 
superclass. The
+returned object is an analyzer which should be reconstructed by
+setting the dumped parameters from the hash contained in <code>dump</code>.</p>
+<p>Note that the invocant analyzer is unused.</p>
+<dl>
+<dt>dump</dt>
+<dd><p>A hash.</p>
+</dd>
+</dl>
+<p><strong>Returns:</strong> An analyzer.</p>
+</dd>
+<dt id="func_Destroy">Destroy</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>CaseFolder_Destroy</strong>(
+    <span class="prefix">lucy_</span>CaseFolder *<strong>self</strong>
+);
+</code></pre>
+<p>Generic destructor.  Frees the struct itself but not any complex
+member elements.</p>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Lucy::Analysis::CaseFolder is a <a 
href="../../Lucy/Analysis/Analyzer.html">Lucy::Analysis::Analyzer</a> is a <a 
href="../../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>

Added: lucy/site/trunk/content/docs/c/Lucy/Analysis/EasyAnalyzer.mdtext
URL: 
http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Lucy/Analysis/EasyAnalyzer.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Lucy/Analysis/EasyAnalyzer.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Lucy/Analysis/EasyAnalyzer.mdtext Mon Apr  4 
12:55:10 2016
@@ -0,0 +1,182 @@
+Title: Lucy::Analysis::EasyAnalyzer – C API Documentation
+
+<div class="c-api">
+<h2>Lucy::Analysis::EasyAnalyzer</h2>
+<table>
+<tr>
+<td class="label">parcel</td>
+<td><a href="../../lucy.html">Lucy</a></td>
+</tr>
+<tr>
+<td class="label">class variable</td>
+<td><code><span class="prefix">LUCY_</span>EASYANALYZER</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">lucy_</span>EasyAnalyzer</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">lucy_</span>EasyAnalyzer</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Lucy/Analysis/EasyAnalyzer.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Lucy::Analysis::EasyAnalyzer – A simple analyzer chain.</p>
+<h3>Description</h3>
+<p>EasyAnalyzer is an analyzer chain consisting of a
+<a href="../../Lucy/Analysis/StandardTokenizer.html">StandardTokenizer</a>, a
+<a href="../../Lucy/Analysis/Normalizer.html">Normalizer</a>, and a
+<a href="../../Lucy/Analysis/SnowballStemmer.html">SnowballStemmer</a>.</p>
+<p>Supported languages:</p>
+<pre><code>en =&gt; English,
+da =&gt; Danish,
+de =&gt; German,
+es =&gt; Spanish,
+fi =&gt; Finnish,
+fr =&gt; French,
+hu =&gt; Hungarian,
+it =&gt; Italian,
+nl =&gt; Dutch,
+no =&gt; Norwegian,
+pt =&gt; Portuguese,
+ro =&gt; Romanian,
+ru =&gt; Russian,
+sv =&gt; Swedish,
+tr =&gt; Turkish,
+</code></pre>
+<h3>Functions</h3>
+<dl>
+<dt id="func_new">new</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>EasyAnalyzer* <span 
class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>EasyAnalyzer_new</strong>(
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/String.html">String</a> *<strong>language</strong>
+);
+</code></pre>
+<p>Create a new EasyAnalyzer.</p>
+<dl>
+<dt>language</dt>
+<dd><p>An ISO code from the list of supported languages.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_init">init</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>EasyAnalyzer*
+<span class="prefix">lucy_</span><strong>EasyAnalyzer_init</strong>(
+    <span class="prefix">lucy_</span>EasyAnalyzer *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/String.html">String</a> *<strong>language</strong>
+);
+</code></pre>
+<p>Initialize an EasyAnalyzer.</p>
+<dl>
+<dt>language</dt>
+<dd><p>An ISO code from the list of supported languages.</p>
+</dd>
+</dl>
+</dd>
+</dl>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Transform">Transform</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a 
href="../../Lucy/Analysis/Inversion.html">Inversion</a>* <span 
class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>EasyAnalyzer_Transform</strong>(
+    <span class="prefix">lucy_</span>EasyAnalyzer *<strong>self</strong>,
+    <span class="prefix">lucy_</span><a 
href="../../Lucy/Analysis/Inversion.html">Inversion</a> 
*<strong>inversion</strong>
+);
+</code></pre>
+<p>Take a single <a href="../../Lucy/Analysis/Inversion.html">Inversion</a> as 
input
+and returns an Inversion, either the same one (presumably transformed
+in some way), or a new one.</p>
+<dl>
+<dt>inversion</dt>
+<dd><p>An inversion.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Transform_Text">Transform_Text</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a 
href="../../Lucy/Analysis/Inversion.html">Inversion</a>* <span 
class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>EasyAnalyzer_Transform_Text</strong>(
+    <span class="prefix">lucy_</span>EasyAnalyzer *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/String.html">String</a> *<strong>text</strong>
+);
+</code></pre>
+<p>Kick off an analysis chain, creating an Inversion from string input.
+The default implementation simply creates an initial Inversion with a
+single Token, then calls <a 
href="../../Lucy/Analysis/EasyAnalyzer.html#func_Transform">Transform()</a>, 
but occasionally subclasses will
+provide an optimized implementation which minimizes string copies.</p>
+<dl>
+<dt>text</dt>
+<dd><p>A string.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Dump">Dump</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../../Clownfish/Hash.html">Hash</a>* <span class="comment">// 
incremented</span>
+<span class="prefix">lucy_</span><strong>EasyAnalyzer_Dump</strong>(
+    <span class="prefix">lucy_</span>EasyAnalyzer *<strong>self</strong>
+);
+</code></pre>
+<p>Dump the analyzer as hash.</p>
+<p>Subclasses should call <a 
href="../../Lucy/Analysis/EasyAnalyzer.html#func_Dump">Dump()</a> on the 
superclass. The returned
+object is a hash which should be populated with parameters of
+the analyzer.</p>
+<p><strong>Returns:</strong> A hash containing a description of the 
analyzer.</p>
+</dd>
+<dt id="func_Load">Load</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>EasyAnalyzer* <span 
class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>EasyAnalyzer_Load</strong>(
+    <span class="prefix">lucy_</span>EasyAnalyzer *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/Obj.html">Obj</a> *<strong>dump</strong>
+);
+</code></pre>
+<p>Reconstruct an analyzer from a dump.</p>
+<p>Subclasses should first call <a 
href="../../Lucy/Analysis/EasyAnalyzer.html#func_Load">Load()</a> on the 
superclass. The
+returned object is an analyzer which should be reconstructed by
+setting the dumped parameters from the hash contained in <code>dump</code>.</p>
+<p>Note that the invocant analyzer is unused.</p>
+<dl>
+<dt>dump</dt>
+<dd><p>A hash.</p>
+</dd>
+</dl>
+<p><strong>Returns:</strong> An analyzer.</p>
+</dd>
+<dt id="func_Equals">Equals</dt>
+<dd>
+<pre><code>bool
+<span class="prefix">lucy_</span><strong>EasyAnalyzer_Equals</strong>(
+    <span class="prefix">lucy_</span>EasyAnalyzer *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/Obj.html">Obj</a> *<strong>other</strong>
+);
+</code></pre>
+<p>Indicate whether two objects are the same.  By default, compares the
+memory address.</p>
+<dl>
+<dt>other</dt>
+<dd><p>Another Obj.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Destroy">Destroy</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>EasyAnalyzer_Destroy</strong>(
+    <span class="prefix">lucy_</span>EasyAnalyzer *<strong>self</strong>
+);
+</code></pre>
+<p>Generic destructor.  Frees the struct itself but not any complex
+member elements.</p>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Lucy::Analysis::EasyAnalyzer is a <a 
href="../../Lucy/Analysis/Analyzer.html">Lucy::Analysis::Analyzer</a> is a <a 
href="../../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>

Added: lucy/site/trunk/content/docs/c/Lucy/Analysis/Inversion.mdtext
URL: 
http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Lucy/Analysis/Inversion.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Lucy/Analysis/Inversion.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Lucy/Analysis/Inversion.mdtext Mon Apr  4 
12:55:10 2016
@@ -0,0 +1,99 @@
+Title: Lucy::Analysis::Inversion – C API Documentation
+
+<div class="c-api">
+<h2>Lucy::Analysis::Inversion</h2>
+<table>
+<tr>
+<td class="label">parcel</td>
+<td><a href="../../lucy.html">Lucy</a></td>
+</tr>
+<tr>
+<td class="label">class variable</td>
+<td><code><span class="prefix">LUCY_</span>INVERSION</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">lucy_</span>Inversion</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">lucy_</span>Inversion</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Lucy/Analysis/Inversion.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Lucy::Analysis::Inversion – A collection of Tokens.</p>
+<h3>Description</h3>
+<p>An Inversion is a collection of Token objects which you can add to, then
+iterate over.</p>
+<h3>Functions</h3>
+<dl>
+<dt id="func_new">new</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>Inversion* <span 
class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>Inversion_new</strong>(
+    <span class="prefix">lucy_</span><a 
href="../../Lucy/Analysis/Token.html">Token</a> *<strong>seed</strong>
+);
+</code></pre>
+<p>Create a new Inversion.</p>
+<dl>
+<dt>seed</dt>
+<dd><p>An initial Token to start things off, which may be
+NULL.</p>
+</dd>
+</dl>
+</dd>
+</dl>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Append">Append</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Inversion_Append</strong>(
+    <span class="prefix">lucy_</span>Inversion *<strong>self</strong>,
+    <span class="prefix">lucy_</span><a 
href="../../Lucy/Analysis/Token.html">Token</a> *<strong>token</strong> <span 
class="comment">// decremented</span>
+);
+</code></pre>
+<p>Tack a token onto the end of the Inversion.</p>
+<dl>
+<dt>token</dt>
+<dd><p>A Token.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Next">Next</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a 
href="../../Lucy/Analysis/Token.html">Token</a>*
+<span class="prefix">lucy_</span><strong>Inversion_Next</strong>(
+    <span class="prefix">lucy_</span>Inversion *<strong>self</strong>
+);
+</code></pre>
+<p>Return the next token in the Inversion until out of tokens.</p>
+</dd>
+<dt id="func_Reset">Reset</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Inversion_Reset</strong>(
+    <span class="prefix">lucy_</span>Inversion *<strong>self</strong>
+);
+</code></pre>
+<p>Reset the Inversion’s iterator, so that the next call to next()
+returns the first Token in the inversion.</p>
+</dd>
+<dt id="func_Destroy">Destroy</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Inversion_Destroy</strong>(
+    <span class="prefix">lucy_</span>Inversion *<strong>self</strong>
+);
+</code></pre>
+<p>Generic destructor.  Frees the struct itself but not any complex
+member elements.</p>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Lucy::Analysis::Inversion is a <a 
href="../../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>


Reply via email to