1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-07-01 06:24:58 +03:00

Merge branch 'ganelson:master' into master

This commit is contained in:
David Kinder 2023-07-24 07:34:23 +01:00 committed by GitHub
commit 9883e26cc7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
42 changed files with 867 additions and 839 deletions

View file

@ -189,12 +189,6 @@ stopping as soon as a pair of corresponding items differs: thus we sort
lists of equal size in lexicographic order. lists of equal size in lexicographic order.
</p> </p>
<p class="commentary">Since the comparison function depends only on the KOV, it may seem wasteful
of a word of memory to store it in the list, given that we are already storing
the KOV in any case. But we do this because comparisons have to be fast: we
don't want to incur the overhead of translating KOV to comparison function.
</p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">[ </span><span class="identifier-syntax">LIST_OF_TY_Compare</span><span class="plain-syntax"> </span><span class="identifier-syntax">listleft</span><span class="plain-syntax"> </span><span class="identifier-syntax">listright</span><span class="plain-syntax"> </span><span class="identifier-syntax">delta</span><span class="plain-syntax"> </span><span class="identifier-syntax">no_items</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> </span><span class="identifier-syntax">cf</span><span class="plain-syntax">;</span> <span class="plain-syntax">[ </span><span class="identifier-syntax">LIST_OF_TY_Compare</span><span class="plain-syntax"> </span><span class="identifier-syntax">listleft</span><span class="plain-syntax"> </span><span class="identifier-syntax">listright</span><span class="plain-syntax"> </span><span class="identifier-syntax">delta</span><span class="plain-syntax"> </span><span class="identifier-syntax">no_items</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> </span><span class="identifier-syntax">cf</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">delta</span><span class="plain-syntax"> = </span><span class="identifier-syntax">BlkValueRead</span><span class="plain-syntax">(</span><span class="identifier-syntax">listleft</span><span class="plain-syntax">, </span><span class="identifier-syntax">LIST_LENGTH_F</span><span class="plain-syntax">) - </span><span class="identifier-syntax">BlkValueRead</span><span class="plain-syntax">(</span><span class="identifier-syntax">listright</span><span class="plain-syntax">, </span><span class="identifier-syntax">LIST_LENGTH_F</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">delta</span><span class="plain-syntax"> = </span><span class="identifier-syntax">BlkValueRead</span><span class="plain-syntax">(</span><span class="identifier-syntax">listleft</span><span class="plain-syntax">, </span><span class="identifier-syntax">LIST_LENGTH_F</span><span class="plain-syntax">) - </span><span class="identifier-syntax">BlkValueRead</span><span class="plain-syntax">(</span><span class="identifier-syntax">listright</span><span class="plain-syntax">, </span><span class="identifier-syntax">LIST_LENGTH_F</span><span class="plain-syntax">);</span>
@ -762,13 +756,20 @@ we sort based not on the item values but on their values for the property
<span class="extract"><span class="extract-syntax">prop</span></span>. (This only makes sense if the list contains objects.) <span class="extract"><span class="extract-syntax">prop</span></span>. (This only makes sense if the list contains objects.)
</p> </p>
<p class="commentary"><span class="extract"><span class="extract-syntax">LIST_OF_TY_Sort(list, dir, 0, 0, cf)</span></span> sorts the given <span class="extract"><span class="extract-syntax">list</span></span> with the custom
comparison function <span class="extract"><span class="extract-syntax">cf</span></span>, which must behave as any standard comparison function
would.
</p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">SORT_LIST_RANDOM</span><span class="plain-syntax"> = </span><span class="constant-syntax">2</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">LIST_OF_TY_Sort_cf</span><span class="plain-syntax">;</span> <span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">LIST_OF_TY_Sort_cf</span><span class="plain-syntax">;</span>
<span class="plain-syntax">[ </span><span class="identifier-syntax">LIST_OF_TY_Sort</span><span class="plain-syntax"> </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">dir</span><span class="plain-syntax"> </span><span class="identifier-syntax">prop</span><span class="plain-syntax"> </span><span class="identifier-syntax">cf</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> </span><span class="identifier-syntax">j</span><span class="plain-syntax"> </span><span class="identifier-syntax">no_items</span><span class="plain-syntax"> </span><span class="identifier-syntax">v</span><span class="plain-syntax">;</span> <span class="plain-syntax">[ </span><span class="identifier-syntax">LIST_OF_TY_Sort</span><span class="plain-syntax"> </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">dir</span><span class="plain-syntax"> </span><span class="identifier-syntax">prop</span><span class="plain-syntax"> </span><span class="identifier-syntax">prop_is_bv</span><span class="plain-syntax"> </span><span class="identifier-syntax">cf</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> </span><span class="identifier-syntax">j</span><span class="plain-syntax"> </span><span class="identifier-syntax">no_items</span><span class="plain-syntax"> </span><span class="identifier-syntax">v</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BlkMakeMutable</span><span class="plain-syntax">(</span><span class="identifier-syntax">list</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">BlkMakeMutable</span><span class="plain-syntax">(</span><span class="identifier-syntax">list</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">no_items</span><span class="plain-syntax"> = </span><span class="identifier-syntax">BlkValueRead</span><span class="plain-syntax">(</span><span class="identifier-syntax">list</span><span class="plain-syntax">, </span><span class="identifier-syntax">LIST_LENGTH_F</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">no_items</span><span class="plain-syntax"> = </span><span class="identifier-syntax">BlkValueRead</span><span class="plain-syntax">(</span><span class="identifier-syntax">list</span><span class="plain-syntax">, </span><span class="identifier-syntax">LIST_LENGTH_F</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">dir</span><span class="plain-syntax"> == </span><span class="constant-syntax">2</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">dir</span><span class="plain-syntax"> == </span><span class="identifier-syntax">SORT_LIST_RANDOM</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">no_items</span><span class="plain-syntax"> &lt; </span><span class="constant-syntax">2</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">no_items</span><span class="plain-syntax"> &lt; </span><span class="constant-syntax">2</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax">=1:</span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">no_items</span><span class="plain-syntax">:</span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax">=1:</span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">no_items</span><span class="plain-syntax">:</span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">j</span><span class="plain-syntax"> = </span><span class="reserved-syntax">random</span><span class="plain-syntax">(</span><span class="identifier-syntax">i</span><span class="plain-syntax">+1) - </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">j</span><span class="plain-syntax"> = </span><span class="reserved-syntax">random</span><span class="plain-syntax">(</span><span class="identifier-syntax">i</span><span class="plain-syntax">+1) - </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
@ -779,8 +780,20 @@ we sort based not on the item values but on their values for the property
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">SetSortDomain</span><span class="plain-syntax">(</span><span class="identifier-syntax">ListSwapEntries</span><span class="plain-syntax">, </span><span class="identifier-syntax">ListCompareEntries</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">SetSortDomain</span><span class="plain-syntax">(</span><span class="identifier-syntax">ListSwapEntries</span><span class="plain-syntax">, </span><span class="identifier-syntax">ListCompareEntries</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cf</span><span class="plain-syntax">) </span><span class="identifier-syntax">LIST_OF_TY_Sort_cf</span><span class="plain-syntax"> = </span><span class="identifier-syntax">BlkValueCompare</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cf</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">LIST_OF_TY_Sort_cf</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">LIST_OF_TY_Sort_cf</span><span class="plain-syntax"> = </span><span class="identifier-syntax">cf</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">prop</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">prop_is_bv</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LIST_OF_TY_Sort_cf</span><span class="plain-syntax"> = </span><span class="identifier-syntax">BlkValueCompare</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LIST_OF_TY_Sort_cf</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LIST_OF_TY_Sort_cf</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LIST_OF_TY_ComparisonFn</span><span class="plain-syntax">(</span><span class="identifier-syntax">list</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">SortArray</span><span class="plain-syntax">(</span><span class="identifier-syntax">list</span><span class="plain-syntax">, </span><span class="identifier-syntax">prop</span><span class="plain-syntax">, </span><span class="identifier-syntax">dir</span><span class="plain-syntax">, </span><span class="identifier-syntax">no_items</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">SortArray</span><span class="plain-syntax">(</span><span class="identifier-syntax">list</span><span class="plain-syntax">, </span><span class="identifier-syntax">prop</span><span class="plain-syntax">, </span><span class="identifier-syntax">dir</span><span class="plain-syntax">, </span><span class="identifier-syntax">no_items</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
<span class="plain-syntax">];</span> <span class="plain-syntax">];</span>
@ -791,23 +804,21 @@ we sort based not on the item values but on their values for the property
<span class="plain-syntax"> </span><span class="identifier-syntax">BlkValueWrite</span><span class="plain-syntax">(</span><span class="identifier-syntax">list</span><span class="plain-syntax">, </span><span class="identifier-syntax">LIST_ITEM_BASE</span><span class="plain-syntax">+</span><span class="identifier-syntax">j</span><span class="plain-syntax">-1, </span><span class="identifier-syntax">v</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">BlkValueWrite</span><span class="plain-syntax">(</span><span class="identifier-syntax">list</span><span class="plain-syntax">, </span><span class="identifier-syntax">LIST_ITEM_BASE</span><span class="plain-syntax">+</span><span class="identifier-syntax">j</span><span class="plain-syntax">-1, </span><span class="identifier-syntax">v</span><span class="plain-syntax">);</span>
<span class="plain-syntax">];</span> <span class="plain-syntax">];</span>
<span class="plain-syntax">[ </span><span class="identifier-syntax">ListCompareEntries</span><span class="plain-syntax"> </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">col</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> </span><span class="identifier-syntax">j</span><span class="plain-syntax"> </span><span class="identifier-syntax">d</span><span class="plain-syntax"> </span><span class="identifier-syntax">cf</span><span class="plain-syntax">;</span> <span class="plain-syntax">[ </span><span class="identifier-syntax">ListCompareEntries</span><span class="plain-syntax"> </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">col</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> </span><span class="identifier-syntax">j</span><span class="plain-syntax"> </span><span class="identifier-syntax">d</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax">==</span><span class="identifier-syntax">j</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax">==</span><span class="identifier-syntax">j</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> = </span><span class="identifier-syntax">BlkValueRead</span><span class="plain-syntax">(</span><span class="identifier-syntax">list</span><span class="plain-syntax">, </span><span class="identifier-syntax">LIST_ITEM_BASE</span><span class="plain-syntax">+</span><span class="identifier-syntax">i</span><span class="plain-syntax">-1);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> = </span><span class="identifier-syntax">BlkValueRead</span><span class="plain-syntax">(</span><span class="identifier-syntax">list</span><span class="plain-syntax">, </span><span class="identifier-syntax">LIST_ITEM_BASE</span><span class="plain-syntax">+</span><span class="identifier-syntax">i</span><span class="plain-syntax">-1);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">j</span><span class="plain-syntax"> = </span><span class="identifier-syntax">BlkValueRead</span><span class="plain-syntax">(</span><span class="identifier-syntax">list</span><span class="plain-syntax">, </span><span class="identifier-syntax">LIST_ITEM_BASE</span><span class="plain-syntax">+</span><span class="identifier-syntax">j</span><span class="plain-syntax">-1);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">j</span><span class="plain-syntax"> = </span><span class="identifier-syntax">BlkValueRead</span><span class="plain-syntax">(</span><span class="identifier-syntax">list</span><span class="plain-syntax">, </span><span class="identifier-syntax">LIST_ITEM_BASE</span><span class="plain-syntax">+</span><span class="identifier-syntax">j</span><span class="plain-syntax">-1);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I7S_Col</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I7S_Col</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax"> </span><span class="reserved-syntax">provides</span><span class="plain-syntax"> </span><span class="identifier-syntax">I7S_Col</span><span class="plain-syntax">) </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">.</span><span class="identifier-syntax">I7S_Col</span><span class="plain-syntax">; </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax"> </span><span class="reserved-syntax">provides</span><span class="plain-syntax"> </span><span class="identifier-syntax">I7S_Col</span><span class="plain-syntax">) </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">.</span><span class="identifier-syntax">I7S_Col</span><span class="plain-syntax">; </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">j</span><span class="plain-syntax"> </span><span class="reserved-syntax">provides</span><span class="plain-syntax"> </span><span class="identifier-syntax">I7S_Col</span><span class="plain-syntax">) </span><span class="identifier-syntax">j</span><span class="plain-syntax">=</span><span class="identifier-syntax">j</span><span class="plain-syntax">.</span><span class="identifier-syntax">I7S_Col</span><span class="plain-syntax">; </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">j</span><span class="plain-syntax">=0;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">j</span><span class="plain-syntax"> </span><span class="reserved-syntax">provides</span><span class="plain-syntax"> </span><span class="identifier-syntax">I7S_Col</span><span class="plain-syntax">) </span><span class="identifier-syntax">j</span><span class="plain-syntax">=</span><span class="identifier-syntax">j</span><span class="plain-syntax">.</span><span class="identifier-syntax">I7S_Col</span><span class="plain-syntax">; </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">j</span><span class="plain-syntax">=0;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">cf</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LIST_OF_TY_Sort_cf</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">cf</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LIST_OF_TY_ComparisonFn</span><span class="plain-syntax">(</span><span class="identifier-syntax">list</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cf</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">LIST_OF_TY_Sort_cf</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax"> &gt; </span><span class="identifier-syntax">j</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax"> &gt; </span><span class="identifier-syntax">j</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax"> &lt; </span><span class="identifier-syntax">j</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> -1;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax"> &lt; </span><span class="identifier-syntax">j</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> -1;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span> <span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">cf</span><span class="plain-syntax">(</span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">j</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">LIST_OF_TY_Sort_cf</span><span class="plain-syntax">(</span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">j</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">];</span> <span class="plain-syntax">];</span>
</pre> </pre>
<nav role="progress"><div class="progresscontainer"> <nav role="progress"><div class="progresscontainer">

View file

@ -574,81 +574,81 @@ given here.
<span class="character-syntax"> jump CClassKnown;</span> <span class="character-syntax"> jump CClassKnown;</span>
<span class="character-syntax"> '</span><span class="plain-syntax">=</span><span class="character-syntax">': par2 = 1; </span><span class="comment-syntax">(?=...) lookahead/behind</span> <span class="character-syntax"> '</span><span class="plain-syntax">=</span><span class="character-syntax">': par2 = 1; </span><span class="comment-syntax">(?=...) lookahead/behind</span>
<span class="character-syntax"> par3 = 0; if (bits == false) par3 = -1;</span> <span class="character-syntax"> par3 = 0; if (bits == false) par3 = -1;</span>
<span class="character-syntax"> '</span><span class="plain-syntax">!</span><span class="character-syntax">': par2 = 2; </span><span class="comment-syntax">(?!...) negated lookahead/behind</span> <span class="character-syntax"> '</span><span class="comment-syntax">!': par2 = 2; </span><span class="comment-syntax">(?!...) negated lookahead/behind</span>
<span class="character-syntax"> par3 = 0; if (bits == false) par3 = -1;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">par3</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">; </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">bits</span><span class="plain-syntax"> == </span><span class="reserved-syntax">false</span><span class="plain-syntax">) </span><span class="identifier-syntax">par3</span><span class="plain-syntax"> = -1;</span>
<span class="character-syntax"> '</span><span class="plain-syntax">:</span><span class="character-syntax">': par2 = 3; </span><span class="comment-syntax">(?:...) uncollecting subexpression</span> <span class="plain-syntax"> </span><span class="character-syntax">':'</span><span class="plain-syntax">: </span><span class="identifier-syntax">par2</span><span class="plain-syntax"> = </span><span class="constant-syntax">3</span><span class="plain-syntax">; </span><span class="comment-syntax">(?:...) uncollecting subexpression</span>
<span class="character-syntax"> '</span><span class="plain-syntax">&gt;</span><span class="character-syntax">': par2 = 4; </span><span class="comment-syntax">(?&gt;...) possessive</span> <span class="plain-syntax"> </span><span class="character-syntax">'&gt;'</span><span class="plain-syntax">: </span><span class="identifier-syntax">par2</span><span class="plain-syntax"> = </span><span class="constant-syntax">4</span><span class="plain-syntax">; </span><span class="comment-syntax">(?&gt;...) possessive</span>
<span class="character-syntax"> default:</span> <span class="plain-syntax"> </span><span class="reserved-syntax">default</span><span class="plain-syntax">:</span>
<span class="character-syntax"> if (BlkValueRead(ftxt, ffrom) == '</span><span class="plain-syntax">)</span><span class="character-syntax">') {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">BlkValueRead</span><span class="plain-syntax">(</span><span class="identifier-syntax">ftxt</span><span class="plain-syntax">, </span><span class="identifier-syntax">ffrom</span><span class="plain-syntax">) == </span><span class="character-syntax">')'</span><span class="plain-syntax">) {</span>
<span class="character-syntax"> if (cc == '</span><span class="identifier-syntax">i</span><span class="character-syntax">') {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cc</span><span class="plain-syntax"> == </span><span class="character-syntax">'i'</span><span class="plain-syntax">) {</span>
<span class="character-syntax"> cc = SENSITIVITY_RE_CC; par1 = bits; ffrom++;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">cc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">SENSITIVITY_RE_CC</span><span class="plain-syntax">; </span><span class="identifier-syntax">par1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">bits</span><span class="plain-syntax">; </span><span class="identifier-syntax">ffrom</span><span class="plain-syntax">++;</span>
<span class="character-syntax"> jump CClassKnown;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">jump</span><span class="plain-syntax"> </span><span class="identifier-syntax">CClassKnown</span><span class="plain-syntax">;</span>
<span class="character-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="character-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="character-syntax"> if (BlkValueRead(ftxt, ffrom) == '</span><span class="plain-syntax">:</span><span class="character-syntax">') {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">BlkValueRead</span><span class="plain-syntax">(</span><span class="identifier-syntax">ftxt</span><span class="plain-syntax">, </span><span class="identifier-syntax">ffrom</span><span class="plain-syntax">) == </span><span class="character-syntax">':'</span><span class="plain-syntax">) {</span>
<span class="character-syntax"> if (cc == '</span><span class="identifier-syntax">i</span><span class="character-syntax">') {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cc</span><span class="plain-syntax"> == </span><span class="character-syntax">'i'</span><span class="plain-syntax">) {</span>
<span class="character-syntax"> par1 = bits; par2 = 3; par3 = bits+1; ffrom++;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">par1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">bits</span><span class="plain-syntax">; </span><span class="identifier-syntax">par2</span><span class="plain-syntax"> = </span><span class="constant-syntax">3</span><span class="plain-syntax">; </span><span class="identifier-syntax">par3</span><span class="plain-syntax"> = </span><span class="identifier-syntax">bits</span><span class="plain-syntax">+1; </span><span class="identifier-syntax">ffrom</span><span class="plain-syntax">++;</span>
<span class="character-syntax"> jump AllowForm;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">jump</span><span class="plain-syntax"> </span><span class="identifier-syntax">AllowForm</span><span class="plain-syntax">;</span>
<span class="character-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="character-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="character-syntax"> return "unknown (?...) form";</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="string-syntax">"unknown (?...) form"</span><span class="plain-syntax">;</span>
<span class="character-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="character-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="character-syntax"> .AllowForm;</span> <span class="plain-syntax"> .</span><span class="identifier-syntax">AllowForm</span><span class="plain-syntax">;</span>
<span class="character-syntax"> if (par2 == 0) par1 = no_subs++; else par1 = -1;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">par2</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">no_subs</span><span class="plain-syntax">++; </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">par1</span><span class="plain-syntax"> = -1;</span>
<span class="character-syntax"> cc = SUBEXP_RE_CC;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">cc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">SUBEXP_RE_CC</span><span class="plain-syntax">;</span>
<span class="character-syntax"> quantifiable = false;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">quantifiable</span><span class="plain-syntax"> = </span><span class="reserved-syntax">false</span><span class="plain-syntax">;</span>
<span class="character-syntax"> if (blevel == 20) return "subexpressions too deep";</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">blevel</span><span class="plain-syntax"> == </span><span class="constant-syntax">20</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="string-syntax">"subexpressions too deep"</span><span class="plain-syntax">;</span>
<span class="character-syntax"> Subexp_Posns--&gt;(blevel++) = TEXT_TY_RE_NodeAddress(no_packets);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">Subexp_Posns</span><span class="plain-syntax">--&gt;(</span><span class="identifier-syntax">blevel</span><span class="plain-syntax">++) = </span><span class="identifier-syntax">TEXT_TY_RE_NodeAddress</span><span class="plain-syntax">(</span><span class="identifier-syntax">no_packets</span><span class="plain-syntax">);</span>
<span class="character-syntax"> '</span><span class="plain-syntax">)</span><span class="character-syntax">': if (blevel == 0) return "subexpression bracket mismatch";</span> <span class="plain-syntax"> </span><span class="character-syntax">')'</span><span class="plain-syntax">: </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">blevel</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="string-syntax">"subexpression bracket mismatch"</span><span class="plain-syntax">;</span>
<span class="character-syntax"> blevel--;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">blevel</span><span class="plain-syntax">--;</span>
<span class="character-syntax"> attach_to = Subexp_Posns--&gt;blevel;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">attach_to</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Subexp_Posns</span><span class="plain-syntax">--&gt;</span><span class="identifier-syntax">blevel</span><span class="plain-syntax">;</span>
<span class="character-syntax"> if (attach_to--&gt;RE_DOWN == NULL) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">attach_to</span><span class="plain-syntax">--&gt;</span><span class="identifier-syntax">RE_DOWN</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
<span class="character-syntax"> if (no_packets &gt;= RE_MAX_PACKETS) return "regexp too complex";</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">no_packets</span><span class="plain-syntax"> &gt;= </span><span class="identifier-syntax">RE_MAX_PACKETS</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="string-syntax">"regexp too complex"</span><span class="plain-syntax">;</span>
<span class="character-syntax"> attach_to--&gt;RE_DOWN =</span> <span class="plain-syntax"> </span><span class="identifier-syntax">attach_to</span><span class="plain-syntax">--&gt;</span><span class="identifier-syntax">RE_DOWN</span><span class="plain-syntax"> =</span>
<span class="character-syntax"> TEXT_TY_RE_Node(no_packets++, ALWAYS_RE_CC, 0, 0, 0);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">TEXT_TY_RE_Node</span><span class="plain-syntax">(</span><span class="identifier-syntax">no_packets</span><span class="plain-syntax">++, </span><span class="identifier-syntax">ALWAYS_RE_CC</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
<span class="character-syntax"> (attach_to--&gt;RE_DOWN)--&gt;RE_UP = attach_to;</span> <span class="plain-syntax"> (</span><span class="identifier-syntax">attach_to</span><span class="plain-syntax">--&gt;</span><span class="identifier-syntax">RE_DOWN</span><span class="plain-syntax">)--&gt;</span><span class="identifier-syntax">RE_UP</span><span class="plain-syntax"> = </span><span class="identifier-syntax">attach_to</span><span class="plain-syntax">;</span>
<span class="character-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="character-syntax"> quantifiable = true;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">quantifiable</span><span class="plain-syntax"> = </span><span class="reserved-syntax">true</span><span class="plain-syntax">;</span>
<span class="character-syntax"> continue;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span>
<span class="character-syntax"> '</span><span class="plain-syntax">.</span><span class="character-syntax">': cc = ANYTHING_RE_CC; quantifiable = true;</span> <span class="plain-syntax"> </span><span class="character-syntax">'.'</span><span class="plain-syntax">: </span><span class="identifier-syntax">cc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ANYTHING_RE_CC</span><span class="plain-syntax">; </span><span class="identifier-syntax">quantifiable</span><span class="plain-syntax"> = </span><span class="reserved-syntax">true</span><span class="plain-syntax">;</span>
<span class="character-syntax"> '</span><span class="plain-syntax">|</span><span class="character-syntax">': cc = CHOICE_RE_CC; quantifiable = false;</span> <span class="plain-syntax"> </span><span class="character-syntax">'|'</span><span class="plain-syntax">: </span><span class="identifier-syntax">cc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CHOICE_RE_CC</span><span class="plain-syntax">; </span><span class="identifier-syntax">quantifiable</span><span class="plain-syntax"> = </span><span class="reserved-syntax">false</span><span class="plain-syntax">;</span>
<span class="character-syntax"> '</span><span class="plain-syntax">^</span><span class="character-syntax">': cc = START_RE_CC; quantifiable = false;</span> <span class="plain-syntax"> </span><span class="character-syntax">'^'</span><span class="plain-syntax">: </span><span class="identifier-syntax">cc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">START_RE_CC</span><span class="plain-syntax">; </span><span class="identifier-syntax">quantifiable</span><span class="plain-syntax"> = </span><span class="reserved-syntax">false</span><span class="plain-syntax">;</span>
<span class="character-syntax"> '</span><span class="constant-syntax">$</span><span class="character-syntax">': cc = END_RE_CC; quantifiable = false;</span> <span class="plain-syntax"> </span><span class="character-syntax">'$'</span><span class="plain-syntax">: </span><span class="identifier-syntax">cc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">END_RE_CC</span><span class="plain-syntax">; </span><span class="identifier-syntax">quantifiable</span><span class="plain-syntax"> = </span><span class="reserved-syntax">false</span><span class="plain-syntax">;</span>
<span class="character-syntax"> '</span><span class="plain-syntax">{</span><span class="character-syntax">': if (quantifiable == false) return "quantifier misplaced";</span> <span class="plain-syntax"> </span><span class="character-syntax">'{'</span><span class="plain-syntax">: </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">quantifiable</span><span class="plain-syntax"> == </span><span class="reserved-syntax">false</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="string-syntax">"quantifier misplaced"</span><span class="plain-syntax">;</span>
<span class="character-syntax"> par1 = 0; par2 = -1; bits = 1;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">par1</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">; </span><span class="identifier-syntax">par2</span><span class="plain-syntax"> = -1; </span><span class="identifier-syntax">bits</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
<span class="character-syntax"> while ((cc=BlkValueRead(ftxt, ffrom++)) ~= 0 or '</span><span class="plain-syntax">}</span><span class="character-syntax">') {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">cc</span><span class="plain-syntax">=</span><span class="identifier-syntax">BlkValueRead</span><span class="plain-syntax">(</span><span class="identifier-syntax">ftxt</span><span class="plain-syntax">, </span><span class="identifier-syntax">ffrom</span><span class="plain-syntax">++)) ~= </span><span class="constant-syntax">0</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'}'</span><span class="plain-syntax">) {</span>
<span class="character-syntax"> if (cc == '</span><span class="plain-syntax">,</span><span class="character-syntax">') {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cc</span><span class="plain-syntax"> == </span><span class="character-syntax">','</span><span class="plain-syntax">) {</span>
<span class="character-syntax"> bits++;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">bits</span><span class="plain-syntax">++;</span>
<span class="character-syntax"> if (bits &gt;= 3) return "too many colons in ?{...}";</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">bits</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">3</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="string-syntax">"too many colons in ?{...}"</span><span class="plain-syntax">;</span>
<span class="character-syntax"> continue;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span>
<span class="character-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="character-syntax"> if ((cc &gt;= '</span><span class="constant-syntax">0</span><span class="character-syntax">') || (cc &lt;= '</span><span class="constant-syntax">9</span><span class="character-syntax">')) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">cc</span><span class="plain-syntax"> &gt;= </span><span class="character-syntax">'0'</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">cc</span><span class="plain-syntax"> &lt;= </span><span class="character-syntax">'9'</span><span class="plain-syntax">)) {</span>
<span class="character-syntax"> if (bits == 1) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">bits</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) {</span>
<span class="character-syntax"> if (par1 &lt; 0) par1 = 0;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">par1</span><span class="plain-syntax"> &lt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="character-syntax"> par1 = par1*10 + (cc-'</span><span class="constant-syntax">0</span><span class="character-syntax">');</span> <span class="plain-syntax"> </span><span class="identifier-syntax">par1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">par1</span><span class="plain-syntax">*10 + (</span><span class="identifier-syntax">cc</span><span class="plain-syntax">-</span><span class="character-syntax">'0'</span><span class="plain-syntax">);</span>
<span class="character-syntax"> } else {</span> <span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="character-syntax"> if (par2 &lt; 0) par2 = 0;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">par2</span><span class="plain-syntax"> &lt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">par2</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="character-syntax"> par2 = par2*10 + (cc-'</span><span class="constant-syntax">0</span><span class="character-syntax">');</span> <span class="plain-syntax"> </span><span class="identifier-syntax">par2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">par2</span><span class="plain-syntax">*10 + (</span><span class="identifier-syntax">cc</span><span class="plain-syntax">-</span><span class="character-syntax">'0'</span><span class="plain-syntax">);</span>
<span class="character-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="character-syntax"> } else return "non-digit in ?{...}";</span> <span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="string-syntax">"non-digit in ?{...}"</span><span class="plain-syntax">;</span>
<span class="character-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="character-syntax"> if (cc ~= '</span><span class="plain-syntax">}</span><span class="character-syntax">') return "{x,y} quantifier never ends";</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cc</span><span class="plain-syntax"> ~= </span><span class="character-syntax">'}'</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="string-syntax">"{x,y} quantifier never ends"</span><span class="plain-syntax">;</span>
<span class="character-syntax"> cc = QUANTIFIER_RE_CC;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">cc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">QUANTIFIER_RE_CC</span><span class="plain-syntax">;</span>
<span class="character-syntax"> if (par2 == -1) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">par2</span><span class="plain-syntax"> == -1) {</span>
<span class="character-syntax"> if (bits == 2) par2 = 30000;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">bits</span><span class="plain-syntax"> == </span><span class="constant-syntax">2</span><span class="plain-syntax">) </span><span class="identifier-syntax">par2</span><span class="plain-syntax"> = </span><span class="constant-syntax">30000</span><span class="plain-syntax">;</span>
<span class="character-syntax"> else par2 = par1;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">par2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">par1</span><span class="plain-syntax">;</span>
<span class="character-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="character-syntax"> if (par1 &gt; par2) return "{x,y} with x greater than y";</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">par1</span><span class="plain-syntax"> &gt; </span><span class="identifier-syntax">par2</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="string-syntax">"{x,y} with x greater than y"</span><span class="plain-syntax">;</span>
<span class="character-syntax"> if (BlkValueRead(ftxt, ffrom) == '</span><span class="plain-syntax">?</span><span class="character-syntax">') { ffrom++; par3 = true; }</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">BlkValueRead</span><span class="plain-syntax">(</span><span class="identifier-syntax">ftxt</span><span class="plain-syntax">, </span><span class="identifier-syntax">ffrom</span><span class="plain-syntax">) == </span><span class="character-syntax">'?'</span><span class="plain-syntax">) { </span><span class="identifier-syntax">ffrom</span><span class="plain-syntax">++; </span><span class="identifier-syntax">par3</span><span class="plain-syntax"> = </span><span class="reserved-syntax">true</span><span class="plain-syntax">; }</span>
<span class="character-syntax"> quantifiable = false;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">quantifiable</span><span class="plain-syntax"> = </span><span class="reserved-syntax">false</span><span class="plain-syntax">;</span>
<span class="character-syntax"> '</span><span class="plain-syntax">&lt;</span><span class="character-syntax">', '</span><span class="plain-syntax">[</span><span class="character-syntax">': par3 = false; if (cc == '</span><span class="plain-syntax">&lt;</span><span class="character-syntax">') bits = '</span><span class="plain-syntax">&gt;</span><span class="character-syntax">'; else bits = '</span><span class="plain-syntax">]</span><span class="character-syntax">';</span> <span class="plain-syntax"> </span><span class="character-syntax">'&lt;'</span><span class="plain-syntax">, </span><span class="character-syntax">'['</span><span class="plain-syntax">: </span><span class="identifier-syntax">par3</span><span class="plain-syntax"> = </span><span class="reserved-syntax">false</span><span class="plain-syntax">; </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cc</span><span class="plain-syntax"> == </span><span class="character-syntax">'&lt;'</span><span class="plain-syntax">) </span><span class="identifier-syntax">bits</span><span class="plain-syntax"> = </span><span class="character-syntax">'&gt;'</span><span class="plain-syntax">; </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">bits</span><span class="plain-syntax"> = </span><span class="character-syntax">']'</span><span class="plain-syntax">;</span>
<span class="character-syntax"> if (BlkValueRead(ftxt, ffrom) == '</span><span class="plain-syntax">^</span><span class="character-syntax">') { ffrom++; par3 = true; }</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">BlkValueRead</span><span class="plain-syntax">(</span><span class="identifier-syntax">ftxt</span><span class="plain-syntax">, </span><span class="identifier-syntax">ffrom</span><span class="plain-syntax">) == </span><span class="character-syntax">'^'</span><span class="plain-syntax">) { </span><span class="identifier-syntax">ffrom</span><span class="plain-syntax">++; </span><span class="identifier-syntax">par3</span><span class="plain-syntax"> = </span><span class="reserved-syntax">true</span><span class="plain-syntax">; }</span>
<span class="character-syntax"> par1 = ffrom;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">par1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ffrom</span><span class="plain-syntax">;</span>
<span class="character-syntax"> if (BlkValueRead(ftxt, ffrom) == bits) { ffrom++; }</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">BlkValueRead</span><span class="plain-syntax">(</span><span class="identifier-syntax">ftxt</span><span class="plain-syntax">, </span><span class="identifier-syntax">ffrom</span><span class="plain-syntax">) == </span><span class="identifier-syntax">bits</span><span class="plain-syntax">) { </span><span class="identifier-syntax">ffrom</span><span class="plain-syntax">++; }</span>
<span class="character-syntax"> while (cc ~= bits or 0) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cc</span><span class="plain-syntax"> ~= </span><span class="identifier-syntax">bits</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
<span class="character-syntax"> cc = BlkValueRead(ftxt, ffrom++);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">cc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">BlkValueRead</span><span class="plain-syntax">(</span><span class="identifier-syntax">ftxt</span><span class="plain-syntax">, </span><span class="identifier-syntax">ffrom</span><span class="plain-syntax">++);</span>
<span class="character-syntax"> if (cc == '</span><span class="plain-syntax">\</span><span class="character-syntax">') {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cc</span><span class="plain-syntax"> == </span><span class="character-syntax">'\') {</span>
<span class="character-syntax"> cc = BlkValueRead(ftxt, ffrom++);</span> <span class="character-syntax"> cc = BlkValueRead(ftxt, ffrom++);</span>
<span class="character-syntax"> if (cc ~= 0) cc = BlkValueRead(ftxt, ffrom++);</span> <span class="character-syntax"> if (cc ~= 0) cc = BlkValueRead(ftxt, ffrom++);</span>
<span class="character-syntax"> }</span> <span class="character-syntax"> }</span>
@ -1622,53 +1622,53 @@ case insensitively if <span class="extract"><span class="extract-syntax">insens<
<span class="character-syntax"> '</span><span class="identifier-syntax">S</span><span class="character-syntax">':</span> <span class="character-syntax"> '</span><span class="identifier-syntax">S</span><span class="character-syntax">':</span>
<span class="character-syntax"> if ((ch) &amp;&amp; (ch ~= 10 or 13 or 32 or 9)) rtrue;</span> <span class="character-syntax"> if ((ch) &amp;&amp; (ch ~= 10 or 13 or 32 or 9)) rtrue;</span>
<span class="character-syntax"> '</span><span class="identifier-syntax">p</span><span class="character-syntax">':</span> <span class="character-syntax"> '</span><span class="identifier-syntax">p</span><span class="character-syntax">':</span>
<span class="character-syntax"> if (ch == '</span><span class="plain-syntax">.</span><span class="character-syntax">' or '</span><span class="plain-syntax">,</span><span class="character-syntax">' or '</span><span class="plain-syntax">!</span><span class="character-syntax">' or '</span><span class="plain-syntax">?</span><span class="character-syntax">'</span> <span class="character-syntax"> if (ch == '</span><span class="plain-syntax">.</span><span class="character-syntax">' or '</span><span class="plain-syntax">,</span><span class="character-syntax">' or '</span><span class="comment-syntax">!' or '?'</span>
<span class="character-syntax"> or '</span><span class="plain-syntax">-</span><span class="character-syntax">' or '</span><span class="plain-syntax">/</span><span class="character-syntax">' or '</span><span class="string-syntax">"' or ':' or ';'</span> <span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'-'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'/'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'"'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">':'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">';'</span>
<span class="string-syntax"> or '(' or ')' or '[' or ']' or '{' or '}') rtrue;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'('</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">')'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'['</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">']'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'{'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'}'</span><span class="plain-syntax">) </span><span class="reserved-syntax">rtrue</span><span class="plain-syntax">;</span>
<span class="string-syntax"> 'P':</span> <span class="plain-syntax"> </span><span class="character-syntax">'P'</span><span class="plain-syntax">:</span>
<span class="string-syntax"> if ((ch) &amp;&amp; (ch ~= '.' or ',' or '!' or '?'</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">ch</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">ch</span><span class="plain-syntax"> ~= </span><span class="character-syntax">'.'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">','</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'!'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'?'</span>
<span class="string-syntax"> or '-' or '/' or '"</span><span class="character-syntax">' or '</span><span class="plain-syntax">:</span><span class="character-syntax">' or '</span><span class="plain-syntax">;</span><span class="character-syntax">'</span> <span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'-'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'/'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'"'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">':'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">';'</span>
<span class="character-syntax"> or '</span><span class="plain-syntax">(</span><span class="character-syntax">' or '</span><span class="plain-syntax">)</span><span class="character-syntax">' or '</span><span class="plain-syntax">[</span><span class="character-syntax">' or '</span><span class="plain-syntax">]</span><span class="character-syntax">' or '</span><span class="plain-syntax">{</span><span class="character-syntax">' or '</span><span class="plain-syntax">}</span><span class="character-syntax">')) rtrue;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'('</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">')'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'['</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">']'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'{'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'}'</span><span class="plain-syntax">)) </span><span class="reserved-syntax">rtrue</span><span class="plain-syntax">;</span>
<span class="character-syntax"> '</span><span class="identifier-syntax">w</span><span class="character-syntax">':</span> <span class="plain-syntax"> </span><span class="character-syntax">'w'</span><span class="plain-syntax">:</span>
<span class="character-syntax"> if ((ch) &amp;&amp; (ch ~= 10 or 13 or 32 or 9</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">ch</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">ch</span><span class="plain-syntax"> ~= </span><span class="constant-syntax">10</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="constant-syntax">13</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="constant-syntax">32</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="constant-syntax">9</span>
<span class="character-syntax"> or '</span><span class="plain-syntax">.</span><span class="character-syntax">' or '</span><span class="plain-syntax">,</span><span class="character-syntax">' or '</span><span class="plain-syntax">!</span><span class="character-syntax">' or '</span><span class="plain-syntax">?</span><span class="character-syntax">'</span> <span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'.'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">','</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'!'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'?'</span>
<span class="character-syntax"> or '</span><span class="plain-syntax">-</span><span class="character-syntax">' or '</span><span class="plain-syntax">/</span><span class="character-syntax">' or '</span><span class="string-syntax">"' or ':' or ';'</span> <span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'-'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'/'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'"'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">':'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">';'</span>
<span class="string-syntax"> or '(' or ')' or '[' or ']' or '{' or '}')) rtrue;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'('</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">')'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'['</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">']'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'{'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'}'</span><span class="plain-syntax">)) </span><span class="reserved-syntax">rtrue</span><span class="plain-syntax">;</span>
<span class="string-syntax"> 'W':</span> <span class="plain-syntax"> </span><span class="character-syntax">'W'</span><span class="plain-syntax">:</span>
<span class="string-syntax"> if (ch == 10 or 13 or 32 or 9</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ch</span><span class="plain-syntax"> == </span><span class="constant-syntax">10</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="constant-syntax">13</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="constant-syntax">32</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="constant-syntax">9</span>
<span class="string-syntax"> or '.' or ',' or '!' or '?'</span> <span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'.'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">','</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'!'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'?'</span>
<span class="string-syntax"> or '-' or '/' or '"</span><span class="character-syntax">' or '</span><span class="plain-syntax">:</span><span class="character-syntax">' or '</span><span class="plain-syntax">;</span><span class="character-syntax">'</span> <span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'-'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'/'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'"'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">':'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">';'</span>
<span class="character-syntax"> or '</span><span class="plain-syntax">(</span><span class="character-syntax">' or '</span><span class="plain-syntax">)</span><span class="character-syntax">' or '</span><span class="plain-syntax">[</span><span class="character-syntax">' or '</span><span class="plain-syntax">]</span><span class="character-syntax">' or '</span><span class="plain-syntax">{</span><span class="character-syntax">' or '</span><span class="plain-syntax">}</span><span class="character-syntax">') rtrue;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'('</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">')'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'['</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">']'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'{'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'}'</span><span class="plain-syntax">) </span><span class="reserved-syntax">rtrue</span><span class="plain-syntax">;</span>
<span class="character-syntax"> '</span><span class="identifier-syntax">d</span><span class="character-syntax">':</span> <span class="plain-syntax"> </span><span class="character-syntax">'d'</span><span class="plain-syntax">:</span>
<span class="character-syntax"> if (ch == '</span><span class="constant-syntax">0</span><span class="character-syntax">' or '</span><span class="constant-syntax">1</span><span class="character-syntax">' or '</span><span class="constant-syntax">2</span><span class="character-syntax">' or '</span><span class="constant-syntax">3</span><span class="character-syntax">' or '</span><span class="constant-syntax">4</span><span class="character-syntax">'</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ch</span><span class="plain-syntax"> == </span><span class="character-syntax">'0'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'1'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'2'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'3'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'4'</span>
<span class="character-syntax"> or '</span><span class="constant-syntax">5</span><span class="character-syntax">' or '</span><span class="constant-syntax">6</span><span class="character-syntax">' or '</span><span class="constant-syntax">7</span><span class="character-syntax">' or '</span><span class="constant-syntax">8</span><span class="character-syntax">' or '</span><span class="constant-syntax">9</span><span class="character-syntax">') rtrue;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'5'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'6'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'7'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'8'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'9'</span><span class="plain-syntax">) </span><span class="reserved-syntax">rtrue</span><span class="plain-syntax">;</span>
<span class="character-syntax"> '</span><span class="identifier-syntax">D</span><span class="character-syntax">':</span> <span class="plain-syntax"> </span><span class="character-syntax">'D'</span><span class="plain-syntax">:</span>
<span class="character-syntax"> if ((ch) &amp;&amp; (ch ~= '</span><span class="constant-syntax">0</span><span class="character-syntax">' or '</span><span class="constant-syntax">1</span><span class="character-syntax">' or '</span><span class="constant-syntax">2</span><span class="character-syntax">' or '</span><span class="constant-syntax">3</span><span class="character-syntax">' or '</span><span class="constant-syntax">4</span><span class="character-syntax">'</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">ch</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">ch</span><span class="plain-syntax"> ~= </span><span class="character-syntax">'0'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'1'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'2'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'3'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'4'</span>
<span class="character-syntax"> or '</span><span class="constant-syntax">5</span><span class="character-syntax">' or '</span><span class="constant-syntax">6</span><span class="character-syntax">' or '</span><span class="constant-syntax">7</span><span class="character-syntax">' or '</span><span class="constant-syntax">8</span><span class="character-syntax">' or '</span><span class="constant-syntax">9</span><span class="character-syntax">')) rtrue;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'5'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'6'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'7'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'8'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'9'</span><span class="plain-syntax">)) </span><span class="reserved-syntax">rtrue</span><span class="plain-syntax">;</span>
<span class="character-syntax"> '</span><span class="identifier-syntax">l</span><span class="character-syntax">': if (CharIsOfCase(ch, 0)) rtrue;</span> <span class="plain-syntax"> </span><span class="character-syntax">'l'</span><span class="plain-syntax">: </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">CharIsOfCase</span><span class="plain-syntax">(</span><span class="identifier-syntax">ch</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">)) </span><span class="reserved-syntax">rtrue</span><span class="plain-syntax">;</span>
<span class="character-syntax"> '</span><span class="identifier-syntax">L</span><span class="character-syntax">': if (CharIsOfCase(ch, 0) == false) rtrue;</span> <span class="plain-syntax"> </span><span class="character-syntax">'L'</span><span class="plain-syntax">: </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">CharIsOfCase</span><span class="plain-syntax">(</span><span class="identifier-syntax">ch</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">) == </span><span class="reserved-syntax">false</span><span class="plain-syntax">) </span><span class="reserved-syntax">rtrue</span><span class="plain-syntax">;</span>
<span class="character-syntax"> '</span><span class="identifier-syntax">u</span><span class="character-syntax">': if (CharIsOfCase(ch, 1)) rtrue;</span> <span class="plain-syntax"> </span><span class="character-syntax">'u'</span><span class="plain-syntax">: </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">CharIsOfCase</span><span class="plain-syntax">(</span><span class="identifier-syntax">ch</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">)) </span><span class="reserved-syntax">rtrue</span><span class="plain-syntax">;</span>
<span class="character-syntax"> '</span><span class="identifier-syntax">U</span><span class="character-syntax">': if (CharIsOfCase(ch, 1) == false) rtrue;</span> <span class="plain-syntax"> </span><span class="character-syntax">'U'</span><span class="plain-syntax">: </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">CharIsOfCase</span><span class="plain-syntax">(</span><span class="identifier-syntax">ch</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">) == </span><span class="reserved-syntax">false</span><span class="plain-syntax">) </span><span class="reserved-syntax">rtrue</span><span class="plain-syntax">;</span>
<span class="character-syntax"> '</span><span class="identifier-syntax">n</span><span class="character-syntax">': if (ch == 10) rtrue;</span> <span class="plain-syntax"> </span><span class="character-syntax">'n'</span><span class="plain-syntax">: </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ch</span><span class="plain-syntax"> == </span><span class="constant-syntax">10</span><span class="plain-syntax">) </span><span class="reserved-syntax">rtrue</span><span class="plain-syntax">;</span>
<span class="character-syntax"> '</span><span class="identifier-syntax">t</span><span class="character-syntax">': if (ch == 9) rtrue;</span> <span class="plain-syntax"> </span><span class="character-syntax">'t'</span><span class="plain-syntax">: </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ch</span><span class="plain-syntax"> == </span><span class="constant-syntax">9</span><span class="plain-syntax">) </span><span class="reserved-syntax">rtrue</span><span class="plain-syntax">;</span>
<span class="character-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="character-syntax"> } else {</span> <span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="character-syntax"> if ((i+2&lt;rt) &amp;&amp; (BlkValueRead(ftxt, i+1) == '</span><span class="plain-syntax">-</span><span class="character-syntax">')) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">i</span><span class="plain-syntax">+2&lt;</span><span class="identifier-syntax">rt</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">BlkValueRead</span><span class="plain-syntax">(</span><span class="identifier-syntax">ftxt</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+1) == </span><span class="character-syntax">'-'</span><span class="plain-syntax">)) {</span>
<span class="character-syntax"> upper = BlkValueRead(ftxt, i+2);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">upper</span><span class="plain-syntax"> = </span><span class="identifier-syntax">BlkValueRead</span><span class="plain-syntax">(</span><span class="identifier-syntax">ftxt</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+2);</span>
<span class="character-syntax"> if ((ch &gt;= chm) &amp;&amp; (ch &lt;= upper)) rtrue;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">ch</span><span class="plain-syntax"> &gt;= </span><span class="identifier-syntax">chm</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">ch</span><span class="plain-syntax"> &lt;= </span><span class="identifier-syntax">upper</span><span class="plain-syntax">)) </span><span class="reserved-syntax">rtrue</span><span class="plain-syntax">;</span>
<span class="character-syntax"> if (insens) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">insens</span><span class="plain-syntax">) {</span>
<span class="character-syntax"> crev = TEXT_TY_RevCase(ch);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">crev</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TEXT_TY_RevCase</span><span class="plain-syntax">(</span><span class="identifier-syntax">ch</span><span class="plain-syntax">);</span>
<span class="character-syntax"> if ((crev &gt;= chm) &amp;&amp; (crev &lt;= upper)) rtrue;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">crev</span><span class="plain-syntax"> &gt;= </span><span class="identifier-syntax">chm</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">crev</span><span class="plain-syntax"> &lt;= </span><span class="identifier-syntax">upper</span><span class="plain-syntax">)) </span><span class="reserved-syntax">rtrue</span><span class="plain-syntax">;</span>
<span class="character-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="character-syntax"> i=i+2;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">+2;</span>
<span class="character-syntax"> } else {</span> <span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="character-syntax"> if (chm == ch) rtrue;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">chm</span><span class="plain-syntax"> == </span><span class="identifier-syntax">ch</span><span class="plain-syntax">) </span><span class="reserved-syntax">rtrue</span><span class="plain-syntax">;</span>
<span class="character-syntax"> if ((insens) &amp;&amp; (chm == TEXT_TY_RevCase(ch))) rtrue;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">insens</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">chm</span><span class="plain-syntax"> == </span><span class="identifier-syntax">TEXT_TY_RevCase</span><span class="plain-syntax">(</span><span class="identifier-syntax">ch</span><span class="plain-syntax">))) </span><span class="reserved-syntax">rtrue</span><span class="plain-syntax">;</span>
<span class="character-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="character-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="character-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="character-syntax"> rfalse;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
<span class="character-syntax">];</span> <span class="plain-syntax">];</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP18" class="paragraph-anchor"></a><b>&#167;18. Search And Replace. </b>And finally, last but not least: the routine which searches an indexed <p class="commentary firstcommentary"><a id="SP18" class="paragraph-anchor"></a><b>&#167;18. Search And Replace. </b>And finally, last but not least: the routine which searches an indexed
text <span class="extract"><span class="extract-syntax">txt</span></span> trying to match it against <span class="extract"><span class="extract-syntax">ftxt</span></span>. If <span class="extract"><span class="extract-syntax">ftxtype</span></span> is set to text <span class="extract"><span class="extract-syntax">txt</span></span> trying to match it against <span class="extract"><span class="extract-syntax">ftxt</span></span>. If <span class="extract"><span class="extract-syntax">ftxtype</span></span> is set to

View file

@ -79,6 +79,9 @@ auxiliary storage.
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">SORT_ASCENDING</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">SORT_DESCENDING</span><span class="plain-syntax"> = -1;</span>
<span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">I7S_Tab</span><span class="plain-syntax">; </span><span class="comment-syntax">The array to be sorted, which can have almost any format</span> <span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">I7S_Tab</span><span class="plain-syntax">; </span><span class="comment-syntax">The array to be sorted, which can have almost any format</span>
<span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">I7S_Col</span><span class="plain-syntax">; </span><span class="comment-syntax">The "column number" in the array, if any</span> <span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">I7S_Col</span><span class="plain-syntax">; </span><span class="comment-syntax">The "column number" in the array, if any</span>
<span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">I7S_Dir</span><span class="plain-syntax">; </span><span class="comment-syntax">The direction of sorting: ascending (1) or descending (-1)</span> <span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">I7S_Dir</span><span class="plain-syntax">; </span><span class="comment-syntax">The direction of sorting: ascending (1) or descending (-1)</span>

View file

@ -65,7 +65,7 @@ MathJax = {
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>Tables Template</b></li></ul></div> <ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>Tables Template</b></li></ul></div>
<p class="purpose">To read, write, search and allocate rows in the Table data structure.</p> <p class="purpose">To read, write, search and allocate rows in the Table data structure.</p>
<ul class="toc"><li><a href="S-tbl.html#SP1">&#167;1. Format</a></li><li><a href="S-tbl.html#SP2">&#167;2. Find Column</a></li><li><a href="S-tbl.html#SP3">&#167;3. Number of Rows</a></li><li><a href="S-tbl.html#SP4">&#167;4. Blanks</a></li><li><a href="S-tbl.html#SP5">&#167;5. Masks</a></li><li><a href="S-tbl.html#SP6">&#167;6. Testing Blankness</a></li><li><a href="S-tbl.html#SP7">&#167;7. Force Entry Blank</a></li><li><a href="S-tbl.html#SP8">&#167;8. Force Entry Non-Blank</a></li><li><a href="S-tbl.html#SP9">&#167;9. Swapping Blank Bits</a></li><li><a href="S-tbl.html#SP10">&#167;10. Moving Blank Bits Down</a></li><li><a href="S-tbl.html#SP11">&#167;11. Table Row Corresponding</a></li><li><a href="S-tbl.html#SP12">&#167;12. Table Look Up Corresponding Row</a></li><li><a href="S-tbl.html#SP13">&#167;13. Table Look Up Entry</a></li><li><a href="S-tbl.html#SP14">&#167;14. Blank Rows</a></li><li><a href="S-tbl.html#SP15">&#167;15. Random Row</a></li><li><a href="S-tbl.html#SP16">&#167;16. Swap Rows</a></li><li><a href="S-tbl.html#SP17">&#167;17. Compare Rows</a></li><li><a href="S-tbl.html#SP18">&#167;18. Move Row Down</a></li><li><a href="S-tbl.html#SP19">&#167;19. Shuffle</a></li><li><a href="S-tbl.html#SP20">&#167;20. Next Row</a></li><li><a href="S-tbl.html#SP21">&#167;21. Move Blanks to Back</a></li><li><a href="S-tbl.html#SP22">&#167;22. Sort</a></li><li><a href="S-tbl.html#SP23">&#167;23. Print Table to File</a></li><li><a href="S-tbl.html#SP24">&#167;24. Read Table from File</a></li><li><a href="S-tbl.html#SP25">&#167;25. Debugging</a></li></ul><hr class="tocbar"> <ul class="toc"><li><a href="S-tbl.html#SP1">&#167;1. Format</a></li><li><a href="S-tbl.html#SP2">&#167;2. Find Column</a></li><li><a href="S-tbl.html#SP3">&#167;3. Number of Rows</a></li><li><a href="S-tbl.html#SP4">&#167;4. Blanks</a></li><li><a href="S-tbl.html#SP5">&#167;5. Masks</a></li><li><a href="S-tbl.html#SP6">&#167;6. Testing Blankness</a></li><li><a href="S-tbl.html#SP7">&#167;7. Force Entry Blank</a></li><li><a href="S-tbl.html#SP8">&#167;8. Force Entry Non-Blank</a></li><li><a href="S-tbl.html#SP9">&#167;9. Swapping Blank Bits</a></li><li><a href="S-tbl.html#SP10">&#167;10. Moving Blank Bits Down</a></li><li><a href="S-tbl.html#SP11">&#167;11. Table Row Corresponding</a></li><li><a href="S-tbl.html#SP12">&#167;12. Table Look Up Corresponding Row</a></li><li><a href="S-tbl.html#SP13">&#167;13. Table Look Up Entry</a></li><li><a href="S-tbl.html#SP14">&#167;14. Blank Rows</a></li><li><a href="S-tbl.html#SP15">&#167;15. Random Row</a></li><li><a href="S-tbl.html#SP16">&#167;16. Swap Rows</a></li><li><a href="S-tbl.html#SP17">&#167;17. Compare Rows</a></li><li><a href="S-tbl.html#SP19">&#167;19. Move Row Down</a></li><li><a href="S-tbl.html#SP20">&#167;20. Shuffle</a></li><li><a href="S-tbl.html#SP21">&#167;21. Next Row</a></li><li><a href="S-tbl.html#SP22">&#167;22. Move Blanks to Back</a></li><li><a href="S-tbl.html#SP23">&#167;23. Sort</a></li><li><a href="S-tbl.html#SP24">&#167;24. Print Table to File</a></li><li><a href="S-tbl.html#SP25">&#167;25. Read Table from File</a></li><li><a href="S-tbl.html#SP26">&#167;26. Debugging</a></li></ul><hr class="tocbar">
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. Format. </b>The I7 Table structure is not to be confused with the I6 <span class="extract"><span class="extract-syntax">table</span></span> form of <p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. Format. </b>The I7 Table structure is not to be confused with the I6 <span class="extract"><span class="extract-syntax">table</span></span> form of
array: it is essentially a two-dimensional array which has some metadata array: it is essentially a two-dimensional array which has some metadata
@ -708,7 +708,19 @@ where other entries are not.
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax">];</span> <span class="plain-syntax">];</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP18" class="paragraph-anchor"></a><b>&#167;18. Move Row Down. </b></p> <p class="commentary firstcommentary"><a id="SP18" class="paragraph-anchor"></a><b>&#167;18. </b><span class="extract"><span class="extract-syntax">TableCompareRowsCustomCF(T, C, R1, R2, D)</span></span> is similar, but calls a custom
comparison function, and so ignores the <span class="extract"><span class="extract-syntax">C</span></span> parameter. The <span class="extract"><span class="extract-syntax">D</span></span> parameter is
also ignored at present.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">Table_Sort_cf</span><span class="plain-syntax">;</span>
<span class="plain-syntax">[ </span><span class="identifier-syntax">TableCompareRowsCustomCF</span><span class="plain-syntax"> </span><span class="identifier-syntax">tab</span><span class="plain-syntax"> </span><span class="identifier-syntax">col</span><span class="plain-syntax"> </span><span class="identifier-syntax">row1</span><span class="plain-syntax"> </span><span class="identifier-syntax">row2</span><span class="plain-syntax"> </span><span class="identifier-syntax">dir</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">Table_Sort_cf</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">, </span><span class="identifier-syntax">row1</span><span class="plain-syntax">, </span><span class="identifier-syntax">row2</span><span class="plain-syntax">);</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP19" class="paragraph-anchor"></a><b>&#167;19. Move Row Down. </b></p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">[ </span><span class="identifier-syntax">TableMoveRowDown</span><span class="plain-syntax"> </span><span class="identifier-syntax">tab</span><span class="plain-syntax"> </span><span class="identifier-syntax">r1</span><span class="plain-syntax"> </span><span class="identifier-syntax">r2</span><span class="plain-syntax"> </span><span class="identifier-syntax">rx</span><span class="plain-syntax"> </span><span class="identifier-syntax">k</span><span class="plain-syntax"> </span><span class="identifier-syntax">l</span><span class="plain-syntax"> </span><span class="identifier-syntax">m</span><span class="plain-syntax"> </span><span class="identifier-syntax">v</span><span class="plain-syntax"> </span><span class="identifier-syntax">f</span><span class="plain-syntax">;</span> <span class="plain-syntax">[ </span><span class="identifier-syntax">TableMoveRowDown</span><span class="plain-syntax"> </span><span class="identifier-syntax">tab</span><span class="plain-syntax"> </span><span class="identifier-syntax">r1</span><span class="plain-syntax"> </span><span class="identifier-syntax">r2</span><span class="plain-syntax"> </span><span class="identifier-syntax">rx</span><span class="plain-syntax"> </span><span class="identifier-syntax">k</span><span class="plain-syntax"> </span><span class="identifier-syntax">l</span><span class="plain-syntax"> </span><span class="identifier-syntax">m</span><span class="plain-syntax"> </span><span class="identifier-syntax">v</span><span class="plain-syntax"> </span><span class="identifier-syntax">f</span><span class="plain-syntax">;</span>
@ -728,7 +740,7 @@ where other entries are not.
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax">];</span> <span class="plain-syntax">];</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP19" class="paragraph-anchor"></a><b>&#167;19. Shuffle. </b><span class="extract"><span class="extract-syntax">TableShuffle(T)</span></span> sorts <span class="extract"><span class="extract-syntax">T</span></span> into random row order. <p class="commentary firstcommentary"><a id="SP20" class="paragraph-anchor"></a><b>&#167;20. Shuffle. </b><span class="extract"><span class="extract-syntax">TableShuffle(T)</span></span> sorts <span class="extract"><span class="extract-syntax">T</span></span> into random row order.
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
@ -738,7 +750,7 @@ where other entries are not.
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax">=2:</span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;=</span><span class="reserved-syntax">to</span><span class="plain-syntax">:</span><span class="identifier-syntax">i</span><span class="plain-syntax">++) </span><span class="identifier-syntax">TableSwapRows</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="reserved-syntax">random</span><span class="plain-syntax">(</span><span class="identifier-syntax">i</span><span class="plain-syntax">));</span> <span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax">=2:</span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;=</span><span class="reserved-syntax">to</span><span class="plain-syntax">:</span><span class="identifier-syntax">i</span><span class="plain-syntax">++) </span><span class="identifier-syntax">TableSwapRows</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="reserved-syntax">random</span><span class="plain-syntax">(</span><span class="identifier-syntax">i</span><span class="plain-syntax">));</span>
<span class="plain-syntax">];</span> <span class="plain-syntax">];</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP20" class="paragraph-anchor"></a><b>&#167;20. Next Row. </b><span class="extract"><span class="extract-syntax">TableNextRow(T, C, R, D)</span></span> is used when scanning through a table in order <p class="commentary firstcommentary"><a id="SP21" class="paragraph-anchor"></a><b>&#167;21. Next Row. </b><span class="extract"><span class="extract-syntax">TableNextRow(T, C, R, D)</span></span> is used when scanning through a table in order
of the values in column <span class="extract"><span class="extract-syntax">C</span></span>: ascending order if <span class="extract"><span class="extract-syntax">D = 1</span></span>, descending if <span class="extract"><span class="extract-syntax">D = of the values in column <span class="extract"><span class="extract-syntax">C</span></span>: ascending order if <span class="extract"><span class="extract-syntax">D = 1</span></span>, descending if <span class="extract"><span class="extract-syntax">D =
</span></span>-1<span class="extract"><span class="extract-syntax">. The current position is row </span></span>R<span class="extract"><span class="extract-syntax"> of column </span></span>C<span class="extract"><span class="extract-syntax">, or </span></span>R = 0<span class="extract"><span class="extract-syntax"> if we have </span></span>-1<span class="extract"><span class="extract-syntax">. The current position is row </span></span>R<span class="extract"><span class="extract-syntax"> of column </span></span>C<span class="extract"><span class="extract-syntax">, or </span></span>R = 0<span class="extract"><span class="extract-syntax"> if we have
</span></span>not yet found the first row. The return value is the row number for the </span></span>not yet found the first row. The return value is the row number for the
@ -828,7 +840,7 @@ Rows with blank entries in <span class="extract"><span class="extract-syntax">C<
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">min_at</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">min_at</span><span class="plain-syntax">;</span>
<span class="plain-syntax">];</span> <span class="plain-syntax">];</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP21" class="paragraph-anchor"></a><b>&#167;21. Move Blanks to Back. </b></p> <p class="commentary firstcommentary"><a id="SP22" class="paragraph-anchor"></a><b>&#167;22. Move Blanks to Back. </b></p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">[ </span><span class="identifier-syntax">TableMoveBlanksToBack</span><span class="plain-syntax"> </span><span class="identifier-syntax">tab</span><span class="plain-syntax"> </span><span class="identifier-syntax">fromrow</span><span class="plain-syntax"> </span><span class="identifier-syntax">torow</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> </span><span class="identifier-syntax">fbl</span><span class="plain-syntax"> </span><span class="identifier-syntax">lnbl</span><span class="plain-syntax"> </span><span class="identifier-syntax">blc</span><span class="plain-syntax">;</span> <span class="plain-syntax">[ </span><span class="identifier-syntax">TableMoveBlanksToBack</span><span class="plain-syntax"> </span><span class="identifier-syntax">tab</span><span class="plain-syntax"> </span><span class="identifier-syntax">fromrow</span><span class="plain-syntax"> </span><span class="identifier-syntax">torow</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> </span><span class="identifier-syntax">fbl</span><span class="plain-syntax"> </span><span class="identifier-syntax">lnbl</span><span class="plain-syntax"> </span><span class="identifier-syntax">blc</span><span class="plain-syntax">;</span>
@ -848,25 +860,33 @@ Rows with blank entries in <span class="extract"><span class="extract-syntax">C<
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">torow</span><span class="plain-syntax">-</span><span class="identifier-syntax">blc</span><span class="plain-syntax">; </span><span class="comment-syntax">Final non-blank row</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">torow</span><span class="plain-syntax">-</span><span class="identifier-syntax">blc</span><span class="plain-syntax">; </span><span class="comment-syntax">Final non-blank row</span>
<span class="plain-syntax">];</span> <span class="plain-syntax">];</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP22" class="paragraph-anchor"></a><b>&#167;22. Sort. </b>This is really only a front-end: it calls the sorting code at "Sort.i6t". <p class="commentary firstcommentary"><a id="SP23" class="paragraph-anchor"></a><b>&#167;23. Sort. </b>This is really only a front-end: it calls the sorting code at "Sort.i6t".
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">[ </span><span class="identifier-syntax">TableSort</span><span class="plain-syntax"> </span><span class="identifier-syntax">tab</span><span class="plain-syntax"> </span><span class="identifier-syntax">col</span><span class="plain-syntax"> </span><span class="identifier-syntax">dir</span><span class="plain-syntax"> </span><span class="identifier-syntax">algorithm</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> </span><span class="identifier-syntax">j</span><span class="plain-syntax"> </span><span class="identifier-syntax">k</span><span class="plain-syntax"> </span><span class="identifier-syntax">f</span><span class="plain-syntax">;</span> <span class="plain-syntax">[ </span><span class="identifier-syntax">TableSort</span><span class="plain-syntax"> </span><span class="identifier-syntax">tab</span><span class="plain-syntax"> </span><span class="identifier-syntax">col</span><span class="plain-syntax"> </span><span class="identifier-syntax">dir</span><span class="plain-syntax"> </span><span class="identifier-syntax">algorithm</span><span class="plain-syntax"> </span><span class="identifier-syntax">cf</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> </span><span class="identifier-syntax">j</span><span class="plain-syntax"> </span><span class="identifier-syntax">k</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax">=1:</span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;=</span><span class="identifier-syntax">tab</span><span class="plain-syntax">--&gt;0:</span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax">=1:</span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;=</span><span class="identifier-syntax">tab</span><span class="plain-syntax">--&gt;0:</span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">j</span><span class="plain-syntax"> = </span><span class="identifier-syntax">tab</span><span class="plain-syntax">--&gt;</span><span class="identifier-syntax">i</span><span class="plain-syntax">; </span><span class="comment-syntax">Address of column table</span> <span class="plain-syntax"> </span><span class="identifier-syntax">j</span><span class="plain-syntax"> = </span><span class="identifier-syntax">tab</span><span class="plain-syntax">--&gt;</span><span class="identifier-syntax">i</span><span class="plain-syntax">; </span><span class="comment-syntax">Address of column table</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">j</span><span class="plain-syntax">--&gt;1) &amp; </span><span class="identifier-syntax">TB_COLUMN_DONTSORTME</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">j</span><span class="plain-syntax">--&gt;1) &amp; </span><span class="identifier-syntax">TB_COLUMN_DONTSORTME</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">RunTimeProblem</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTP_TABLE_CANTSORT</span><span class="plain-syntax">, </span><span class="identifier-syntax">tab</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">RunTimeProblem</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTP_TABLE_CANTSORT</span><span class="plain-syntax">, </span><span class="identifier-syntax">tab</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">col</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">100</span><span class="plain-syntax">) </span><span class="identifier-syntax">col</span><span class="plain-syntax">=</span><span class="identifier-syntax">TableFindCol</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">, </span><span class="identifier-syntax">col</span><span class="plain-syntax">, </span><span class="reserved-syntax">false</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cf</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Table_Sort_cf</span><span class="plain-syntax"> = </span><span class="identifier-syntax">cf</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">SetSortDomain</span><span class="plain-syntax">(</span><span class="identifier-syntax">TableSwapRows</span><span class="plain-syntax">, </span><span class="identifier-syntax">TableCompareRowsCustomCF</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">col</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">100</span><span class="plain-syntax">) </span><span class="identifier-syntax">col</span><span class="plain-syntax">=</span><span class="identifier-syntax">TableFindCol</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">, </span><span class="identifier-syntax">col</span><span class="plain-syntax">, </span><span class="reserved-syntax">false</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">SetSortDomain</span><span class="plain-syntax">(</span><span class="identifier-syntax">TableSwapRows</span><span class="plain-syntax">, </span><span class="identifier-syntax">TableCompareRows</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">k</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TableRows</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">k</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TableRows</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">k</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TableMoveBlanksToBack</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="identifier-syntax">k</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">k</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TableMoveBlanksToBack</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="identifier-syntax">k</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">SetSortDomain</span><span class="plain-syntax">(</span><span class="identifier-syntax">TableSwapRows</span><span class="plain-syntax">, </span><span class="identifier-syntax">TableCompareRows</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">SortArray</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">, </span><span class="identifier-syntax">col</span><span class="plain-syntax">, </span><span class="identifier-syntax">dir</span><span class="plain-syntax">, </span><span class="identifier-syntax">k</span><span class="plain-syntax">, </span><span class="identifier-syntax">algorithm</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">SortArray</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">, </span><span class="identifier-syntax">col</span><span class="plain-syntax">, </span><span class="identifier-syntax">dir</span><span class="plain-syntax">, </span><span class="identifier-syntax">k</span><span class="plain-syntax">, </span><span class="identifier-syntax">algorithm</span><span class="plain-syntax">);</span>
<span class="plain-syntax">];</span> <span class="plain-syntax">];</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP23" class="paragraph-anchor"></a><b>&#167;23. Print Table to File. </b>This is how we serialise a table to an external file, though the writing <p class="commentary firstcommentary"><a id="SP24" class="paragraph-anchor"></a><b>&#167;24. Print Table to File. </b>This is how we serialise a table to an external file, though the writing
is done by printing characters in the standard way; it's just that the output is done by printing characters in the standard way; it's just that the output
stream will be an external file rather than the screen when this routine stream will be an external file rather than the screen when this routine
is called. is called.
@ -900,7 +920,7 @@ is called.
<span class="plain-syntax"> </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
<span class="plain-syntax">];</span> <span class="plain-syntax">];</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP24" class="paragraph-anchor"></a><b>&#167;24. Read Table from File. </b>And this is how we unserialise again. It makes sense only on Glulx. <p class="commentary firstcommentary"><a id="SP25" class="paragraph-anchor"></a><b>&#167;25. Read Table from File. </b>And this is how we unserialise again. It makes sense only on Glulx.
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
@ -981,7 +1001,7 @@ is called.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">RunTimeProblem</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTP_TABLE_BADFILE</span><span class="plain-syntax">, </span><span class="identifier-syntax">tab</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">RunTimeProblem</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTP_TABLE_BADFILE</span><span class="plain-syntax">, </span><span class="identifier-syntax">tab</span><span class="plain-syntax">);</span>
<span class="plain-syntax">];</span> <span class="plain-syntax">];</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP25" class="paragraph-anchor"></a><b>&#167;25. Debugging. </b>Routines to print the state of a table, for debugging purposes only. <p class="commentary firstcommentary"><a id="SP26" class="paragraph-anchor"></a><b>&#167;26. Debugging. </b>Routines to print the state of a table, for debugging purposes only.
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">

View file

@ -1480,10 +1480,13 @@ text variable.
<span class="plain-syntax"> (- </span><span class="identifier-syntax">TableShuffle</span><span class="plain-syntax">({</span><span class="identifier-syntax">T</span><span class="plain-syntax">}); -).</span> <span class="plain-syntax"> (- </span><span class="identifier-syntax">TableShuffle</span><span class="plain-syntax">({</span><span class="identifier-syntax">T</span><span class="plain-syntax">}); -).</span>
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">sort</span><span class="plain-syntax"> (</span><span class="identifier-syntax">T</span><span class="plain-syntax"> - </span><span class="identifier-syntax">table</span><span class="plain-syntax"> </span><span class="identifier-syntax">name</span><span class="plain-syntax">) </span><span class="identifier-syntax">in</span><span class="plain-syntax">/</span><span class="identifier-syntax">into</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TC</span><span class="plain-syntax"> - </span><span class="identifier-syntax">table</span><span class="plain-syntax"> </span><span class="identifier-syntax">column</span><span class="plain-syntax">) </span><span class="identifier-syntax">order</span> <span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">sort</span><span class="plain-syntax"> (</span><span class="identifier-syntax">T</span><span class="plain-syntax"> - </span><span class="identifier-syntax">table</span><span class="plain-syntax"> </span><span class="identifier-syntax">name</span><span class="plain-syntax">) </span><span class="identifier-syntax">in</span><span class="plain-syntax">/</span><span class="identifier-syntax">into</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TC</span><span class="plain-syntax"> - </span><span class="identifier-syntax">table</span><span class="plain-syntax"> </span><span class="identifier-syntax">column</span><span class="plain-syntax">) </span><span class="identifier-syntax">order</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">documented</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">ph_sortcolumn</span><span class="plain-syntax">):</span> <span class="plain-syntax"> (</span><span class="identifier-syntax">documented</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">ph_sortcolumn</span><span class="plain-syntax">):</span>
<span class="plain-syntax"> (- </span><span class="identifier-syntax">TableSort</span><span class="plain-syntax">({</span><span class="identifier-syntax">T</span><span class="plain-syntax">}, {</span><span class="identifier-syntax">TC</span><span class="plain-syntax">}, </span><span class="constant-syntax">1</span><span class="plain-syntax">); -).</span> <span class="plain-syntax"> (- </span><span class="identifier-syntax">TableSort</span><span class="plain-syntax">({</span><span class="identifier-syntax">T</span><span class="plain-syntax">}, {</span><span class="identifier-syntax">TC</span><span class="plain-syntax">}, </span><span class="identifier-syntax">SORT_ASCENDING</span><span class="plain-syntax">); -).</span>
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">sort</span><span class="plain-syntax"> (</span><span class="identifier-syntax">T</span><span class="plain-syntax"> - </span><span class="identifier-syntax">table</span><span class="plain-syntax"> </span><span class="identifier-syntax">name</span><span class="plain-syntax">) </span><span class="identifier-syntax">in</span><span class="plain-syntax">/</span><span class="identifier-syntax">into</span><span class="plain-syntax"> </span><span class="identifier-syntax">reverse</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TC</span><span class="plain-syntax"> - </span><span class="identifier-syntax">table</span><span class="plain-syntax"> </span><span class="identifier-syntax">column</span><span class="plain-syntax">) </span><span class="identifier-syntax">order</span> <span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">sort</span><span class="plain-syntax"> (</span><span class="identifier-syntax">T</span><span class="plain-syntax"> - </span><span class="identifier-syntax">table</span><span class="plain-syntax"> </span><span class="identifier-syntax">name</span><span class="plain-syntax">) </span><span class="identifier-syntax">in</span><span class="plain-syntax">/</span><span class="identifier-syntax">into</span><span class="plain-syntax"> </span><span class="identifier-syntax">reverse</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TC</span><span class="plain-syntax"> - </span><span class="identifier-syntax">table</span><span class="plain-syntax"> </span><span class="identifier-syntax">column</span><span class="plain-syntax">) </span><span class="identifier-syntax">order</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">documented</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">ph_sortcolumnreverse</span><span class="plain-syntax">):</span> <span class="plain-syntax"> (</span><span class="identifier-syntax">documented</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">ph_sortcolumnreverse</span><span class="plain-syntax">):</span>
<span class="plain-syntax"> (- </span><span class="identifier-syntax">TableSort</span><span class="plain-syntax">({</span><span class="identifier-syntax">T</span><span class="plain-syntax">}, {</span><span class="identifier-syntax">TC</span><span class="plain-syntax">}, -1); -).</span> <span class="plain-syntax"> (- </span><span class="identifier-syntax">TableSort</span><span class="plain-syntax">({</span><span class="identifier-syntax">T</span><span class="plain-syntax">}, {</span><span class="identifier-syntax">TC</span><span class="plain-syntax">}, </span><span class="identifier-syntax">SORT_DESCENDING</span><span class="plain-syntax">); -).</span>
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">sort</span><span class="plain-syntax"> (</span><span class="identifier-syntax">T</span><span class="plain-syntax"> - </span><span class="identifier-syntax">table</span><span class="plain-syntax"> </span><span class="identifier-syntax">name</span><span class="plain-syntax">) </span><span class="identifier-syntax">with</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cf</span><span class="plain-syntax"> - </span><span class="identifier-syntax">phrase</span><span class="plain-syntax"> (</span><span class="identifier-syntax">table</span><span class="plain-syntax"> </span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">number</span><span class="plain-syntax">, </span><span class="identifier-syntax">number</span><span class="plain-syntax">) -&gt; </span><span class="identifier-syntax">number</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">documented</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">ph_sorttablephrase</span><span class="plain-syntax">):</span>
<span class="plain-syntax"> (- </span><span class="identifier-syntax">TableSort</span><span class="plain-syntax">({</span><span class="identifier-syntax">T</span><span class="plain-syntax">}, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">SORT_ASCENDING</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, {</span><span class="identifier-syntax">cf</span><span class="plain-syntax">}--&gt;1); -).</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP43" class="paragraph-anchor"></a><b>&#167;43. Lists. </b>The following are all for adding and removing values to dynamic lists. <p class="commentary firstcommentary"><a id="SP43" class="paragraph-anchor"></a><b>&#167;43. Lists. </b>The following are all for adding and removing values to dynamic lists.
</p> </p>
@ -1599,19 +1602,22 @@ mechanism, in "Sort.i6t", which handles both lists and tables.
<span class="plain-syntax"> (- </span><span class="identifier-syntax">LIST_OF_TY_Rotate</span><span class="plain-syntax">({-</span><span class="identifier-syntax">lvalue</span><span class="plain-syntax">-</span><span class="identifier-syntax">by</span><span class="plain-syntax">-</span><span class="identifier-syntax">reference</span><span class="plain-syntax">:</span><span class="identifier-syntax">L</span><span class="plain-syntax">}, </span><span class="constant-syntax">1</span><span class="plain-syntax">); -).</span> <span class="plain-syntax"> (- </span><span class="identifier-syntax">LIST_OF_TY_Rotate</span><span class="plain-syntax">({-</span><span class="identifier-syntax">lvalue</span><span class="plain-syntax">-</span><span class="identifier-syntax">by</span><span class="plain-syntax">-</span><span class="identifier-syntax">reference</span><span class="plain-syntax">:</span><span class="identifier-syntax">L</span><span class="plain-syntax">}, </span><span class="constant-syntax">1</span><span class="plain-syntax">); -).</span>
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">sort</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax"> - </span><span class="identifier-syntax">a</span><span class="plain-syntax"> </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">values</span><span class="plain-syntax">)</span> <span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">sort</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax"> - </span><span class="identifier-syntax">a</span><span class="plain-syntax"> </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">values</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">documented</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">ph_sortlist</span><span class="plain-syntax">):</span> <span class="plain-syntax"> (</span><span class="identifier-syntax">documented</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">ph_sortlist</span><span class="plain-syntax">):</span>
<span class="plain-syntax"> (- </span><span class="identifier-syntax">LIST_OF_TY_Sort</span><span class="plain-syntax">({-</span><span class="identifier-syntax">lvalue</span><span class="plain-syntax">-</span><span class="identifier-syntax">by</span><span class="plain-syntax">-</span><span class="identifier-syntax">reference</span><span class="plain-syntax">:</span><span class="identifier-syntax">L</span><span class="plain-syntax">}, </span><span class="constant-syntax">1</span><span class="plain-syntax">); -).</span> <span class="plain-syntax"> (- </span><span class="identifier-syntax">LIST_OF_TY_Sort</span><span class="plain-syntax">({-</span><span class="identifier-syntax">lvalue</span><span class="plain-syntax">-</span><span class="identifier-syntax">by</span><span class="plain-syntax">-</span><span class="identifier-syntax">reference</span><span class="plain-syntax">:</span><span class="identifier-syntax">L</span><span class="plain-syntax">}, </span><span class="identifier-syntax">SORT_ASCENDING</span><span class="plain-syntax">); -).</span>
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">sort</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax"> - </span><span class="identifier-syntax">a</span><span class="plain-syntax"> </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">values</span><span class="plain-syntax">) </span><span class="identifier-syntax">in</span><span class="plain-syntax">/</span><span class="identifier-syntax">into</span><span class="plain-syntax"> </span><span class="identifier-syntax">reverse</span><span class="plain-syntax"> </span><span class="identifier-syntax">order</span> <span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">sort</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax"> - </span><span class="identifier-syntax">a</span><span class="plain-syntax"> </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">values</span><span class="plain-syntax">) </span><span class="identifier-syntax">in</span><span class="plain-syntax">/</span><span class="identifier-syntax">into</span><span class="plain-syntax"> </span><span class="identifier-syntax">reverse</span><span class="plain-syntax"> </span><span class="identifier-syntax">order</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">documented</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">ph_sortlistreverse</span><span class="plain-syntax">):</span> <span class="plain-syntax"> (</span><span class="identifier-syntax">documented</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">ph_sortlistreverse</span><span class="plain-syntax">):</span>
<span class="plain-syntax"> (- </span><span class="identifier-syntax">LIST_OF_TY_Sort</span><span class="plain-syntax">({-</span><span class="identifier-syntax">lvalue</span><span class="plain-syntax">-</span><span class="identifier-syntax">by</span><span class="plain-syntax">-</span><span class="identifier-syntax">reference</span><span class="plain-syntax">:</span><span class="identifier-syntax">L</span><span class="plain-syntax">}, -1); -).</span> <span class="plain-syntax"> (- </span><span class="identifier-syntax">LIST_OF_TY_Sort</span><span class="plain-syntax">({-</span><span class="identifier-syntax">lvalue</span><span class="plain-syntax">-</span><span class="identifier-syntax">by</span><span class="plain-syntax">-</span><span class="identifier-syntax">reference</span><span class="plain-syntax">:</span><span class="identifier-syntax">L</span><span class="plain-syntax">}, </span><span class="identifier-syntax">SORT_DESCENDING</span><span class="plain-syntax">); -).</span>
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">sort</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax"> - </span><span class="identifier-syntax">a</span><span class="plain-syntax"> </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">values</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">) </span><span class="identifier-syntax">with</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cf</span><span class="plain-syntax"> - </span><span class="identifier-syntax">phrase</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">) -&gt; </span><span class="identifier-syntax">number</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">documented</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">ph_sortlistphrase</span><span class="plain-syntax">):</span>
<span class="plain-syntax"> (- </span><span class="identifier-syntax">LIST_OF_TY_Sort</span><span class="plain-syntax">({-</span><span class="identifier-syntax">lvalue</span><span class="plain-syntax">-</span><span class="identifier-syntax">by</span><span class="plain-syntax">-</span><span class="identifier-syntax">reference</span><span class="plain-syntax">:</span><span class="identifier-syntax">L</span><span class="plain-syntax">}, </span><span class="identifier-syntax">SORT_ASCENDING</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, {</span><span class="identifier-syntax">cf</span><span class="plain-syntax">}--&gt;1); -).</span>
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">sort</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax"> - </span><span class="identifier-syntax">a</span><span class="plain-syntax"> </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">values</span><span class="plain-syntax">) </span><span class="identifier-syntax">in</span><span class="plain-syntax">/</span><span class="identifier-syntax">into</span><span class="plain-syntax"> </span><span class="identifier-syntax">random</span><span class="plain-syntax"> </span><span class="identifier-syntax">order</span> <span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">sort</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax"> - </span><span class="identifier-syntax">a</span><span class="plain-syntax"> </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">values</span><span class="plain-syntax">) </span><span class="identifier-syntax">in</span><span class="plain-syntax">/</span><span class="identifier-syntax">into</span><span class="plain-syntax"> </span><span class="identifier-syntax">random</span><span class="plain-syntax"> </span><span class="identifier-syntax">order</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">documented</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">ph_sortlistrandom</span><span class="plain-syntax">):</span> <span class="plain-syntax"> (</span><span class="identifier-syntax">documented</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">ph_sortlistrandom</span><span class="plain-syntax">):</span>
<span class="plain-syntax"> (- </span><span class="identifier-syntax">LIST_OF_TY_Sort</span><span class="plain-syntax">({-</span><span class="identifier-syntax">lvalue</span><span class="plain-syntax">-</span><span class="identifier-syntax">by</span><span class="plain-syntax">-</span><span class="identifier-syntax">reference</span><span class="plain-syntax">:</span><span class="identifier-syntax">L</span><span class="plain-syntax">}, </span><span class="constant-syntax">2</span><span class="plain-syntax">); -).</span> <span class="plain-syntax"> (- </span><span class="identifier-syntax">LIST_OF_TY_Sort</span><span class="plain-syntax">({-</span><span class="identifier-syntax">lvalue</span><span class="plain-syntax">-</span><span class="identifier-syntax">by</span><span class="plain-syntax">-</span><span class="identifier-syntax">reference</span><span class="plain-syntax">:</span><span class="identifier-syntax">L</span><span class="plain-syntax">}, </span><span class="identifier-syntax">SORT_LIST_RANDOM</span><span class="plain-syntax">); -).</span>
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">sort</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax"> - </span><span class="identifier-syntax">a</span><span class="plain-syntax"> </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">objects</span><span class="plain-syntax">) </span><span class="identifier-syntax">in</span><span class="plain-syntax">/</span><span class="identifier-syntax">into</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax"> - </span><span class="identifier-syntax">property</span><span class="plain-syntax">) </span><span class="identifier-syntax">order</span> <span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">sort</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax"> - </span><span class="identifier-syntax">a</span><span class="plain-syntax"> </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">objects</span><span class="plain-syntax">) </span><span class="identifier-syntax">in</span><span class="plain-syntax">/</span><span class="identifier-syntax">into</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax"> - </span><span class="identifier-syntax">property</span><span class="plain-syntax">) </span><span class="identifier-syntax">order</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">documented</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">ph_sortlistproperty</span><span class="plain-syntax">):</span> <span class="plain-syntax"> (</span><span class="identifier-syntax">documented</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">ph_sortlistproperty</span><span class="plain-syntax">):</span>
<span class="plain-syntax"> (- </span><span class="identifier-syntax">LIST_OF_TY_Sort</span><span class="plain-syntax">({-</span><span class="identifier-syntax">lvalue</span><span class="plain-syntax">-</span><span class="identifier-syntax">by</span><span class="plain-syntax">-</span><span class="identifier-syntax">reference</span><span class="plain-syntax">:</span><span class="identifier-syntax">L</span><span class="plain-syntax">}, </span><span class="constant-syntax">1</span><span class="plain-syntax">, {</span><span class="identifier-syntax">P</span><span class="plain-syntax">}, {-</span><span class="identifier-syntax">property</span><span class="plain-syntax">-</span><span class="identifier-syntax">holds</span><span class="plain-syntax">-</span><span class="identifier-syntax">block</span><span class="plain-syntax">-</span><span class="identifier-syntax">value</span><span class="plain-syntax">:</span><span class="identifier-syntax">P</span><span class="plain-syntax">}); -).</span> <span class="plain-syntax"> (- </span><span class="identifier-syntax">LIST_OF_TY_Sort</span><span class="plain-syntax">({-</span><span class="identifier-syntax">lvalue</span><span class="plain-syntax">-</span><span class="identifier-syntax">by</span><span class="plain-syntax">-</span><span class="identifier-syntax">reference</span><span class="plain-syntax">:</span><span class="identifier-syntax">L</span><span class="plain-syntax">}, </span><span class="identifier-syntax">SORT_ASCENDING</span><span class="plain-syntax">, {</span><span class="identifier-syntax">P</span><span class="plain-syntax">}, {-</span><span class="identifier-syntax">property</span><span class="plain-syntax">-</span><span class="identifier-syntax">holds</span><span class="plain-syntax">-</span><span class="identifier-syntax">block</span><span class="plain-syntax">-</span><span class="identifier-syntax">value</span><span class="plain-syntax">:</span><span class="identifier-syntax">P</span><span class="plain-syntax">}); -).</span>
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">sort</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax"> - </span><span class="identifier-syntax">a</span><span class="plain-syntax"> </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">objects</span><span class="plain-syntax">) </span><span class="identifier-syntax">in</span><span class="plain-syntax">/</span><span class="identifier-syntax">into</span><span class="plain-syntax"> </span><span class="identifier-syntax">reverse</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax"> - </span><span class="identifier-syntax">property</span><span class="plain-syntax">) </span><span class="identifier-syntax">order</span> <span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">sort</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax"> - </span><span class="identifier-syntax">a</span><span class="plain-syntax"> </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">objects</span><span class="plain-syntax">) </span><span class="identifier-syntax">in</span><span class="plain-syntax">/</span><span class="identifier-syntax">into</span><span class="plain-syntax"> </span><span class="identifier-syntax">reverse</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax"> - </span><span class="identifier-syntax">property</span><span class="plain-syntax">) </span><span class="identifier-syntax">order</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">documented</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">ph_sortlistpropertyreverse</span><span class="plain-syntax">):</span> <span class="plain-syntax"> (</span><span class="identifier-syntax">documented</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">ph_sortlistpropertyreverse</span><span class="plain-syntax">):</span>
<span class="plain-syntax"> (- </span><span class="identifier-syntax">LIST_OF_TY_Sort</span><span class="plain-syntax">({-</span><span class="identifier-syntax">lvalue</span><span class="plain-syntax">-</span><span class="identifier-syntax">by</span><span class="plain-syntax">-</span><span class="identifier-syntax">reference</span><span class="plain-syntax">:</span><span class="identifier-syntax">L</span><span class="plain-syntax">}, -1, {</span><span class="identifier-syntax">P</span><span class="plain-syntax">}, {-</span><span class="identifier-syntax">property</span><span class="plain-syntax">-</span><span class="identifier-syntax">holds</span><span class="plain-syntax">-</span><span class="identifier-syntax">block</span><span class="plain-syntax">-</span><span class="identifier-syntax">value</span><span class="plain-syntax">:</span><span class="identifier-syntax">P</span><span class="plain-syntax">}); -).</span> <span class="plain-syntax"> (- </span><span class="identifier-syntax">LIST_OF_TY_Sort</span><span class="plain-syntax">({-</span><span class="identifier-syntax">lvalue</span><span class="plain-syntax">-</span><span class="identifier-syntax">by</span><span class="plain-syntax">-</span><span class="identifier-syntax">reference</span><span class="plain-syntax">:</span><span class="identifier-syntax">L</span><span class="plain-syntax">}, </span><span class="identifier-syntax">SORT_DESCENDING</span><span class="plain-syntax">, {</span><span class="identifier-syntax">P</span><span class="plain-syntax">}, {-</span><span class="identifier-syntax">property</span><span class="plain-syntax">-</span><span class="identifier-syntax">holds</span><span class="plain-syntax">-</span><span class="identifier-syntax">block</span><span class="plain-syntax">-</span><span class="identifier-syntax">value</span><span class="plain-syntax">:</span><span class="identifier-syntax">P</span><span class="plain-syntax">}); -).</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP48" class="paragraph-anchor"></a><b>&#167;48. </b>Relations are the final data structure given here. In some ways they are <p class="commentary firstcommentary"><a id="SP48" class="paragraph-anchor"></a><b>&#167;48. </b>Relations are the final data structure given here. In some ways they are
the most fundamental of all, but they're not either set or tested by the most fundamental of all, but they're not either set or tested by

View file

@ -58,7 +58,7 @@ rubric text, and this is no exception:
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">Version</span><span class="plain-syntax"> [[</span><span class="identifier-syntax">Version</span><span class="plain-syntax"> </span><span class="identifier-syntax">Number</span><span class="plain-syntax">]] </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">Basic</span><span class="plain-syntax"> </span><span class="identifier-syntax">Inform</span><span class="plain-syntax"> </span><span class="identifier-syntax">by</span><span class="plain-syntax"> </span><span class="identifier-syntax">Graham</span><span class="plain-syntax"> </span><span class="identifier-syntax">Nelson</span><span class="plain-syntax"> </span><span class="identifier-syntax">begins</span><span class="plain-syntax"> </span><span class="identifier-syntax">here</span><span class="plain-syntax">.</span> <span class="identifier-syntax">Version</span><span class="plain-syntax"> </span><span class="comment-syntax">[[Version Number]</span><span class="plain-syntax">] </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">Basic</span><span class="plain-syntax"> </span><span class="identifier-syntax">Inform</span><span class="plain-syntax"> </span><span class="identifier-syntax">by</span><span class="plain-syntax"> </span><span class="identifier-syntax">Graham</span><span class="plain-syntax"> </span><span class="identifier-syntax">Nelson</span><span class="plain-syntax"> </span><span class="identifier-syntax">begins</span><span class="plain-syntax"> </span><span class="identifier-syntax">here</span><span class="plain-syntax">.</span>
<span class="string-syntax">"Basic Inform, included in every project, defines the basic framework</span> <span class="string-syntax">"Basic Inform, included in every project, defines the basic framework</span>
<span class="string-syntax">of Inform as a programming language."</span> <span class="string-syntax">of Inform as a programming language."</span>

View file

@ -181,21 +181,21 @@ than the number with correct ones
number of successes. number of successes.
</li></ul> </li></ul>
<pre class="undisplayed-code all-displayed-code code-font"> <pre class="undisplayed-code all-displayed-code code-font">
<span class="plain-syntax">Size of lexicon: 3162 excerpt meanings</span> <span class="plain-syntax">Size of lexicon: 3164 excerpt meanings</span>
<span class="plain-syntax"> Stored among 855 words out of total vocabulary of 10626</span> <span class="plain-syntax"> Stored among 855 words out of total vocabulary of 10631</span>
<span class="plain-syntax"> 719 words have a start list: longest belongs to report (with 293 meanings)</span> <span class="plain-syntax"> 719 words have a start list: longest belongs to report (with 293 meanings)</span>
<span class="plain-syntax"> 21 words have an end list: longest belongs to digits (with 7 meanings)</span> <span class="plain-syntax"> 21 words have an end list: longest belongs to digits (with 7 meanings)</span>
<span class="plain-syntax"> 29 words have a middle list: longest belongs to to (with 4 meanings)</span> <span class="plain-syntax"> 29 words have a middle list: longest belongs to to (with 4 meanings)</span>
<span class="plain-syntax"> 108 words have a subset list: longest belongs to street (with 4 meanings)</span> <span class="plain-syntax"> 108 words have a subset list: longest belongs to street (with 4 meanings)</span>
<span class="plain-syntax">Number of attempts to retrieve: 110520</span> <span class="plain-syntax">Number of attempts to retrieve: 110594</span>
<span class="plain-syntax"> of which unsuccessful: 92374</span> <span class="plain-syntax"> of which unsuccessful: 92446</span>
<span class="plain-syntax"> of which successful: 18146</span> <span class="plain-syntax"> of which successful: 18148</span>
<span class="plain-syntax">Total attempts to match against excerpt meanings: 279412</span> <span class="plain-syntax">Total attempts to match against excerpt meanings: 279464</span>
<span class="plain-syntax"> of which, total with incorrect hash codes: 256664</span> <span class="plain-syntax"> of which, total with incorrect hash codes: 256710</span>
<span class="plain-syntax"> of which, total with correct hash codes: 22748</span> <span class="plain-syntax"> of which, total with correct hash codes: 22754</span>
<span class="plain-syntax"> of which, total which matched: 19917</span> <span class="plain-syntax"> of which, total which matched: 19919</span>
</pre> </pre>
<nav role="progress"><div class="progresscontainer"> <nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprevoff">&#10094;</li><li class="progresscurrentchapter">P</li><li class="progresscurrent">wtmd</li><li class="progresssection"><a href="P-htitm.html">htitm</a></li><li class="progresschapter"><a href="1-lm.html">1</a></li><li class="progresschapter"><a href="2-em.html">2</a></li><li class="progressnext"><a href="P-htitm.html">&#10095;</a></li></ul></div> <ul class="progressbar"><li class="progressprevoff">&#10094;</li><li class="progresscurrentchapter">P</li><li class="progresscurrent">wtmd</li><li class="progresssection"><a href="P-htitm.html">htitm</a></li><li class="progresschapter"><a href="1-lm.html">1</a></li><li class="progresschapter"><a href="2-em.html">2</a></li><li class="progressnext"><a href="P-htitm.html">&#10095;</a></li></ul></div>

View file

@ -76,7 +76,7 @@ sound effects.
</p> </p>
<p class="commentary">This code was introduced as part of the implementation of IE-0001, and for <p class="commentary">This code was introduced as part of the implementation of IE-0001, and for
the first time throws problem messages is named resources do not exist. the first time throws problem messages if named resources do not exist.
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">

View file

@ -448,7 +448,6 @@ which continues until the parent calls <span class="extract"><span class="extrac
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-ic.html#SP10_1" class="named-paragraph-link"><span class="named-paragraph">Find the virtual machine</span><span class="named-paragraph-number">10.1</span></a></span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-ic.html#SP10_1" class="named-paragraph-link"><span class="named-paragraph">Find the virtual machine</span><span class="named-paragraph-number">10.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="1-ic.html#SP22" class="function-link"><span class="function-syntax">Supervisor::make_project_from_command_line</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="1-ic.html#SP22" class="function-link"><span class="function-syntax">Supervisor::make_project_from_command_line</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="comment-syntax"> Supervisor::create_default_externals();</span>
<span class="plain-syntax"> </span><a href="1-ic.html#SP4" class="function-link"><span class="function-syntax">Supervisor::enter_phase</span></a><span class="plain-syntax">(</span><span class="constant-syntax">TINKERING_INBUILD_PHASE</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="1-ic.html#SP4" class="function-link"><span class="function-syntax">Supervisor::enter_phase</span></a><span class="plain-syntax">(</span><span class="constant-syntax">TINKERING_INBUILD_PHASE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="1-ic.html#SP15" class="function-link"><span class="function-syntax">Supervisor::sort_nest_list</span></a><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><a href="1-ic.html#SP15" class="function-link"><span class="function-syntax">Supervisor::sort_nest_list</span></a><span class="plain-syntax">();</span>
@ -571,32 +570,13 @@ nests, respectively.
<span class="plain-syntax"> (</span><span class="identifier-syntax">set_shared</span><span class="plain-syntax">)?</span><span class="identifier-syntax">I</span><span class="string-syntax">"shared "</span><span class="plain-syntax">:</span><span class="identifier-syntax">I</span><span class="string-syntax">""</span><span class="plain-syntax">, </span><a href="2-nst.html#SP2" class="function-link"><span class="function-syntax">Nests::tag_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">tag</span><span class="plain-syntax">), </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span> <span class="plain-syntax"> (</span><span class="identifier-syntax">set_shared</span><span class="plain-syntax">)?</span><span class="identifier-syntax">I</span><span class="string-syntax">"shared "</span><span class="plain-syntax">:</span><span class="identifier-syntax">I</span><span class="string-syntax">""</span><span class="plain-syntax">, </span><a href="2-nst.html#SP2" class="function-link"><span class="function-syntax">Nests::tag_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">tag</span><span class="plain-syntax">), </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Supervisor::create_default_externals</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Supervisor::create_default_externals</span></span>:<br/><a href="1-ic.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_BEFORE_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">TINKERING_INBUILD_PHASE</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><span class="identifier-syntax">shared_external_nest</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">home_path</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">subfolder_within</span><span class="plain-syntax"> = </span><span class="identifier-syntax">INFORM_FOLDER_RELATIVE_TO_HOME</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">subfolder_within</span><span class="plain-syntax">[0]) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">SF</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">SF</span><span class="plain-syntax">, </span><span class="string-syntax">"%s"</span><span class="plain-syntax">, </span><span class="identifier-syntax">subfolder_within</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Pathnames::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">home_path</span><span class="plain-syntax">, </span><span class="identifier-syntax">SF</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">SF</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Pathnames::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Inform"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">SVEXPLAIN</span><span class="plain-syntax">(1, </span><span class="string-syntax">"(in absence of explicit -external, inventing -external %p)\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">SVEXPLAIN</span><span class="plain-syntax">(2, </span><span class="string-syntax">"(because home path, according to environment variable HOME, is %p)\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">home_path</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="1-ic.html#SP14" class="function-link"><span class="function-syntax">Supervisor::add_nest</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">EXTERNAL_NEST_TAG</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>&#167;15. </b>It is then sorted in tag order: <p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>&#167;15. </b>It is then sorted in tag order:
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">shared_nest_list</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span> <span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">shared_nest_list</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Supervisor::sort_nest_list</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Supervisor::sort_nest_list</span></span>:<br/><a href="1-ic.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Supervisor::sort_nest_list</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Supervisor::sort_nest_list</span></span>:<br/><a href="1-ic.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_IN_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">TINKERING_INBUILD_PHASE</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_IN_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">TINKERING_INBUILD_PHASE</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">shared_nest_list</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">shared_nest_list</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="identifier-syntax">N</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="identifier-syntax">N</span><span class="plain-syntax">;</span>
@ -632,18 +612,18 @@ nests, respectively.
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="function-syntax">Supervisor::shared_nest_list</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Supervisor::shared_nest_list</span></span>:<br/>Incremental Building - <a href="3-ib.html#SP7">&#167;7</a><br/>Extension Services - <a href="5-es.html#SP7">&#167;7</a><br/>Project Services - <a href="5-ps2.html#SP7">&#167;7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span> <span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="function-syntax">Supervisor::shared_nest_list</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Supervisor::shared_nest_list</span></span>:<br/>Incremental Building - <a href="3-ib.html#SP7">&#167;7</a><br/>Extension Services - <a href="5-es.html#SP7">&#167;7</a><br/>Project Services - <a href="5-ps2.html#SP7">&#167;7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_FROM_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">NESTED_INBUILD_PHASE</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_FROM_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">NESTED_INBUILD_PHASE</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">shared_nest_list</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"nest list never sorted"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">shared_nest_list</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"nest list never sorted"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">shared_nest_list</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">shared_nest_list</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="function-syntax">Supervisor::internal</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">Supervisor::internal</span></span>:<br/>Project Services - <a href="5-ps2.html#SP39">&#167;39</a><br/>Extensions Index Page - <a href="7-eip.html#SP1_1">&#167;1.1</a><br/>Documentation Compiler - <a href="7-dc.html#SP7">&#167;7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="function-syntax">Supervisor::internal</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Supervisor::internal</span></span>:<br/>Project Services - <a href="5-ps2.html#SP39">&#167;39</a><br/>Extensions Index Page - <a href="7-eip.html#SP1_1">&#167;1.1</a><br/>Documentation Compiler - <a href="7-dc.html#SP7">&#167;7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_FROM_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">NESTED_INBUILD_PHASE</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_FROM_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">NESTED_INBUILD_PHASE</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">shared_internal_nest</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">shared_internal_nest</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="function-syntax">Supervisor::external</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Supervisor::external</span></span>:<br/>Project Services - <a href="5-ps2.html#SP36_1">&#167;36.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="function-syntax">Supervisor::external</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">Supervisor::external</span></span>:<br/>Project Services - <a href="5-ps2.html#SP36_1">&#167;36.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_FROM_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">NESTED_INBUILD_PHASE</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_FROM_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">NESTED_INBUILD_PHASE</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">shared_external_nest</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">shared_external_nest</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
@ -659,7 +639,7 @@ no better indication of where they are.
<span class="plain-syntax"> </span><span class="identifier-syntax">supervisor_tools_location</span><span class="plain-syntax"> = </span><span class="identifier-syntax">P</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">supervisor_tools_location</span><span class="plain-syntax"> = </span><span class="identifier-syntax">P</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="function-syntax">Supervisor::default_internal_path</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Supervisor::default_internal_path</span></span>:<br/><a href="1-ic.html#SP18">&#167;18</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span> <span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="function-syntax">Supervisor::default_internal_path</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Supervisor::default_internal_path</span></span>:<br/><a href="1-ic.html#SP18">&#167;18</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">supervisor_tools_location</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">supervisor_tools_location</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Pathnames::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"inform7"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Pathnames::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"inform7"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Pathnames::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Internal"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Pathnames::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Internal"</span><span class="plain-syntax">);</span>
@ -685,7 +665,7 @@ it, but otherwise the external nest is used.
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="function-syntax">Supervisor::transient</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Supervisor::transient</span></span>:<br/>Project Services - <a href="5-ps2.html#SP6">&#167;6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span> <span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="function-syntax">Supervisor::transient</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Supervisor::transient</span></span>:<br/>Project Services - <a href="5-ps2.html#SP6">&#167;6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_FROM_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">TINKERING_INBUILD_PHASE</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_FROM_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">TINKERING_INBUILD_PHASE</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">shared_transient_resources</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">shared_transient_resources</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">shared_external_nest</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">shared_external_nest</span><span class="plain-syntax">)</span>
@ -709,7 +689,7 @@ specify the bundle twice, or specify the file twice.
<span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">project_bundle_request</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span> <span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">project_bundle_request</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">project_file_request</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span> <span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">project_file_request</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Supervisor::set_I7_source</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">Supervisor::set_I7_source</span></span>:<br/><a href="1-ic.html#SP9">&#167;9</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Supervisor::set_I7_source</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Supervisor::set_I7_source</span></span>:<br/><a href="1-ic.html#SP9">&#167;9</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_FROM_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">CONFIGURATION_INBUILD_PHASE</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_FROM_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">CONFIGURATION_INBUILD_PHASE</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">project_file_request</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">project_file_request</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">project_file_request</span><span class="plain-syntax"> = </span><span class="identifier-syntax">F</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">project_file_request</span><span class="plain-syntax"> = </span><span class="identifier-syntax">F</span><span class="plain-syntax">;</span>
@ -725,7 +705,7 @@ depending on who's asking.
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Supervisor::set_I7_bundle</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">Supervisor::set_I7_bundle</span></span>:<br/><a href="1-ic.html#SP9">&#167;9</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Supervisor::set_I7_bundle</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">Supervisor::set_I7_bundle</span></span>:<br/><a href="1-ic.html#SP9">&#167;9</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_FROM_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">CONFIGURATION_INBUILD_PHASE</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_FROM_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">CONFIGURATION_INBUILD_PHASE</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">project_bundle_request</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">project_bundle_request</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">project_bundle_request</span><span class="plain-syntax"> = </span><span class="identifier-syntax">P</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">project_bundle_request</span><span class="plain-syntax"> = </span><span class="identifier-syntax">P</span><span class="plain-syntax">;</span>
@ -756,7 +736,7 @@ location. If it hasn't, we create a project using <span class="extract"><span cl
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">chosen_project</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span> <span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">chosen_project</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Supervisor::make_project_from_command_line</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">Supervisor::make_project_from_command_line</span></span>:<br/><a href="1-ic.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Supervisor::make_project_from_command_line</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">Supervisor::make_project_from_command_line</span></span>:<br/><a href="1-ic.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_IN_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">PRETINKERING_INBUILD_PHASE</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_IN_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">PRETINKERING_INBUILD_PHASE</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="comment-syntax"> result of </span><span class="extract"><span class="extract-syntax">-source</span></span><span class="comment-syntax"> at the command line</span> <span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="comment-syntax"> result of </span><span class="extract"><span class="extract-syntax">-source</span></span><span class="comment-syntax"> at the command line</span>
@ -793,7 +773,7 @@ location. If it hasn't, we create a project using <span class="extract"><span cl
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="function-syntax">Supervisor::project_set_at_command_line</span><button class="popup" onclick="togglePopup('usagePopup18')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup18">Usage of <span class="code-font"><span class="function-syntax">Supervisor::project_set_at_command_line</span></span>:<br/>The Installer - <a href="7-ti.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="function-syntax">Supervisor::project_set_at_command_line</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">Supervisor::project_set_at_command_line</span></span>:<br/>Extension Services - <a href="5-es.html#SP9">&#167;9</a><br/>The Installer - <a href="7-ti.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">chosen_project</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">chosen_project</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre> </pre>

View file

@ -123,6 +123,8 @@ claiming. If you are a manager, do not call this...
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">copy</span><span class="plain-syntax"> = </span><a href="2-cps.html#SP2" class="function-link"><span class="function-syntax">Copies::new_p</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">edition</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">copy</span><span class="plain-syntax"> = </span><a href="2-cps.html#SP2" class="function-link"><span class="function-syntax">Copies::new_p</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">edition</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">copy</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">location_if_file</span><span class="plain-syntax"> = </span><span class="identifier-syntax">F</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">copy</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">location_if_file</span><span class="plain-syntax"> = </span><span class="identifier-syntax">F</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">copy</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">nest_of_origin</span><span class="plain-syntax"> = </span><span class="identifier-syntax">N</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">copy</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">nest_of_origin</span><span class="plain-syntax"> = </span><span class="identifier-syntax">N</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">SVEXPLAIN</span><span class="plain-syntax">(3, </span><span class="string-syntax">"(made %S copy C%d at file %f)\n"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="2-gnr.html#SP1" class="function-link"><span class="function-syntax">Genres::name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">copy</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">edition</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">work</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">genre</span><span class="plain-syntax">), </span><span class="identifier-syntax">copy</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">copy</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">copy</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
@ -130,6 +132,8 @@ claiming. If you are a manager, do not call this...
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">copy</span><span class="plain-syntax"> = </span><a href="2-cps.html#SP2" class="function-link"><span class="function-syntax">Copies::new_p</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">edition</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">copy</span><span class="plain-syntax"> = </span><a href="2-cps.html#SP2" class="function-link"><span class="function-syntax">Copies::new_p</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">edition</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">copy</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">location_if_path</span><span class="plain-syntax"> = </span><span class="identifier-syntax">P</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">copy</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">location_if_path</span><span class="plain-syntax"> = </span><span class="identifier-syntax">P</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">copy</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">nest_of_origin</span><span class="plain-syntax"> = </span><span class="identifier-syntax">N</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">copy</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">nest_of_origin</span><span class="plain-syntax"> = </span><span class="identifier-syntax">N</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">SVEXPLAIN</span><span class="plain-syntax">(3, </span><span class="string-syntax">"(made %S copy C%d at directory %p)\n"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="2-gnr.html#SP1" class="function-link"><span class="function-syntax">Genres::name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">copy</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">edition</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">work</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">genre</span><span class="plain-syntax">), </span><span class="identifier-syntax">copy</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">copy</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">copy</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre> </pre>
@ -206,7 +210,7 @@ for later reporting. These are stored in a list.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">source_text_read</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">source_text_read</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="function-syntax">Copies::get_source_text</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">Copies::get_source_text</span></span>:<br/>Extension Services - <a href="5-es.html#SP9">&#167;9</a>, <a href="5-es.html#SP11">&#167;11</a><br/>Project Services - <a href="5-ps2.html#SP33">&#167;33</a><br/>Inclusions - <a href="6-inc.html#SP6_1">&#167;6.1</a><br/>The Installer - <a href="7-ti.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span> <span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="function-syntax">Copies::get_source_text</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">Copies::get_source_text</span></span>:<br/>Extension Services - <a href="5-es.html#SP9">&#167;9</a>, <a href="5-es.html#SP11">&#167;11</a><br/>Project Services - <a href="5-ps2.html#SP33">&#167;33</a><br/>Inclusions - <a href="6-inc.html#SP6_1">&#167;6.1</a><br/>The Installer - <a href="7-ti.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">reason</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">source_text_read</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">source_text_read</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">source_text_read</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">source_text_read</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">LinkedLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">errors_reading_source_text</span><span class="plain-syntax">) &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">LinkedLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">errors_reading_source_text</span><span class="plain-syntax">) &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>

View file

@ -95,7 +95,7 @@ the instance <span class="extract"><span class="extract-syntax">kit_genre</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">gen</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">gen</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">Genres::name</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">Genres::name</span></span>:<br/>Copies - <a href="2-cps.html#SP11">&#167;11</a><br/>The Installer - <a href="7-ti.html#SP2_1">&#167;2.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_genre</span><span class="plain-syntax"> *</span><span class="identifier-syntax">G</span><span class="plain-syntax">) {</span> <span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">Genres::name</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">Genres::name</span></span>:<br/>Copies - <a href="2-cps.html#SP3">&#167;3</a>, <a href="2-cps.html#SP11">&#167;11</a><br/>The Installer - <a href="7-ti.html#SP2_1">&#167;2.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_genre</span><span class="plain-syntax"> *</span><span class="identifier-syntax">G</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">G</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="string-syntax">"(none)"</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">G</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="string-syntax">"(none)"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">G</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">genre_name</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">G</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">genre_name</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>

View file

@ -83,7 +83,7 @@ identifying the copy which it purports to identify.
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-jm.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Report a syntax error in JSON</span><span class="named-paragraph-number">1.1</span></a></span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-jm.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Report a syntax error in JSON</span><span class="named-paragraph-number">1.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span> <span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-jm.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Validate the JSON read in</span><span class="named-paragraph-number">1.2</span></a></span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">req</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="2-jm.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Validate the JSON read in</span><span class="named-paragraph-number">1.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">contents</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">contents</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">metadata_record</span><span class="plain-syntax"> = </span><span class="identifier-syntax">obj</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">metadata_record</span><span class="plain-syntax"> = </span><span class="identifier-syntax">obj</span><span class="plain-syntax">;</span>
@ -355,6 +355,7 @@ loads only once.
<span class="identifier-syntax">JSON_requirement</span><span class="plain-syntax"> *</span><span class="function-syntax">JSONMetadata::requirements</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">JSONMetadata::requirements</span></span>:<br/><a href="2-jm.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span> <span class="identifier-syntax">JSON_requirement</span><span class="plain-syntax"> *</span><span class="function-syntax">JSONMetadata::requirements</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">JSONMetadata::requirements</span></span>:<br/><a href="2-jm.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">JSON_resource_metadata_requirements</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">JSON_resource_metadata_requirements</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InstalledFiles::filename</span><span class="plain-syntax">(</span><span class="identifier-syntax">RESOURCE_JSON_REQS_IRES</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InstalledFiles::filename</span><span class="plain-syntax">(</span><span class="identifier-syntax">RESOURCE_JSON_REQS_IRES</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TextFiles::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">JSON_resource_metadata_requirements</span><span class="plain-syntax"> = </span><span class="identifier-syntax">JSON::read_requirements_file</span><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">JSON_resource_metadata_requirements</span><span class="plain-syntax"> = </span><span class="identifier-syntax">JSON::read_requirements_file</span><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">JSON_requirement</span><span class="plain-syntax"> *</span><span class="identifier-syntax">req</span><span class="plain-syntax"> =</span> <span class="plain-syntax"> </span><span class="identifier-syntax">JSON_requirement</span><span class="plain-syntax"> *</span><span class="identifier-syntax">req</span><span class="plain-syntax"> =</span>

View file

@ -59,7 +59,7 @@ function togglePopup(material_id) {
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../inbuildn.html">Inbuild Modules</a></li><li><a href="index.html">supervisor</a></li><li><a href="index.html#4">Chapter 4: Genre Management</a></li><li><b>Extension Bundle Manager</b></li></ul></div> <ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../inbuildn.html">Inbuild Modules</a></li><li><a href="index.html">supervisor</a></li><li><a href="index.html#4">Chapter 4: Genre Management</a></li><li><b>Extension Bundle Manager</b></li></ul></div>
<p class="purpose">Claiming and creating copies of the kit genre: used for kits of precompiled Inter code.</p> <p class="purpose">Claiming and creating copies of the kit genre: used for kits of precompiled Inter code.</p>
<ul class="toc"><li><a href="4-ebm.html#SP1">&#167;1. Genre definition</a></li><li><a href="4-ebm.html#SP4">&#167;4. Claiming</a></li><li><a href="4-ebm.html#SP6">&#167;6. Searching</a></li><li><a href="4-ebm.html#SP7">&#167;7. Copying</a></li><li><a href="4-ebm.html#SP8">&#167;8. Build graph</a></li><li><a href="4-ebm.html#SP9">&#167;9. Documentation</a></li></ul><hr class="tocbar"> <ul class="toc"><li><a href="4-ebm.html#SP1">&#167;1. Genre definition</a></li><li><a href="4-ebm.html#SP4">&#167;4. Claiming</a></li><li><a href="4-ebm.html#SP6">&#167;6. Searching</a></li><li><a href="4-ebm.html#SP7">&#167;7. Copying</a></li><li><a href="4-ebm.html#SP8">&#167;8. Build graph</a></li><li><a href="4-ebm.html#SP9">&#167;9. Source text</a></li><li><a href="4-ebm.html#SP10">&#167;10. Documentation</a></li></ul><hr class="tocbar">
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. Genre definition. </b>The <span class="extract"><span class="extract-syntax">extension_bundle_genre</span></span> can be summarised as follows. <p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. Genre definition. </b>The <span class="extract"><span class="extract-syntax">extension_bundle_genre</span></span> can be summarised as follows.
</p> </p>
@ -74,7 +74,8 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">extension_bundle_genre</span><span class="plain-syntax">, </span><span class="constant-syntax">GENRE_COPY_TO_NEST_MTID</span><span class="plain-syntax">, </span><a href="4-ebm.html#SP7" class="function-link"><span class="function-syntax">ExtensionBundleManager::copy_to_nest</span></a><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">extension_bundle_genre</span><span class="plain-syntax">, </span><span class="constant-syntax">GENRE_COPY_TO_NEST_MTID</span><span class="plain-syntax">, </span><a href="4-ebm.html#SP7" class="function-link"><span class="function-syntax">ExtensionBundleManager::copy_to_nest</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">extension_bundle_genre</span><span class="plain-syntax">, </span><span class="constant-syntax">GENRE_CONSTRUCT_GRAPH_MTID</span><span class="plain-syntax">, </span><a href="4-ebm.html#SP8" class="function-link"><span class="function-syntax">ExtensionBundleManager::construct_graph</span></a><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">extension_bundle_genre</span><span class="plain-syntax">, </span><span class="constant-syntax">GENRE_CONSTRUCT_GRAPH_MTID</span><span class="plain-syntax">, </span><a href="4-ebm.html#SP8" class="function-link"><span class="function-syntax">ExtensionBundleManager::construct_graph</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">extension_bundle_genre</span><span class="plain-syntax">, </span><span class="constant-syntax">GENRE_BUILDING_SOON_MTID</span><span class="plain-syntax">, </span><a href="4-ebm.html#SP8" class="function-link"><span class="function-syntax">ExtensionBundleManager::building_soon</span></a><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">extension_bundle_genre</span><span class="plain-syntax">, </span><span class="constant-syntax">GENRE_BUILDING_SOON_MTID</span><span class="plain-syntax">, </span><a href="4-ebm.html#SP8" class="function-link"><span class="function-syntax">ExtensionBundleManager::building_soon</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">extension_bundle_genre</span><span class="plain-syntax">, </span><span class="constant-syntax">GENRE_DOCUMENT_MTID</span><span class="plain-syntax">, </span><a href="4-ebm.html#SP9" class="function-link"><span class="function-syntax">ExtensionBundleManager::document</span></a><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">extension_bundle_genre</span><span class="plain-syntax">, </span><span class="constant-syntax">GENRE_DOCUMENT_MTID</span><span class="plain-syntax">, </span><a href="4-ebm.html#SP10" class="function-link"><span class="function-syntax">ExtensionBundleManager::document</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">extension_bundle_genre</span><span class="plain-syntax">, </span><span class="constant-syntax">GENRE_READ_SOURCE_TEXT_FOR_MTID</span><span class="plain-syntax">, </span><a href="4-ebm.html#SP9" class="function-link"><span class="function-syntax">ExtensionBundleManager::read_source_text_for</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionBundleManager::write_work</span><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_genre</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionBundleManager::write_work</span><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_genre</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work</span><span class="plain-syntax">) {</span>
@ -95,7 +96,7 @@ which stores data about extensions used by the Inform compiler.
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="function-syntax">ExtensionBundleManager::from_copy</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">ExtensionBundleManager::from_copy</span></span>:<br/><a href="4-ebm.html#SP8">&#167;8</a><br/>Extension Services - <a href="5-es.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="function-syntax">ExtensionBundleManager::from_copy</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">ExtensionBundleManager::from_copy</span></span>:<br/><a href="4-ebm.html#SP8">&#167;8</a>, <a href="4-ebm.html#SP9">&#167;9</a><br/>Extension Services - <a href="5-es.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">C</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">edition</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">work</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">genre</span><span class="plain-syntax"> == </span><span class="identifier-syntax">extension_bundle_genre</span><span class="plain-syntax">)) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">C</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">edition</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">work</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">genre</span><span class="plain-syntax"> == </span><span class="identifier-syntax">extension_bundle_genre</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">RETRIEVE_POINTER_inform_extension</span><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">metadata</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">RETRIEVE_POINTER_inform_extension</span><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">metadata</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
@ -495,9 +496,10 @@ directory, we need to <span class="extract"><span class="extract-syntax">rsync</
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="function-syntax">ExtensionBundleManager::pathname_in_nest</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">ExtensionBundleManager::pathname_in_nest</span></span>:<br/>The Installer - <a href="7-ti.html#SP2_5">&#167;2.5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_edition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span> <span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="function-syntax">ExtensionBundleManager::pathname_in_nest</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">ExtensionBundleManager::pathname_in_nest</span></span>:<br/>The Installer - <a href="7-ti.html#SP2_5">&#167;2.5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_edition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">EX</span><span class="plain-syntax"> = </span><a href="4-em.html#SP3" class="function-link"><span class="function-syntax">ExtensionManager::path_within_nest</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="2-edt.html#SP2" class="function-link"><span class="function-syntax">Editions::write_canonical_leaf</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-edt.html#SP2" class="function-link"><span class="function-syntax">Editions::write_canonical_leaf</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Pathnames::down</span><span class="plain-syntax">(</span><a href="4-ebm.html#SP2" class="function-link"><span class="function-syntax">ExtensionBundleManager::path_within_nest</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">), </span><span class="identifier-syntax">leaf</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Pathnames::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">Pathnames::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">EX</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">work</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">author_name</span><span class="plain-syntax">), </span><span class="identifier-syntax">leaf</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
@ -545,10 +547,17 @@ directory, we need to <span class="extract"><span class="extract-syntax">rsync</
<span class="plain-syntax"> </span><a href="5-es.html#SP9" class="function-link"><span class="function-syntax">Extensions::construct_graph</span></a><span class="plain-syntax">(</span><a href="4-ebm.html#SP3" class="function-link"><span class="function-syntax">ExtensionBundleManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">));</span> <span class="plain-syntax"> </span><a href="5-es.html#SP9" class="function-link"><span class="function-syntax">Extensions::construct_graph</span></a><span class="plain-syntax">(</span><a href="4-ebm.html#SP3" class="function-link"><span class="function-syntax">ExtensionBundleManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">));</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>&#167;9. Documentation. </b></p> <p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>&#167;9. Source text. </b></p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionBundleManager::document</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">ExtensionBundleManager::document</span></span>:<br/><a href="4-ebm.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_genre</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dest</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionBundleManager::read_source_text_for</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">ExtensionBundleManager::read_source_text_for</span></span>:<br/><a href="4-ebm.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_genre</span><span class="plain-syntax"> *</span><span class="identifier-syntax">G</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="5-es.html#SP10" class="function-link"><span class="function-syntax">Extensions::read_source_text_for</span></a><span class="plain-syntax">(</span><a href="4-ebm.html#SP3" class="function-link"><span class="function-syntax">ExtensionBundleManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">));</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>&#167;10. Documentation. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionBundleManager::document</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">ExtensionBundleManager::document</span></span>:<br/><a href="4-ebm.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_genre</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dest</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="5-es.html#SP12" class="function-link"><span class="function-syntax">Extensions::document</span></a><span class="plain-syntax">(</span><a href="5-es.html#SP4" class="function-link"><span class="function-syntax">Extensions::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">), </span><span class="identifier-syntax">dest</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="5-es.html#SP12" class="function-link"><span class="function-syntax">Extensions::document</span></a><span class="plain-syntax">(</span><a href="5-es.html#SP4" class="function-link"><span class="function-syntax">Extensions::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">), </span><span class="identifier-syntax">dest</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre> </pre>

View file

@ -98,7 +98,7 @@ later on, as needed, just for extensions of interest: see below.
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="function-syntax">ExtensionManager::path_within_nest</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">ExtensionManager::path_within_nest</span></span>:<br/><a href="4-em.html#SP6">&#167;6</a>, <a href="4-em.html#SP7">&#167;7</a><br/>Extension Bundle Manager - <a href="4-ebm.html#SP6">&#167;6</a><br/>Extensions Index Page - <a href="7-eip.html#SP1_2_2_4_4_3">&#167;1.2.2.4.4.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="identifier-syntax">N</span><span class="plain-syntax">) {</span> <span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="function-syntax">ExtensionManager::path_within_nest</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">ExtensionManager::path_within_nest</span></span>:<br/><a href="4-em.html#SP6">&#167;6</a>, <a href="4-em.html#SP7">&#167;7</a><br/>Extension Bundle Manager - <a href="4-ebm.html#SP6">&#167;6</a>, <a href="4-ebm.html#SP7">&#167;7</a><br/>Extensions Index Page - <a href="7-eip.html#SP1_2_2_4_4_3">&#167;1.2.2.4.4.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="identifier-syntax">N</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"no nest"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"no nest"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">Pathnames::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">location</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Extensions"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">Pathnames::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">location</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Extensions"</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>

View file

@ -409,12 +409,7 @@ this is unambiguous.
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-es.html#SP2_2_1_3">&#167;2.2.1.3</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="5-es.html#SP2_2_1_3">&#167;2.2.1.3</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_3" class="paragraph-anchor"></a><b>&#167;2.3. </b>Note that we don't attempt to modify the <span class="extract"><span class="extract-syntax">inbuild_work</span></span> structure inside <p class="commentary firstcommentary"><a id="SP2_3" class="paragraph-anchor"></a><b>&#167;2.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Change the edition of the copy in light of the metadata found in the scan</span><span class="named-paragraph-number">2.3</span></span><span class="comment-syntax"> =</span>
the edition; we create an entirely new <span class="extract"><span class="extract-syntax">inbuild_work</span></span>. That's because they
are immutable, and need to be for the extensions dictionary to work.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Change the edition of the copy in light of the metadata found in the scan</span><span class="named-paragraph-number">2.3</span></span><span class="comment-syntax"> =</span>
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
@ -427,7 +422,7 @@ are immutable, and need to be for the extensions dictionary to work.
<span class="plain-syntax"> </span><a href="2-cps.html#SP5" class="function-link"><span class="function-syntax">Copies::attach_error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><a href="2-cps.html#SP5" class="function-link"><span class="function-syntax">Copies::attach_error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="2-ce.html#SP2" class="function-link"><span class="function-syntax">CopyErrors::new_N</span></a><span class="plain-syntax">(</span><span class="constant-syntax">EXT_AUTHOR_TOO_LONG_CE</span><span class="plain-syntax">, -1, </span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">claimed_author_name</span><span class="plain-syntax">)));</span> <span class="plain-syntax"> </span><a href="2-ce.html#SP2" class="function-link"><span class="function-syntax">CopyErrors::new_N</span></a><span class="plain-syntax">(</span><span class="constant-syntax">EXT_AUTHOR_TOO_LONG_CE</span><span class="plain-syntax">, -1, </span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">claimed_author_name</span><span class="plain-syntax">)));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">edition</span><span class="plain-syntax"> = </span><a href="2-edt.html#SP1" class="function-link"><span class="function-syntax">Editions::new</span></a><span class="plain-syntax">(</span> <span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">edition</span><span class="plain-syntax"> = </span><a href="2-edt.html#SP1" class="function-link"><span class="function-syntax">Editions::new</span></a><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><a href="2-wrk.html#SP2" class="function-link"><span class="function-syntax">Works::new_raw</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">extension_genre</span><span class="plain-syntax">, </span><span class="identifier-syntax">claimed_title</span><span class="plain-syntax">, </span><span class="identifier-syntax">claimed_author_name</span><span class="plain-syntax">), </span><span class="identifier-syntax">V</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-wrk.html#SP2" class="function-link"><span class="function-syntax">Works::new_raw</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">edition</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">work</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">genre</span><span class="plain-syntax">, </span><span class="identifier-syntax">claimed_title</span><span class="plain-syntax">, </span><span class="identifier-syntax">claimed_author_name</span><span class="plain-syntax">), </span><span class="identifier-syntax">V</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">reqs</span><span class="plain-syntax">) &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">reqs</span><span class="plain-syntax">) &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">compatibility_specification</span><span class="plain-syntax"> *</span><span class="identifier-syntax">CS</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Compatibility::from_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">reqs</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">compatibility_specification</span><span class="plain-syntax"> *</span><span class="identifier-syntax">CS</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Compatibility::from_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">reqs</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">CS</span><span class="plain-syntax">) </span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">edition</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">compatibility</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CS</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">CS</span><span class="plain-syntax">) </span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">edition</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">compatibility</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CS</span><span class="plain-syntax">;</span>
@ -731,7 +726,7 @@ in a minimal sort of way, with just an <span class="extract"><span class="extrac
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="function-syntax">Extensions::from_copy</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">Extensions::from_copy</span></span>:<br/><a href="5-es.html#SP13">&#167;13</a><br/>Extension Manager - <a href="4-em.html#SP10">&#167;10</a><br/>Extension Bundle Manager - <a href="4-ebm.html#SP9">&#167;9</a><br/>Language Services - <a href="5-ls.html#SP10">&#167;10</a><br/>Project Services - <a href="5-ps2.html#SP35">&#167;35</a><br/>Source Text - <a href="6-st.html#SP13">&#167;13</a><br/>Inclusions - <a href="6-inc.html#SP6_1">&#167;6.1</a><br/>The Mini-Website - <a href="7-tm.html#SP2">&#167;2</a><br/>Extensions Index Page - <a href="7-eip.html#SP1_2_2_4_4_1">&#167;1.2.2.4.4.1</a>, <a href="7-eip.html#SP1_2_2_4_4_4">&#167;1.2.2.4.4.4</a>, <a href="7-eip.html#SP1_2_2_4_5">&#167;1.2.2.4.5</a>, <a href="7-eip.html#SP7">&#167;7</a><br/>The Installer - <a href="7-ti.html#SP2_4_1">&#167;2.4.1</a>, <a href="7-ti.html#SP2_4_2">&#167;2.4.2</a>, <a href="7-ti.html#SP2_4_2_1">&#167;2.4.2.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="function-syntax">Extensions::from_copy</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">Extensions::from_copy</span></span>:<br/><a href="5-es.html#SP13">&#167;13</a><br/>Extension Manager - <a href="4-em.html#SP10">&#167;10</a><br/>Extension Bundle Manager - <a href="4-ebm.html#SP10">&#167;10</a><br/>Language Services - <a href="5-ls.html#SP10">&#167;10</a><br/>Project Services - <a href="5-ps2.html#SP35">&#167;35</a><br/>Source Text - <a href="6-st.html#SP13">&#167;13</a><br/>Inclusions - <a href="6-inc.html#SP6_1">&#167;6.1</a><br/>The Mini-Website - <a href="7-tm.html#SP2">&#167;2</a><br/>Extensions Index Page - <a href="7-eip.html#SP1_2_2_4_4_1">&#167;1.2.2.4.4.1</a>, <a href="7-eip.html#SP1_2_2_4_4_4">&#167;1.2.2.4.4.4</a>, <a href="7-eip.html#SP1_2_2_4_5">&#167;1.2.2.4.5</a>, <a href="7-eip.html#SP7">&#167;7</a><br/>The Installer - <a href="7-ti.html#SP2_4_1">&#167;2.4.1</a>, <a href="7-ti.html#SP2_4_2">&#167;2.4.2</a>, <a href="7-ti.html#SP2_4_2_1">&#167;2.4.2.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ext</span><span class="plain-syntax"> = </span><a href="4-ebm.html#SP3" class="function-link"><span class="function-syntax">ExtensionBundleManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ext</span><span class="plain-syntax"> = </span><a href="4-ebm.html#SP3" class="function-link"><span class="function-syntax">ExtensionBundleManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ext</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">ext</span><span class="plain-syntax"> = </span><a href="4-em.html#SP4" class="function-link"><span class="function-syntax">ExtensionManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ext</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">ext</span><span class="plain-syntax"> = </span><a href="4-em.html#SP4" class="function-link"><span class="function-syntax">ExtensionManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">ext</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">ext</span><span class="plain-syntax">;</span>
@ -922,16 +917,18 @@ no project involved, we must take action ourselves.)
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Extensions::construct_graph</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Extensions::construct_graph</span></span>:<br/>Extension Manager - <a href="4-em.html#SP8">&#167;8</a><br/>Extension Bundle Manager - <a href="4-ebm.html#SP8">&#167;8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Extensions::construct_graph</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Extensions::construct_graph</span></span>:<br/>Extension Manager - <a href="4-em.html#SP8">&#167;8</a><br/>Extension Bundle Manager - <a href="4-ebm.html#SP8">&#167;8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-cps.html#SP7" class="function-link"><span class="function-syntax">Copies::get_source_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="1-ic.html#SP22" class="function-link"><span class="function-syntax">Supervisor::project_set_at_command_line</span></a><span class="plain-syntax">() == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Sentences::set_start_of_source</span><span class="plain-syntax">(</span><span class="identifier-syntax">sfsm</span><span class="plain-syntax">, -1);</span> <span class="plain-syntax"> </span><a href="2-cps.html#SP7" class="function-link"><span class="function-syntax">Copies::get_source_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"graphing extension"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="6-inc.html#SP1" class="function-link"><span class="function-syntax">Inclusions::traverse</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">syntax_tree</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">Sentences::set_start_of_source</span><span class="plain-syntax">(</span><span class="identifier-syntax">sfsm</span><span class="plain-syntax">, -1);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="6-inc.html#SP1" class="function-link"><span class="function-syntax">Inclusions::traverse</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">syntax_tree</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="identifier-syntax">N</span><span class="plain-syntax"> = </span><a href="5-es.html#SP4" class="function-link"><span class="function-syntax">Extensions::materials_nest</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="identifier-syntax">N</span><span class="plain-syntax"> = </span><a href="5-es.html#SP4" class="function-link"><span class="function-syntax">Extensions::materials_nest</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_requirement</span><span class="plain-syntax"> *</span><span class="identifier-syntax">req</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_requirement</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kits</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_requirement</span><span class="plain-syntax"> *</span><span class="identifier-syntax">req</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_kit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><a href="5-ks.html#SP8" class="function-link"><span class="function-syntax">Kits::find_by_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">req</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">work</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">raw_title</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_requirement</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kits</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax">) </span><a href="3-bg.html#SP4" class="function-link"><span class="function-syntax">Graphs::need_this_to_use</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">vertex</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">vertex</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inform_kit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><a href="5-ks.html#SP8" class="function-link"><span class="function-syntax">Kits::find_by_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">req</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">work</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">raw_title</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax">) </span><a href="3-bg.html#SP4" class="function-link"><span class="function-syntax">Graphs::need_this_to_use</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">vertex</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">vertex</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre> </pre>
@ -945,7 +942,7 @@ This is that time.
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Extensions::read_source_text_for</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Extensions::read_source_text_for</span></span>:<br/>Extension Manager - <a href="4-em.html#SP9">&#167;9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Extensions::read_source_text_for</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Extensions::read_source_text_for</span></span>:<br/>Extension Manager - <a href="4-em.html#SP9">&#167;9</a><br/>Extension Bundle Manager - <a href="4-ebm.html#SP9">&#167;9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_language</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><a href="5-ls.html#SP10" class="function-link"><span class="function-syntax">Languages::find_for</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"English"</span><span class="plain-syntax">, </span><a href="5-es.html#SP7" class="function-link"><span class="function-syntax">Extensions::nest_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">));</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inform_language</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><a href="5-ls.html#SP10" class="function-link"><span class="function-syntax">Languages::find_for</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"English"</span><span class="plain-syntax">, </span><a href="5-es.html#SP7" class="function-link"><span class="function-syntax">Extensions::nest_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="5-ls.html#SP8" class="function-link"><span class="function-syntax">Languages::read_Preform_definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="plain-syntax">, </span><a href="5-es.html#SP7" class="function-link"><span class="function-syntax">Extensions::nest_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">));</span> <span class="plain-syntax"> </span><a href="5-ls.html#SP8" class="function-link"><span class="function-syntax">Languages::read_Preform_definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="plain-syntax">, </span><a href="5-es.html#SP7" class="function-link"><span class="function-syntax">Extensions::nest_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><a href="5-es.html#SP4" class="function-link"><span class="function-syntax">Extensions::main_source_file</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><a href="5-es.html#SP4" class="function-link"><span class="function-syntax">Extensions::main_source_file</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">);</span>
@ -1017,7 +1014,7 @@ then its sentences will go to the extension's own tree.
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">compiled_documentation</span><span class="plain-syntax"> *</span><span class="function-syntax">Extensions::get_documentation</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Extensions::get_documentation</span></span>:<br/><a href="5-es.html#SP12">&#167;12</a><br/>The Mini-Website - <a href="7-tm.html#SP7">&#167;7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">compiled_documentation</span><span class="plain-syntax"> *</span><span class="function-syntax">Extensions::get_documentation</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Extensions::get_documentation</span></span>:<br/><a href="5-es.html#SP12">&#167;12</a><br/>The Mini-Website - <a href="7-tm.html#SP7">&#167;7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-cps.html#SP7" class="function-link"><span class="function-syntax">Copies::get_source_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">); </span><span class="comment-syntax"> in the unlikely event this has not happened yet</span> <span class="plain-syntax"> </span><a href="2-cps.html#SP7" class="function-link"><span class="function-syntax">Copies::get_source_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"getting documentation"</span><span class="plain-syntax">); </span><span class="comment-syntax"> in the unlikely event this has not happened yet</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">documentation_sought</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">documentation_sought</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">location_if_path</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">location_if_path</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Pathnames::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">location_if_path</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Documentation"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Pathnames::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">location_if_path</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Documentation"</span><span class="plain-syntax">);</span>
@ -1047,7 +1044,7 @@ then its sentences will go to the extension's own tree.
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Extensions::document</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">Extensions::document</span></span>:<br/>Extension Manager - <a href="4-em.html#SP10">&#167;10</a><br/>Extension Bundle Manager - <a href="4-ebm.html#SP9">&#167;9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dest</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Extensions::document</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">Extensions::document</span></span>:<br/>Extension Manager - <a href="4-em.html#SP10">&#167;10</a><br/>Extension Bundle Manager - <a href="4-ebm.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dest</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">SVEXPLAIN</span><span class="plain-syntax">(1, </span><span class="string-syntax">"(documenting %X to %p)\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">edition</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">work</span><span class="plain-syntax">, </span><span class="identifier-syntax">dest</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">SVEXPLAIN</span><span class="plain-syntax">(1, </span><span class="string-syntax">"(documenting %X to %p)\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">edition</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">work</span><span class="plain-syntax">, </span><span class="identifier-syntax">dest</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">compiled_documentation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cd</span><span class="plain-syntax"> = </span><a href="5-es.html#SP11" class="function-link"><span class="function-syntax">Extensions::get_documentation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">compiled_documentation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cd</span><span class="plain-syntax"> = </span><a href="5-es.html#SP11" class="function-link"><span class="function-syntax">Extensions::get_documentation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="7-dr.html#SP3" class="function-link"><span class="function-syntax">DocumentationRenderer::as_HTML</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dest</span><span class="plain-syntax">, </span><span class="identifier-syntax">cd</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="7-dr.html#SP3" class="function-link"><span class="function-syntax">DocumentationRenderer::as_HTML</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dest</span><span class="plain-syntax">, </span><span class="identifier-syntax">cd</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
@ -1063,7 +1060,8 @@ make use of that:
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">sf</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">sf</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_inbuild_copy</span><span class="plain-syntax">(</span><span class="identifier-syntax">sf</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">your_ref</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_inbuild_copy</span><span class="plain-syntax">(</span><span class="identifier-syntax">sf</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">your_ref</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">C</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">C</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">edition</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">work</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">genre</span><span class="plain-syntax"> != </span><span class="identifier-syntax">extension_genre</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">edition</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">work</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">genre</span><span class="plain-syntax"> != </span><span class="identifier-syntax">extension_genre</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">edition</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">work</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">genre</span><span class="plain-syntax"> != </span><span class="identifier-syntax">extension_bundle_genre</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-es.html#SP4" class="function-link"><span class="function-syntax">Extensions::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-es.html#SP4" class="function-link"><span class="function-syntax">Extensions::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre> </pre>

View file

@ -959,7 +959,7 @@ rather like a family tree for a minor European royal family.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">proj</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">chosen_build_target</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">proj</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">chosen_build_target</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="5-ps2.html#SP22" class="function-link"><span class="function-syntax">Projects::finalise_kit_dependencies</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">proj</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="5-ps2.html#SP22" class="function-link"><span class="function-syntax">Projects::finalise_kit_dependencies</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">proj</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">project_being_scanned</span><span class="plain-syntax"> = </span><span class="identifier-syntax">proj</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">project_being_scanned</span><span class="plain-syntax"> = </span><span class="identifier-syntax">proj</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-cps.html#SP7" class="function-link"><span class="function-syntax">Copies::get_source_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">proj</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-cps.html#SP7" class="function-link"><span class="function-syntax">Copies::get_source_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">proj</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"graphing project"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">project_being_scanned</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">project_being_scanned</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">build_vertex</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax"> = </span><span class="identifier-syntax">proj</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">vertex</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">build_vertex</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax"> = </span><span class="identifier-syntax">proj</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">vertex</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-ps2.html#SP33_1" class="named-paragraph-link"><span class="named-paragraph">Construct the graph upstream of V</span><span class="named-paragraph-number">33.1</span></a></span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-ps2.html#SP33_1" class="named-paragraph-link"><span class="named-paragraph">Construct the graph upstream of V</span><span class="named-paragraph-number">33.1</span></a></span><span class="plain-syntax">;</span>

View file

@ -322,7 +322,8 @@ Sausages by Mr Punch, and loaded it, but then read the sentence
<span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="function-syntax">Inclusions::load</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Inclusions::load</span></span>:<br/><a href="6-inc.html#SP5_1">&#167;5.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">last_H0</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">at</span><span class="plain-syntax">,</span> <span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="function-syntax">Inclusions::load</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Inclusions::load</span></span>:<br/><a href="6-inc.html#SP5_1">&#167;5.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">last_H0</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">at</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_requirement</span><span class="plain-syntax"> *</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">for_project</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_requirement</span><span class="plain-syntax"> *</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">for_project</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">for_project</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax">, </span><span class="identifier-syntax">for_project</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">extensions_included</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="2-rqr.html#SP7" class="function-link"><span class="function-syntax">Requirements::meets</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">edition</span><span class="plain-syntax">, </span><span class="identifier-syntax">req</span><span class="plain-syntax">)) &amp;&amp;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="2-rqr.html#SP7" class="function-link"><span class="function-syntax">Requirements::meets</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">edition</span><span class="plain-syntax">, </span><span class="identifier-syntax">req</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="2-cps.html#SP7" class="function-link"><span class="function-syntax">Copies::source_text_has_been_read</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">))) {</span> <span class="plain-syntax"> (</span><a href="2-cps.html#SP7" class="function-link"><span class="function-syntax">Copies::source_text_has_been_read</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><a href="5-es.html#SP20" class="function-link"><span class="function-syntax">Extensions::must_satisfy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="identifier-syntax">req</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="5-es.html#SP20" class="function-link"><span class="function-syntax">Extensions::must_satisfy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="identifier-syntax">req</span><span class="plain-syntax">);</span>
@ -352,7 +353,7 @@ Sausages by Mr Punch, and loaded it, but then read the sentence
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-inc.html#SP6_1_1" class="named-paragraph-link"><span class="named-paragraph">Issue a problem message saying that the VM does not meet requirements</span><span class="named-paragraph-number">6.1.1</span></a></span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-inc.html#SP6_1_1" class="named-paragraph-link"><span class="named-paragraph">Issue a problem message saying that the VM does not meet requirements</span><span class="named-paragraph-number">6.1.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">LinkedLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">search_result</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">copy</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">errors_reading_source_text</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">LinkedLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">search_result</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">copy</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">errors_reading_source_text</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-cps.html#SP7" class="function-link"><span class="function-syntax">Copies::get_source_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">search_result</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">copy</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-cps.html#SP7" class="function-link"><span class="function-syntax">Copies::get_source_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">search_result</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">copy</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"loading extension"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifndef</span><span class="plain-syntax"> </span><span class="identifier-syntax">CORE_MODULE</span> <span class="plain-syntax"> #</span><span class="identifier-syntax">ifndef</span><span class="plain-syntax"> </span><span class="identifier-syntax">CORE_MODULE</span>
<span class="plain-syntax"> </span><a href="2-cps.html#SP5" class="function-link"><span class="function-syntax">Copies::list_attached_errors</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">STDERR</span><span class="plain-syntax">, </span><span class="identifier-syntax">search_result</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">copy</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-cps.html#SP5" class="function-link"><span class="function-syntax">Copies::list_attached_errors</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">STDERR</span><span class="plain-syntax">, </span><span class="identifier-syntax">search_result</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">copy</span><span class="plain-syntax">);</span>

View file

@ -128,39 +128,41 @@ it's really not much more than the tree produced by <a href="7-dt.html" class="i
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">scan_directory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Directories::open</span><span class="plain-syntax">(</span><span class="identifier-syntax">EP</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">scan_directory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Directories::open</span><span class="plain-syntax">(</span><span class="identifier-syntax">EP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">leafname</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">D</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Directories::next</span><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="identifier-syntax">leafname</span><span class="plain-syntax">)) {</span> <span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">leafname</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">first</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::get_first_char</span><span class="plain-syntax">(</span><span class="identifier-syntax">leafname</span><span class="plain-syntax">), </span><span class="identifier-syntax">last</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::get_last_char</span><span class="plain-syntax">(</span><span class="identifier-syntax">leafname</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Directories::next</span><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="identifier-syntax">leafname</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Platform::is_folder_separator</span><span class="plain-syntax">(</span><span class="identifier-syntax">last</span><span class="plain-syntax">)) </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">first</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::get_first_char</span><span class="plain-syntax">(</span><span class="identifier-syntax">leafname</span><span class="plain-syntax">), </span><span class="identifier-syntax">last</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::get_last_char</span><span class="plain-syntax">(</span><span class="identifier-syntax">leafname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">first</span><span class="plain-syntax"> == </span><span class="character-syntax">'.'</span><span class="plain-syntax">) </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Platform::is_folder_separator</span><span class="plain-syntax">(</span><span class="identifier-syntax">last</span><span class="plain-syntax">)) </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">first</span><span class="plain-syntax"> == </span><span class="character-syntax">'('</span><span class="plain-syntax">) </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">first</span><span class="plain-syntax"> == </span><span class="character-syntax">'.'</span><span class="plain-syntax">) </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">short_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::new</span><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">first</span><span class="plain-syntax"> == </span><span class="character-syntax">'('</span><span class="plain-syntax">) </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::in</span><span class="plain-syntax">(</span><span class="identifier-syntax">EP</span><span class="plain-syntax">, </span><span class="identifier-syntax">leafname</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">short_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::new</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Filenames::write_unextended_leafname</span><span class="plain-syntax">(</span><span class="identifier-syntax">short_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::in</span><span class="plain-syntax">(</span><span class="identifier-syntax">EP</span><span class="plain-syntax">, </span><span class="identifier-syntax">leafname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">short_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">short_name</span><span class="plain-syntax">)-2) == </span><span class="character-syntax">'-'</span><span class="plain-syntax">) &amp;&amp;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">Filenames::write_unextended_leafname</span><span class="plain-syntax">(</span><span class="identifier-syntax">short_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> ((</span><span class="identifier-syntax">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">short_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">short_name</span><span class="plain-syntax">)-1) == </span><span class="character-syntax">'I'</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">short_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">short_name</span><span class="plain-syntax">)-2) == </span><span class="character-syntax">'-'</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> || (</span><span class="identifier-syntax">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">short_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">short_name</span><span class="plain-syntax">)-1) == </span><span class="character-syntax">'i'</span><span class="plain-syntax">)))</span> <span class="plain-syntax"> ((</span><span class="identifier-syntax">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">short_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">short_name</span><span class="plain-syntax">)-1) == </span><span class="character-syntax">'I'</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span> <span class="plain-syntax"> || (</span><span class="identifier-syntax">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">short_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">short_name</span><span class="plain-syntax">)-1) == </span><span class="character-syntax">'i'</span><span class="plain-syntax">)))</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">satellite_test_case</span><span class="plain-syntax"> *</span><span class="identifier-syntax">stc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">satellite_test_case</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">stc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">is_example</span><span class="plain-syntax"> = </span><span class="identifier-syntax">egs</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">satellite_test_case</span><span class="plain-syntax"> *</span><span class="identifier-syntax">stc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">satellite_test_case</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">stc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">owning_heading</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">stc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">is_example</span><span class="plain-syntax"> = </span><span class="identifier-syntax">egs</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">stc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">owning_node</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">stc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">owning_heading</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">stc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">owner</span><span class="plain-syntax"> = </span><span class="identifier-syntax">cd</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">stc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">owning_node</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">stc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">short_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">short_name</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">stc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">owner</span><span class="plain-syntax"> = </span><span class="identifier-syntax">cd</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">stc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">test_file</span><span class="plain-syntax"> = </span><span class="identifier-syntax">F</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">stc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">short_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">short_name</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">stc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ideal_transcript</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">stc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">test_file</span><span class="plain-syntax"> = </span><span class="identifier-syntax">F</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">ideal_leafname</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="identifier-syntax">stc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ideal_transcript</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">ideal_leafname</span><span class="plain-syntax">, </span><span class="string-syntax">"%S-I.txt"</span><span class="plain-syntax">, </span><span class="identifier-syntax">stc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">short_name</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">ideal_leafname</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IF</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::in</span><span class="plain-syntax">(</span><span class="identifier-syntax">EP</span><span class="plain-syntax">, </span><span class="identifier-syntax">ideal_leafname</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">ideal_leafname</span><span class="plain-syntax">, </span><span class="string-syntax">"%S-I.txt"</span><span class="plain-syntax">, </span><span class="identifier-syntax">stc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">short_name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TextFiles::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">IF</span><span class="plain-syntax">)) </span><span class="identifier-syntax">stc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ideal_transcript</span><span class="plain-syntax"> = </span><span class="identifier-syntax">IF</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IF</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::in</span><span class="plain-syntax">(</span><span class="identifier-syntax">EP</span><span class="plain-syntax">, </span><span class="identifier-syntax">ideal_leafname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">ideal_leafname</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TextFiles::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">IF</span><span class="plain-syntax">)) </span><span class="identifier-syntax">stc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ideal_transcript</span><span class="plain-syntax"> = </span><span class="identifier-syntax">IF</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">stc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">is_example</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">ideal_leafname</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-dc.html#SP2_1_2" class="named-paragraph-link"><span class="named-paragraph">Scan the example for its header and content</span><span class="named-paragraph-number">2.1.2</span></a></span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">stc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">is_example</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-dc.html#SP2_1_2" class="named-paragraph-link"><span class="named-paragraph">Scan the example for its header and content</span><span class="named-paragraph-number">2.1.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">stc</span><span class="plain-syntax">, </span><span class="reserved-syntax">satellite_test_case</span><span class="plain-syntax">, </span><span class="identifier-syntax">cd</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">cases</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">stc</span><span class="plain-syntax">, </span><span class="reserved-syntax">satellite_test_case</span><span class="plain-syntax">, </span><span class="identifier-syntax">cd</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">cases</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">leafname</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Directories::close</span><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">leafname</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Directories::close</span><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">);</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="7-dc.html#SP2">&#167;2</a> (twice).</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="7-dc.html#SP2">&#167;2</a> (twice).</li></ul>
<p class="commentary firstcommentary"><a id="SP2_1_1" class="paragraph-anchor"></a><b>&#167;2.1.1. </b></p> <p class="commentary firstcommentary"><a id="SP2_1_1" class="paragraph-anchor"></a><b>&#167;2.1.1. </b></p>
@ -198,8 +200,7 @@ it's really not much more than the tree produced by <a href="7-dt.html" class="i
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">placement_node</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">placement_node</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">ess</span><span class="plain-syntax">.</span><span class="element-syntax">placement</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">ess</span><span class="plain-syntax">.</span><span class="element-syntax">placement</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="7-dc.html#SP3" class="function-link"><span class="function-syntax">DocumentationCompiler::example_error</span></a><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">ess</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="identifier-syntax">placement_node</span><span class="plain-syntax"> = </span><span class="identifier-syntax">cd</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">tree</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">root</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="string-syntax">"example does not give its Location"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span> <span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">placement_node</span><span class="plain-syntax"> = </span><a href="7-dt.html#SP16" class="function-link"><span class="function-syntax">DocumentationTree::find_section</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cd</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">tree</span><span class="plain-syntax">, </span><span class="identifier-syntax">ess</span><span class="plain-syntax">.</span><span class="element-syntax">placement</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">placement_node</span><span class="plain-syntax"> = </span><a href="7-dt.html#SP16" class="function-link"><span class="function-syntax">DocumentationTree::find_section</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cd</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">tree</span><span class="plain-syntax">, </span><span class="identifier-syntax">ess</span><span class="plain-syntax">.</span><span class="element-syntax">placement</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">placement_node</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">placement_node</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>

View file

@ -420,28 +420,28 @@ in a hierarchical fashion.
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"Example %d is missing"</span><span class="plain-syntax">, </span><span class="identifier-syntax">eg</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"Example %d is missing"</span><span class="plain-syntax">, </span><span class="identifier-syntax">eg</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span> <span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><a href="7-dr.html#SP9" class="function-link"><span class="function-syntax">DocumentationRenderer::render_example_heading</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">EN</span><span class="plain-syntax">, </span><span class="identifier-syntax">EN</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">child</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="7-dr.html#SP9" class="function-link"><span class="function-syntax">DocumentationRenderer::render_example_heading</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">EN</span><span class="plain-syntax">, </span><span class="identifier-syntax">EN</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">child</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"div"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"div"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-dr.html#SP4_1" class="named-paragraph-link"><span class="named-paragraph">Enter the small print</span><span class="named-paragraph-number">4.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-dr.html#SP4_1" class="named-paragraph-link"><span class="named-paragraph">Enter the small print</span><span class="named-paragraph-number">4.1</span></a></span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"This example is drawn from "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"This example is drawn from "</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">H</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EN</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">parent</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">H</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EN</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">parent</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">H</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">heading_TNT</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">H</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">heading_TNT</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">cdoc_heading</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_cdoc_heading</span><span class="plain-syntax">(</span><span class="identifier-syntax">H</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">cdoc_heading</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_cdoc_heading</span><span class="plain-syntax">(</span><span class="identifier-syntax">H</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">content</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">level</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">level</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><a href="7-dr.html#SP8" class="function-link"><span class="function-syntax">DocumentationRenderer::link_to</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="7-dr.html#SP8" class="function-link"><span class="function-syntax">DocumentationRenderer::link_to</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"Chapter %S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">count</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"Chapter %S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">count</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"a"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"a"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">level</span><span class="plain-syntax"> == </span><span class="constant-syntax">2</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">level</span><span class="plain-syntax"> == </span><span class="constant-syntax">2</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><a href="7-dr.html#SP8" class="function-link"><span class="function-syntax">DocumentationRenderer::link_to</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="7-dr.html#SP8" class="function-link"><span class="function-syntax">DocumentationRenderer::link_to</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"Section %S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">count</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"Section %S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">count</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"a"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"a"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"a"</span><span class="plain-syntax">, </span><span class="string-syntax">"href=\"index.html\""</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"a"</span><span class="plain-syntax">, </span><span class="string-syntax">"href=\"index.html\""</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"the introduction"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"the introduction"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"a"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"a"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-dr.html#SP4_2" class="named-paragraph-link"><span class="named-paragraph">Exit the small print</span><span class="named-paragraph-number">4.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-dr.html#SP4_2" class="named-paragraph-link"><span class="named-paragraph">Exit the small print</span><span class="named-paragraph-number">4.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">DocumentationRenderer::render_chapter</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">DocumentationRenderer::render_chapter</span></span>:<br/><a href="7-dr.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">compiled_documentation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cd</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">ch</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">DocumentationRenderer::render_chapter</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">DocumentationRenderer::render_chapter</span></span>:<br/><a href="7-dr.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">compiled_documentation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cd</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">ch</span><span class="plain-syntax">) {</span>

View file

@ -428,9 +428,7 @@ if not.
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">task</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">to_find_section</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">heading_TNT</span><span class="plain-syntax">)) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">task</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">to_find_section</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">heading_TNT</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">cdoc_heading</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_cdoc_heading</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">content</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">cdoc_heading</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_cdoc_heading</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
<span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"Want %S find %S\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">task</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">to_find_section</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">recognition_name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">level</span><span class="plain-syntax"> == </span><span class="constant-syntax">2</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">Str::eq_insensitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">recognition_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">task</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">to_find_section</span><span class="plain-syntax">))) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">level</span><span class="plain-syntax"> == </span><span class="constant-syntax">2</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">Str::eq_insensitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">recognition_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">task</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">to_find_section</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">task</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">result</span><span class="plain-syntax"> = </span><span class="identifier-syntax">N</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">task</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">result</span><span class="plain-syntax"> = </span><span class="identifier-syntax">N</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>

View file

@ -116,7 +116,7 @@ produces a second report.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="7-ti.html#SP2_3" class="named-paragraph-link"><span class="named-paragraph">Begin report on a damaged extension</span><span class="named-paragraph-number">2.3</span></a></span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="7-ti.html#SP2_3" class="named-paragraph-link"><span class="named-paragraph">Begin report on a damaged extension</span><span class="named-paragraph-number">2.3</span></a></span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-ti.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Begin report on a valid extension</span><span class="named-paragraph-number">2.2</span></a></span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-ti.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Begin report on a valid extension</span><span class="named-paragraph-number">2.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-cps.html#SP7" class="function-link"><span class="function-syntax">Copies::get_source_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">project</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-cps.html#SP7" class="function-link"><span class="function-syntax">Copies::get_source_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">project</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"graphing for installer"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">build_vertex</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax"> = </span><a href="2-cps.html#SP9" class="function-link"><span class="function-syntax">Copies::construct_project_graph</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">project</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">build_vertex</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax"> = </span><a href="2-cps.html#SP9" class="function-link"><span class="function-syntax">Copies::construct_project_graph</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">project</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">confirmed</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="7-ti.html#SP2_5" class="named-paragraph-link"><span class="named-paragraph">Make confirmed report</span><span class="named-paragraph-number">2.5</span></a></span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">confirmed</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="7-ti.html#SP2_5" class="named-paragraph-link"><span class="named-paragraph">Make confirmed report</span><span class="named-paragraph-number">2.5</span></a></span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-ti.html#SP2_4" class="named-paragraph-link"><span class="named-paragraph">Make unconfirmed report</span><span class="named-paragraph-number">2.4</span></a></span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-ti.html#SP2_4" class="named-paragraph-link"><span class="named-paragraph">Make unconfirmed report</span><span class="named-paragraph-number">2.4</span></a></span><span class="plain-syntax">;</span>

View file

@ -90,9 +90,7 @@ the census, to be on the safe side.
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionWebsite::update</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">ExtensionWebsite::update</span></span>:<br/>The Installer - <a href="7-ti.html#SP2_5">&#167;2.5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">proj</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionWebsite::update</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">ExtensionWebsite::update</span></span>:<br/>The Installer - <a href="7-ti.html#SP2_5">&#167;2.5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">proj</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">EXTENSIONS_CENSUS</span><span class="plain-syntax">, </span><span class="string-syntax">"Updating extensions documentation for project\n"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">EXTENSIONS_CENSUS</span><span class="plain-syntax">, </span><span class="string-syntax">"Updating extensions documentation for project\n"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::set_link_abbreviation_path</span><span class="plain-syntax">(</span><a href="5-ps2.html#SP6" class="function-link"><span class="function-syntax">Projects::path</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">proj</span><span class="plain-syntax">));</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML::set_link_abbreviation_path</span><span class="plain-syntax">(</span><a href="5-ps2.html#SP6" class="function-link"><span class="function-syntax">Projects::path</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">proj</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="7-eip.html#SP1" class="function-link"><span class="function-syntax">ExtensionIndex::write</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">proj</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax">, </span><span class="identifier-syntax">proj</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">extensions_included</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax">, </span><span class="identifier-syntax">proj</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">extensions_included</span><span class="plain-syntax">)</span>
@ -102,6 +100,8 @@ the census, to be on the safe side.
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_search_result</span><span class="plain-syntax"> *</span><span class="identifier-syntax">res</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_search_result</span><span class="plain-syntax"> *</span><span class="identifier-syntax">res</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">res</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_search_result</span><span class="plain-syntax">, </span><span class="identifier-syntax">census</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">res</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_search_result</span><span class="plain-syntax">, </span><span class="identifier-syntax">census</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="7-tm.html#SP7" class="function-link"><span class="function-syntax">ExtensionWebsite::document_extension</span></a><span class="plain-syntax">(</span><a href="5-es.html#SP4" class="function-link"><span class="function-syntax">Extensions::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">res</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">copy</span><span class="plain-syntax">), </span><span class="identifier-syntax">proj</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="7-tm.html#SP7" class="function-link"><span class="function-syntax">ExtensionWebsite::document_extension</span></a><span class="plain-syntax">(</span><a href="5-es.html#SP4" class="function-link"><span class="function-syntax">Extensions::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">res</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">copy</span><span class="plain-syntax">), </span><span class="identifier-syntax">proj</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="7-eip.html#SP1" class="function-link"><span class="function-syntax">ExtensionIndex::write</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">proj</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>&#167;3. </b>The top-level index page is at this filename. <p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>&#167;3. </b>The top-level index page is at this filename.

View file

@ -356,7 +356,6 @@ void Supervisor::optioneering_complete(inbuild_copy *C, int compile_only,
@<Find the virtual machine@>; @<Find the virtual machine@>;
Supervisor::make_project_from_command_line(C); Supervisor::make_project_from_command_line(C);
// Supervisor::create_default_externals();
Supervisor::enter_phase(TINKERING_INBUILD_PHASE); Supervisor::enter_phase(TINKERING_INBUILD_PHASE);
Supervisor::sort_nest_list(); Supervisor::sort_nest_list();
@ -471,25 +470,6 @@ inbuild_nest *Supervisor::add_nest(pathname *P, int tag) {
return N; return N;
} }
void Supervisor::create_default_externals(void) {
RUN_ONLY_BEFORE_PHASE(TINKERING_INBUILD_PHASE)
inbuild_nest *E = shared_external_nest;
if (E == NULL) {
pathname *P = home_path;
char *subfolder_within = INFORM_FOLDER_RELATIVE_TO_HOME;
if (subfolder_within[0]) {
TEMPORARY_TEXT(SF)
WRITE_TO(SF, "%s", subfolder_within);
P = Pathnames::down(home_path, SF);
DISCARD_TEXT(SF)
}
P = Pathnames::down(P, I"Inform");
SVEXPLAIN(1, "(in absence of explicit -external, inventing -external %p)\n", P);
SVEXPLAIN(2, "(because home path, according to environment variable HOME, is %p)\n", home_path);
E = Supervisor::add_nest(P, EXTERNAL_NEST_TAG);
}
}
@ It is then sorted in tag order: @ It is then sorted in tag order:
= =

View file

@ -60,6 +60,8 @@ inbuild_copy *Copies::new_in_file(inbuild_edition *edition, filename *F, inbuild
inbuild_copy *copy = Copies::new_p(edition); inbuild_copy *copy = Copies::new_p(edition);
copy->location_if_file = F; copy->location_if_file = F;
copy->nest_of_origin = N; copy->nest_of_origin = N;
SVEXPLAIN(3, "(made %S copy C%d at file %f)\n",
Genres::name(copy->edition->work->genre), copy->allocation_id, F);
return copy; return copy;
} }
@ -67,6 +69,8 @@ inbuild_copy *Copies::new_in_path(inbuild_edition *edition, pathname *P, inbuild
inbuild_copy *copy = Copies::new_p(edition); inbuild_copy *copy = Copies::new_p(edition);
copy->location_if_path = P; copy->location_if_path = P;
copy->nest_of_origin = N; copy->nest_of_origin = N;
SVEXPLAIN(3, "(made %S copy C%d at directory %p)\n",
Genres::name(copy->edition->work->genre), copy->allocation_id, P);
return copy; return copy;
} }
@ -142,7 +146,7 @@ int Copies::source_text_has_been_read(inbuild_copy *C) {
return C->source_text_read; return C->source_text_read;
} }
wording Copies::get_source_text(inbuild_copy *C) { wording Copies::get_source_text(inbuild_copy *C, text_stream *reason) {
if (C->source_text_read == FALSE) { if (C->source_text_read == FALSE) {
C->source_text_read = TRUE; C->source_text_read = TRUE;
if (LinkedLists::len(C->errors_reading_source_text) > 0) { if (LinkedLists::len(C->errors_reading_source_text) > 0) {

View file

@ -24,7 +24,7 @@ void JSONMetadata::read_metadata_file(inbuild_copy *C, filename *F,
@<Report a syntax error in JSON@>; @<Report a syntax error in JSON@>;
return; return;
} else { } else {
@<Validate the JSON read in@>; if (req) @<Validate the JSON read in@>;
} }
DISCARD_TEXT(contents) DISCARD_TEXT(contents)
C->metadata_record = obj; C->metadata_record = obj;
@ -251,6 +251,7 @@ dictionary *JSON_resource_metadata_requirements = NULL;
JSON_requirement *JSONMetadata::requirements(void) { JSON_requirement *JSONMetadata::requirements(void) {
if (JSON_resource_metadata_requirements == NULL) { if (JSON_resource_metadata_requirements == NULL) {
filename *F = InstalledFiles::filename(RESOURCE_JSON_REQS_IRES); filename *F = InstalledFiles::filename(RESOURCE_JSON_REQS_IRES);
if (TextFiles::exists(F) == FALSE) return NULL;
JSON_resource_metadata_requirements = JSON::read_requirements_file(NULL, F); JSON_resource_metadata_requirements = JSON::read_requirements_file(NULL, F);
} }
JSON_requirement *req = JSON_requirement *req =

View file

@ -17,6 +17,7 @@ void ExtensionBundleManager::start(void) {
METHOD_ADD(extension_bundle_genre, GENRE_CONSTRUCT_GRAPH_MTID, ExtensionBundleManager::construct_graph); METHOD_ADD(extension_bundle_genre, GENRE_CONSTRUCT_GRAPH_MTID, ExtensionBundleManager::construct_graph);
METHOD_ADD(extension_bundle_genre, GENRE_BUILDING_SOON_MTID, ExtensionBundleManager::building_soon); METHOD_ADD(extension_bundle_genre, GENRE_BUILDING_SOON_MTID, ExtensionBundleManager::building_soon);
METHOD_ADD(extension_bundle_genre, GENRE_DOCUMENT_MTID, ExtensionBundleManager::document); METHOD_ADD(extension_bundle_genre, GENRE_DOCUMENT_MTID, ExtensionBundleManager::document);
METHOD_ADD(extension_bundle_genre, GENRE_READ_SOURCE_TEXT_FOR_MTID, ExtensionBundleManager::read_source_text_for);
} }
void ExtensionBundleManager::write_work(inbuild_genre *gen, OUTPUT_STREAM, inbuild_work *work) { void ExtensionBundleManager::write_work(inbuild_genre *gen, OUTPUT_STREAM, inbuild_work *work) {
@ -417,9 +418,10 @@ directory, we need to |rsync| it.
= =
pathname *ExtensionBundleManager::pathname_in_nest(inbuild_nest *N, inbuild_edition *E) { pathname *ExtensionBundleManager::pathname_in_nest(inbuild_nest *N, inbuild_edition *E) {
pathname *EX = ExtensionManager::path_within_nest(N);
TEMPORARY_TEXT(leaf) TEMPORARY_TEXT(leaf)
Editions::write_canonical_leaf(leaf, E); Editions::write_canonical_leaf(leaf, E);
pathname *P = Pathnames::down(ExtensionBundleManager::path_within_nest(N), leaf); pathname *P = Pathnames::down(Pathnames::down(EX, E->work->author_name), leaf);
DISCARD_TEXT(leaf) DISCARD_TEXT(leaf)
return P; return P;
} }
@ -467,6 +469,13 @@ void ExtensionBundleManager::construct_graph(inbuild_genre *G, inbuild_copy *C)
Extensions::construct_graph(ExtensionBundleManager::from_copy(C)); Extensions::construct_graph(ExtensionBundleManager::from_copy(C));
} }
@h Source text.
=
void ExtensionBundleManager::read_source_text_for(inbuild_genre *G, inbuild_copy *C) {
Extensions::read_source_text_for(ExtensionBundleManager::from_copy(C));
}
@h Documentation. @h Documentation.
= =

View file

@ -303,10 +303,6 @@ this is unambiguous.
Str::copy(reqs, mr.exp[1]); Str::copy(reqs, mr.exp[1]);
} }
@ Note that we don't attempt to modify the |inbuild_work| structure inside
the edition; we create an entirely new |inbuild_work|. That's because they
are immutable, and need to be for the extensions dictionary to work.
@<Change the edition of the copy in light of the metadata found in the scan@> = @<Change the edition of the copy in light of the metadata found in the scan@> =
if (Str::len(claimed_title) == 0) { WRITE_TO(claimed_title, "Unknown"); } if (Str::len(claimed_title) == 0) { WRITE_TO(claimed_title, "Unknown"); }
if (Str::len(claimed_author_name) == 0) { WRITE_TO(claimed_author_name, "Anonymous"); } if (Str::len(claimed_author_name) == 0) { WRITE_TO(claimed_author_name, "Anonymous"); }
@ -317,7 +313,7 @@ are immutable, and need to be for the extensions dictionary to work.
Copies::attach_error(C, Copies::attach_error(C,
CopyErrors::new_N(EXT_AUTHOR_TOO_LONG_CE, -1, Str::len(claimed_author_name))); CopyErrors::new_N(EXT_AUTHOR_TOO_LONG_CE, -1, Str::len(claimed_author_name)));
C->edition = Editions::new( C->edition = Editions::new(
Works::new_raw(extension_genre, claimed_title, claimed_author_name), V); Works::new_raw(C->edition->work->genre, claimed_title, claimed_author_name), V);
if (Str::len(reqs) > 0) { if (Str::len(reqs) > 0) {
compatibility_specification *CS = Compatibility::from_text(reqs); compatibility_specification *CS = Compatibility::from_text(reqs);
if (CS) C->edition->compatibility = CS; if (CS) C->edition->compatibility = CS;
@ -745,16 +741,18 @@ no project involved, we must take action ourselves.)
= =
void Extensions::construct_graph(inform_extension *E) { void Extensions::construct_graph(inform_extension *E) {
Copies::get_source_text(E->as_copy); if (Supervisor::project_set_at_command_line() == NULL) {
Sentences::set_start_of_source(sfsm, -1); Copies::get_source_text(E->as_copy, I"graphing extension");
Inclusions::traverse(E->as_copy, E->syntax_tree); Sentences::set_start_of_source(sfsm, -1);
linked_list *L = NEW_LINKED_LIST(inbuild_nest); Inclusions::traverse(E->as_copy, E->syntax_tree);
inbuild_nest *N = Extensions::materials_nest(E); linked_list *L = NEW_LINKED_LIST(inbuild_nest);
ADD_TO_LINKED_LIST(N, inbuild_nest, L); inbuild_nest *N = Extensions::materials_nest(E);
inbuild_requirement *req; ADD_TO_LINKED_LIST(N, inbuild_nest, L);
LOOP_OVER_LINKED_LIST(req, inbuild_requirement, E->kits) { inbuild_requirement *req;
inform_kit *K = Kits::find_by_name(req->work->raw_title, L, NULL); LOOP_OVER_LINKED_LIST(req, inbuild_requirement, E->kits) {
if (K) Graphs::need_this_to_use(E->as_copy->vertex, K->as_copy->vertex); inform_kit *K = Kits::find_by_name(req->work->raw_title, L, NULL);
if (K) Graphs::need_this_to_use(E->as_copy->vertex, K->as_copy->vertex);
}
} }
} }
@ -826,7 +824,7 @@ then its sentences will go to the extension's own tree.
= =
compiled_documentation *Extensions::get_documentation(inform_extension *E) { compiled_documentation *Extensions::get_documentation(inform_extension *E) {
if (E == NULL) return NULL; if (E == NULL) return NULL;
Copies::get_source_text(E->as_copy); /* in the unlikely event this has not happened yet */ Copies::get_source_text(E->as_copy, I"getting documentation"); /* in the unlikely event this has not happened yet */
if (E->documentation_sought == FALSE) { if (E->documentation_sought == FALSE) {
if (E->as_copy->location_if_path) { if (E->as_copy->location_if_path) {
pathname *D = Pathnames::down(E->as_copy->location_if_path, I"Documentation"); pathname *D = Pathnames::down(E->as_copy->location_if_path, I"Documentation");
@ -866,7 +864,8 @@ inform_extension *Extensions::corresponding_to(source_file *sf) {
if (sf == NULL) return NULL; if (sf == NULL) return NULL;
inbuild_copy *C = RETRIEVE_POINTER_inbuild_copy(sf->your_ref); inbuild_copy *C = RETRIEVE_POINTER_inbuild_copy(sf->your_ref);
if (C == NULL) return NULL; if (C == NULL) return NULL;
if (C->edition->work->genre != extension_genre) return NULL; if ((C->edition->work->genre != extension_genre) &&
(C->edition->work->genre != extension_bundle_genre)) return NULL;
return Extensions::from_copy(C); return Extensions::from_copy(C);
} }

View file

@ -828,7 +828,7 @@ void Projects::construct_graph(inform_project *proj) {
if (proj->chosen_build_target == NULL) { if (proj->chosen_build_target == NULL) {
Projects::finalise_kit_dependencies(proj); Projects::finalise_kit_dependencies(proj);
project_being_scanned = proj; project_being_scanned = proj;
Copies::get_source_text(proj->as_copy); Copies::get_source_text(proj->as_copy, I"graphing project");
project_being_scanned = NULL; project_being_scanned = NULL;
build_vertex *V = proj->as_copy->vertex; build_vertex *V = proj->as_copy->vertex;
@<Construct the graph upstream of V@>; @<Construct the graph upstream of V@>;

View file

@ -226,7 +226,8 @@ then we need to note that the version requirement on PS has been raised to 3.
inform_extension *Inclusions::load(parse_node *last_H0, parse_node *at, inform_extension *Inclusions::load(parse_node *last_H0, parse_node *at,
inbuild_requirement *req, inform_project *for_project) { inbuild_requirement *req, inform_project *for_project) {
inform_extension *E = NULL; inform_extension *E = NULL;
LOOP_OVER(E, inform_extension) if (for_project)
LOOP_OVER_LINKED_LIST(E, inform_extension, for_project->extensions_included)
if ((Requirements::meets(E->as_copy->edition, req)) && if ((Requirements::meets(E->as_copy->edition, req)) &&
(Copies::source_text_has_been_read(E->as_copy))) { (Copies::source_text_has_been_read(E->as_copy))) {
Extensions::must_satisfy(E, req); Extensions::must_satisfy(E, req);
@ -253,7 +254,7 @@ inform_extension *Inclusions::load(parse_node *last_H0, parse_node *at,
@<Issue a problem message saying that the VM does not meet requirements@>; @<Issue a problem message saying that the VM does not meet requirements@>;
if (LinkedLists::len(search_result->copy->errors_reading_source_text) == 0) { if (LinkedLists::len(search_result->copy->errors_reading_source_text) == 0) {
Copies::get_source_text(search_result->copy); Copies::get_source_text(search_result->copy, I"loading extension");
} }
#ifndef CORE_MODULE #ifndef CORE_MODULE
Copies::list_attached_errors(STDERR, search_result->copy); Copies::list_attached_errors(STDERR, search_result->copy);

View file

@ -65,39 +65,41 @@ compiled_documentation *DocumentationCompiler::compile_from_path(pathname *P,
@<Scan EP directory for examples@> = @<Scan EP directory for examples@> =
scan_directory *D = Directories::open(EP); scan_directory *D = Directories::open(EP);
TEMPORARY_TEXT(leafname) if (D) {
while (Directories::next(D, leafname)) { TEMPORARY_TEXT(leafname)
wchar_t first = Str::get_first_char(leafname), last = Str::get_last_char(leafname); while (Directories::next(D, leafname)) {
if (Platform::is_folder_separator(last)) continue; wchar_t first = Str::get_first_char(leafname), last = Str::get_last_char(leafname);
if (first == '.') continue; if (Platform::is_folder_separator(last)) continue;
if (first == '(') continue; if (first == '.') continue;
text_stream *short_name = Str::new(); if (first == '(') continue;
filename *F = Filenames::in(EP, leafname); text_stream *short_name = Str::new();
Filenames::write_unextended_leafname(short_name, F); filename *F = Filenames::in(EP, leafname);
if ((Str::get_at(short_name, Str::len(short_name)-2) == '-') && Filenames::write_unextended_leafname(short_name, F);
((Str::get_at(short_name, Str::len(short_name)-1) == 'I') if ((Str::get_at(short_name, Str::len(short_name)-2) == '-') &&
|| (Str::get_at(short_name, Str::len(short_name)-1) == 'i'))) ((Str::get_at(short_name, Str::len(short_name)-1) == 'I')
continue; || (Str::get_at(short_name, Str::len(short_name)-1) == 'i')))
satellite_test_case *stc = CREATE(satellite_test_case); continue;
stc->is_example = egs; satellite_test_case *stc = CREATE(satellite_test_case);
stc->owning_heading = NULL; stc->is_example = egs;
stc->owning_node = NULL; stc->owning_heading = NULL;
stc->owner = cd; stc->owning_node = NULL;
stc->short_name = short_name; stc->owner = cd;
stc->test_file = F; stc->short_name = short_name;
stc->ideal_transcript = NULL; stc->test_file = F;
TEMPORARY_TEXT(ideal_leafname) stc->ideal_transcript = NULL;
WRITE_TO(ideal_leafname, "%S-I.txt", stc->short_name); TEMPORARY_TEXT(ideal_leafname)
filename *IF = Filenames::in(EP, ideal_leafname); WRITE_TO(ideal_leafname, "%S-I.txt", stc->short_name);
if (TextFiles::exists(IF)) stc->ideal_transcript = IF; filename *IF = Filenames::in(EP, ideal_leafname);
DISCARD_TEXT(ideal_leafname) if (TextFiles::exists(IF)) stc->ideal_transcript = IF;
if (stc->is_example) { DISCARD_TEXT(ideal_leafname)
@<Scan the example for its header and content@>; if (stc->is_example) {
@<Scan the example for its header and content@>;
}
ADD_TO_LINKED_LIST(stc, satellite_test_case, cd->cases);
} }
ADD_TO_LINKED_LIST(stc, satellite_test_case, cd->cases); DISCARD_TEXT(leafname)
Directories::close(D);
} }
DISCARD_TEXT(leafname)
Directories::close(D);
@ @
@ -130,8 +132,7 @@ typedef struct example_scanning_state {
tree_node *placement_node = NULL; tree_node *placement_node = NULL;
if (Str::len(ess.placement) == 0) { if (Str::len(ess.placement) == 0) {
DocumentationCompiler::example_error(&ess, placement_node = cd->tree->root;
I"example does not give its Location");
} else { } else {
placement_node = DocumentationTree::find_section(cd->tree, ess.placement); placement_node = DocumentationTree::find_section(cd->tree, ess.placement);
if (placement_node == NULL) { if (placement_node == NULL) {

View file

@ -347,28 +347,28 @@ void DocumentationRenderer::render_example(OUTPUT_STREAM, compiled_documentation
WRITE("Example %d is missing", eg); WRITE("Example %d is missing", eg);
} else { } else {
DocumentationRenderer::render_example_heading(OUT, EN, EN->child); DocumentationRenderer::render_example_heading(OUT, EN, EN->child);
} HTML_CLOSE("div");
HTML_CLOSE("div"); @<Enter the small print@>;
@<Enter the small print@>; WRITE("This example is drawn from ");
WRITE("This example is drawn from "); tree_node *H = EN->parent;
tree_node *H = EN->parent; if (H->type == heading_TNT) {
if (H->type == heading_TNT) { cdoc_heading *E = RETRIEVE_POINTER_cdoc_heading(H->content);
cdoc_heading *E = RETRIEVE_POINTER_cdoc_heading(H->content); if (E->level == 1) {
if (E->level == 1) { DocumentationRenderer::link_to(OUT, E);
DocumentationRenderer::link_to(OUT, E); WRITE("Chapter %S", E->count);
WRITE("Chapter %S", E->count); HTML_CLOSE("a");
HTML_CLOSE("a"); } else if (E->level == 2) {
} else if (E->level == 2) { DocumentationRenderer::link_to(OUT, E);
DocumentationRenderer::link_to(OUT, E); WRITE("Section %S", E->count);
WRITE("Section %S", E->count); HTML_CLOSE("a");
HTML_CLOSE("a"); } else {
} else { HTML_OPEN_WITH("a", "href=\"index.html\"");
HTML_OPEN_WITH("a", "href=\"index.html\""); WRITE("the introduction");
WRITE("the introduction"); HTML_CLOSE("a");
HTML_CLOSE("a"); }
} }
@<Exit the small print@>;
} }
@<Exit the small print@>;
} }
void DocumentationRenderer::render_chapter(OUTPUT_STREAM, compiled_documentation *cd, int ch) { void DocumentationRenderer::render_chapter(OUTPUT_STREAM, compiled_documentation *cd, int ch) {

View file

@ -346,9 +346,7 @@ int DocumentationTree::find_visit(tree_node *N, void *state, int L) {
} }
} }
if ((task->to_find_section) && (N->type == heading_TNT)) { if ((task->to_find_section) && (N->type == heading_TNT)) {
cdoc_heading *E = RETRIEVE_POINTER_cdoc_heading(N->content); cdoc_heading *E = RETRIEVE_POINTER_cdoc_heading(N->content);
LOG("Want %S find %S\n", task->to_find_section, E->recognition_name);
if ((E->level == 2) && (Str::eq_insensitive(E->recognition_name, task->to_find_section))) { if ((E->level == 2) && (Str::eq_insensitive(E->recognition_name, task->to_find_section))) {
task->result = N; task->result = N;
return FALSE; return FALSE;

View file

@ -57,7 +57,7 @@ void ExtensionInstaller::install(inbuild_copy *C, int confirmed, pathname *to_to
if (N > 0) @<Begin report on a damaged extension@> if (N > 0) @<Begin report on a damaged extension@>
else @<Begin report on a valid extension@>; else @<Begin report on a valid extension@>;
if (OUT) { if (OUT) {
Copies::get_source_text(project->as_copy); Copies::get_source_text(project->as_copy, I"graphing for installer");
build_vertex *V = Copies::construct_project_graph(project->as_copy); build_vertex *V = Copies::construct_project_graph(project->as_copy);
if (confirmed) @<Make confirmed report@> if (confirmed) @<Make confirmed report@>
else @<Make unconfirmed report@>; else @<Make unconfirmed report@>;

View file

@ -1,15 +1,15 @@
Size of lexicon: 3162 excerpt meanings Size of lexicon: 3164 excerpt meanings
Stored among 855 words out of total vocabulary of 10626 Stored among 855 words out of total vocabulary of 10631
719 words have a start list: longest belongs to report (with 293 meanings) 719 words have a start list: longest belongs to report (with 293 meanings)
21 words have an end list: longest belongs to digits (with 7 meanings) 21 words have an end list: longest belongs to digits (with 7 meanings)
29 words have a middle list: longest belongs to to (with 4 meanings) 29 words have a middle list: longest belongs to to (with 4 meanings)
108 words have a subset list: longest belongs to street (with 4 meanings) 108 words have a subset list: longest belongs to street (with 4 meanings)
Number of attempts to retrieve: 110520 Number of attempts to retrieve: 110594
of which unsuccessful: 92374 of which unsuccessful: 92446
of which successful: 18146 of which successful: 18148
Total attempts to match against excerpt meanings: 279412 Total attempts to match against excerpt meanings: 279464
of which, total with incorrect hash codes: 256664 of which, total with incorrect hash codes: 256710
of which, total with correct hash codes: 22748 of which, total with correct hash codes: 22754
of which, total which matched: 19917 of which, total which matched: 19919

File diff suppressed because it is too large Load diff

View file

@ -243,6 +243,7 @@ USAGE: ph_blankouttable 0 0 0
USAGE: ph_sortrandom 0 0 0 USAGE: ph_sortrandom 0 0 0
USAGE: ph_sortcolumn 0 0 0 USAGE: ph_sortcolumn 0 0 0
USAGE: ph_sortcolumnreverse 0 0 0 USAGE: ph_sortcolumnreverse 0 0 0
USAGE: ph_sorttablephrase 0 0 0
USAGE: ph_setpronouns 0 0 0 USAGE: ph_setpronouns 0 0 0
USAGE: ph_multipleobjectlist 0 0 0 USAGE: ph_multipleobjectlist 0 0 0
USAGE: ph_altermultipleobjectlist 0 0 0 USAGE: ph_altermultipleobjectlist 0 0 0
@ -347,6 +348,7 @@ USAGE: ph_listofdesc 0 0 0
USAGE: ph_reverselist 0 0 0 USAGE: ph_reverselist 0 0 0
USAGE: ph_sortlist 0 0 0 USAGE: ph_sortlist 0 0 0
USAGE: ph_sortlistreverse 0 0 0 USAGE: ph_sortlistreverse 0 0 0
USAGE: ph_sortlistphrase 0 0 0
USAGE: ph_sortlistrandom 0 0 0 USAGE: ph_sortlistrandom 0 0 0
USAGE: ph_sortlistproperty 0 0 0 USAGE: ph_sortlistproperty 0 0 0
USAGE: ph_sortlistpropertyreverse 0 0 0 USAGE: ph_sortlistpropertyreverse 0 0 0

View file

@ -1,33 +1,33 @@
Total memory consumption was 137254K = 134 MB Total memory consumption was 137284K = 134 MB
---- was used for 2122978 objects, in 374831 frames in 0 x 800K = 0K = 0 MB: ---- was used for 2123161 objects, in 374915 frames in 0 x 800K = 0K = 0 MB:
30.7% inter_tree_node_array 60 x 8192 = 491520 objects, 43255680 bytes 30.7% inter_tree_node_array 60 x 8192 = 491520 objects, 43255680 bytes
19.5% text_stream_array 4882 x 100 = 488200 objects, 27495424 bytes 19.5% text_stream_array 4883 x 100 = 488300 objects, 27501056 bytes
18.0% linked_list 45345 objects, 25393200 bytes 18.0% linked_list 45352 objects, 25397120 bytes
10.2% inter_symbol_array 135 x 1024 = 138240 objects, 14381280 bytes 10.2% inter_symbol_array 135 x 1024 = 138240 objects, 14381280 bytes
9.9% inter_error_stash_array 107 x 1024 = 109568 objects, 14028128 bytes 9.9% inter_error_stash_array 107 x 1024 = 109568 objects, 14028128 bytes
7.6% parse_node 133764 objects, 10701120 bytes 7.6% parse_node 133796 objects, 10703680 bytes
5.4% verb_conjugation 164 objects, 7610912 bytes 5.4% verb_conjugation 164 objects, 7610912 bytes
4.0% parse_node_annotation_array 357 x 500 = 178500 objects, 5723424 bytes 4.0% parse_node_annotation_array 357 x 500 = 178500 objects, 5723424 bytes
3.2% scan_directory 1091 objects, 4503648 bytes 3.2% scan_directory 1092 objects, 4507776 bytes
2.5% pcalc_prop_array 26 x 1000 = 26000 objects, 3536832 bytes 2.5% pcalc_prop_array 26 x 1000 = 26000 objects, 3536832 bytes
2.2% inter_name_array 67 x 1000 = 67000 objects, 3218144 bytes 2.2% inter_name_array 67 x 1000 = 67000 objects, 3218144 bytes
1.9% kind_array 68 x 1000 = 68000 objects, 2722176 bytes 1.9% kind_array 68 x 1000 = 68000 objects, 2722176 bytes
1.5% inter_schema_token 14176 objects, 2154752 bytes 1.5% inter_schema_token 14176 objects, 2154752 bytes
1.4% inter_name_generator_array 51 x 1000 = 51000 objects, 2041632 bytes 1.4% inter_name_generator_array 51 x 1000 = 51000 objects, 2041632 bytes
1.3% package_request 21340 objects, 1877920 bytes 1.3% package_request 21344 objects, 1878272 bytes
1.3% vocabulary_entry_array 163 x 100 = 16300 objects, 1830816 bytes 1.3% vocabulary_entry_array 163 x 100 = 16300 objects, 1830816 bytes
1.1% dict_entry_array 491 x 100 = 49100 objects, 1586912 bytes 1.1% dict_entry_array 491 x 100 = 49100 objects, 1586912 bytes
1.0% inter_symbols_table 26913 objects, 1507128 bytes 1.0% inter_symbols_table 26921 objects, 1507576 bytes
1.0% match_trie_array 11 x 1000 = 11000 objects, 1496352 bytes 1.0% match_trie_array 11 x 1000 = 11000 objects, 1496352 bytes
1.0% i6_schema_array 24 x 100 = 2400 objects, 1440768 bytes 1.0% i6_schema_array 24 x 100 = 2400 objects, 1440768 bytes
0.9% inter_package 26913 objects, 1291824 bytes 0.9% inter_package 26921 objects, 1292208 bytes
0.8% map_data 677 objects, 1137360 bytes 0.8% map_data 677 objects, 1137360 bytes
0.7% id_body 977 objects, 1117688 bytes 0.7% id_body 979 objects, 1119976 bytes
0.7% adjective_meaning 208 objects, 1030016 bytes 0.7% adjective_meaning 208 objects, 1030016 bytes
0.7% inter_schema_node 9066 objects, 1015392 bytes 0.7% inter_schema_node 9066 objects, 1015392 bytes
0.7% excerpt_meaning 3162 objects, 986544 bytes 0.7% excerpt_meaning 3164 objects, 987168 bytes
0.6% production 3985 objects, 924520 bytes 0.6% production 3985 objects, 924520 bytes
0.6% ptoken 8652 objects, 899808 bytes 0.6% ptoken 8652 objects, 899808 bytes
0.6% grammatical_usage 3648 objects, 875520 bytes 0.6% grammatical_usage 3648 objects, 875520 bytes
@ -36,24 +36,24 @@ Total memory consumption was 137254K = 134 MB
0.3% local_variable_array 49 x 100 = 4900 objects, 471968 bytes 0.3% local_variable_array 49 x 100 = 4900 objects, 471968 bytes
0.2% verb_usage 1148 objects, 394912 bytes 0.2% verb_usage 1148 objects, 394912 bytes
0.2% rule 478 objects, 374752 bytes 0.2% rule 478 objects, 374752 bytes
0.2% dictionary 7752 objects, 372096 bytes 0.2% dictionary 7754 objects, 372192 bytes
0.2% verb_form 388 objects, 350752 bytes 0.2% verb_form 388 objects, 350752 bytes
0.2% noun 2395 objects, 287400 bytes 0.2% noun 2395 objects, 287400 bytes
0.1% compilation_subtask 3388 objects, 271040 bytes 0.1% compilation_subtask 3388 objects, 271040 bytes
0.1% inference_subject 672 objects, 263424 bytes 0.1% inference_subject 672 objects, 263424 bytes
0.1% inter_annotation_array 2 x 8192 = 16384 objects, 262208 bytes 0.1% inter_annotation_array 2 x 8192 = 16384 objects, 262208 bytes
0.1% vanilla_function 3807 objects, 243648 bytes 0.1% vanilla_function 3808 objects, 243712 bytes
0.1% binary_predicate 330 objects, 174240 bytes 0.1% binary_predicate 330 objects, 174240 bytes
0.1% hierarchy_location 1189 objects, 171216 bytes 0.1% hierarchy_location 1190 objects, 171360 bytes
0.1% linguistic_stock_item 3338 objects, 160224 bytes 0.1% linguistic_stock_item 3338 objects, 160224 bytes
0.1% rule_family_data 404 objects, 148672 bytes 0.1% rule_family_data 404 objects, 148672 bytes
0.1% nonterminal 773 objects, 142232 bytes 0.1% nonterminal 773 objects, 142232 bytes
---- nascent_array 2130 objects, 136320 bytes ---- nascent_array 2130 objects, 136320 bytes
---- inference 1705 objects, 122760 bytes ---- inference 1705 objects, 122760 bytes
---- pcalc_term_array 3 x 1000 = 3000 objects, 120096 bytes ---- pcalc_term_array 3 x 1000 = 3000 objects, 120096 bytes
---- documentation_ref 1276 objects, 112288 bytes ---- documentation_ref 1278 objects, 112464 bytes
---- inter_schema 1542 objects, 111024 bytes ---- inter_schema 1542 objects, 111024 bytes
---- imperative_defn 1415 objects, 101880 bytes ---- imperative_defn 1417 objects, 102024 bytes
---- noun_usage 2419 objects, 96760 bytes ---- noun_usage 2419 objects, 96760 bytes
---- anl_entry_array 2 x 1000 = 2000 objects, 96064 bytes ---- anl_entry_array 2 x 1000 = 2000 objects, 96064 bytes
---- inter_tree 7 objects, 95872 bytes ---- inter_tree 7 objects, 95872 bytes
@ -65,8 +65,8 @@ Total memory consumption was 137254K = 134 MB
---- spatial_data 677 objects, 64992 bytes ---- spatial_data 677 objects, 64992 bytes
---- kind_constructor 79 objects, 64464 bytes ---- kind_constructor 79 objects, 64464 bytes
---- linked_list_item_array 4 x 1000 = 4000 objects, 64128 bytes ---- linked_list_item_array 4 x 1000 = 4000 objects, 64128 bytes
---- scenes_rcd_data 1954 objects, 62528 bytes ---- scenes_rcd_data 1958 objects, 62656 bytes
---- actions_rcd_data 1954 objects, 62528 bytes ---- actions_rcd_data 1958 objects, 62656 bytes
---- booking 868 objects, 62496 bytes ---- booking 868 objects, 62496 bytes
---- kind_macro_definition 9 objects, 62280 bytes ---- kind_macro_definition 9 objects, 62280 bytes
---- command_grammar 130 objects, 58240 bytes ---- command_grammar 130 objects, 58240 bytes
@ -79,8 +79,8 @@ Total memory consumption was 137254K = 134 MB
---- ap_clause_array 2 x 400 = 800 objects, 51264 bytes ---- ap_clause_array 2 x 400 = 800 objects, 51264 bytes
---- HTML_tag_array 1 x 1000 objects, 48032 bytes ---- HTML_tag_array 1 x 1000 objects, 48032 bytes
---- heading 212 objects, 47488 bytes ---- heading 212 objects, 47488 bytes
---- to_family_data 527 objects, 42160 bytes
---- text_substitution 438 objects, 42048 bytes ---- text_substitution 438 objects, 42048 bytes
---- to_family_data 525 objects, 42000 bytes
---- activity_list_array 1 x 1000 objects, 40032 bytes ---- activity_list_array 1 x 1000 objects, 40032 bytes
---- anl_clause_array 1 x 1000 objects, 40032 bytes ---- anl_clause_array 1 x 1000 objects, 40032 bytes
---- shared_variable_access_list_array 12 x 100 = 1200 objects, 38784 bytes ---- shared_variable_access_list_array 12 x 100 = 1200 objects, 38784 bytes
@ -103,7 +103,7 @@ Total memory consumption was 137254K = 134 MB
---- pipeline_step 15 objects, 20280 bytes ---- pipeline_step 15 objects, 20280 bytes
---- action_name 90 objects, 20160 bytes ---- action_name 90 objects, 20160 bytes
---- timed_rules_rfd_data 404 objects, 19392 bytes ---- timed_rules_rfd_data 404 objects, 19392 bytes
---- method 400 objects, 19200 bytes ---- method 401 objects, 19248 bytes
---- build_vertex 157 objects, 18840 bytes ---- build_vertex 157 objects, 18840 bytes
---- instance 162 objects, 18144 bytes ---- instance 162 objects, 18144 bytes
---- pcalc_prop_deferral 86 objects, 17888 bytes ---- pcalc_prop_deferral 86 objects, 17888 bytes
@ -263,16 +263,16 @@ Total memory consumption was 137254K = 134 MB
100.0% was used for memory not allocated for objects: 100.0% was used for memory not allocated for objects:
61.6% text stream storage 86685820 bytes in 508181 claims 61.6% text stream storage 86714112 bytes in 508313 claims
3.8% dictionary storage 5479936 bytes in 7752 claims 3.8% dictionary storage 5480960 bytes in 7754 claims
---- sorting 2624 bytes in 531 claims ---- sorting 2624 bytes in 531 claims
5.1% source text 7200000 bytes in 3 claims 5.1% source text 7200000 bytes in 3 claims
7.6% source text details 10800000 bytes in 2 claims 7.6% source text details 10800000 bytes in 2 claims
0.1% documentation fragments 262144 bytes in 1 claim 0.1% documentation fragments 262144 bytes in 1 claim
---- linguistic stock array 81920 bytes in 2 claims ---- linguistic stock array 81920 bytes in 2 claims
---- small word set array 105600 bytes in 22 claims ---- small word set array 105600 bytes in 22 claims
3.3% inter symbols storage 4703712 bytes in 28290 claims 3.3% inter symbols storage 4704736 bytes in 28298 claims
11.9% inter bytecode storage 16758140 bytes in 15 claims 11.9% inter bytecode storage 16758228 bytes in 15 claims
4.4% inter links storage 6222976 bytes in 11 claims 4.4% inter links storage 6222976 bytes in 11 claims
0.1% inter tree location list storage 191232 bytes in 32 claims 0.1% inter tree location list storage 191232 bytes in 32 claims
1.2% instance-of-kind counting 1731856 bytes in 1 claim 1.2% instance-of-kind counting 1731856 bytes in 1 claim
@ -281,5 +281,5 @@ Total memory consumption was 137254K = 134 MB
---- code generation workspace for objects 3488 bytes in 19 claims ---- code generation workspace for objects 3488 bytes in 19 claims
0.2% emitter array storage 281184 bytes in 2006 claims 0.2% emitter array storage 281184 bytes in 2006 claims
-138.-7% was overhead - -194999584 bytes = -190429K = -185 MB -138.-7% was overhead - -195021008 bytes = -190450K = -185 MB

View file

@ -1,4 +1,4 @@
<s-literal> hits 2131/24680 nti 19 constraint (none) extremes [1, infinity) <s-literal> hits 2131/24688 nti 19 constraint (none) extremes [1, infinity)
English: English:
(@1)<cardinal-number>=1 (@1)<cardinal-number>=1
(hits 171/171) (matched: '100') constraint CS = {r0} extremes [1, 1] (hits 171/171) (matched: '100') constraint CS = {r0} extremes [1, 1]
@ -16,14 +16,14 @@
(hits 1575/5756) (matched: 'Can be used for objects which are purely (hits 1575/5756) (matched: 'Can be used for objects which are purely
conceptual, like ideas, or are needed for internal book-keeping.') constraint (none) extremes [1, 1] conceptual, like ideas, or are needed for internal book-keeping.') constraint (none) extremes [1, 1]
<s-literal-real-number>=1 <s-literal-real-number>=1
(hits 11/10320) (matched: 'plus infinity') constraint (none) extremes [1, infinity) (hits 11/10324) (matched: 'plus infinity') constraint (none) extremes [1, infinity)
(@1)<s-literal-truth-state>=1 (@1)<s-literal-truth-state>=1
(hits 100/379) (matched: 'false') constraint CS = {13} extremes [1, 1] (hits 100/379) (matched: 'false') constraint CS = {13} extremes [1, 1]
<s-literal-list>=1 <s-literal-list>=1
(hits 0/3246) constraint DS = {15} extremes [2, infinity) (hits 0/3250) constraint DS = {15} extremes [2, infinity)
(@1)unicode <s-unicode-character>=1 (@1)unicode <s-unicode-character>=1
(hits 0/3994) constraint DS = {19} extremes [2, infinity) (hits 0/3998) constraint DS = {19} extremes [2, infinity)
<s-literal-time>=1 <s-literal-time>=1
(hits 0/3569) constraint DW = {16, 17, 18} extremes [2, 5] (hits 0/3571) constraint DW = {16, 17, 18} extremes [2, 5]
<s-literal-unit-notation>=1 <s-literal-unit-notation>=1
(hits 0/10209) constraint (none) extremes [1, infinity) (hits 0/10213) constraint (none) extremes [1, infinity)

View file

@ -28,8 +28,8 @@ ROOT_NT
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action}
UNPARSED_NOUN_NT'asking for information' UNPARSED_NOUN_NT'asking for information'
UNPARSED_NOUN_NT'out of world' UNPARSED_NOUN_NT'out of world'
IMPERATIVE_NT'carry out asking for information' {unit: 3} {imperative definition: 835} IMPERATIVE_NT'carry out asking for information' {unit: 3} {imperative definition: 837}
IMPERATIVE_NT'when play begins' {unit: 3} {imperative definition: 836} IMPERATIVE_NT'when play begins' {unit: 3} {imperative definition: 838}
HEADING_NT'section 1 - errands' {heading 5} {under: H5'section 1 - errands'} {unit: 3} HEADING_NT'section 1 - errands' {heading 5} {under: H5'section 1 - errands'} {unit: 3}
SENTENCE_NT'the current actor is a person which varies' {unit: 3} {classified} SENTENCE_NT'the current actor is a person which varies' {unit: 3} {classified}
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}
@ -39,8 +39,8 @@ ROOT_NT
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}
PROPER_NOUN_NT'current owner' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: NONLOCAL_VARIABLE_NT'current owner' {nonlocal: 'current owner'(var)person}} {created here} PROPER_NOUN_NT'current owner' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: NONLOCAL_VARIABLE_NT'current owner' {nonlocal: 'current owner'(var)person}} {created here}
COMMON_NOUN_NT'person which varies' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'values variable-pointer'-k} {creation: << kind=people variable-pointer(x) >>} {eval: TEST_VALUE_NT} COMMON_NOUN_NT'person which varies' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'values variable-pointer'-k} {creation: << kind=people variable-pointer(x) >>} {eval: TEST_VALUE_NT}
IMPERATIVE_NT'every turn' {unit: 3} {imperative definition: 837} IMPERATIVE_NT'every turn' {unit: 3} {imperative definition: 839}
IMPERATIVE_NT'every turn' {unit: 3} {imperative definition: 838} IMPERATIVE_NT'every turn' {unit: 3} {imperative definition: 840}
SENTENCE_NT'a person can be active or passive' {unit: 3} {classified} SENTENCE_NT'a person can be active or passive' {unit: 3} {classified}
VERB_NT'can be' {verb 'be able to be' s/p 3p act IS_TENSE +ve} {special meaning: can-be} VERB_NT'can be' {verb 'be able to be' s/p 3p act IS_TENSE +ve} {special meaning: can-be}
COMMON_NOUN_NT'a person' {refined} {refers: infs'person'} {creation: << kind=person(x) >>} {eval: TEST_VALUE_NT} COMMON_NOUN_NT'a person' {refined} {refers: infs'person'} {creation: << kind=person(x) >>} {eval: TEST_VALUE_NT}
@ -56,34 +56,34 @@ ROOT_NT
VERB_NT'are' {verb 'be' 3p p act IS_TENSE +ve} VERB_NT'are' {verb 'be' 3p p act IS_TENSE +ve}
PROPER_NOUN_NT'character movement rules' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: CONSTANT_NT {kind: rulebook} {rulebook: character movement}} {created here} PROPER_NOUN_NT'character movement rules' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: CONSTANT_NT {kind: rulebook} {rulebook: character movement}} {created here}
COMMON_NOUN_NT'rulebook' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'values based rulebook producing values'-k} {creation: << kind=rulebook(x) >>} {eval: TEST_VALUE_NT} COMMON_NOUN_NT'rulebook' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'values based rulebook producing values'-k} {creation: << kind=rulebook(x) >>} {eval: TEST_VALUE_NT}
IMPERATIVE_NT'the first character movement rule' {unit: 3} {imperative definition: 839} IMPERATIVE_NT'the first character movement rule' {unit: 3} {imperative definition: 841}
IMPERATIVE_NT'a character movement rule' {unit: 3} {imperative definition: 840} IMPERATIVE_NT'a character movement rule' {unit: 3} {imperative definition: 842}
IMPERATIVE_NT'a character movement rule' {unit: 3} {imperative definition: 841} IMPERATIVE_NT'a character movement rule' {unit: 3} {imperative definition: 843}
IMPERATIVE_NT'to decide whether movement has not yet occurred' {unit: 3} {imperative definition: 842} IMPERATIVE_NT'to decide whether movement has not yet occurred' {unit: 3} {imperative definition: 844}
IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 843} IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 845}
IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 844} IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 846}
SENTENCE_NT'the shopowner rules is a rulebook' {unit: 3} {classified} {clears pronouns} SENTENCE_NT'the shopowner rules is a rulebook' {unit: 3} {classified} {clears pronouns}
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}
PROPER_NOUN_NT'shopowner rules' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: CONSTANT_NT {kind: rulebook} {rulebook: shopowner}} {created here} PROPER_NOUN_NT'shopowner rules' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: CONSTANT_NT {kind: rulebook} {rulebook: shopowner}} {created here}
COMMON_NOUN_NT'rulebook' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'values based rulebook producing values'-k} {creation: << kind=rulebook(x) >>} {eval: TEST_VALUE_NT} COMMON_NOUN_NT'rulebook' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'values based rulebook producing values'-k} {creation: << kind=rulebook(x) >>} {eval: TEST_VALUE_NT}
IMPERATIVE_NT'a shopowner rule' {unit: 3} {imperative definition: 845} IMPERATIVE_NT'a shopowner rule' {unit: 3} {imperative definition: 847}
IMPERATIVE_NT'report someone closing a door when the person asked owns the' {unit: 3} {imperative definition: 846} IMPERATIVE_NT'report someone closing a door when the person asked owns the' {unit: 3} {imperative definition: 848}
IMPERATIVE_NT'report vanessa closing the metal door when the metal door is' {unit: 3} {imperative definition: 847} IMPERATIVE_NT'report vanessa closing the metal door when the metal door is' {unit: 3} {imperative definition: 849}
IMPERATIVE_NT'a shopowner rule' {unit: 3} {imperative definition: 848} IMPERATIVE_NT'a shopowner rule' {unit: 3} {imperative definition: 850}
SENTENCE_NT'filing is an action applying to one thing' {unit: 3} {classified} SENTENCE_NT'filing is an action applying to one thing' {unit: 3} {classified}
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action}
UNPARSED_NOUN_NT'filing' UNPARSED_NOUN_NT'filing'
UNPARSED_NOUN_NT'applying to one thing' UNPARSED_NOUN_NT'applying to one thing'
IMPERATIVE_NT'before someone filing something which is not carried by the ' {unit: 3} {imperative definition: 849} IMPERATIVE_NT'before someone filing something which is not carried by the ' {unit: 3} {imperative definition: 851}
IMPERATIVE_NT'carry out someone filing' {unit: 3} {imperative definition: 850} IMPERATIVE_NT'carry out someone filing' {unit: 3} {imperative definition: 852}
IMPERATIVE_NT'report someone filing' {unit: 3} {imperative definition: 851} IMPERATIVE_NT'report someone filing' {unit: 3} {imperative definition: 853}
SENTENCE_NT'the shopper rules is a rulebook' {unit: 3} {classified} {clears pronouns} SENTENCE_NT'the shopper rules is a rulebook' {unit: 3} {classified} {clears pronouns}
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}
PROPER_NOUN_NT'shopper rules' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: CONSTANT_NT {kind: rulebook} {rulebook: shopper}} {created here} PROPER_NOUN_NT'shopper rules' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: CONSTANT_NT {kind: rulebook} {rulebook: shopper}} {created here}
COMMON_NOUN_NT'rulebook' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'values based rulebook producing values'-k} {creation: << kind=rulebook(x) >>} {eval: TEST_VALUE_NT} COMMON_NOUN_NT'rulebook' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'values based rulebook producing values'-k} {creation: << kind=rulebook(x) >>} {eval: TEST_VALUE_NT}
IMPERATIVE_NT'a shopper rule' {unit: 3} {imperative definition: 852} IMPERATIVE_NT'a shopper rule' {unit: 3} {imperative definition: 854}
IMPERATIVE_NT'a shopper rule' {unit: 3} {imperative definition: 853} IMPERATIVE_NT'a shopper rule' {unit: 3} {imperative definition: 855}
IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 854} IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 856}
DEFN_CONT_NT'a room is air-conditioned' {unit: 3} DEFN_CONT_NT'a room is air-conditioned' {unit: 3}
CODE_BLOCK_NT CODE_BLOCK_NT
CODE_BLOCK_NT {control structure: IF} CODE_BLOCK_NT {control structure: IF}
@ -141,8 +141,8 @@ ROOT_NT
COMMON_NOUN_NT'artwork' {indefinite 'an' n/m/f nom/acc s} {refined} {creation: << kind=artwork(x) >>} {refers: infs'artwork'} {eval: TEST_VALUE_NT} {created here} COMMON_NOUN_NT'artwork' {indefinite 'an' n/m/f nom/acc s} {refined} {creation: << kind=artwork(x) >>} {refers: infs'artwork'} {eval: TEST_VALUE_NT} {created here}
KIND_NT'kind of thing' {refined} {refers: infs'thing'} KIND_NT'kind of thing' {refined} {refers: infs'thing'}
COMMON_NOUN_NT'thing' {refined} {refers: infs'thing'} {creation: << kind=thing(x) >>} {eval: TEST_VALUE_NT} COMMON_NOUN_NT'thing' {refined} {refers: infs'thing'} {creation: << kind=thing(x) >>} {eval: TEST_VALUE_NT}
IMPERATIVE_NT'before printing the name of an artwork' {unit: 3} {imperative definition: 855} IMPERATIVE_NT'before printing the name of an artwork' {unit: 3} {imperative definition: 857}
IMPERATIVE_NT'after printing the name of an artwork' {unit: 3} {imperative definition: 856} IMPERATIVE_NT'after printing the name of an artwork' {unit: 3} {imperative definition: 858}
SENTENCE_NT'an artwork can be submitted or reserved' {unit: 3} {classified} SENTENCE_NT'an artwork can be submitted or reserved' {unit: 3} {classified}
VERB_NT'can be' {verb 'be able to be' s/p 3p act IS_TENSE +ve} {special meaning: can-be} VERB_NT'can be' {verb 'be able to be' s/p 3p act IS_TENSE +ve} {special meaning: can-be}
COMMON_NOUN_NT'an artwork' {refined} {refers: infs'artwork'} {creation: << kind=artwork(x) >>} {eval: TEST_VALUE_NT} COMMON_NOUN_NT'an artwork' {refined} {refers: infs'artwork'} {creation: << kind=artwork(x) >>} {eval: TEST_VALUE_NT}
@ -155,49 +155,49 @@ ROOT_NT
COMMON_NOUN_NT'book' {indefinite 'a' n/m/f nom/acc s} {refined} {creation: << kind=book(x) >>} {refers: infs'book'} {eval: TEST_VALUE_NT} {created here} COMMON_NOUN_NT'book' {indefinite 'a' n/m/f nom/acc s} {refined} {creation: << kind=book(x) >>} {refers: infs'book'} {eval: TEST_VALUE_NT} {created here}
KIND_NT'kind of artwork' {refined} {refers: infs'artwork'} KIND_NT'kind of artwork' {refined} {refers: infs'artwork'}
COMMON_NOUN_NT'artwork' {refined} {refers: infs'artwork'} {creation: << kind=artwork(x) >>} {eval: TEST_VALUE_NT} COMMON_NOUN_NT'artwork' {refined} {refers: infs'artwork'} {creation: << kind=artwork(x) >>} {eval: TEST_VALUE_NT}
IMPERATIVE_NT'before someone resolving a book when the person asked is not' {unit: 3} {imperative definition: 857} IMPERATIVE_NT'before someone resolving a book when the person asked is not' {unit: 3} {imperative definition: 859}
IMPERATIVE_NT'carry out someone resolving a book' {unit: 3} {imperative definition: 858} IMPERATIVE_NT'carry out someone resolving a book' {unit: 3} {imperative definition: 860}
IMPERATIVE_NT'report someone resolving a book' {unit: 3} {imperative definition: 859} IMPERATIVE_NT'report someone resolving a book' {unit: 3} {imperative definition: 861}
IMPERATIVE_NT'before listing contents' {unit: 3} {imperative definition: 860} IMPERATIVE_NT'before listing contents' {unit: 3} {imperative definition: 862}
IMPERATIVE_NT'before grouping together books' {unit: 3} {imperative definition: 861} IMPERATIVE_NT'before grouping together books' {unit: 3} {imperative definition: 863}
SENTENCE_NT'a stamped envelope is a kind of thing' {unit: 3} {classified} {interpretation of subject: infs'book'} SENTENCE_NT'a stamped envelope is a kind of thing' {unit: 3} {classified} {interpretation of subject: infs'book'}
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}
COMMON_NOUN_NT'stamped envelope' {indefinite 'a' n/m/f nom/acc s} {refined} {creation: << kind=stamped envelope(x) >>} {refers: infs'stamped envelope'} {eval: TEST_VALUE_NT} {created here} COMMON_NOUN_NT'stamped envelope' {indefinite 'a' n/m/f nom/acc s} {refined} {creation: << kind=stamped envelope(x) >>} {refers: infs'stamped envelope'} {eval: TEST_VALUE_NT} {created here}
KIND_NT'kind of thing' {refined} {refers: infs'thing'} KIND_NT'kind of thing' {refined} {refers: infs'thing'}
COMMON_NOUN_NT'thing' {refined} {refers: infs'thing'} {creation: << kind=thing(x) >>} {eval: TEST_VALUE_NT} COMMON_NOUN_NT'thing' {refined} {refers: infs'thing'} {creation: << kind=thing(x) >>} {eval: TEST_VALUE_NT}
IMPERATIVE_NT'before someone resolving a stamped envelope when the person ' {unit: 3} {imperative definition: 862} IMPERATIVE_NT'before someone resolving a stamped envelope when the person ' {unit: 3} {imperative definition: 864}
IMPERATIVE_NT'carry out someone resolving a stamped envelope' {unit: 3} {imperative definition: 863} IMPERATIVE_NT'carry out someone resolving a stamped envelope' {unit: 3} {imperative definition: 865}
IMPERATIVE_NT'report someone resolving a stamped envelope' {unit: 3} {imperative definition: 864} IMPERATIVE_NT'report someone resolving a stamped envelope' {unit: 3} {imperative definition: 866}
IMPERATIVE_NT'instead of someone resolving a stamped envelope when the per' {unit: 3} {imperative definition: 865} IMPERATIVE_NT'instead of someone resolving a stamped envelope when the per' {unit: 3} {imperative definition: 867}
SENTENCE_NT'a dvd is a kind of artwork' {unit: 3} {classified} {interpretation of subject: infs'stamped envelope'} SENTENCE_NT'a dvd is a kind of artwork' {unit: 3} {classified} {interpretation of subject: infs'stamped envelope'}
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}
COMMON_NOUN_NT'dvd' {indefinite 'a' n/m/f nom/acc s} {refined} {creation: << kind=dvd(x) >>} {refers: infs'dvd'} {eval: TEST_VALUE_NT} {created here} COMMON_NOUN_NT'dvd' {indefinite 'a' n/m/f nom/acc s} {refined} {creation: << kind=dvd(x) >>} {refers: infs'dvd'} {eval: TEST_VALUE_NT} {created here}
KIND_NT'kind of artwork' {refined} {refers: infs'artwork'} KIND_NT'kind of artwork' {refined} {refers: infs'artwork'}
COMMON_NOUN_NT'artwork' {refined} {refers: infs'artwork'} {creation: << kind=artwork(x) >>} {eval: TEST_VALUE_NT} COMMON_NOUN_NT'artwork' {refined} {refers: infs'artwork'} {creation: << kind=artwork(x) >>} {eval: TEST_VALUE_NT}
IMPERATIVE_NT'before someone resolving a dvd when the person asked is not ' {unit: 3} {imperative definition: 866} IMPERATIVE_NT'before someone resolving a dvd when the person asked is not ' {unit: 3} {imperative definition: 868}
IMPERATIVE_NT'carry out someone resolving a dvd' {unit: 3} {imperative definition: 867} IMPERATIVE_NT'carry out someone resolving a dvd' {unit: 3} {imperative definition: 869}
IMPERATIVE_NT'report someone resolving a dvd' {unit: 3} {imperative definition: 868} IMPERATIVE_NT'report someone resolving a dvd' {unit: 3} {imperative definition: 870}
IMPERATIVE_NT'instead of someone resolving a dvd when the person asked car' {unit: 3} {imperative definition: 869} IMPERATIVE_NT'instead of someone resolving a dvd when the person asked car' {unit: 3} {imperative definition: 871}
IMPERATIVE_NT'before listing contents' {unit: 3} {imperative definition: 870} IMPERATIVE_NT'before listing contents' {unit: 3} {imperative definition: 872}
IMPERATIVE_NT'before grouping together dvds' {unit: 3} {imperative definition: 871} IMPERATIVE_NT'before grouping together dvds' {unit: 3} {imperative definition: 873}
SENTENCE_NT'approaching is an action applying to one thing' {unit: 3} {classified} SENTENCE_NT'approaching is an action applying to one thing' {unit: 3} {classified}
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action}
UNPARSED_NOUN_NT'approaching' UNPARSED_NOUN_NT'approaching'
UNPARSED_NOUN_NT'applying to one thing' UNPARSED_NOUN_NT'applying to one thing'
IMPERATIVE_NT'carry out someone approaching' {unit: 3} {imperative definition: 872} IMPERATIVE_NT'carry out someone approaching' {unit: 3} {imperative definition: 874}
SENTENCE_NT'a coupon is a kind of thing' {unit: 3} {classified} {interpretation of subject: infs'dvd'} SENTENCE_NT'a coupon is a kind of thing' {unit: 3} {classified} {interpretation of subject: infs'dvd'}
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}
COMMON_NOUN_NT'coupon' {indefinite 'a' n/m/f nom/acc s} {refined} {creation: << kind=coupon(x) >>} {refers: infs'coupon'} {eval: TEST_VALUE_NT} {created here} COMMON_NOUN_NT'coupon' {indefinite 'a' n/m/f nom/acc s} {refined} {creation: << kind=coupon(x) >>} {refers: infs'coupon'} {eval: TEST_VALUE_NT} {created here}
KIND_NT'kind of thing' {refined} {refers: infs'thing'} KIND_NT'kind of thing' {refined} {refers: infs'thing'}
COMMON_NOUN_NT'thing' {refined} {refers: infs'thing'} {creation: << kind=thing(x) >>} {eval: TEST_VALUE_NT} COMMON_NOUN_NT'thing' {refined} {refers: infs'thing'} {creation: << kind=thing(x) >>} {eval: TEST_VALUE_NT}
IMPERATIVE_NT'carry out someone resolving a coupon' {unit: 3} {imperative definition: 873} IMPERATIVE_NT'carry out someone resolving a coupon' {unit: 3} {imperative definition: 875}
SENTENCE_NT'the block giving rule is not listed in any rulebook' {unit: 3} {classified} SENTENCE_NT'the block giving rule is not listed in any rulebook' {unit: 3} {classified}
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {rule placement sense: negative} {special meaning: rule-listed-in} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {rule placement sense: negative} {special meaning: rule-listed-in}
UNPARSED_NOUN_NT'the block giving rule' UNPARSED_NOUN_NT'the block giving rule'
UNPARSED_NOUN_NT'in any rulebook' UNPARSED_NOUN_NT'in any rulebook'
IMPERATIVE_NT'check giving something to someone ( this is the block player' {unit: 3} {imperative definition: 874} IMPERATIVE_NT'check giving something to someone ( this is the block player' {unit: 3} {imperative definition: 876}
IMPERATIVE_NT'before someone resolving a coupon when the person asked is n' {unit: 3} {imperative definition: 875} IMPERATIVE_NT'before someone resolving a coupon when the person asked is n' {unit: 3} {imperative definition: 877}
IMPERATIVE_NT'after someone giving a coupon to vanessa' {unit: 3} {imperative definition: 876} IMPERATIVE_NT'after someone giving a coupon to vanessa' {unit: 3} {imperative definition: 878}
SENTENCE_NT'infection color is a kind of value' {unit: 3} {classified} {interpretation of subject: infs'coupon'} SENTENCE_NT'infection color is a kind of value' {unit: 3} {classified} {interpretation of subject: infs'coupon'}
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}
COMMON_NOUN_NT'infection color' {refined} {creation: << kind=infection color(x) >>} {refers: infs'object'-k} {eval: TEST_VALUE_NT} {created here} COMMON_NOUN_NT'infection color' {refined} {creation: << kind=infection color(x) >>} {refers: infs'object'-k} {eval: TEST_VALUE_NT} {created here}
@ -257,7 +257,7 @@ ROOT_NT
AND_NT',' {refined} AND_NT',' {refined}
PROPER_NOUN_NT'saffron silk' {refined} {refers: infs'saffron silk'} {eval: CONSTANT_NT'saffron silk' {kind: infection color} {instance: I81'saffron silk'[infection color]} {enumeration: 25}} {created here} PROPER_NOUN_NT'saffron silk' {refined} {refers: infs'saffron silk'} {eval: CONSTANT_NT'saffron silk' {kind: infection color} {instance: I81'saffron silk'[infection color]} {enumeration: 25}} {created here}
PROPER_NOUN_NT'cookie dough cream' {refined} {refers: infs'cookie dough cream'} {eval: CONSTANT_NT'cookie dough cream' {kind: infection color} {instance: I82'cookie dough cream'[infection color]} {enumeration: 26}} {created here} PROPER_NOUN_NT'cookie dough cream' {refined} {refers: infs'cookie dough cream'} {eval: CONSTANT_NT'cookie dough cream' {kind: infection color} {instance: I82'cookie dough cream'[infection color]} {enumeration: 26}} {created here}
IMPERATIVE_NT'to say list of flavors' {unit: 3} {imperative definition: 877} IMPERATIVE_NT'to say list of flavors' {unit: 3} {imperative definition: 879}
SENTENCE_NT'understand "ask vanessa for [flavored ice cream]" as buying ' {unit: 3} {classified} SENTENCE_NT'understand "ask vanessa for [flavored ice cream]" as buying ' {unit: 3} {classified}
VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as} VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as}
UNPARSED_NOUN_NT'"ask vanessa for [flavored ice cream]"' UNPARSED_NOUN_NT'"ask vanessa for [flavored ice cream]"'
@ -270,8 +270,8 @@ ROOT_NT
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action}
UNPARSED_NOUN_NT'buying the flavor' UNPARSED_NOUN_NT'buying the flavor'
UNPARSED_NOUN_NT'applying to one infection color' UNPARSED_NOUN_NT'applying to one infection color'
IMPERATIVE_NT'check buying the flavor' {unit: 3} {imperative definition: 878} IMPERATIVE_NT'check buying the flavor' {unit: 3} {imperative definition: 880}
IMPERATIVE_NT'carry out buying the flavor' {unit: 3} {imperative definition: 879} IMPERATIVE_NT'carry out buying the flavor' {unit: 3} {imperative definition: 881}
SENTENCE_NT'understand "ice cream" or "cream" or "ice" or "sherbet" or "' {unit: 3} {classified} SENTENCE_NT'understand "ice cream" or "cream" or "ice" or "sherbet" or "' {unit: 3} {classified}
VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as} VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as}
UNPARSED_NOUN_NT'"ice cream" or "cream" or "ice" or "sherbet" or "sorbet"' UNPARSED_NOUN_NT'"ice cream" or "cream" or "ice" or "sherbet" or "sorbet"'
@ -305,12 +305,12 @@ ROOT_NT
VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as} VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as}
UNPARSED_NOUN_NT'the infection color property' UNPARSED_NOUN_NT'the infection color property'
UNPARSED_NOUN_NT'referring to an ice cream cone' UNPARSED_NOUN_NT'referring to an ice cream cone'
IMPERATIVE_NT'carry out someone resolving an ice cream cone' {unit: 3} {imperative definition: 880} IMPERATIVE_NT'carry out someone resolving an ice cream cone' {unit: 3} {imperative definition: 882}
IMPERATIVE_NT'instead of someone eating a fresh ice cream cone' {unit: 3} {imperative definition: 881} IMPERATIVE_NT'instead of someone eating a fresh ice cream cone' {unit: 3} {imperative definition: 883}
IMPERATIVE_NT'report someone eating an ice cream cone' {unit: 3} {imperative definition: 882} IMPERATIVE_NT'report someone eating an ice cream cone' {unit: 3} {imperative definition: 884}
IMPERATIVE_NT'before printing the name of an ice cream cone' {unit: 3} {imperative definition: 883} IMPERATIVE_NT'before printing the name of an ice cream cone' {unit: 3} {imperative definition: 885}
HEADING_NT'section 2 - infection rules' {heading 5} {under: H5'section 2 - infection rules'} {unit: 3} HEADING_NT'section 2 - infection rules' {heading 5} {under: H5'section 2 - infection rules'} {unit: 3}
IMPERATIVE_NT'this is the infection rule' {unit: 3} {imperative definition: 884} IMPERATIVE_NT'this is the infection rule' {unit: 3} {imperative definition: 886}
SENTENCE_NT'a person can be infected or clean' {unit: 3} {classified} SENTENCE_NT'a person can be infected or clean' {unit: 3} {classified}
VERB_NT'can be' {verb 'be able to be' s/p 3p act IS_TENSE +ve} {special meaning: can-be} VERB_NT'can be' {verb 'be able to be' s/p 3p act IS_TENSE +ve} {special meaning: can-be}
COMMON_NOUN_NT'a person' {refined} {refers: infs'person'} {creation: << kind=person(x) >>} {eval: TEST_VALUE_NT} COMMON_NOUN_NT'a person' {refined} {refers: infs'person'} {creation: << kind=person(x) >>} {eval: TEST_VALUE_NT}
@ -323,11 +323,11 @@ ROOT_NT
COMMON_NOUN_NT'person' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'person'} {creation: << kind=person(x) >>} {eval: TEST_VALUE_NT} COMMON_NOUN_NT'person' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'person'} {creation: << kind=person(x) >>} {eval: TEST_VALUE_NT}
ALLOWED_NT'has' {refined} ALLOWED_NT'has' {refined}
UNPARSED_NOUN_NT'infection color' {indefinite 'an' n/m/f nom/acc s} {refined} UNPARSED_NOUN_NT'infection color' {indefinite 'an' n/m/f nom/acc s} {refined}
IMPERATIVE_NT'every turn' {unit: 3} {imperative definition: 885} IMPERATIVE_NT'every turn' {unit: 3} {imperative definition: 887}
IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 886} IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 888}
IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 887} IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 889}
IMPERATIVE_NT'when play begins' {unit: 3} {imperative definition: 888} IMPERATIVE_NT'when play begins' {unit: 3} {imperative definition: 890}
IMPERATIVE_NT'every turn' {unit: 3} {imperative definition: 889} IMPERATIVE_NT'every turn' {unit: 3} {imperative definition: 891}
SENTENCE_NT'understand "sneeze on [something]" as sneezing on' {unit: 3} {classified} SENTENCE_NT'understand "sneeze on [something]" as sneezing on' {unit: 3} {classified}
VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as} VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as}
UNPARSED_NOUN_NT'"sneeze on [something]"' UNPARSED_NOUN_NT'"sneeze on [something]"'
@ -336,11 +336,11 @@ ROOT_NT
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action}
UNPARSED_NOUN_NT'sneezing on' UNPARSED_NOUN_NT'sneezing on'
UNPARSED_NOUN_NT'applying to one thing' UNPARSED_NOUN_NT'applying to one thing'
IMPERATIVE_NT'check sneezing on' {unit: 3} {imperative definition: 890} IMPERATIVE_NT'check sneezing on' {unit: 3} {imperative definition: 892}
IMPERATIVE_NT'carry out sneezing on' {unit: 3} {imperative definition: 891} IMPERATIVE_NT'carry out sneezing on' {unit: 3} {imperative definition: 893}
IMPERATIVE_NT'carry out someone sneezing on' {unit: 3} {imperative definition: 892} IMPERATIVE_NT'carry out someone sneezing on' {unit: 3} {imperative definition: 894}
IMPERATIVE_NT'report sneezing on' {unit: 3} {imperative definition: 893} IMPERATIVE_NT'report sneezing on' {unit: 3} {imperative definition: 895}
IMPERATIVE_NT'report someone sneezing on' {unit: 3} {imperative definition: 894} IMPERATIVE_NT'report someone sneezing on' {unit: 3} {imperative definition: 896}
SENTENCE_NT'understand "inject [someone] with [something]" as injecting ' {unit: 3} {classified} SENTENCE_NT'understand "inject [someone] with [something]" as injecting ' {unit: 3} {classified}
VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as} VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as}
UNPARSED_NOUN_NT'"inject [someone] with [something]"' UNPARSED_NOUN_NT'"inject [someone] with [something]"'
@ -361,10 +361,10 @@ ROOT_NT
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action}
UNPARSED_NOUN_NT'injecting it with' UNPARSED_NOUN_NT'injecting it with'
UNPARSED_NOUN_NT'applying to two things' UNPARSED_NOUN_NT'applying to two things'
IMPERATIVE_NT'check injecting it with' {unit: 3} {imperative definition: 895} IMPERATIVE_NT'check injecting it with' {unit: 3} {imperative definition: 897}
IMPERATIVE_NT'carry out injecting it with' {unit: 3} {imperative definition: 896} IMPERATIVE_NT'carry out injecting it with' {unit: 3} {imperative definition: 898}
IMPERATIVE_NT'after injecting the player with something' {unit: 3} {imperative definition: 897} IMPERATIVE_NT'after injecting the player with something' {unit: 3} {imperative definition: 899}
IMPERATIVE_NT'report injecting it with' {unit: 3} {imperative definition: 898} IMPERATIVE_NT'report injecting it with' {unit: 3} {imperative definition: 900}
HEADING_NT'section 3 - geography' {heading 5} {under: H5'section 3 - geography'} {unit: 3} HEADING_NT'section 3 - geography' {heading 5} {under: H5'section 3 - geography'} {unit: 3}
INCLUSION_NT'include locksmith by emily short' {unit: 3} INCLUSION_NT'include locksmith by emily short' {unit: 3}
HEADING_NT'version 14 of locksmith by emily short begins here' {heading 0} {under: H0'version 14 of locksmith by emily short begins here'} {includes: Locksmith by Emily Short v14 } {unit: 3} HEADING_NT'version 14 of locksmith by emily short begins here' {heading 0} {under: H0'version 14 of locksmith by emily short begins here'} {includes: Locksmith by Emily Short v14 } {unit: 3}
@ -389,9 +389,9 @@ ROOT_NT
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action}
UNPARSED_NOUN_NT'going toward' UNPARSED_NOUN_NT'going toward'
UNPARSED_NOUN_NT'applying to one thing' UNPARSED_NOUN_NT'applying to one thing'
IMPERATIVE_NT'check going toward' {unit: 3} {imperative definition: 936} IMPERATIVE_NT'check going toward' {unit: 3} {imperative definition: 938}
IMPERATIVE_NT'carry out going toward' {unit: 3} {imperative definition: 937} IMPERATIVE_NT'carry out going toward' {unit: 3} {imperative definition: 939}
IMPERATIVE_NT'instead of waiting when the destination of the player is not' {unit: 3} {imperative definition: 938} IMPERATIVE_NT'instead of waiting when the destination of the player is not' {unit: 3} {imperative definition: 940}
SENTENCE_NT'understand "stop" or "cease" as stopping' {unit: 3} {classified} SENTENCE_NT'understand "stop" or "cease" as stopping' {unit: 3} {classified}
VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as} VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as}
UNPARSED_NOUN_NT'"stop" or "cease"' UNPARSED_NOUN_NT'"stop" or "cease"'
@ -400,11 +400,11 @@ ROOT_NT
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action}
UNPARSED_NOUN_NT'stopping' UNPARSED_NOUN_NT'stopping'
UNPARSED_NOUN_NT'applying to nothing' UNPARSED_NOUN_NT'applying to nothing'
IMPERATIVE_NT'carry out stopping' {unit: 3} {imperative definition: 939} IMPERATIVE_NT'carry out stopping' {unit: 3} {imperative definition: 941}
IMPERATIVE_NT'report stopping' {unit: 3} {imperative definition: 940} IMPERATIVE_NT'report stopping' {unit: 3} {imperative definition: 942}
IMPERATIVE_NT'after going to an air-conditioned room' {unit: 3} {imperative definition: 941} IMPERATIVE_NT'after going to an air-conditioned room' {unit: 3} {imperative definition: 943}
IMPERATIVE_NT'after going from an air-conditioned room' {unit: 3} {imperative definition: 942} IMPERATIVE_NT'after going from an air-conditioned room' {unit: 3} {imperative definition: 944}
IMPERATIVE_NT'instead of listening to an air-conditioned room' {unit: 3} {imperative definition: 943} IMPERATIVE_NT'instead of listening to an air-conditioned room' {unit: 3} {imperative definition: 945}
SENTENCE_NT'the alfred cralle pool hall is a room' {unit: 3} {classified} {interpretation of subject: infs'person'} SENTENCE_NT'the alfred cralle pool hall is a room' {unit: 3} {classified} {interpretation of subject: infs'person'}
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}
PROPER_NOUN_NT'alfred cralle pool hall' {definite 'the' n/m/f s/p nom/acc} {refined} {refers: infs'alfred cralle pool hall'} {eval: CONSTANT_NT'alfred cralle pool hall' {kind: object} {instance: I83'alfred cralle pool hall'} {enumeration: 0}} {created here} PROPER_NOUN_NT'alfred cralle pool hall' {definite 'the' n/m/f s/p nom/acc} {refined} {refers: infs'alfred cralle pool hall'} {eval: CONSTANT_NT'alfred cralle pool hall' {kind: object} {instance: I83'alfred cralle pool hall'} {enumeration: 0}} {created here}
@ -446,7 +446,7 @@ ROOT_NT
PROPER_NOUN_NT'felt door' {definite 'the' n/m/f s/p nom/acc} {refined} {refers: infs'felt door'} {eval: CONSTANT_NT'felt door' {kind: door} {instance: I85'felt door'} {enumeration: 0}} PROPER_NOUN_NT'felt door' {definite 'the' n/m/f s/p nom/acc} {refined} {refers: infs'felt door'} {eval: CONSTANT_NT'felt door' {kind: door} {instance: I85'felt door'} {enumeration: 0}}
PROPER_NOUN_NT'description' {refined} {eval: CONSTANT_NT {kind: texts valued property} {property: 'description'=text}} PROPER_NOUN_NT'description' {refined} {eval: CONSTANT_NT {kind: texts valued property} {property: 'description'=text}}
PROPER_NOUN_NT'"It has a prominent lock, designed for an old-fashioned key.' {refined} {eval: CONSTANT_NT'"It has a prominent lock, designed for an old-fashioned key.' {kind: text}} PROPER_NOUN_NT'"It has a prominent lock, designed for an old-fashioned key.' {refined} {eval: CONSTANT_NT'"It has a prominent lock, designed for an old-fashioned key.' {kind: text}}
IMPERATIVE_NT'after locking a door with something in the presence of an ot' {unit: 3} {imperative definition: 944} IMPERATIVE_NT'after locking a door with something in the presence of an ot' {unit: 3} {imperative definition: 946}
SENTENCE_NT'nancy johnson memorial square is west of the felt door' {unit: 3} {classified} {interpretation of subject: infs'key to the city'} SENTENCE_NT'nancy johnson memorial square is west of the felt door' {unit: 3} {classified} {interpretation of subject: infs'key to the city'}
VERB_NT'is west of' {verb 'be' 3p s act IS_TENSE +ve} {prep1: west of} VERB_NT'is west of' {verb 'be' 3p s act IS_TENSE +ve} {prep1: west of}
PROPER_NOUN_NT'nancy johnson memorial square' {refined} {refers: infs'nancy johnson memorial square'} {eval: CONSTANT_NT'nancy johnson memorial square' {kind: object} {instance: I87'nancy johnson memorial square'} {enumeration: 0}} {created here} PROPER_NOUN_NT'nancy johnson memorial square' {refined} {refers: infs'nancy johnson memorial square'} {eval: CONSTANT_NT'nancy johnson memorial square' {kind: object} {instance: I87'nancy johnson memorial square'} {enumeration: 0}} {created here}
@ -508,8 +508,8 @@ ROOT_NT
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}
PROPER_NOUN_NT'slot' {definite 'the' n/m/f s/p nom/acc} {refined} {refers: infs'slot'} {eval: CONSTANT_NT'slot' {kind: object} {instance: I92'slot'} {enumeration: 0}} PROPER_NOUN_NT'slot' {definite 'the' n/m/f s/p nom/acc} {refined} {refers: infs'slot'} {eval: CONSTANT_NT'slot' {kind: object} {instance: I92'slot'} {enumeration: 0}}
COMMON_NOUN_NT'container' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'container'} {creation: << kind=container(x) >>} {eval: TEST_VALUE_NT} COMMON_NOUN_NT'container' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'container'} {creation: << kind=container(x) >>} {eval: TEST_VALUE_NT}
IMPERATIVE_NT'carry out inserting something into the slot' {unit: 3} {imperative definition: 945} IMPERATIVE_NT'carry out inserting something into the slot' {unit: 3} {imperative definition: 947}
IMPERATIVE_NT'report inserting something into the slot' {unit: 3} {imperative definition: 946} IMPERATIVE_NT'report inserting something into the slot' {unit: 3} {imperative definition: 948}
SENTENCE_NT'hamwi street is northeast of an iron gate' {unit: 3} {classified} {interpretation of subject: infs'slot'} SENTENCE_NT'hamwi street is northeast of an iron gate' {unit: 3} {classified} {interpretation of subject: infs'slot'}
VERB_NT'is northeast of' {verb 'be' 3p s act IS_TENSE +ve} {prep1: northeast of} VERB_NT'is northeast of' {verb 'be' 3p s act IS_TENSE +ve} {prep1: northeast of}
PROPER_NOUN_NT'hamwi street' {refined} {refers: infs'hamwi street'} {eval: CONSTANT_NT'hamwi street' {kind: object} {instance: I93'hamwi street'} {enumeration: 0}} {created here} PROPER_NOUN_NT'hamwi street' {refined} {refers: infs'hamwi street'} {eval: CONSTANT_NT'hamwi street' {kind: object} {instance: I93'hamwi street'} {enumeration: 0}} {created here}
@ -533,7 +533,7 @@ ROOT_NT
AND_NT'and' {refined} AND_NT'and' {refined}
ADJECTIVE_NT'lockable' {refined} {predicate: lockable} {creation: << lockable(x) ^ lockable(x) >>} ADJECTIVE_NT'lockable' {refined} {predicate: lockable} {creation: << lockable(x) ^ lockable(x) >>}
ADJECTIVE_NT'unlocked' {refined} {predicate: unlocked} {creation: << unlocked(x) ^ unlocked(x) >>} ADJECTIVE_NT'unlocked' {refined} {predicate: unlocked} {creation: << unlocked(x) ^ unlocked(x) >>}
IMPERATIVE_NT'before printing the name of the iron gate while not opening ' {unit: 3} {imperative definition: 947} IMPERATIVE_NT'before printing the name of the iron gate while not opening ' {unit: 3} {imperative definition: 949}
SENTENCE_NT'cold comfort ice cream is north of a metal door' {unit: 3} {classified} {interpretation of subject: infs'iron gate'} SENTENCE_NT'cold comfort ice cream is north of a metal door' {unit: 3} {classified} {interpretation of subject: infs'iron gate'}
VERB_NT'is north of' {verb 'be' 3p s act IS_TENSE +ve} {prep1: north of} VERB_NT'is north of' {verb 'be' 3p s act IS_TENSE +ve} {prep1: north of}
PROPER_NOUN_NT'cold comfort ice cream' {refined} {refers: infs'cold comfort ice cream'} {eval: CONSTANT_NT'cold comfort ice cream' {kind: object} {instance: I95'cold comfort ice cream'} {enumeration: 0}} {created here} PROPER_NOUN_NT'cold comfort ice cream' {refined} {refers: infs'cold comfort ice cream'} {eval: CONSTANT_NT'cold comfort ice cream' {kind: object} {instance: I95'cold comfort ice cream'} {enumeration: 0}} {created here}
@ -639,8 +639,8 @@ ROOT_NT
VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as} VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as}
UNPARSED_NOUN_NT'"glass"' UNPARSED_NOUN_NT'"glass"'
UNPARSED_NOUN_NT'the box' UNPARSED_NOUN_NT'the box'
IMPERATIVE_NT'instead of attacking the closed emergency box' {unit: 3} {imperative definition: 948} IMPERATIVE_NT'instead of attacking the closed emergency box' {unit: 3} {imperative definition: 950}
IMPERATIVE_NT'instead of attacking the open emergency box' {unit: 3} {imperative definition: 949} IMPERATIVE_NT'instead of attacking the open emergency box' {unit: 3} {imperative definition: 951}
SENTENCE_NT'the syringe is in the emergency box' {unit: 3} {classified} {interpretation of subject: infs'emergency box'} SENTENCE_NT'the syringe is in the emergency box' {unit: 3} {classified} {interpretation of subject: infs'emergency box'}
VERB_NT'is in' {verb 'be' 3p s act IS_TENSE +ve} {prep1: in} VERB_NT'is in' {verb 'be' 3p s act IS_TENSE +ve} {prep1: in}
PROPER_NOUN_NT'syringe' {definite 'the' n/m/f s/p nom/acc} {refined} {refers: infs'syringe'} {eval: CONSTANT_NT'syringe' {kind: object} {instance: I104'syringe'} {enumeration: 0}} {created here} PROPER_NOUN_NT'syringe' {definite 'the' n/m/f s/p nom/acc} {refined} {refers: infs'syringe'} {eval: CONSTANT_NT'syringe' {kind: object} {instance: I104'syringe'} {enumeration: 0}} {created here}
@ -743,8 +743,8 @@ ROOT_NT
SENTENCE_NT'use full-length room descriptions' {unit: 3} {classified} SENTENCE_NT'use full-length room descriptions' {unit: 3} {classified}
VERB_NT'use' {verb 'use' 3p p act IS_TENSE +ve} {special meaning: use} VERB_NT'use' {verb 'use' 3p p act IS_TENSE +ve} {special meaning: use}
UNPARSED_NOUN_NT'full-length room descriptions' UNPARSED_NOUN_NT'full-length room descriptions'
IMPERATIVE_NT'after looking in an outdoors room' {unit: 3} {imperative definition: 950} IMPERATIVE_NT'after looking in an outdoors room' {unit: 3} {imperative definition: 952}
IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 951} IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 953}
DEFN_CONT_NT'a door is proximate' {unit: 3} DEFN_CONT_NT'a door is proximate' {unit: 3}
CODE_BLOCK_NT CODE_BLOCK_NT
CODE_BLOCK_NT {control structure: IF} CODE_BLOCK_NT {control structure: IF}
@ -765,7 +765,7 @@ ROOT_NT
INVOCATION_NT'yes' {phrase invoked: <no-inter-name>} INVOCATION_NT'yes' {phrase invoked: <no-inter-name>}
INVOCATION_LIST_NT'no' {unit: 3} INVOCATION_LIST_NT'no' {unit: 3}
INVOCATION_NT'no' {phrase invoked: <no-inter-name>} INVOCATION_NT'no' {phrase invoked: <no-inter-name>}
IMPERATIVE_NT'before exiting when the player is in an indoors room' {unit: 3} {imperative definition: 952} IMPERATIVE_NT'before exiting when the player is in an indoors room' {unit: 3} {imperative definition: 954}
SENTENCE_NT'blank is a room' {unit: 3} {classified} {interpretation of subject: infs'key to the city'} SENTENCE_NT'blank is a room' {unit: 3} {classified} {interpretation of subject: infs'key to the city'}
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}
PROPER_NOUN_NT'blank' {refined} {refers: infs'blank'} {eval: CONSTANT_NT'blank' {kind: object} {instance: I108'blank'} {enumeration: 0}} {created here} PROPER_NOUN_NT'blank' {refined} {refers: infs'blank'} {eval: CONSTANT_NT'blank' {kind: object} {instance: I108'blank'} {enumeration: 0}} {created here}
@ -991,15 +991,15 @@ ROOT_NT
PROPER_NOUN_NT'ned' {refined} {refers: infs'ned'} {eval: CONSTANT_NT'ned' {kind: man} {instance: I161'ned'} {enumeration: 0}} PROPER_NOUN_NT'ned' {refined} {refers: infs'ned'} {eval: CONSTANT_NT'ned' {kind: man} {instance: I161'ned'} {enumeration: 0}}
RELATIONSHIP_NT'owns' {meaning: ownership-r} {refined} RELATIONSHIP_NT'owns' {meaning: ownership-r} {refined}
PROPER_NOUN_NT'movie rental' {definite 'the' n/m/f s/p nom/acc} {refined} {refers: infs'movie rental store'} {eval: CONSTANT_NT'movie rental store' {kind: object} {instance: I99'movie rental store'} {enumeration: 0}} PROPER_NOUN_NT'movie rental' {definite 'the' n/m/f s/p nom/acc} {refined} {refers: infs'movie rental store'} {eval: CONSTANT_NT'movie rental store' {kind: object} {instance: I99'movie rental store'} {enumeration: 0}}
IMPERATIVE_NT'after printing the name of someone ( called target ) while l' {unit: 3} {imperative definition: 953} IMPERATIVE_NT'after printing the name of someone ( called target ) while l' {unit: 3} {imperative definition: 955}
SENTENCE_NT'the description of a person is usually "[The noun] [if the n' {unit: 3} {classified} {interpretation of subject: infs'ned'} SENTENCE_NT'the description of a person is usually "[The noun] [if the n' {unit: 3} {classified} {interpretation of subject: infs'ned'}
VERB_NT'is usually' {certainty:likely} {verb 'be' 3p s act IS_TENSE +ve} VERB_NT'is usually' {certainty:likely} {verb 'be' 3p s act IS_TENSE +ve}
X_OF_Y_NT'description of a person' {definite 'the' n/m/f s/p nom/acc} {refined} X_OF_Y_NT'description of a person' {definite 'the' n/m/f s/p nom/acc} {refined}
COMMON_NOUN_NT'person' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'person'} {creation: << kind=person(x) >>} {eval: TEST_VALUE_NT} COMMON_NOUN_NT'person' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'person'} {creation: << kind=person(x) >>} {eval: TEST_VALUE_NT}
PROPER_NOUN_NT'description' {refined} {eval: CONSTANT_NT {kind: texts valued property} {property: 'description'=text}} PROPER_NOUN_NT'description' {refined} {eval: CONSTANT_NT {kind: texts valued property} {property: 'description'=text}}
PROPER_NOUN_NT'"[The noun] [if the noun is clean]looks healthy[otherwise]is' {refined} {eval: CONSTANT_NT'"[The noun] [if the noun is clean]looks healthy[otherwise]is' {kind: text}} PROPER_NOUN_NT'"[The noun] [if the noun is clean]looks healthy[otherwise]is' {refined} {eval: CONSTANT_NT'"[The noun] [if the noun is clean]looks healthy[otherwise]is' {kind: text}}
IMPERATIVE_NT'after examining another person who is carrying something' {unit: 3} {imperative definition: 954} IMPERATIVE_NT'after examining another person who is carrying something' {unit: 3} {imperative definition: 956}
IMPERATIVE_NT'when play begins' {unit: 3} {imperative definition: 955} IMPERATIVE_NT'when play begins' {unit: 3} {imperative definition: 957}
HEADING_NT'section 5 - conversation' {heading 5} {under: H5'section 5 - conversation'} {unit: 3} HEADING_NT'section 5 - conversation' {heading 5} {under: H5'section 5 - conversation'} {unit: 3}
SENTENCE_NT'a person has a table name called conversation' {unit: 3} {classified} SENTENCE_NT'a person has a table name called conversation' {unit: 3} {classified}
VERB_NT'has' {verb 'have' 3p s act IS_TENSE +ve} VERB_NT'has' {verb 'have' 3p s act IS_TENSE +ve}
@ -1008,8 +1008,8 @@ ROOT_NT
PROPERTYCALLED_NT'called' PROPERTYCALLED_NT'called'
UNPARSED_NOUN_NT'table name' {indefinite 'a' n/m/f nom/acc s} UNPARSED_NOUN_NT'table name' {indefinite 'a' n/m/f nom/acc s}
UNPARSED_NOUN_NT'conversation' UNPARSED_NOUN_NT'conversation'
IMPERATIVE_NT'instead of asking someone about something' {unit: 3} {imperative definition: 956} IMPERATIVE_NT'instead of asking someone about something' {unit: 3} {imperative definition: 958}
IMPERATIVE_NT'instead of telling someone about something' {unit: 3} {imperative definition: 957} IMPERATIVE_NT'instead of telling someone about something' {unit: 3} {imperative definition: 959}
SENTENCE_NT'understand "recap" or "recall" or "review" as recalling conv' {unit: 3} {classified} SENTENCE_NT'understand "recap" or "recall" or "review" as recalling conv' {unit: 3} {classified}
VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as} VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as}
UNPARSED_NOUN_NT'"recap" or "recall" or "review"' UNPARSED_NOUN_NT'"recap" or "recall" or "review"'
@ -1018,7 +1018,7 @@ ROOT_NT
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action}
UNPARSED_NOUN_NT'recalling conversations' UNPARSED_NOUN_NT'recalling conversations'
UNPARSED_NOUN_NT'applying to nothing' UNPARSED_NOUN_NT'applying to nothing'
IMPERATIVE_NT'carry out recalling conversations' {unit: 3} {imperative definition: 958} IMPERATIVE_NT'carry out recalling conversations' {unit: 3} {imperative definition: 960}
SENTENCE_NT'the conversation of a person is usually table of general chi' {unit: 3} {classified} {interpretation of subject: infs'person'} SENTENCE_NT'the conversation of a person is usually table of general chi' {unit: 3} {classified} {interpretation of subject: infs'person'}
VERB_NT'is usually' {certainty:likely} {verb 'be' 3p s act IS_TENSE +ve} VERB_NT'is usually' {certainty:likely} {verb 'be' 3p s act IS_TENSE +ve}
X_OF_Y_NT'conversation of a person' {definite 'the' n/m/f s/p nom/acc} {refined} X_OF_Y_NT'conversation of a person' {definite 'the' n/m/f s/p nom/acc} {refined}
@ -1033,7 +1033,7 @@ ROOT_NT
PROPER_NOUN_NT'conversation' {refined} {eval: CONSTANT_NT {kind: table names valued property} {property: 'conversation'=table name}} PROPER_NOUN_NT'conversation' {refined} {eval: CONSTANT_NT {kind: table names valued property} {property: 'conversation'=table name}}
PROPER_NOUN_NT'table of vanessa chatter' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: CONSTANT_NT'table of vanessa chatter' {kind: table name} {table: table_data} {meaning: {table of vanessa chatter = TABLE_MC}}} PROPER_NOUN_NT'table of vanessa chatter' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: CONSTANT_NT'table of vanessa chatter' {kind: table name} {table: table_data} {meaning: {table of vanessa chatter = TABLE_MC}}}
TABLE_NT'table of vanessa chatter topic reply summary turn stamp char' {unit: 3} TABLE_NT'table of vanessa chatter topic reply summary turn stamp char' {unit: 3}
IMPERATIVE_NT'after reading a command' {unit: 3} {imperative definition: 959} IMPERATIVE_NT'after reading a command' {unit: 3} {imperative definition: 961}
HEADING_NT'section 6 - movement description' {heading 5} {under: H5'section 6 - movement description'} {unit: 3} HEADING_NT'section 6 - movement description' {heading 5} {under: H5'section 6 - movement description'} {unit: 3}
SENTENCE_NT'a person has some text called walk style' {unit: 3} {classified} SENTENCE_NT'a person has some text called walk style' {unit: 3} {classified}
VERB_NT'has' {verb 'have' 3p s act IS_TENSE +ve} VERB_NT'has' {verb 'have' 3p s act IS_TENSE +ve}
@ -1080,8 +1080,8 @@ ROOT_NT
PROPER_NOUN_NT'"sashay"' {refined} {eval: CONSTANT_NT'"sashay"' {kind: text}} PROPER_NOUN_NT'"sashay"' {refined} {eval: CONSTANT_NT'"sashay"' {kind: text}}
TABLE_NT'table of visible exits character second third heading chosen' {unit: 3} TABLE_NT'table of visible exits character second third heading chosen' {unit: 3}
TABLE_NT'table of visible entrances character second third heading ch' {unit: 3} TABLE_NT'table of visible entrances character second third heading ch' {unit: 3}
IMPERATIVE_NT'to clear ( current table - a table name )' {unit: 3} {imperative definition: 960} IMPERATIVE_NT'to clear ( current table - a table name )' {unit: 3} {imperative definition: 962}
IMPERATIVE_NT'to tidy departures of ( current table - a table name )' {unit: 3} {imperative definition: 961} IMPERATIVE_NT'to tidy departures of ( current table - a table name )' {unit: 3} {imperative definition: 963}
SENTENCE_NT'a door has a person called last opener' {unit: 3} {classified} {interpretation of subject: infs'person'} SENTENCE_NT'a door has a person called last opener' {unit: 3} {classified} {interpretation of subject: infs'person'}
VERB_NT'has' {verb 'have' 3p s act IS_TENSE +ve} VERB_NT'has' {verb 'have' 3p s act IS_TENSE +ve}
COMMON_NOUN_NT'door' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'door'} {creation: << kind=door(x) >>} {eval: TEST_VALUE_NT} COMMON_NOUN_NT'door' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'door'} {creation: << kind=door(x) >>} {eval: TEST_VALUE_NT}
@ -1089,21 +1089,21 @@ ROOT_NT
PROPERTYCALLED_NT'called' PROPERTYCALLED_NT'called'
UNPARSED_NOUN_NT'person' {indefinite 'a' n/m/f nom/acc s} UNPARSED_NOUN_NT'person' {indefinite 'a' n/m/f nom/acc s}
UNPARSED_NOUN_NT'last opener' UNPARSED_NOUN_NT'last opener'
IMPERATIVE_NT'report someone opening a door' {unit: 3} {imperative definition: 962} IMPERATIVE_NT'report someone opening a door' {unit: 3} {imperative definition: 964}
IMPERATIVE_NT'report someone going through a door ( called route )' {unit: 3} {imperative definition: 963} IMPERATIVE_NT'report someone going through a door ( called route )' {unit: 3} {imperative definition: 965}
SENTENCE_NT'the last thing named is a thing that varies' {unit: 3} {classified} {interpretation of subject: infs'door'} SENTENCE_NT'the last thing named is a thing that varies' {unit: 3} {classified} {interpretation of subject: infs'door'}
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}
PROPER_NOUN_NT'last thing named' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: NONLOCAL_VARIABLE_NT'last thing named' {nonlocal: 'last thing named'(var)thing}} {created here} PROPER_NOUN_NT'last thing named' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: NONLOCAL_VARIABLE_NT'last thing named' {nonlocal: 'last thing named'(var)thing}} {created here}
COMMON_NOUN_NT'thing that varies' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'values variable-pointer'-k} {creation: << kind=things variable-pointer(x) >>} {eval: TEST_VALUE_NT} COMMON_NOUN_NT'thing that varies' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'values variable-pointer'-k} {creation: << kind=things variable-pointer(x) >>} {eval: TEST_VALUE_NT}
IMPERATIVE_NT'before printing the name of something ( called target ) whic' {unit: 3} {imperative definition: 964} IMPERATIVE_NT'before printing the name of something ( called target ) whic' {unit: 3} {imperative definition: 966}
IMPERATIVE_NT'report someone going a direction' {unit: 3} {imperative definition: 965} IMPERATIVE_NT'report someone going a direction' {unit: 3} {imperative definition: 967}
IMPERATIVE_NT'this is the movement reporting rule' {unit: 3} {imperative definition: 966} IMPERATIVE_NT'this is the movement reporting rule' {unit: 3} {imperative definition: 968}
IMPERATIVE_NT'to generate descriptions from ( current table - a table name' {unit: 3} {imperative definition: 967} IMPERATIVE_NT'to generate descriptions from ( current table - a table name' {unit: 3} {imperative definition: 969}
SENTENCE_NT'the last person named is a person that varies' {unit: 3} {classified} {interpretation of subject: infs'door'} SENTENCE_NT'the last person named is a person that varies' {unit: 3} {classified} {interpretation of subject: infs'door'}
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}
PROPER_NOUN_NT'last person named' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: NONLOCAL_VARIABLE_NT'last person named' {nonlocal: 'last person named'(var)person}} {created here} PROPER_NOUN_NT'last person named' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: NONLOCAL_VARIABLE_NT'last person named' {nonlocal: 'last person named'(var)person}} {created here}
COMMON_NOUN_NT'person that varies' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'values variable-pointer'-k} {creation: << kind=people variable-pointer(x) >>} {eval: TEST_VALUE_NT} COMMON_NOUN_NT'person that varies' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'values variable-pointer'-k} {creation: << kind=people variable-pointer(x) >>} {eval: TEST_VALUE_NT}
IMPERATIVE_NT'before printing the name of a person ( called target )' {unit: 3} {imperative definition: 968} IMPERATIVE_NT'before printing the name of a person ( called target )' {unit: 3} {imperative definition: 970}
SENTENCE_NT'group size is a number that varies' {unit: 3} {classified} {interpretation of subject: infs'door'} SENTENCE_NT'group size is a number that varies' {unit: 3} {classified} {interpretation of subject: infs'door'}
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}
PROPER_NOUN_NT'group size' {refined} {eval: NONLOCAL_VARIABLE_NT'group size' {nonlocal: 'group size'(var)number}} {created here} PROPER_NOUN_NT'group size' {refined} {eval: NONLOCAL_VARIABLE_NT'group size' {nonlocal: 'group size'(var)number}} {created here}
@ -1112,19 +1112,19 @@ ROOT_NT
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}
PROPER_NOUN_NT'group size' {refined} {eval: NONLOCAL_VARIABLE_NT'group size' {nonlocal: 'group size'(var)number} {meaning: {group size = VARIABLE_MC}}} PROPER_NOUN_NT'group size' {refined} {eval: NONLOCAL_VARIABLE_NT'group size' {nonlocal: 'group size'(var)number} {meaning: {group size = VARIABLE_MC}}}
PROPER_NOUN_NT'1' {refined} {eval: CONSTANT_NT'1' {kind: number} {explicit literal} {number: 1}} PROPER_NOUN_NT'1' {refined} {eval: CONSTANT_NT'1' {kind: number} {explicit literal} {number: 1}}
IMPERATIVE_NT'to clear marked people' {unit: 3} {imperative definition: 969} IMPERATIVE_NT'to clear marked people' {unit: 3} {imperative definition: 971}
IMPERATIVE_NT'before listing nondescript items' {unit: 3} {imperative definition: 970} IMPERATIVE_NT'before listing nondescript items' {unit: 3} {imperative definition: 972}
IMPERATIVE_NT'to describe patients' {unit: 3} {imperative definition: 971} IMPERATIVE_NT'to describe patients' {unit: 3} {imperative definition: 973}
IMPERATIVE_NT'to say ( named character - a man ) as pronoun' {unit: 3} {imperative definition: 972} IMPERATIVE_NT'to say ( named character - a man ) as pronoun' {unit: 3} {imperative definition: 974}
IMPERATIVE_NT'to say ( named character - a woman ) as pronoun' {unit: 3} {imperative definition: 973} IMPERATIVE_NT'to say ( named character - a woman ) as pronoun' {unit: 3} {imperative definition: 975}
IMPERATIVE_NT'to say looks as though dipped in for ( index - a number )' {unit: 3} {imperative definition: 974} IMPERATIVE_NT'to say looks as though dipped in for ( index - a number )' {unit: 3} {imperative definition: 976}
TABLE_NT'table of dipping phrases dipping "looks as though dipped in"' {unit: 3} TABLE_NT'table of dipping phrases dipping "looks as though dipped in"' {unit: 3}
SENTENCE_NT'a door is usually scenery' {unit: 3} {classified} {interpretation of subject: infs'door'} SENTENCE_NT'a door is usually scenery' {unit: 3} {classified} {interpretation of subject: infs'door'}
VERB_NT'is usually' {certainty:likely} {verb 'be' 3p s act IS_TENSE +ve} VERB_NT'is usually' {certainty:likely} {verb 'be' 3p s act IS_TENSE +ve}
COMMON_NOUN_NT'door' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'door'} {creation: << kind=door(x) >>} {eval: TEST_VALUE_NT} COMMON_NOUN_NT'door' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'door'} {creation: << kind=door(x) >>} {eval: TEST_VALUE_NT}
ADJECTIVE_NT'scenery' {refined} {predicate: scenery} {creation: << scenery(x) ^ scenery(x) >>} ADJECTIVE_NT'scenery' {refined} {predicate: scenery} {creation: << scenery(x) ^ scenery(x) >>}
IMPERATIVE_NT'to make delimiter ( index - a number ) of ( count - a number' {unit: 3} {imperative definition: 975} IMPERATIVE_NT'to make delimiter ( index - a number ) of ( count - a number' {unit: 3} {imperative definition: 977}
IMPERATIVE_NT'to say optional comma' {unit: 3} {imperative definition: 976} IMPERATIVE_NT'to say optional comma' {unit: 3} {imperative definition: 978}
SENTENCE_NT'test me with go to cold comfort / z / z / z / z / ask vaness' {unit: 3} {classified} SENTENCE_NT'test me with go to cold comfort / z / z / z / z / ask vaness' {unit: 3} {classified}
VERB_NT'test' {verb 'test' 3p p act IS_TENSE +ve} {prep2: with} {special meaning: test-with} VERB_NT'test' {verb 'test' 3p p act IS_TENSE +ve} {prep2: with} {special meaning: test-with}
UNPARSED_NOUN_NT'me' UNPARSED_NOUN_NT'me'

View file

@ -1,29 +1,30 @@
100.0% in inform7 run 100.0% in inform7 run
67.4% in compilation to Inter 67.1% in compilation to Inter
45.7% in //Sequence::undertake_queued_tasks// 45.5% in //Sequence::undertake_queued_tasks//
4.2% in //MajorNodes::pre_pass// 4.1% in //MajorNodes::pre_pass//
3.4% in //MajorNodes::pass_1// 3.3% in //MajorNodes::pass_1//
1.9% in //ImperativeDefinitions::assess_all// 1.8% in //ImperativeDefinitions::assess_all//
1.5% in //RTKindConstructors::compile// 1.4% in //RTKindConstructors::compile//
1.5% in //RTPhrasebook::compile_entries// 1.4% in //RTPhrasebook::compile_entries//
1.1% in //Sequence::lint_inter// 1.1% in //Sequence::lint_inter//
0.7% in //ImperativeDefinitions::compile_first_block//
0.7% in //Sequence::undertake_queued_tasks//
0.3% in //CompletionModule::compile// 0.3% in //CompletionModule::compile//
0.3% in //ImperativeDefinitions::compile_first_block//
0.3% in //MajorNodes::pass_2// 0.3% in //MajorNodes::pass_2//
0.3% in //RTKindConstructors::compile_permissions// 0.3% in //RTKindConstructors::compile_permissions//
0.3% in //Sequence::undertake_queued_tasks// 0.3% in //Sequence::undertake_queued_tasks//
0.3% in //Sequence::undertake_queued_tasks//
0.3% in //World::stage_V// 0.3% in //World::stage_V//
5.0% not specifically accounted for 4.8% not specifically accounted for
28.2% in running Inter pipeline 28.7% in running Inter pipeline
9.6% in step 14/15: generate inform6 -> auto.inf 9.7% in step 14/15: generate inform6 -> auto.inf
6.9% in step 5/15: load-binary-kits 7.0% in step 5/15: load-binary-kits
5.8% in step 6/15: make-synoptic-module 5.9% in step 6/15: make-synoptic-module
1.9% in step 9/15: make-identifiers-unique 1.8% in step 9/15: make-identifiers-unique
0.3% in step 11/15: eliminate-redundant-labels
0.3% in step 12/15: eliminate-redundant-operations 0.3% in step 12/15: eliminate-redundant-operations
0.3% in step 4/15: compile-splats 0.3% in step 4/15: compile-splats
0.3% in step 7/15: shorten-wiring 0.3% in step 7/15: shorten-wiring
0.3% in step 8/15: detect-indirect-calls 0.3% in step 8/15: detect-indirect-calls
2.3% not specifically accounted for 2.3% not specifically accounted for
3.4% in supervisor 3.3% in supervisor
0.8% not specifically accounted for 0.8% not specifically accounted for

View file

@ -15,7 +15,7 @@ subdirectory. Here |"Sounds"| is what we will call the department name for
sound effects. sound effects.
This code was introduced as part of the implementation of IE-0001, and for This code was introduced as part of the implementation of IE-0001, and for
the first time throws problem messages is named resources do not exist. the first time throws problem messages if named resources do not exist.
= =
int check_resources_are_present = TRUE; int check_resources_are_present = TRUE;

View file

@ -1,15 +1,15 @@
Size of lexicon: 3162 excerpt meanings Size of lexicon: 3164 excerpt meanings
Stored among 855 words out of total vocabulary of 10626 Stored among 855 words out of total vocabulary of 10631
719 words have a start list: longest belongs to report (with 293 meanings) 719 words have a start list: longest belongs to report (with 293 meanings)
21 words have an end list: longest belongs to digits (with 7 meanings) 21 words have an end list: longest belongs to digits (with 7 meanings)
29 words have a middle list: longest belongs to to (with 4 meanings) 29 words have a middle list: longest belongs to to (with 4 meanings)
108 words have a subset list: longest belongs to street (with 4 meanings) 108 words have a subset list: longest belongs to street (with 4 meanings)
Number of attempts to retrieve: 110520 Number of attempts to retrieve: 110594
of which unsuccessful: 92374 of which unsuccessful: 92446
of which successful: 18146 of which successful: 18148
Total attempts to match against excerpt meanings: 279412 Total attempts to match against excerpt meanings: 279464
of which, total with incorrect hash codes: 256664 of which, total with incorrect hash codes: 256710
of which, total with correct hash codes: 22748 of which, total with correct hash codes: 22754
of which, total which matched: 19917 of which, total which matched: 19919