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

syncing master

This commit is contained in:
Zed Lopez 2023-06-26 08:24:42 -07:00
commit 13fdb2a15f
187 changed files with 4888 additions and 3358 deletions

1
.gitignore vendored
View file

@ -10,6 +10,7 @@ makefile
tags
*.glkdata
resources/App HTML/
resources/Changes/Output/
resources/Changes/Output/META-INF/
resources/Changes/Output/OEBPS/

View file

@ -1,6 +1,6 @@
# Inform 7
[Version](notes/versioning.md): 10.2.0-beta+6W62 'Krypton' (12 June 2023)
[Version](notes/versioning.md): 10.2.0-beta+6W67 'Krypton' (26 June 2023)
## About Inform
@ -136,8 +136,8 @@ The following webs are the source for kits of Inter code shipped with Inform (at
The following webs are the source for the two most important extensions shipped with Inform:
* [Basic Inform by Graham Nelson](inform7/extensions/basic_inform) - __v1__ - [★ Web](https://ganelson.github.io/inform/basic_inform/index.html)
* [Standard Rules by Graham Nelson](inform7/extensions/standard_rules) - __v6__ - [★ Web](https://ganelson.github.io/inform/standard_rules/index.html)
* [Basic Inform by Graham Nelson](inform7/extensions/basic_inform) - __v2__ - [★ Web](https://ganelson.github.io/inform/basic_inform/index.html)
* [Standard Rules by Graham Nelson](inform7/extensions/standard_rules) - __v7__ - [★ Web](https://ganelson.github.io/inform/standard_rules/index.html)
Other extensions shipped with Inform are not presented as webs, but as single files:
@ -146,14 +146,14 @@ Other extensions shipped with Inform are not presented as webs, but as single fi
* [Complex Listing by Emily Short](<inform7/Internal/Extensions/Emily Short/Complex Listing.i7x>) - __v9__
* [Glulx Image Centering by Emily Short](<inform7/Internal/Extensions/Emily Short/Glulx Image Centering.i7x>) - __v4__
* [Glulx Text Effects by Emily Short](<inform7/Internal/Extensions/Emily Short/Glulx Text Effects.i7x>) - __v6__
* [Inanimate Listeners by Emily Short](<inform7/Internal/Extensions/Emily Short/Inanimate Listeners.i7x>) - __v1__
* [Locksmith by Emily Short](<inform7/Internal/Extensions/Emily Short/Locksmith.i7x>) - __v13__
* [Inanimate Listeners by Emily Short](<inform7/Internal/Extensions/Emily Short/Inanimate Listeners.i7x>) - __v2__
* [Locksmith by Emily Short](<inform7/Internal/Extensions/Emily Short/Locksmith.i7x>) - __v14__
* [Menus by Emily Short](<inform7/Internal/Extensions/Emily Short/Menus.i7x>) - __v3__
* [Punctuation Removal by Emily Short](<inform7/Internal/Extensions/Emily Short/Punctuation Removal.i7x>) - __v6__
* [Skeleton Keys by Emily Short](<inform7/Internal/Extensions/Emily Short/Skeleton Keys.i7x>) - __v1__
* [Epistemology by Eric Eve](<inform7/Internal/Extensions/Eric Eve/Epistemology.i7x>) - __v9__
* [Approximate Metric Units by Graham Nelson](<inform7/Internal/Extensions/Graham Nelson/Approximate Metric Units.i7x>) - __v1__
* [English Language by Graham Nelson](<inform7/Internal/Extensions/Graham Nelson/English Language.i7x>) - __v1__
* [English Language by Graham Nelson](<inform7/Internal/Extensions/Graham Nelson/English Language.i7x>) - __v2__
* [Metric Units by Graham Nelson](<inform7/Internal/Extensions/Graham Nelson/Metric Units.i7x>) - __v2__
* [Rideable Vehicles by Graham Nelson](<inform7/Internal/Extensions/Graham Nelson/Rideable Vehicles.i7x>) - __v3__

View file

@ -1,3 +1,3 @@
Prerelease: beta
Build Date: 12 June 2023
Build Number: 6W62
Build Date: 26 June 2023
Build Number: 6W67

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>Rulebooks Template</b></li></ul></div>
<p class="purpose">To work through the rules in a rulebook until a decision is made.</p>
<ul class="toc"><li><a href="S-rlb.html#SP1">&#167;1. Latest Rule Result</a></li><li><a href="S-rlb.html#SP2">&#167;2. Following</a></li><li><a href="S-rlb.html#SP3">&#167;3. Specifying Outcomes</a></li><li><a href="S-rlb.html#SP4">&#167;4. Discovering Outcomes</a></li><li><a href="S-rlb.html#SP5">&#167;5. Printing Rule Names</a></li><li><a href="S-rlb.html#SP6">&#167;6. Casting</a></li><li><a href="S-rlb.html#SP7">&#167;7. Debugging</a></li><li><a href="S-rlb.html#SP8">&#167;8. The Default Rule and Rulebook</a></li></ul><hr class="tocbar">
<ul class="toc"><li><a href="S-rlb.html#SP1">&#167;1. Latest Rule Result</a></li><li><a href="S-rlb.html#SP2">&#167;2. Following</a></li><li><a href="S-rlb.html#SP3">&#167;3. Specifying Outcomes</a></li><li><a href="S-rlb.html#SP4">&#167;4. Discovering Outcomes</a></li><li><a href="S-rlb.html#SP5">&#167;5. Casting</a></li><li><a href="S-rlb.html#SP6">&#167;6. Debugging</a></li><li><a href="S-rlb.html#SP7">&#167;7. The Default Rule and Rulebook</a></li></ul><hr class="tocbar">
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. Latest Rule Result. </b>This used to be a large data structure which kept track of the effect of
procedural rules, but in January 2011 procedurals were abolished. It retains
@ -277,20 +277,13 @@ call it.)
<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><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">DefaultValueOfKOV</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">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="plain-syntax">[ </span><span class="identifier-syntax">RulebookOutcomePrintingRule</span><span class="plain-syntax"> </span><span class="identifier-syntax">nro</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">nro</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"(no outcome)"</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">print</span><span class="plain-syntax"> (</span><span class="reserved-syntax">string</span><span class="plain-syntax">) </span><span class="identifier-syntax">nro</span><span class="plain-syntax">;</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>&#167;5. Printing Rule Names. </b>This is the I6 printing rule used for a value of kind "rule", which as
noted above can either be rulebook ID numbers in the range 0 to \(N-1\) or
are addresses of individual rules.
</p>
<p class="commentary">Names of rules and rulebooks take up a fair amount of space, and one of the
main memory economies enforced by the "Use memory economy" option is to
omit the necessary arrays. (It's not the text which is the problem so
much as the table of addresses pointing to that text, which has to live in
precious readable memory on the Z-machine.)
</p>
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>&#167;6. Casting. </b>Nothing needs to be done to a rulebook value to make it a rule value.
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>&#167;5. Casting. </b>Nothing needs to be done to a rulebook value to make it a rule value.
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -298,7 +291,7 @@ precious readable memory on the Z-machine.)
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">r</span><span class="plain-syntax">;</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>&#167;7. Debugging. </b>Two modest routines to print out the names of rules and rulebooks when they
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>&#167;6. Debugging. </b>Two modest routines to print out the names of rules and rulebooks when they
occur, in so far as memory economy allows this.
</p>
@ -323,7 +316,7 @@ occur, in so far as memory economy allows this.
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">").]^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>&#167;8. The Default Rule and Rulebook. </b></p>
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>&#167;7. The Default Rule and Rulebook. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">[ </span><span class="identifier-syntax">LITTLE_USED_DO_NOTHING_R</span><span class="plain-syntax">; </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">; ];</span>

View file

@ -475,11 +475,7 @@ printed in ZSCII rather than Unicode.
<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">=0: </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">dsize</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">ch</span><span class="plain-syntax"> = </span><span class="identifier-syntax">BlkValueRead</span><span class="plain-syntax">(</span><span class="identifier-syntax">txt</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">if</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">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">TARGET_ZCODE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> (</span><span class="identifier-syntax">char</span><span class="plain-syntax">) </span><span class="identifier-syntax">ch</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifnot</span><span class="plain-syntax">; </span><span class="comment-syntax">TARGET_ZCODE</span>
<span class="plain-syntax"> @</span><span class="identifier-syntax">streamunichar</span><span class="plain-syntax"> </span><span class="identifier-syntax">ch</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</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">i</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><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">rtrue</span><span class="plain-syntax">;</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>Utilities Template</b></li></ul></div>
<p class="purpose">Miscellaneous utility routines for some fundamental I6 needs.</p>
<ul class="toc"><li><a href="S-utl.html#SP1">&#167;1. Miscellany</a></li><li><a href="S-utl.html#SP2">&#167;2. Final Code Dependencies</a></li><li><a href="S-utl.html#SP3">&#167;3. Firebreak</a></li><li><a href="S-utl.html#SP4">&#167;4. Print Decimal Number</a></li><li><a href="S-utl.html#SP5">&#167;5. Print Text</a></li><li><a href="S-utl.html#SP6">&#167;6. Print Or Run</a></li><li><a href="S-utl.html#SP7">&#167;7. Saying Phrases</a></li><li><a href="S-utl.html#SP8">&#167;8. Kinds</a></li><li><a href="S-utl.html#SP9">&#167;9. GenerateRandomNumber</a></li><li><a href="S-utl.html#SP10">&#167;10. PrintSpaces</a></li><li><a href="S-utl.html#SP11">&#167;11. SwapWorkflags</a></li><li><a href="S-utl.html#SP12">&#167;12. TestUseOption</a></li><li><a href="S-utl.html#SP13">&#167;13. ZRegion</a></li><li><a href="S-utl.html#SP14">&#167;14. Arrcpy</a></li><li><a href="S-utl.html#SP15">&#167;15. Verbs as Values</a></li><li><a href="S-utl.html#SP16">&#167;16. Seed Random Number Generator Rule</a></li><li><a href="S-utl.html#SP17">&#167;17. Regarding</a></li><li><a href="S-utl.html#SP18">&#167;18. Say One Of</a></li><li><a href="S-utl.html#SP19">&#167;19. Rounding</a></li><li><a href="S-utl.html#SP20">&#167;20. Doing nothing</a></li></ul><hr class="tocbar">
<ul class="toc"><li><a href="S-utl.html#SP1">&#167;1. Miscellany</a></li><li><a href="S-utl.html#SP2">&#167;2. Final Code Dependencies</a></li><li><a href="S-utl.html#SP3">&#167;3. Firebreak</a></li><li><a href="S-utl.html#SP4">&#167;4. Print Decimal Number</a></li><li><a href="S-utl.html#SP5">&#167;5. Print Text</a></li><li><a href="S-utl.html#SP6">&#167;6. Print Or Run</a></li><li><a href="S-utl.html#SP7">&#167;7. Saying Phrases</a></li><li><a href="S-utl.html#SP8">&#167;8. Kinds</a></li><li><a href="S-utl.html#SP9">&#167;9. Non-standard enumerations</a></li><li><a href="S-utl.html#SP10">&#167;10. GenerateRandomNumber</a></li><li><a href="S-utl.html#SP11">&#167;11. PrintSpaces</a></li><li><a href="S-utl.html#SP12">&#167;12. SwapWorkflags</a></li><li><a href="S-utl.html#SP13">&#167;13. TestUseOption</a></li><li><a href="S-utl.html#SP14">&#167;14. ZRegion</a></li><li><a href="S-utl.html#SP15">&#167;15. Arrcpy</a></li><li><a href="S-utl.html#SP16">&#167;16. Verbs as Values</a></li><li><a href="S-utl.html#SP17">&#167;17. Seed Random Number Generator Rule</a></li><li><a href="S-utl.html#SP18">&#167;18. Regarding</a></li><li><a href="S-utl.html#SP19">&#167;19. Say One Of</a></li><li><a href="S-utl.html#SP20">&#167;20. Rounding</a></li><li><a href="S-utl.html#SP21">&#167;21. Doing nothing</a></li></ul><hr class="tocbar">
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. Miscellany. </b></p>
@ -235,7 +235,57 @@ allows us to divide the paragraph or not accordingly.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax">--&gt;(2+</span><span class="identifier-syntax">n</span><span class="plain-syntax">);</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>&#167;9. GenerateRandomNumber. </b>The following uses the virtual machine's RNG (via the I6 built-in function
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>&#167;9. Non-standard enumerations. </b>This is for enumerations whose values are scattered: say, for a kind where
the valid runtime values are 3, 15 and 421. Next after 3 is 15; previous
is 421, and so on.
</p>
<p class="commentary">The instances array supplied has the extent in word 0, which is in effect
the number of valid instances. This is guaranteed to be at least 1.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">[ </span><span class="identifier-syntax">NextEnumVal</span><span class="plain-syntax"> </span><span class="identifier-syntax">inst</span><span class="plain-syntax"> </span><span class="identifier-syntax">instances</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> </span><span class="identifier-syntax">count</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">count</span><span class="plain-syntax"> = </span><span class="identifier-syntax">instances</span><span class="plain-syntax">--&gt;0;</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">count</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">instances</span><span class="plain-syntax">--&gt;</span><span class="identifier-syntax">i</span><span class="plain-syntax"> == </span><span class="identifier-syntax">inst</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">instances</span><span class="plain-syntax">--&gt;(</span><span class="identifier-syntax">i</span><span class="plain-syntax">%</span><span class="identifier-syntax">count</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">instances</span><span class="plain-syntax">--&gt;1; </span><span class="comment-syntax">Should not ever happen</span>
<span class="plain-syntax">];</span>
<span class="plain-syntax">[ </span><span class="identifier-syntax">PrevEnumVal</span><span class="plain-syntax"> </span><span class="identifier-syntax">inst</span><span class="plain-syntax"> </span><span class="identifier-syntax">instances</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> </span><span class="identifier-syntax">count</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">count</span><span class="plain-syntax"> = </span><span class="identifier-syntax">instances</span><span class="plain-syntax">--&gt;0;</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">count</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">instances</span><span class="plain-syntax">--&gt;</span><span class="identifier-syntax">i</span><span class="plain-syntax"> == </span><span class="identifier-syntax">inst</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">instances</span><span class="plain-syntax">--&gt;((</span><span class="identifier-syntax">i</span><span class="plain-syntax">+</span><span class="identifier-syntax">count</span><span class="plain-syntax">-2)%</span><span class="identifier-syntax">count</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">instances</span><span class="plain-syntax">--&gt;1; </span><span class="comment-syntax">Should not ever happen</span>
<span class="plain-syntax">];</span>
<span class="plain-syntax">[ </span><span class="identifier-syntax">RandomEnumVal</span><span class="plain-syntax"> </span><span class="identifier-syntax">instances</span><span class="plain-syntax"> </span><span class="identifier-syntax">a</span><span class="plain-syntax"> </span><span class="identifier-syntax">b</span><span class="plain-syntax"> </span><span class="identifier-syntax">count</span><span class="plain-syntax"> </span><span class="identifier-syntax">a_index</span><span class="plain-syntax"> </span><span class="identifier-syntax">b_index</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">count</span><span class="plain-syntax"> = </span><span class="identifier-syntax">instances</span><span class="plain-syntax">--&gt;0;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">a</span><span class="plain-syntax"> == </span><span class="identifier-syntax">b</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">a</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="identifier-syntax">instances</span><span class="plain-syntax">--&gt;(</span><span class="reserved-syntax">random</span><span class="plain-syntax">(</span><span class="identifier-syntax">count</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">a</span><span class="plain-syntax">;</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">c</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">: </span><span class="identifier-syntax">c</span><span class="plain-syntax"> &lt;= </span><span class="identifier-syntax">count</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">instances</span><span class="plain-syntax">--&gt;</span><span class="identifier-syntax">c</span><span class="plain-syntax"> == </span><span class="identifier-syntax">a</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">a_index</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">instances</span><span class="plain-syntax">--&gt;</span><span class="identifier-syntax">c</span><span class="plain-syntax"> == </span><span class="identifier-syntax">b</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">b_index</span><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><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">a_index</span><span class="plain-syntax"> &gt; </span><span class="identifier-syntax">b_index</span><span class="plain-syntax">) { </span><span class="identifier-syntax">c</span><span class="plain-syntax"> = </span><span class="identifier-syntax">a_index</span><span class="plain-syntax">; </span><span class="identifier-syntax">a_index</span><span class="plain-syntax"> = </span><span class="identifier-syntax">b_index</span><span class="plain-syntax">; </span><span class="identifier-syntax">b_index</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">instances</span><span class="plain-syntax">--&gt;(</span><span class="identifier-syntax">a_index</span><span class="plain-syntax"> + </span><span class="reserved-syntax">random</span><span class="plain-syntax">(</span><span class="identifier-syntax">b_index</span><span class="plain-syntax"> - </span><span class="identifier-syntax">a_index</span><span class="plain-syntax"> + </span><span class="constant-syntax">1</span><span class="plain-syntax">) - </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
<span class="plain-syntax">];</span>
<span class="plain-syntax">[ </span><span class="identifier-syntax">IndexOfEnumVal</span><span class="plain-syntax"> </span><span class="identifier-syntax">instances</span><span class="plain-syntax"> </span><span class="identifier-syntax">a</span><span class="plain-syntax"> </span><span class="identifier-syntax">count</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">count</span><span class="plain-syntax"> = </span><span class="identifier-syntax">instances</span><span class="plain-syntax">--&gt;0;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">c</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">: </span><span class="identifier-syntax">c</span><span class="plain-syntax"> &lt;= </span><span class="identifier-syntax">count</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">instances</span><span class="plain-syntax">--&gt;</span><span class="identifier-syntax">c</span><span class="plain-syntax"> == </span><span class="identifier-syntax">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="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="constant-syntax">0</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. GenerateRandomNumber. </b>The following uses the virtual machine's RNG (via the I6 built-in function
<span class="extract"><span class="extract-syntax">random</span></span>) to produce a uniformly random integer in the range \(n\) to \(m\)
inclusive, where \(n\) and \(m\) are allowed to be either way around; so that
a random number between 17 and 4 is the same thing as a random number
@ -253,7 +303,7 @@ to an empty range of values.
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">R_DecimalNumber</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GenerateRandomNumber</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">R_PrintTimeOfDay</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GenerateRandomNumber</span><span class="plain-syntax">;</span>
</pre>
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>&#167;10. PrintSpaces. </b>Which prints a row of \(n\) spaces, for \(n\geq 0\).
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>&#167;11. PrintSpaces. </b>Which prints a row of \(n\) spaces, for \(n\geq 0\).
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -264,7 +314,7 @@ to an empty range of values.
<span class="plain-syntax"> }</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>&#167;11. SwapWorkflags. </b>Recall that we have two general-purpose temporary attributes for each object:
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>&#167;12. SwapWorkflags. </b>Recall that we have two general-purpose temporary attributes for each object:
<span class="extract"><span class="extract-syntax">workflag</span></span> and <span class="extract"><span class="extract-syntax">workflag2</span></span>. The following swaps their values over for every
object at once.
</p>
@ -281,12 +331,12 @@ object at once.
<span class="plain-syntax"> }</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>&#167;12. TestUseOption. </b>This routine, compiled by Inform, returns <span class="extract"><span class="extract-syntax">true</span></span> if the supplied argument is the
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>&#167;13. TestUseOption. </b>This routine, compiled by Inform, returns <span class="extract"><span class="extract-syntax">true</span></span> if the supplied argument is the
number of a use option in force for the current run of Inform, and <span class="extract"><span class="extract-syntax">false</span></span>
otherwise.
</p>
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>&#167;13. ZRegion. </b>I7 contains many relics from I6, but here's a relic from I5: a routine which
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>&#167;14. ZRegion. </b>I7 contains many relics from I6, but here's a relic from I5: a routine which
used to determine the metaclass of a value, before that concept was given a
name. In I6 code, it can be implemented simply using <span class="extract"><span class="extract-syntax">metaclass</span></span>, as the
following shows. (The name is from "region of the Z-machine".)
@ -302,7 +352,7 @@ following shows. (The name is from "region of the Z-machine".)
<span class="plain-syntax"> }</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>&#167;14. Arrcpy. </b>This is not quite so efficient as Memcpy, but not terrible.
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>&#167;15. Arrcpy. </b>This is not quite so efficient as Memcpy, but not terrible.
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -318,7 +368,7 @@ following shows. (The name is from "region of the Z-machine".)
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="string-syntax">"*** Arrcpy doesn't support this ***"</span><span class="plain-syntax">;</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>&#167;15. Verbs as Values. </b></p>
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>&#167;16. Verbs as Values. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">[ </span><span class="identifier-syntax">PrintVerbAsValue</span><span class="plain-syntax"> </span><span class="identifier-syntax">vb</span><span class="plain-syntax">;</span>
@ -336,7 +386,7 @@ following shows. (The name is from "region of the Z-machine".)
<span class="plain-syntax"> </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>&#167;16. Seed Random Number Generator Rule. </b>Unless a seed is provided by Inform, and it won't be for released story files,
<p class="commentary firstcommentary"><a id="SP17" class="paragraph-anchor"></a><b>&#167;17. Seed Random Number Generator Rule. </b>Unless a seed is provided by Inform, and it won't be for released story files,
the VM's interpreter is supposed to start up with a good seed in its random
number generator: something usually derived from, say, the milliseconds part
of the current time of day, which is unlikely to repeat or show any pattern
@ -357,7 +407,7 @@ of course, in a state of sin" (von Neumann).
<span class="plain-syntax"> </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP17" class="paragraph-anchor"></a><b>&#167;17. Regarding. </b>These are used with adaptive text.
<p class="commentary firstcommentary"><a id="SP18" class="paragraph-anchor"></a><b>&#167;18. Regarding. </b>These are used with adaptive text.
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -373,7 +423,7 @@ of course, in a state of sin" (von Neumann).
<span class="plain-syntax"> </span><span class="identifier-syntax">prior_named_noun</span><span class="plain-syntax"> = </span><span class="reserved-syntax">nothing</span><span class="plain-syntax">;</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP18" class="paragraph-anchor"></a><b>&#167;18. Say One Of. </b>These routines are described in the Extensions chapter of the Inform
<p class="commentary firstcommentary"><a id="SP19" class="paragraph-anchor"></a><b>&#167;19. Say One Of. </b>These routines are described in the Extensions chapter of the Inform
documentation.
</p>
@ -419,7 +469,7 @@ documentation.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">v</span><span class="plain-syntax"> + </span><span class="identifier-syntax">ct</span><span class="plain-syntax">*</span><span class="identifier-syntax">base</span><span class="plain-syntax"> + </span><span class="identifier-syntax">ssd</span><span class="plain-syntax">*</span><span class="identifier-syntax">base</span><span class="plain-syntax">*</span><span class="identifier-syntax">base</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. Rounding. </b>The following rounds a numerical value <span class="extract"><span class="extract-syntax">t1</span></span> to the nearest unit of <span class="extract"><span class="extract-syntax">t2</span></span>;
<p class="commentary firstcommentary"><a id="SP20" class="paragraph-anchor"></a><b>&#167;20. Rounding. </b>The following rounds a numerical value <span class="extract"><span class="extract-syntax">t1</span></span> to the nearest unit of <span class="extract"><span class="extract-syntax">t2</span></span>;
for instance, if <span class="extract"><span class="extract-syntax">t2</span></span> is 5 then it rounds to the nearest 5. The name is an
anachronism, as it's used for all kinds of value.
</p>
@ -430,7 +480,7 @@ anachronism, as it's used for all kinds of value.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> -((-</span><span class="identifier-syntax">t1</span><span class="plain-syntax">+</span><span class="identifier-syntax">t2</span><span class="plain-syntax">/2)/</span><span class="identifier-syntax">t2</span><span class="plain-syntax">)*</span><span class="identifier-syntax">t2</span><span class="plain-syntax">;</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP20" class="paragraph-anchor"></a><b>&#167;20. Doing nothing. </b>Surprisingly, this function has a use.
<p class="commentary firstcommentary"><a id="SP21" class="paragraph-anchor"></a><b>&#167;21. Doing nothing. </b>Surprisingly, this function has a use.
</p>
<pre class="displayed-code all-displayed-code code-font">

View file

@ -152,9 +152,6 @@ by enumerating them in the property <span class="extract"><span class="extract-s
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">NUM_DOORS</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ICOUNT_DOOR</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">NUM_ROOMS</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ICOUNT_ROOM</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Array</span><span class="plain-syntax"> </span><span class="identifier-syntax">DoorRoutingViable</span><span class="plain-syntax"> -&gt; </span><span class="identifier-syntax">NUM_DOORS</span><span class="plain-syntax">+1;</span>
<span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">map_has_changed</span><span class="plain-syntax"> = </span><span class="reserved-syntax">true</span><span class="plain-syntax">;</span>

View file

@ -227,8 +227,7 @@ yet be working, and so on.)
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">allow_activation_functions_to_be_run</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">F</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">F</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">activation_function_run</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">F</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">activation_function_run</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">void</span><span class="plain-syntax"> (*</span><span class="identifier-syntax">start</span><span class="plain-syntax">)() = (</span><span class="reserved-syntax">void</span><span class="plain-syntax"> (*)()) </span><span class="identifier-syntax">F</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">activation_function</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">start</span><span class="plain-syntax">) (*</span><span class="identifier-syntax">start</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">F</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">activation_function</span><span class="plain-syntax">) (*(</span><span class="identifier-syntax">F</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">activation_function</span><span class="plain-syntax">))();</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
</pre>

View file

@ -178,7 +178,6 @@ special Preform of its own; here is the subject phrase:
<span class="plain-syntax"> </span><span class="identifier-syntax">av</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">after_rules</span><span class="plain-syntax"> = </span><a href="6-act.html#SP6" class="function-link"><span class="function-syntax">Activities::make_rulebook</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">av</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">PluginCalls::new_activity_notify</span><span class="plain-syntax">(</span><span class="identifier-syntax">av</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">av</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>

View file

@ -928,7 +928,7 @@ BASIC's <span class="extract"><span class="extract-syntax">for</span></span> loo
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">repeat</span><span class="plain-syntax"> </span><span class="identifier-syntax">with</span><span class="plain-syntax"> (</span><span class="identifier-syntax">loopvar</span><span class="plain-syntax"> - </span><span class="identifier-syntax">nonexisting</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax"> </span><span class="identifier-syntax">variable</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">running</span><span class="plain-syntax"> </span><span class="identifier-syntax">from</span><span class="plain-syntax"> (</span><span class="identifier-syntax">v</span><span class="plain-syntax"> - </span><span class="identifier-syntax">enumerated</span><span class="plain-syntax"> </span><span class="identifier-syntax">value</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">to</span><span class="plain-syntax"> (</span><span class="identifier-syntax">w</span><span class="plain-syntax"> - </span><span class="identifier-syntax">K</span><span class="plain-syntax">) </span><span class="identifier-syntax">begin</span><span class="plain-syntax"> -- </span><span class="identifier-syntax">end</span><span class="plain-syntax"> </span><span class="identifier-syntax">loop</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_repeat</span><span class="plain-syntax">):</span>
<span class="plain-syntax"> (- </span><span class="identifier-syntax">for</span><span class="plain-syntax"> ({</span><span class="identifier-syntax">loopvar</span><span class="plain-syntax">}={</span><span class="identifier-syntax">v</span><span class="plain-syntax">}: {</span><span class="identifier-syntax">loopvar</span><span class="plain-syntax">}&lt;={</span><span class="identifier-syntax">w</span><span class="plain-syntax">}: {</span><span class="identifier-syntax">loopvar</span><span class="plain-syntax">}++) -).</span>
<span class="plain-syntax"> (- </span><span class="identifier-syntax">for</span><span class="plain-syntax"> ({</span><span class="identifier-syntax">loopvar</span><span class="plain-syntax">}={</span><span class="identifier-syntax">v</span><span class="plain-syntax">}: {</span><span class="identifier-syntax">loopvar</span><span class="plain-syntax">}&lt;={</span><span class="identifier-syntax">w</span><span class="plain-syntax">}: {</span><span class="identifier-syntax">loopvar</span><span class="plain-syntax">}={-</span><span class="identifier-syntax">next</span><span class="plain-syntax">-</span><span class="identifier-syntax">routine</span><span class="plain-syntax">:</span><span class="identifier-syntax">K</span><span class="plain-syntax">}({</span><span class="identifier-syntax">loopvar</span><span class="plain-syntax">})) -).</span>
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">repeat</span><span class="plain-syntax"> </span><span class="identifier-syntax">with</span><span class="plain-syntax"> (</span><span class="identifier-syntax">loopvar</span><span class="plain-syntax"> - </span><span class="identifier-syntax">nonexisting</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax"> </span><span class="identifier-syntax">variable</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">running</span><span class="plain-syntax"> </span><span class="identifier-syntax">through</span><span class="plain-syntax"> (</span><span class="identifier-syntax">OS</span><span class="plain-syntax"> - </span><span class="identifier-syntax">description</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">begin</span><span class="plain-syntax"> -- </span><span class="identifier-syntax">end</span><span class="plain-syntax"> </span><span class="identifier-syntax">loop</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_runthrough</span><span class="plain-syntax">):</span>
@ -1028,6 +1028,9 @@ randomness below.
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">decide</span><span class="plain-syntax"> </span><span class="identifier-syntax">which</span><span class="plain-syntax"> </span><span class="identifier-syntax">number</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</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">S</span><span class="plain-syntax"> - </span><span class="identifier-syntax">description</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_numberof</span><span class="plain-syntax">):</span>
<span class="plain-syntax"> (- {-</span><span class="identifier-syntax">primitive</span><span class="plain-syntax">-</span><span class="identifier-syntax">definition</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">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">decide</span><span class="plain-syntax"> </span><span class="identifier-syntax">what</span><span class="plain-syntax"> </span><span class="identifier-syntax">number</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">numerical</span><span class="plain-syntax"> </span><span class="identifier-syntax">value</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> (</span><span class="identifier-syntax">X</span><span class="plain-syntax"> - </span><span class="identifier-syntax">enumerated</span><span class="plain-syntax"> </span><span class="identifier-syntax">value</span><span class="plain-syntax">): (- {</span><span class="identifier-syntax">X</span><span class="plain-syntax">} -).</span>
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">decide</span><span class="plain-syntax"> </span><span class="identifier-syntax">what</span><span class="plain-syntax"> </span><span class="identifier-syntax">number</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">sequence</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">X</span><span class="plain-syntax"> - </span><span class="identifier-syntax">enumerated</span><span class="plain-syntax"> </span><span class="identifier-syntax">value</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="plain-syntax"> (- {-</span><span class="identifier-syntax">indexing</span><span class="plain-syntax">-</span><span class="identifier-syntax">routine</span><span class="plain-syntax">:</span><span class="identifier-syntax">K</span><span class="plain-syntax">}({</span><span class="identifier-syntax">X</span><span class="plain-syntax">}) -).</span>
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">decide</span><span class="plain-syntax"> </span><span class="identifier-syntax">which</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> (</span><span class="identifier-syntax">name</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">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">enumerated</span><span class="plain-syntax"> </span><span class="identifier-syntax">value</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">) </span><span class="identifier-syntax">after</span><span class="plain-syntax"> (</span><span class="identifier-syntax">X</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">documented</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">ph_enumafter</span><span class="plain-syntax">):</span>
<span class="plain-syntax"> (- {-</span><span class="identifier-syntax">next</span><span class="plain-syntax">-</span><span class="identifier-syntax">routine</span><span class="plain-syntax">:</span><span class="identifier-syntax">K</span><span class="plain-syntax">}({</span><span class="identifier-syntax">X</span><span class="plain-syntax">}) -).</span>

View file

@ -45,7 +45,7 @@
</nav>
<main role="main">
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../extensions.html">Extensions</a></li><li><b>basicinform</b></li></ul>
<p class="purpose">The Basic Inform extension, included in all projects. This is version 1.</p>
<p class="purpose">The Basic Inform extension, included in all projects. This is version 2.</p>
<hr>
<div class="contentspage">
<ul class="chapterlist">

View file

@ -411,6 +411,7 @@ compilation process, and never survive into the final schema:
<span class="definition-keyword">enum</span> <span class="constant-syntax">next_routine_ISINC</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">previous_routine_ISINC</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ranger_routine_ISINC</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">indexing_routine_ISINC</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">strong_kind_ISINC</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">weak_kind_ISINC</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">backspace_ISINC</span>

View file

@ -347,6 +347,8 @@ a bracing.
<span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax"> = </span><span class="constant-syntax">printing_routine_ISINC</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">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">command</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"ranger-routine"</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax"> = </span><span class="constant-syntax">ranger_routine_ISINC</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">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">command</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"indexing-routine"</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax"> = </span><span class="constant-syntax">indexing_routine_ISINC</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">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">command</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"next-routine"</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax"> = </span><span class="constant-syntax">next_routine_ISINC</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">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">command</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"previous-routine"</span><span class="plain-syntax">)) {</span>

View file

@ -79,7 +79,8 @@ these words would be 5, 2 and 4 respectively.
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">BinaryInter::test_file</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="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">verdict</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">FILE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">fh</span><span class="plain-syntax"> = </span><span class="identifier-syntax">BinaryFiles::open_for_reading</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">FILE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">fh</span><span class="plain-syntax"> = </span><span class="identifier-syntax">BinaryFiles::try_to_open_for_reading</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">fh</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">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">unsigned</span><span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">X</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">BinaryFiles::read_int32</span><span class="plain-syntax">(</span><span class="identifier-syntax">fh</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">X</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) ||</span>
<span class="plain-syntax"> ((</span><span class="constant-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">X</span><span class="plain-syntax"> != </span><span class="constant-syntax">INTER_SHIBBOLETH</span><span class="plain-syntax">)) </span><span class="identifier-syntax">verdict</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
@ -95,7 +96,8 @@ file, or else a null semver if the file isn't binary Inter:
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">semantic_version_number</span><span class="plain-syntax"> </span><span class="function-syntax">BinaryInter::test_file_version</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="plain-syntax"> </span><span class="reserved-syntax">FILE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">fh</span><span class="plain-syntax"> = </span><span class="identifier-syntax">BinaryFiles::open_for_reading</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">FILE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">fh</span><span class="plain-syntax"> = </span><span class="identifier-syntax">BinaryFiles::try_to_open_for_reading</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">fh</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">VersionNumbers::null</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">unsigned</span><span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">X</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">BinaryFiles::read_int32</span><span class="plain-syntax">(</span><span class="identifier-syntax">fh</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">X</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) ||</span>
<span class="plain-syntax"> ((</span><span class="constant-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">X</span><span class="plain-syntax"> != </span><span class="constant-syntax">INTER_SHIBBOLETH</span><span class="plain-syntax">) ||</span>

View file

@ -248,17 +248,11 @@ so it would not be safe to store only the textual identifier.
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">CORE_MODULE</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTKindIDs::write_weak_identifier</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">va_arg</span><span class="plain-syntax">(</span><span class="identifier-syntax">ap</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *));</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"{%u}"</span><span class="plain-syntax">, </span><span class="identifier-syntax">va_arg</span><span class="plain-syntax">(</span><span class="identifier-syntax">ap</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *));</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'L'</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">CORE_MODULE</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%~L"</span><span class="plain-syntax">, </span><span class="identifier-syntax">va_arg</span><span class="plain-syntax">(</span><span class="identifier-syntax">ap</span><span class="plain-syntax">, </span><span class="identifier-syntax">local_variable</span><span class="plain-syntax"> *)); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%08x"</span><span class="plain-syntax">, </span><span class="identifier-syntax">va_arg</span><span class="plain-syntax">(</span><span class="identifier-syntax">ap</span><span class="plain-syntax">, </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *)); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'n'</span><span class="plain-syntax">: {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax"> = </span><span class="identifier-syntax">sch</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">no_quoted_inames</span><span class="plain-syntax">++;</span>

View file

@ -208,6 +208,7 @@ so on. Those absolute basics are made here.
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP10" class="function-link"><span class="function-syntax">Task::make_built_in_kind_constructors</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">BinaryPredicateFamilies::first_stock</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">BootVerbs::make_built_in</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">Instances::make_instances_from_Neptune</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="1-htc.html#SP2">&#167;2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_4" class="paragraph-anchor"></a><b>&#167;2.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Pass three times through the major nodes</span><span class="named-paragraph-number">2.4</span></span><span class="comment-syntax"> =</span>
@ -304,6 +305,7 @@ here, which only happens when special runs are made for compiler testing.
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTUseOptions::compile</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTCommandGrammars::compile_non_generic_constants</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">Interventions::make_all</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTKindConstructors::assign_declaration_sequence_numbers</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTKindConstructors::compile</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTLiteralPatterns::compile</span><span class="plain-syntax">)</span>
</pre>

View file

@ -471,6 +471,7 @@ the text leading to a list:
<span class="plain-syntax"> </span><span class="reserved-syntax">anl_parsing_data</span><span class="plain-syntax"> </span><span class="reserved-syntax">parsing_data</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">parsing_data</span><span class="plain-syntax">.</span><span class="element-syntax">anl_clauses</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">parsing_data</span><span class="plain-syntax">.</span><span class="element-syntax">abbreviation_level</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">parsing_data</span><span class="plain-syntax">.</span><span class="element-syntax">word_position</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="reserved-syntax">parsing_data</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>

View file

@ -676,7 +676,7 @@ be a description which is true or false for any given value, so:
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">K_understanding</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_understanding</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">RTKindConstructors::request_I6_GPR</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</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">Kinds::Behaviour::is_understandable</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</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">Problems::quote_source</span><span class="plain-syntax">(1, </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_wording</span><span class="plain-syntax">(2, </span><a href="5-cgt.html#SP8" class="function-link"><span class="function-syntax">CGTokens::text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">StandardProblems::handmade_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_UnparsableKind</span><span class="plain-syntax">));</span>

View file

@ -83,6 +83,7 @@ chapter.
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginCalls::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">COMPLETE_MODEL_PLUG</span><span class="plain-syntax">, </span><a href="5-pp.html#SP9" class="function-link"><span class="function-syntax">ParsingPlugin::complete_model</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTLiteralPatterns::enable_parsing</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTKindConstructors::enable_parsing</span><span class="plain-syntax">();</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. </b>This will also need extensive amounts of run-time code, and the sequence

View file

@ -794,11 +794,12 @@ it, one at a time, by previous Understand sentences.
<span class="plain-syntax"> </span><span class="string-syntax">"and this refers to something which is not an object."</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="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">PK</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ValueProperties::kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">pr</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">Properties::is_either_or</span><span class="plain-syntax">(</span><span class="identifier-syntax">pr</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTKindConstructors::get_recognition_only_GPR</span><span class="plain-syntax">(</span><span class="identifier-syntax">ValueProperties::kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">pr</span><span class="plain-syntax">))) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> ((</span><span class="identifier-syntax">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">ValueProperties::kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">pr</span><span class="plain-syntax">))) ||</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">RTKindConstructors::request_I6_GPR</span><span class="plain-syntax">(</span><span class="identifier-syntax">ValueProperties::kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">pr</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">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">ValueProperties::kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">pr</span><span class="plain-syntax">)))</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">RTKindConstructors::recognition_only_GPR_provided_by_kit</span><span class="plain-syntax">(</span><span class="identifier-syntax">PK</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> ((</span><span class="identifier-syntax">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">PK</span><span class="plain-syntax">)) ||</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_understandable</span><span class="plain-syntax">(</span><span class="identifier-syntax">PK</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">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">PK</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">StandardProblems::sentence_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</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">PM_ThingReferringProperty</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="string-syntax">"the value of that property is itself a kind of object"</span><span class="plain-syntax">,</span>
@ -1039,7 +1040,7 @@ and add it to a suitably chosen CG with <a href="5-cg.html#SP17" class="internal
<span class="plain-syntax"> </span><span class="string-syntax">"make sense."</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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">RTKindConstructors::request_I6_GPR</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</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">Kinds::Behaviour::is_understandable</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</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">StandardProblems::sentence_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</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">PM_UnderstandAsBadValue</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="string-syntax">"'understand ... as ...' gives text meaning a value whose kind "</span>

View file

@ -114,7 +114,6 @@ storage at runtime. (This can be accessed from a schema.)
<span class="plain-syntax"> </span><span class="reserved-syntax">local_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lvar</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_constant_local_variable</span><span class="plain-syntax">(</span><span class="identifier-syntax">spec_found</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lvar_s</span><span class="plain-syntax"> = </span><a href="3-lv.html#SP1" class="function-link"><span class="function-syntax">LocalVariables::declare</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">lvar</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">lvar</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">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"Bad: %08x\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">spec_found</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"Compiled never-specified LOCAL VARIABLE SP"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::val_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">lvar_s</span><span class="plain-syntax">);</span>

View file

@ -72,6 +72,8 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">CONSTANT_NT:</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kind_of_constant</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_kind_of_value</span><span class="plain-syntax">(</span><span class="identifier-syntax">value</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">ccm</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Kinds::Behaviour::get_constant_compilation_method</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_of_constant</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">ccm</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NONE_CCM</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">Kinds::Behaviour::is_an_enumeration</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_of_constant</span><span class="plain-syntax">)))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">ccm</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NAMED_CONSTANT_CCM</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax">(</span><span class="identifier-syntax">ccm</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">NONE_CCM:</span><span class="plain-syntax"> </span><span class="comment-syntax"> constant values of this kind cannot exist</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"SP: $P; kind: %u\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">value</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind_of_constant</span><span class="plain-syntax">);</span>

View file

@ -497,7 +497,7 @@ following, without having to worry about how any of this works:
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Frames::log</span><span class="plain-syntax">(</span><span class="reserved-syntax">stack_frame</span><span class="plain-syntax"> *</span><span class="identifier-syntax">frame</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">frame</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) { </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"&lt;null stack frame&gt;\n"</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span class="plain-syntax">; }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"Stack frame at %08x: it:%s, dpc:%s\n"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">frame</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="reserved-syntax">unsigned</span><span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax">)(</span><span class="identifier-syntax">pointer_sized_int</span><span class="plain-syntax">)</span><span class="identifier-syntax">frame</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">frame</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">local_variables</span><span class="plain-syntax">.</span><span class="element-syntax">it_variable_exists</span><span class="plain-syntax">)?</span><span class="string-syntax">"yes"</span><span class="plain-syntax">:</span><span class="string-syntax">"no"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">frame</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">determines_past_conditions</span><span class="plain-syntax">)?</span><span class="string-syntax">"yes"</span><span class="plain-syntax">:</span><span class="string-syntax">"no"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">local_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lvar</span><span class="plain-syntax">;</span>

View file

@ -335,9 +335,16 @@ performance.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</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">Kinds::Behaviour::is_an_enumeration</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">Calculus::Schemas::modify</span><span class="plain-syntax">(</span><span class="identifier-syntax">sch</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"for (*1=1: *1&lt;=%d: *1++)"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTKindConstructors::get_highest_valid_value_as_integer</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">RTKindConstructors::is_nonstandard_enumeration</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RTKindConstructors::instances_array_iname</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">Calculus::Schemas::modify</span><span class="plain-syntax">(</span><span class="identifier-syntax">sch</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"for (*2=1, *1=%n--&gt;*2: *2&lt;=%d: *2++, *1=%n--&gt;*2)"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">lname</span><span class="plain-syntax">, </span><span class="identifier-syntax">RTKindConstructors::enumeration_size</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">), </span><span class="identifier-syntax">lname</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">Calculus::Schemas::modify</span><span class="plain-syntax">(</span><span class="identifier-syntax">sch</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"for (*1=1: *1&lt;=%d: *1++)"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTKindConstructors::enumeration_size</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</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">TRUE</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="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">construct</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">loop_domain_schema</span><span class="plain-syntax">;</span>

View file

@ -328,7 +328,7 @@ longer possible to know at compile-time.
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::inv</span><span class="plain-syntax">(</span><span class="identifier-syntax">INDIRECT0_BIP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::down</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::val_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTKindConstructors::get_ranger_iname</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">RTKindConstructors::random_value_fn_iname</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">EmitCode::up</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>

View file

@ -271,7 +271,7 @@ of four things can happen to the term arising from a token:
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cr</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">pt</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">term_checked_as_kind</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">cr</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RTKindConstructors::get_comparison_fn_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">pt</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">term_checked_as_kind</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">construct</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">cr</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RTKindConstructors::comparison_fn_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">pt</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">term_checked_as_kind</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">cr</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Hierarchy::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">SIGNEDCOMPARE_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::val_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">cr</span><span class="plain-syntax">);</span>

View file

@ -881,10 +881,11 @@ invocation-language so baroque.
<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">new_list_of_ISINC</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="5-cii.html#SP6_3_2" class="named-paragraph-link"><span class="named-paragraph">Inline command "new-list-of"</span><span class="named-paragraph-number">6.3.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">C</span><span class="plain-syntax"> == </span><span class="identifier-syntax">printing_routine_ISINC</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="5-cii.html#SP6_3_5" class="named-paragraph-link"><span class="named-paragraph">Inline command "printing-routine"</span><span class="named-paragraph-number">6.3.5</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">C</span><span class="plain-syntax"> == </span><span class="identifier-syntax">ranger_routine_ISINC</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="5-cii.html#SP6_3_6" class="named-paragraph-link"><span class="named-paragraph">Inline command "ranger-routine"</span><span class="named-paragraph-number">6.3.6</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">C</span><span class="plain-syntax"> == </span><span class="identifier-syntax">indexing_routine_ISINC</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="5-cii.html#SP6_3_7" class="named-paragraph-link"><span class="named-paragraph">Inline command "indexing-routine"</span><span class="named-paragraph-number">6.3.7</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">C</span><span class="plain-syntax"> == </span><span class="identifier-syntax">next_routine_ISINC</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="5-cii.html#SP6_3_3" class="named-paragraph-link"><span class="named-paragraph">Inline command "next-routine"</span><span class="named-paragraph-number">6.3.3</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">C</span><span class="plain-syntax"> == </span><span class="identifier-syntax">previous_routine_ISINC</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="5-cii.html#SP6_3_4" class="named-paragraph-link"><span class="named-paragraph">Inline command "previous-routine"</span><span class="named-paragraph-number">6.3.4</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">C</span><span class="plain-syntax"> == </span><span class="identifier-syntax">strong_kind_ISINC</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="5-cii.html#SP6_3_7" class="named-paragraph-link"><span class="named-paragraph">Inline command "strong-kind"</span><span class="named-paragraph-number">6.3.7</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">C</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weak_kind_ISINC</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="5-cii.html#SP6_3_8" class="named-paragraph-link"><span class="named-paragraph">Inline command "weak-kind"</span><span class="named-paragraph-number">6.3.8</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">C</span><span class="plain-syntax"> == </span><span class="identifier-syntax">strong_kind_ISINC</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="5-cii.html#SP6_3_8" class="named-paragraph-link"><span class="named-paragraph">Inline command "strong-kind"</span><span class="named-paragraph-number">6.3.8</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">C</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weak_kind_ISINC</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="5-cii.html#SP6_3_9" class="named-paragraph-link"><span class="named-paragraph">Inline command "weak-kind"</span><span class="named-paragraph-number">6.3.9</span></a></span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-cii.html#SP6">&#167;6</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP6_3_1" class="paragraph-anchor"></a><b>&#167;6.3.1. </b>The following produces a new value of the given kind. If it's stored as a
@ -948,7 +949,7 @@ proposition.
<pre class="displayed-code all-displayed-code code-font">
<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><a href="5-cii.html#SP9" class="function-link"><span class="function-syntax">CSIInline::parse_bracing_operand_as_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ist</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">operand</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::get_kind_variable_declarations</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</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><span class="identifier-syntax">EmitCode::val_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">RTKindConstructors::get_inc_iname</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax">) </span><span class="identifier-syntax">EmitCode::val_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">RTKindConstructors::increment_fn_iname</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">else</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-cii.html#SP6_3_1_2" class="named-paragraph-link"><span class="named-paragraph">Issue an inline no-such-kind problem</span><span class="named-paragraph-number">6.3.1.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
</pre>
@ -959,7 +960,7 @@ proposition.
<pre class="displayed-code all-displayed-code code-font">
<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><a href="5-cii.html#SP9" class="function-link"><span class="function-syntax">CSIInline::parse_bracing_operand_as_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ist</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">operand</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::get_kind_variable_declarations</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</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><span class="identifier-syntax">EmitCode::val_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">RTKindConstructors::get_dec_iname</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax">) </span><span class="identifier-syntax">EmitCode::val_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">RTKindConstructors::decrement_fn_iname</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">else</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-cii.html#SP6_3_1_2" class="named-paragraph-link"><span class="named-paragraph">Issue an inline no-such-kind problem</span><span class="named-paragraph-number">6.3.1.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
</pre>
@ -970,7 +971,7 @@ proposition.
<pre class="displayed-code all-displayed-code code-font">
<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><a href="5-cii.html#SP9" class="function-link"><span class="function-syntax">CSIInline::parse_bracing_operand_as_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ist</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">operand</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::get_kind_variable_declarations</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</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><span class="identifier-syntax">EmitCode::val_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">RTKindConstructors::get_iname</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax">) </span><span class="identifier-syntax">EmitCode::val_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">RTKindConstructors::printing_fn_iname</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">else</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-cii.html#SP6_3_1_2" class="named-paragraph-link"><span class="named-paragraph">Issue an inline no-such-kind problem</span><span class="named-paragraph-number">6.3.1.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
</pre>
@ -984,12 +985,23 @@ proposition.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">)) ||</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_time</span><span class="plain-syntax">)))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::val_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">Hierarchy::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">GENERATERANDOMNUMBER_HL</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">K</span><span class="plain-syntax">) </span><span class="identifier-syntax">EmitCode::val_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">RTKindConstructors::get_ranger_iname</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">else</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><span class="identifier-syntax">EmitCode::val_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">RTKindConstructors::random_value_fn_iname</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">else</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-cii.html#SP6_3_1_2" class="named-paragraph-link"><span class="named-paragraph">Issue an inline no-such-kind problem</span><span class="named-paragraph-number">6.3.1.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-cii.html#SP6_3">&#167;6.3</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP6_3_7" class="paragraph-anchor"></a><b>&#167;6.3.7. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Inline command "strong-kind"</span><span class="named-paragraph-number">6.3.7</span></span><span class="comment-syntax"> =</span>
<p class="commentary firstcommentary"><a id="SP6_3_7" class="paragraph-anchor"></a><b>&#167;6.3.7. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Inline command "indexing-routine"</span><span class="named-paragraph-number">6.3.7</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<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><a href="5-cii.html#SP9" class="function-link"><span class="function-syntax">CSIInline::parse_bracing_operand_as_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ist</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">operand</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::get_kind_variable_declarations</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</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><span class="identifier-syntax">EmitCode::val_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">RTKindConstructors::indexing_fn_iname</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">else</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-cii.html#SP6_3_1_2" class="named-paragraph-link"><span class="named-paragraph">Issue an inline no-such-kind problem</span><span class="named-paragraph-number">6.3.1.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-cii.html#SP6_3">&#167;6.3</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP6_3_8" class="paragraph-anchor"></a><b>&#167;6.3.8. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Inline command "strong-kind"</span><span class="named-paragraph-number">6.3.8</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -1000,7 +1012,7 @@ proposition.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-cii.html#SP6_3">&#167;6.3</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP6_3_8" class="paragraph-anchor"></a><b>&#167;6.3.8. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Inline command "weak-kind"</span><span class="named-paragraph-number">6.3.8</span></span><span class="comment-syntax"> =</span>
<p class="commentary firstcommentary"><a id="SP6_3_9" class="paragraph-anchor"></a><b>&#167;6.3.9. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Inline command "weak-kind"</span><span class="named-paragraph-number">6.3.9</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -1019,7 +1031,7 @@ proposition.
<span class="plain-syntax"> </span><span class="identifier-syntax">ist</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">owner</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">parent_schema</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">converted_from</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"I don't know any kind called '%4'."</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-cii.html#SP6_3_1">&#167;6.3.1</a>, <a href="5-cii.html#SP6_3_3">&#167;6.3.3</a>, <a href="5-cii.html#SP6_3_4">&#167;6.3.4</a>, <a href="5-cii.html#SP6_3_5">&#167;6.3.5</a>, <a href="5-cii.html#SP6_3_6">&#167;6.3.6</a>, <a href="5-cii.html#SP6_3_7">&#167;6.3.7</a>, <a href="5-cii.html#SP6_3_8">&#167;6.3.8</a>, <a href="5-cii.html#SP6_6_8">&#167;6.6.8</a>.</li></ul>
<ul class="endnotetexts"><li>This code is used in <a href="5-cii.html#SP6_3_1">&#167;6.3.1</a>, <a href="5-cii.html#SP6_3_3">&#167;6.3.3</a>, <a href="5-cii.html#SP6_3_4">&#167;6.3.4</a>, <a href="5-cii.html#SP6_3_5">&#167;6.3.5</a>, <a href="5-cii.html#SP6_3_6">&#167;6.3.6</a>, <a href="5-cii.html#SP6_3_7">&#167;6.3.7</a>, <a href="5-cii.html#SP6_3_8">&#167;6.3.8</a>, <a href="5-cii.html#SP6_3_9">&#167;6.3.9</a>, <a href="5-cii.html#SP6_6_8">&#167;6.6.8</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP6_4" class="paragraph-anchor"></a><b>&#167;6.4. Typographic commands. </b>These rather clumsy commands are a residue from earlier forms of the markup
language, really. <span class="extract"><span class="extract-syntax">{-open-brace}</span></span> and <span class="extract"><span class="extract-syntax">{-close-brace}</span></span> are handled for us
elsewhere, so we need do nothing. The other two have actually been withdrawn.
@ -1689,7 +1701,7 @@ result would be the same without the optimisation.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">)) </span><span class="named-paragraph-container code-font"><a href="5-cii.html#SP6_6_8_2" class="named-paragraph-link"><span class="named-paragraph">Inline say number</span><span class="named-paragraph-number">6.6.8.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">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_unicode_character</span><span class="plain-syntax">)) </span><span class="named-paragraph-container code-font"><a href="5-cii.html#SP6_6_8_3" class="named-paragraph-link"><span class="named-paragraph">Inline say unicode character</span><span class="named-paragraph-number">6.6.8.3</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">K</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::call</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTKindConstructors::get_iname</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">EmitCode::call</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTKindConstructors::printing_fn_iname</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">EmitCode::down</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-cv.html#SP5" class="function-link"><span class="function-syntax">CompileValues::to_code_val_of_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">to_say</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">EmitCode::up</span><span class="plain-syntax">();</span>
@ -1715,7 +1727,7 @@ result would be the same without the optimisation.
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::up</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">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Specifications::to_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">to_say</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::call</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTKindConstructors::get_iname</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">EmitCode::call</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTKindConstructors::printing_fn_iname</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">EmitCode::down</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-cv.html#SP5" class="function-link"><span class="function-syntax">CompileValues::to_code_val_of_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">to_say</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">EmitCode::up</span><span class="plain-syntax">();</span>
@ -2077,7 +2089,7 @@ which would safely abandon any attempt to define a value like this:
<span class="plain-syntax"> (- </span><span class="identifier-syntax">return</span><span class="plain-syntax"> {-</span><span class="identifier-syntax">new</span><span class="plain-syntax">:</span><span class="identifier-syntax">return</span><span class="plain-syntax">-</span><span class="identifier-syntax">kind</span><span class="plain-syntax">}; -).</span>
</pre>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="function-syntax">CSIInline::parse_bracing_operand_as_kind</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">CSIInline::parse_bracing_operand_as_kind</span></span>:<br/><a href="5-cii.html#SP6_3_1">&#167;6.3.1</a>, <a href="5-cii.html#SP6_3_2">&#167;6.3.2</a>, <a href="5-cii.html#SP6_3_3">&#167;6.3.3</a>, <a href="5-cii.html#SP6_3_4">&#167;6.3.4</a>, <a href="5-cii.html#SP6_3_5">&#167;6.3.5</a>, <a href="5-cii.html#SP6_3_6">&#167;6.3.6</a>, <a href="5-cii.html#SP6_3_7">&#167;6.3.7</a>, <a href="5-cii.html#SP6_3_8">&#167;6.3.8</a>, <a href="5-cii.html#SP6_6_1_1_1">&#167;6.6.1.1.1</a>, <a href="5-cii.html#SP6_6_3">&#167;6.6.3</a>, <a href="5-cii.html#SP6_6_8">&#167;6.6.8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">operand</span><span class="plain-syntax">,</span>
<span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="function-syntax">CSIInline::parse_bracing_operand_as_kind</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">CSIInline::parse_bracing_operand_as_kind</span></span>:<br/><a href="5-cii.html#SP6_3_1">&#167;6.3.1</a>, <a href="5-cii.html#SP6_3_2">&#167;6.3.2</a>, <a href="5-cii.html#SP6_3_3">&#167;6.3.3</a>, <a href="5-cii.html#SP6_3_4">&#167;6.3.4</a>, <a href="5-cii.html#SP6_3_5">&#167;6.3.5</a>, <a href="5-cii.html#SP6_3_6">&#167;6.3.6</a>, <a href="5-cii.html#SP6_3_7">&#167;6.3.7</a>, <a href="5-cii.html#SP6_3_8">&#167;6.3.8</a>, <a href="5-cii.html#SP6_3_9">&#167;6.3.9</a>, <a href="5-cii.html#SP6_6_1_1_1">&#167;6.6.1.1.1</a>, <a href="5-cii.html#SP6_6_3">&#167;6.6.3</a>, <a href="5-cii.html#SP6_6_8">&#167;6.6.8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">operand</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">kind_variable_declaration</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kvd</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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">operand</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"return-kind"</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-sf.html#SP7" class="function-link"><span class="function-syntax">Frames::get_kind_returned</span></a><span class="plain-syntax">();</span>
@ -2292,7 +2304,7 @@ representation. This is the functionality I would most like to remove from Infor
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::val_number</span><span class="plain-syntax">(1);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::up</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">EmitCode::call</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTKindConstructors::get_iname</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">EmitCode::call</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTKindConstructors::printing_fn_iname</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">EmitCode::down</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-cv.html#SP5" class="function-link"><span class="function-syntax">CompileValues::to_code_val</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::up</span><span class="plain-syntax">();</span>

View file

@ -179,8 +179,7 @@ order, then sorted.
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_INVENTORY_PACKAGES</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">kind_nodes</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">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_base"</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_subkind_of_object"</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">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_subkind_of_object"</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">index_lexicon_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lex</span><span class="plain-syntax"> = </span><a href="2-lxc.html#SP4" class="function-link"><span class="function-syntax">IndexLexicon::new_entry</span></a><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Metadata::required_textual</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^name"</span><span class="plain-syntax">), </span><span class="constant-syntax">COMMON_NOUN_TLEXE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">lex</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">link_to</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">int</span><span class="plain-syntax">) </span><span class="identifier-syntax">Metadata::read_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^at"</span><span class="plain-syntax">);</span>

View file

@ -102,8 +102,7 @@ higher up, but kinds with priority 0 do not appear in the index at all.
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">priority</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">; </span><span class="identifier-syntax">priority</span><span class="plain-syntax"> &lt;= </span><span class="constant-syntax">LOWEST_INDEX_PRIORITY</span><span class="plain-syntax">; </span><span class="identifier-syntax">priority</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_INVENTORY_PACKAGES</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">kind_nodes</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">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_base"</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_subkind_of_object"</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_subkind_of_object"</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">priority</span><span class="plain-syntax"> == (</span><span class="reserved-syntax">int</span><span class="plain-syntax">) </span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^index_priority"</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">priority</span><span class="plain-syntax"> == </span><span class="constant-syntax">8</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_definite"</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-ce2.html#SP1_1_2" class="named-paragraph-link"><span class="named-paragraph">Index this kind package</span><span class="named-paragraph-number">1.1.2</span></a></span><span class="plain-syntax">;</span>
@ -416,8 +415,7 @@ whole row.
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">depth</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">pass</span><span class="plain-syntax">, </span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">subkind_pack</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_INVENTORY_PACKAGES</span><span class="plain-syntax">(</span><span class="identifier-syntax">subkind_pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">kind_nodes</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">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">subkind_pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_base"</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">subkind_pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_subkind_of_object"</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">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">subkind_pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_subkind_of_object"</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">super_weak</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::optional_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">subkind_pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^superkind"</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">super_weak</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">InterPackage::container</span><span class="plain-syntax">(</span><span class="identifier-syntax">super_weak</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">definition</span><span class="plain-syntax">) == </span><span class="identifier-syntax">pack</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><a href="3-ce2.html#SP6" class="function-link"><span class="function-syntax">ChartElement::index_object_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">subkind_pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">depth</span><span class="plain-syntax">, </span><span class="identifier-syntax">pass</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>

View file

@ -78,6 +78,7 @@ which use this module:
<span class="definition-keyword">enum</span> <span class="constant-syntax">kind_constructor_comparison_schema_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">kind_constructor_casting_rule_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">kind_constructor_instance_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">kind_constructor_instance_rule_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">unit_sequence_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">star_invention_CLASS</span>
</pre>
@ -91,6 +92,7 @@ which use this module:
<span class="identifier-syntax">DECLARE_CLASS_ALLOCATED_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor_casting_rule</span><span class="plain-syntax">, </span><span class="constant-syntax">100</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS_ALLOCATED_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor_comparison_schema</span><span class="plain-syntax">, </span><span class="constant-syntax">100</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS_ALLOCATED_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor_instance</span><span class="plain-syntax">, </span><span class="constant-syntax">100</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS_ALLOCATED_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor_instance_rule</span><span class="plain-syntax">, </span><span class="constant-syntax">100</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS_ALLOCATED_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">unit_sequence</span><span class="plain-syntax">, </span><span class="constant-syntax">50</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">star_invention</span><span class="plain-syntax">)</span>
</pre>

View file

@ -339,7 +339,7 @@ addition.
<span class="Preform-function-syntax">&lt;k-kind-construction&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">internal</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">{</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">kind_constructor</span><span class="Preform-plain-syntax"> *</span><span class="Preform-identifier-syntax">con</span><span class="Preform-plain-syntax">;</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">LOOP_OVER</span><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">con</span><span class="Preform-plain-syntax">, </span><span class="Preform-reserved-syntax">kind_constructor</span><span class="Preform-plain-syntax">)</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">if</span><span class="Preform-plain-syntax"> (</span><a href="4-kc2.html#SP15" class="function-link"><span class="Preform-function-syntax">KindConstructors::arity</span></a><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">con</span><span class="Preform-plain-syntax">) &gt; </span><span class="Preform-constant-syntax">0</span><span class="Preform-plain-syntax">) {</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">if</span><span class="Preform-plain-syntax"> (</span><a href="4-kc2.html#SP16" class="function-link"><span class="Preform-function-syntax">KindConstructors::arity</span></a><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">con</span><span class="Preform-plain-syntax">) &gt; </span><span class="Preform-constant-syntax">0</span><span class="Preform-plain-syntax">) {</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">wording</span><span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">X</span><span class="Preform-plain-syntax"> = </span><span class="Preform-identifier-syntax">W</span><span class="Preform-plain-syntax">;</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">wording</span><span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">Y</span><span class="Preform-plain-syntax"> = </span><span class="Preform-identifier-syntax">EMPTY_WORDING</span><span class="Preform-plain-syntax">;</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">if</span><span class="Preform-plain-syntax"> (</span><a href="2-dk.html#SP14" class="function-link"><span class="Preform-function-syntax">Kinds::Textual::parse_constructor_name</span></a><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">con</span><span class="Preform-plain-syntax">, &amp;</span><span class="Preform-identifier-syntax">X</span><span class="Preform-plain-syntax">, &amp;</span><span class="Preform-identifier-syntax">Y</span><span class="Preform-plain-syntax">))</span>
@ -368,19 +368,19 @@ unspecified because a short form of the constructor is used (e.g.,
<span class="plain-syntax"> </span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">KX</span><span class="plain-syntax"> = </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, *</span><span class="identifier-syntax">KY</span><span class="plain-syntax"> = </span><span class="identifier-syntax">K_value</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">con</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">variance</span><span class="plain-syntax">[0] == </span><span class="constant-syntax">CONTRAVARIANT</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">KX</span><span class="plain-syntax"> = </span><span class="identifier-syntax">K_nil</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="4-kc2.html#SP15" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">) == </span><span class="constant-syntax">2</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">con</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">variance</span><span class="plain-syntax">[1] == </span><span class="constant-syntax">CONTRAVARIANT</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">) == </span><span class="constant-syntax">2</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">con</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">variance</span><span class="plain-syntax">[1] == </span><span class="constant-syntax">CONTRAVARIANT</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">KY</span><span class="plain-syntax"> = </span><span class="identifier-syntax">K_nil</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-dk.html#SP12_1_1" class="named-paragraph-link"><span class="named-paragraph">The rule and rulebook constructors default to actions for X</span><span class="named-paragraph-number">12.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">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">X</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">tupling</span><span class="plain-syntax"> = </span><a href="4-kc2.html#SP15" class="function-link"><span class="function-syntax">KindConstructors::tupling</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">tupling</span><span class="plain-syntax"> = </span><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::tupling</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</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">tupling</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) &amp;&amp; (</span><span class="function-syntax">&lt;k-single-term&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">X</span><span class="plain-syntax">))) </span><span class="identifier-syntax">KX</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;rp&gt;&gt;</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">tupling</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) &amp;&amp; (</span><span class="function-syntax">&lt;k-optional-term&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">X</span><span class="plain-syntax">))) </span><span class="identifier-syntax">KX</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;rp&gt;&gt;</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">tupling</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">2</span><span class="plain-syntax">) &amp;&amp; (</span><span class="function-syntax">&lt;k-tupled-term&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">X</span><span class="plain-syntax">))) </span><span class="identifier-syntax">KX</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;rp&gt;&gt;</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">KX</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</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">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">Y</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">tupling</span><span class="plain-syntax"> = </span><a href="4-kc2.html#SP15" class="function-link"><span class="function-syntax">KindConstructors::tupling</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">tupling</span><span class="plain-syntax"> = </span><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::tupling</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</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">tupling</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) &amp;&amp; (</span><span class="function-syntax">&lt;k-single-term&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">Y</span><span class="plain-syntax">))) </span><span class="identifier-syntax">KY</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;rp&gt;&gt;</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">tupling</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) &amp;&amp; (</span><span class="function-syntax">&lt;k-optional-term&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">Y</span><span class="plain-syntax">))) </span><span class="identifier-syntax">KY</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;rp&gt;&gt;</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">tupling</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">2</span><span class="plain-syntax">) &amp;&amp; (</span><span class="function-syntax">&lt;k-tupled-term&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">Y</span><span class="plain-syntax">))) </span><span class="identifier-syntax">KY</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;rp&gt;&gt;</span><span class="plain-syntax">;</span>
@ -388,10 +388,10 @@ unspecified because a short form of the constructor is used (e.g.,
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-dk.html#SP12_1_2" class="named-paragraph-link"><span class="named-paragraph">The relation constructor defaults to Y matching X, if X is specified</span><span class="named-paragraph-number">12.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><a href="4-kc2.html#SP15" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">) == </span><span class="constant-syntax">1</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">KX</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">) == </span><span class="constant-syntax">1</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">KX</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> ==&gt; { -, </span><a href="2-knd.html#SP6_3" class="function-link"><span class="function-syntax">Kinds::unary_con</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">, </span><span class="identifier-syntax">KX</span><span class="plain-syntax">) }; </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</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><a href="4-kc2.html#SP15" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">) == </span><span class="constant-syntax">2</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">KX</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">KY</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">) == </span><span class="constant-syntax">2</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">KX</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">KY</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> ==&gt; { -, </span><a href="2-knd.html#SP6_3" class="function-link"><span class="function-syntax">Kinds::binary_con</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">, </span><span class="identifier-syntax">KX</span><span class="plain-syntax">, </span><span class="identifier-syntax">KY</span><span class="plain-syntax">) }; </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
</pre>
@ -474,7 +474,7 @@ and returns <span class="extract"><span class="extract-syntax">TRUE</span></span
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::Textual::parse_constructor_name</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">Kinds::Textual::parse_constructor_name</span></span>:<br/><a href="2-dk.html#SP12">&#167;12</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> *</span><span class="identifier-syntax">KW</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LW</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = *</span><span class="identifier-syntax">KW</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">p</span><span class="plain-syntax">=1; </span><span class="identifier-syntax">p</span><span class="plain-syntax">&lt;=2; </span><span class="identifier-syntax">p</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">NW</span><span class="plain-syntax"> = </span><a href="4-kc2.html#SP10" class="function-link"><span class="function-syntax">KindConstructors::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">, (</span><span class="identifier-syntax">p</span><span class="plain-syntax">==1)?</span><span class="identifier-syntax">FALSE:TRUE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">NW</span><span class="plain-syntax"> = </span><a href="4-kc2.html#SP11" class="function-link"><span class="function-syntax">KindConstructors::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">, (</span><span class="identifier-syntax">p</span><span class="plain-syntax">==1)?</span><span class="identifier-syntax">FALSE: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">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">NW</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">full_length</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Wordings::length</span><span class="plain-syntax">(</span><span class="identifier-syntax">NW</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">NW</span><span class="plain-syntax">);</span>
@ -799,7 +799,7 @@ to miss out on this detail.
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">first_base</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, *</span><span class="identifier-syntax">second_base</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><a href="4-kc2.html#SP15" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</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><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</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">first_base</span><span class="plain-syntax"> = </span><a href="2-knd.html#SP14" class="function-link"><span class="function-syntax">Kinds::unary_construction_material</span></a><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">else</span>
<span class="plain-syntax"> </span><a href="2-knd.html#SP15" class="function-link"><span class="function-syntax">Kinds::binary_construction_material</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">first_base</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">second_base</span><span class="plain-syntax">);</span>
@ -846,7 +846,7 @@ usage.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">con</span><span class="plain-syntax"> == </span><span class="identifier-syntax">CON_property</span><span class="plain-syntax">) &amp;&amp; (</span><a href="2-knd.html#SP24" class="function-link"><span class="function-syntax">Kinds::eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">first_base</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">))) </span><span class="identifier-syntax">k_present</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">con</span><span class="plain-syntax"> == </span><span class="identifier-syntax">CON_table_column</span><span class="plain-syntax">) &amp;&amp; (</span><a href="2-knd.html#SP24" class="function-link"><span class="function-syntax">Kinds::eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">first_base</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">))) </span><span class="identifier-syntax">k_present</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">con</span><span class="plain-syntax"> == </span><span class="identifier-syntax">CON_relation</span><span class="plain-syntax">) &amp;&amp; (</span><a href="2-knd.html#SP24" class="function-link"><span class="function-syntax">Kinds::eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">first_base</span><span class="plain-syntax">, </span><span class="identifier-syntax">second_base</span><span class="plain-syntax">))) </span><span class="identifier-syntax">l_present</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><a href="4-kc2.html#SP15" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">) == </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><span class="identifier-syntax">l_present</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><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">) == </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><span class="identifier-syntax">l_present</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">if</span><span class="plain-syntax"> (</span><a href="2-knd.html#SP24" class="function-link"><span class="function-syntax">Kinds::eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">second_base</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_nil</span><span class="plain-syntax">)) </span><span class="identifier-syntax">l_present</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">if</span><span class="plain-syntax"> (</span><a href="2-knd.html#SP24" class="function-link"><span class="function-syntax">Kinds::eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">second_base</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_void</span><span class="plain-syntax">)) </span><span class="identifier-syntax">l_present</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">choice_from</span><span class="plain-syntax">[</span><span class="identifier-syntax">k_present</span><span class="plain-syntax">][</span><span class="identifier-syntax">l_present</span><span class="plain-syntax">] == -1) {</span>
@ -913,7 +913,7 @@ usage.
<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><span class="identifier-syntax">K_nil</span><span class="plain-syntax">) { </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"nothing"</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">K</span><span class="plain-syntax"> == </span><span class="identifier-syntax">K_void</span><span class="plain-syntax">) { </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"nothing"</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">pluralised</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">tupled</span><span class="plain-syntax"> = </span><a href="4-kc2.html#SP15" class="function-link"><span class="function-syntax">KindConstructors::tupling</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">, </span><span class="identifier-syntax">b</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">tupled</span><span class="plain-syntax"> = </span><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::tupling</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">, </span><span class="identifier-syntax">b</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">bracketed</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">tupled</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">1</span><span class="plain-syntax">) &amp;&amp; (</span><a href="2-knd.html#SP11" class="function-link"><span class="function-syntax">Kinds::get_construct</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">CON_TUPLE_ENTRY</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">first_base</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, *</span><span class="identifier-syntax">second_base</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>

View file

@ -242,7 +242,7 @@ it is. There is no need for speed here.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">sn</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">Str::eq_narrow_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">sn</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_of_I6_name</span><span class="plain-syntax">))) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">what_have_you</span><span class="plain-syntax">;</span>
</pre>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> **</span><span class="function-syntax">FamiliarKinds::known_con</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">FamiliarKinds::known_con</span></span>:<br/>Kind Constructors - <a href="4-kc2.html#SP9">&#167;9</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sn</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> **</span><span class="function-syntax">FamiliarKinds::known_con</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">FamiliarKinds::known_con</span></span>:<br/>Kind Constructors - <a href="4-kc2.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sn</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">IDENTIFIERS_CORRESPOND</span><span class="plain-syntax">(</span><span class="string-syntax">"ACTIVITY_TY"</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">CON_activity</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">IDENTIFIERS_CORRESPOND</span><span class="plain-syntax">(</span><span class="string-syntax">"COMBINATION_TY"</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">CON_combination</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">IDENTIFIERS_CORRESPOND</span><span class="plain-syntax">(</span><span class="string-syntax">"DESCRIPTION_OF_TY"</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">CON_description</span><span class="plain-syntax">);</span>
@ -263,7 +263,7 @@ it is. There is no need for speed here.
<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">kind</span><span class="plain-syntax"> **</span><span class="function-syntax">FamiliarKinds::known_kind</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">FamiliarKinds::known_kind</span></span>:<br/>Kind Constructors - <a href="4-kc2.html#SP9">&#167;9</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sn</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">kind</span><span class="plain-syntax"> **</span><span class="function-syntax">FamiliarKinds::known_kind</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">FamiliarKinds::known_kind</span></span>:<br/>Kind Constructors - <a href="4-kc2.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sn</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">IDENTIFIERS_CORRESPOND</span><span class="plain-syntax">(</span><span class="string-syntax">"ARITHMETIC_VALUE_TY"</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">K_arithmetic_value</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">IDENTIFIERS_CORRESPOND</span><span class="plain-syntax">(</span><span class="string-syntax">"ENUMERATED_VALUE_TY"</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">K_enumerated_value</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">IDENTIFIERS_CORRESPOND</span><span class="plain-syntax">(</span><span class="string-syntax">"EQUATION_TY"</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">K_equation</span><span class="plain-syntax">);</span>
@ -318,7 +318,7 @@ but are indexed together.
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">FamiliarKinds::notice_new_kind</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">FamiliarKinds::notice_new_kind</span></span>:<br/>Kinds - <a href="2-knd.html#SP20">&#167;20</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;notable-linguistic-kinds&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><a href="4-kc2.html#SP14" class="function-link"><span class="function-syntax">KindConstructors::mark_as_linguistic</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-kc2.html#SP15" class="function-link"><span class="function-syntax">KindConstructors::mark_as_linguistic</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;&lt;r&gt;&gt;</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">: </span><span class="identifier-syntax">K_natural_language</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">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">NOTIFY_NATURAL_LANGUAGE_KINDS_CALLBACK</span>

View file

@ -174,17 +174,17 @@ we can then use that same pointer on all subsequent requests.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="function-syntax">Kinds::base_construction</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">Kinds::base_construction</span></span>:<br/><a href="2-knd.html#SP10">&#167;10</a>, <a href="2-knd.html#SP20">&#167;20</a><br/>Describing Kinds - <a href="2-dk.html#SP10">&#167;10</a><br/>Neptune Syntax - <a href="4-ns.html#SP5_2">&#167;5.2</a><br/>Star Templates - <a href="4-st.html#SP4">&#167;4</a><br/>Kind Commands - <a href="4-kc.html#SP1_4">&#167;1.4</a><br/>Kind Constructors - <a href="4-kc2.html#SP2">&#167;2</a>, <a href="4-kc2.html#SP9">&#167;9</a>, <a href="4-kc2.html#SP9_1">&#167;9.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="function-syntax">Kinds::base_construction</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">Kinds::base_construction</span></span>:<br/><a href="2-knd.html#SP10">&#167;10</a>, <a href="2-knd.html#SP20">&#167;20</a><br/>Describing Kinds - <a href="2-dk.html#SP10">&#167;10</a><br/>Neptune Syntax - <a href="4-ns.html#SP5_2">&#167;5.2</a><br/>Star Templates - <a href="4-st.html#SP4">&#167;4</a><br/>Kind Commands - <a href="4-kc.html#SP1_4">&#167;1.4</a><br/>Kind Constructors - <a href="4-kc2.html#SP2">&#167;2</a>, <a href="4-kc2.html#SP10">&#167;10</a>, <a href="4-kc2.html#SP10_1">&#167;10.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</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">con</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">"impossible construction"</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">con</span><span class="plain-syntax"> == </span><span class="identifier-syntax">CON_KIND_VARIABLE</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">con</span><span class="plain-syntax"> == </span><span class="identifier-syntax">CON_INTERMEDIATE</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"forbidden construction"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><a href="4-kc2.html#SP15" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</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">con</span><span class="plain-syntax"> == </span><span class="identifier-syntax">CON_list_of</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-knd.html#SP6_3" class="function-link"><span class="function-syntax">Kinds::unary_con</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</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="2-knd.html#SP6_3" class="function-link"><span class="function-syntax">Kinds::unary_con</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">2</span><span class="plain-syntax">: </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-knd.html#SP6_3" class="function-link"><span class="function-syntax">Kinds::binary_con</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">kind</span><span class="plain-syntax"> **</span><span class="identifier-syntax">cache</span><span class="plain-syntax"> = </span><a href="4-kc2.html#SP15" class="function-link"><span class="function-syntax">KindConstructors::cache_location</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">kind</span><span class="plain-syntax"> **</span><span class="identifier-syntax">cache</span><span class="plain-syntax"> = </span><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::cache_location</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</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">cache</span><span class="plain-syntax">) { </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (*</span><span class="identifier-syntax">cache</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cache</span><span class="plain-syntax">; }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-knd.html#SP6_4" class="named-paragraph-link"><span class="named-paragraph">Create a raw kind structure</span><span class="named-paragraph-number">6.4</span></a></span><span class="plain-syntax">;</span>
@ -247,7 +247,7 @@ practice wasted.
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="function-syntax">Kinds::unary_con</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">Kinds::unary_con</span></span>:<br/><a href="2-knd.html#SP6">&#167;6</a>, <a href="2-knd.html#SP17">&#167;17</a>, <a href="2-knd.html#SP18">&#167;18</a>, <a href="2-knd.html#SP19">&#167;19</a><br/>The Lattice of Kinds - <a href="2-tlok.html#SP7">&#167;7</a><br/>Describing Kinds - <a href="2-dk.html#SP11_10">&#167;11.10</a>, <a href="2-dk.html#SP12_1">&#167;12.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax">, </span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">X</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">kind</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">if</span><span class="plain-syntax"> (</span><a href="4-kc2.html#SP15" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">) != </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"bad unary construction"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">) != </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"bad unary construction"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-knd.html#SP6_4" class="named-paragraph-link"><span class="named-paragraph">Create a raw kind structure</span><span class="named-paragraph-number">6.4</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax"> = </span><span class="identifier-syntax">con</span><span class="plain-syntax">; </span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kc_args</span><span class="plain-syntax">[0] = </span><span class="identifier-syntax">X</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">no_constructed_kinds_created</span><span class="plain-syntax">++;</span>
@ -256,7 +256,7 @@ practice wasted.
<span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="function-syntax">Kinds::binary_con</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">Kinds::binary_con</span></span>:<br/><a href="2-knd.html#SP6">&#167;6</a>, <a href="2-knd.html#SP7">&#167;7</a>, <a href="2-knd.html#SP8">&#167;8</a>, <a href="2-knd.html#SP17">&#167;17</a>, <a href="2-knd.html#SP18">&#167;18</a>, <a href="2-knd.html#SP19">&#167;19</a><br/>The Lattice of Kinds - <a href="2-tlok.html#SP7">&#167;7</a><br/>Describing Kinds - <a href="2-dk.html#SP11_2">&#167;11.2</a>, <a href="2-dk.html#SP11_3">&#167;11.3</a>, <a href="2-dk.html#SP11_4">&#167;11.4</a>, <a href="2-dk.html#SP11_5">&#167;11.5</a>, <a href="2-dk.html#SP11_6">&#167;11.6</a>, <a href="2-dk.html#SP11_7">&#167;11.7</a>, <a href="2-dk.html#SP11_8">&#167;11.8</a>, <a href="2-dk.html#SP11_9">&#167;11.9</a>, <a href="2-dk.html#SP12_1">&#167;12.1</a>, <a href="2-dk.html#SP13">&#167;13</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax">, </span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">X</span><span class="plain-syntax">, </span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Y</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">kind</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">if</span><span class="plain-syntax"> (</span><a href="4-kc2.html#SP15" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">) != </span><span class="constant-syntax">2</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"bad binary construction"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">) != </span><span class="constant-syntax">2</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"bad binary construction"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-knd.html#SP6_4" class="named-paragraph-link"><span class="named-paragraph">Create a raw kind structure</span><span class="named-paragraph-number">6.4</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax"> = </span><span class="identifier-syntax">con</span><span class="plain-syntax">; </span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kc_args</span><span class="plain-syntax">[0] = </span><span class="identifier-syntax">X</span><span class="plain-syntax">; </span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kc_args</span><span class="plain-syntax">[1] = </span><span class="identifier-syntax">Y</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">no_constructed_kinds_created</span><span class="plain-syntax">++;</span>
@ -365,7 +365,7 @@ drawing up the index, and so on.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="function-syntax">Kinds::get_construct</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">Kinds::get_construct</span></span>:<br/><a href="2-knd.html#SP17">&#167;17</a>, <a href="2-knd.html#SP20">&#167;20</a><br/>The Lattice of Kinds - <a href="2-tlok.html#SP13_1">&#167;13.1</a><br/>Describing Kinds - <a href="2-dk.html#SP24">&#167;24</a>, <a href="2-dk.html#SP24_1">&#167;24.1</a>, <a href="2-dk.html#SP24_1_1">&#167;24.1.1</a>, <a href="2-dk.html#SP25">&#167;25</a><br/>Dimensions - <a href="3-dmn.html#SP11">&#167;11</a><br/>Neptune Syntax - <a href="4-ns.html#SP5_2">&#167;5.2</a><br/>Kind Constructors - <a href="4-kc2.html#SP9">&#167;9</a>, <a href="4-kc2.html#SP16">&#167;16</a>, <a href="4-kc2.html#SP21">&#167;21</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="function-syntax">Kinds::get_construct</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">Kinds::get_construct</span></span>:<br/><a href="2-knd.html#SP17">&#167;17</a>, <a href="2-knd.html#SP20">&#167;20</a><br/>The Lattice of Kinds - <a href="2-tlok.html#SP13_1">&#167;13.1</a><br/>Describing Kinds - <a href="2-dk.html#SP24">&#167;24</a>, <a href="2-dk.html#SP24_1">&#167;24.1</a>, <a href="2-dk.html#SP24_1_1">&#167;24.1.1</a>, <a href="2-dk.html#SP25">&#167;25</a><br/>Dimensions - <a href="3-dmn.html#SP11">&#167;11</a><br/>Neptune Syntax - <a href="4-ns.html#SP5_2">&#167;5.2</a><br/>Kind Constructors - <a href="4-kc2.html#SP10">&#167;10</a>, <a href="4-kc2.html#SP17">&#167;17</a>, <a href="4-kc2.html#SP23">&#167;23</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</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">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
@ -399,7 +399,7 @@ drawing up the index, and so on.
<span class="plain-syntax">}</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::arity_of_constructor</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">Kinds::arity_of_constructor</span></span>:<br/><a href="2-knd.html#SP14">&#167;14</a>, <a href="2-knd.html#SP15">&#167;15</a>, <a href="2-knd.html#SP17">&#167;17</a>, <a href="2-knd.html#SP18">&#167;18</a>, <a href="2-knd.html#SP19">&#167;19</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-kc2.html#SP15" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</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><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</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>
</pre>
@ -475,15 +475,15 @@ assuming that it was originally <span class="extract"><span class="extract-synta
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">a</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">X</span><span class="plain-syntax"> = </span><a href="2-knd.html#SP14" class="function-link"><span class="function-syntax">Kinds::unary_construction_material</span></a><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">X_after</span><span class="plain-syntax"> = </span><a href="2-knd.html#SP17" class="function-link"><span class="function-syntax">Kinds::substitute_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">X</span><span class="plain-syntax">, </span><span class="identifier-syntax">meanings</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">tx</span><span class="plain-syntax">, </span><span class="identifier-syntax">contra</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="4-kc2.html#SP15" class="function-link"><span class="function-syntax">KindConstructors::variance</span></a><span class="plain-syntax">(</span><a href="2-knd.html#SP11" class="function-link"><span class="function-syntax">Kinds::get_construct</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">), </span><span class="constant-syntax">0</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::variance</span></a><span class="plain-syntax">(</span><a href="2-knd.html#SP11" class="function-link"><span class="function-syntax">Kinds::get_construct</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</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">tx</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> *</span><span class="identifier-syntax">changed</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">return</span><span class="plain-syntax"> </span><a href="2-knd.html#SP6_3" class="function-link"><span class="function-syntax">Kinds::unary_con</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">, </span><span class="identifier-syntax">X_after</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><a href="2-knd.html#SP15" class="function-link"><span class="function-syntax">Kinds::binary_construction_material</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">X</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">Y</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">vx</span><span class="plain-syntax"> = </span><a href="4-kc2.html#SP15" class="function-link"><span class="function-syntax">KindConstructors::variance</span></a><span class="plain-syntax">(</span><a href="2-knd.html#SP11" class="function-link"><span class="function-syntax">Kinds::get_construct</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">vy</span><span class="plain-syntax"> = </span><a href="4-kc2.html#SP15" class="function-link"><span class="function-syntax">KindConstructors::variance</span></a><span class="plain-syntax">(</span><a href="2-knd.html#SP11" class="function-link"><span class="function-syntax">Kinds::get_construct</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">vx</span><span class="plain-syntax"> = </span><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::variance</span></a><span class="plain-syntax">(</span><a href="2-knd.html#SP11" class="function-link"><span class="function-syntax">Kinds::get_construct</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">vy</span><span class="plain-syntax"> = </span><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::variance</span></a><span class="plain-syntax">(</span><a href="2-knd.html#SP11" class="function-link"><span class="function-syntax">Kinds::get_construct</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</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><a href="2-knd.html#SP11" class="function-link"><span class="function-syntax">Kinds::get_construct</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">CON_TUPLE_ENTRY</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">vx</span><span class="plain-syntax"> = </span><span class="identifier-syntax">way_in</span><span class="plain-syntax">; </span><span class="identifier-syntax">vy</span><span class="plain-syntax"> = </span><span class="identifier-syntax">way_in</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
@ -564,7 +564,7 @@ is the super-kind ("value", "thing").
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><a href="2-knd.html#SP6" class="function-link"><span class="function-syntax">Kinds::base_construction</span></a><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><a href="4-kc2.html#SP9" class="function-link"><span class="function-syntax">KindConstructors::new</span></a><span class="plain-syntax">(</span><a href="2-knd.html#SP11" class="function-link"><span class="function-syntax">Kinds::get_construct</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">super</span><span class="plain-syntax">), </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"#NEW"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="4-kc2.html#SP10" class="function-link"><span class="function-syntax">KindConstructors::new</span></a><span class="plain-syntax">(</span><a href="2-knd.html#SP11" class="function-link"><span class="function-syntax">Kinds::get_construct</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">super</span><span class="plain-syntax">), </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"#NEW"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="constant-syntax">BASE_CONSTRUCTOR_GRP</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-knd.html#SP20_1" class="named-paragraph-link"><span class="named-paragraph">Use the source-text name to attach a noun to the constructor</span><span class="named-paragraph-number">20.1</span></a></span><span class="plain-syntax">;</span>
@ -594,7 +594,7 @@ is the super-kind ("value", "thing").
<span class="plain-syntax"> </span><span class="identifier-syntax">ADD_TO_LEXICON_NTOPT</span><span class="plain-syntax"> + </span><span class="identifier-syntax">WITH_PLURAL_FORMS_NTOPT</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="constant-syntax">KIND_SLOW_MC</span><span class="plain-syntax">, </span><span class="identifier-syntax">STORE_POINTER_kind_constructor</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</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">endif</span>
<span class="plain-syntax"> </span><a href="4-kc2.html#SP10" class="function-link"><span class="function-syntax">KindConstructors::attach_noun</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">, </span><span class="identifier-syntax">nt</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-kc2.html#SP11" class="function-link"><span class="function-syntax">KindConstructors::attach_noun</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">, </span><span class="identifier-syntax">nt</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-knd.html#SP20">&#167;20</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP21" class="paragraph-anchor"></a><b>&#167;21. Making subkinds. </b>This does not need to be done at creation time.

View file

@ -219,19 +219,19 @@ function is what tells us that the superkind of <span class="extract"><span clas
<span class="plain-syntax"> </span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HIERARCHY_GET_SUPER_KINDS_CALLBACK</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">S</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">S</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-kc2.html#SP20" class="function-link"><span class="function-syntax">KindConstructors::compatible</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_real_arithmetic_value</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</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><a href="4-kc2.html#SP22" class="function-link"><span class="function-syntax">KindConstructors::compatible</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_real_arithmetic_value</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</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">K_real_arithmetic_value</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-kc2.html#SP20" class="function-link"><span class="function-syntax">KindConstructors::compatible</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_enumerated_value</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</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><a href="4-kc2.html#SP22" class="function-link"><span class="function-syntax">KindConstructors::compatible</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_enumerated_value</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</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">K_enumerated_value</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-kc2.html#SP20" class="function-link"><span class="function-syntax">KindConstructors::compatible</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_arithmetic_value</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</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><a href="4-kc2.html#SP22" class="function-link"><span class="function-syntax">KindConstructors::compatible</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_arithmetic_value</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</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">K_arithmetic_value</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-kc2.html#SP20" class="function-link"><span class="function-syntax">KindConstructors::compatible</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_pointer_value</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</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><a href="4-kc2.html#SP22" class="function-link"><span class="function-syntax">KindConstructors::compatible</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_pointer_value</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</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">K_pointer_value</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-kc2.html#SP20" class="function-link"><span class="function-syntax">KindConstructors::compatible</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_understandable_value</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</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><a href="4-kc2.html#SP22" class="function-link"><span class="function-syntax">KindConstructors::compatible</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_understandable_value</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</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">K_understandable_value</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-kc2.html#SP20" class="function-link"><span class="function-syntax">KindConstructors::compatible</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_sayable_value</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</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><a href="4-kc2.html#SP22" class="function-link"><span class="function-syntax">KindConstructors::compatible</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_sayable_value</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</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">K_sayable_value</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-kc2.html#SP20" class="function-link"><span class="function-syntax">KindConstructors::compatible</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_stored_value</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</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><a href="4-kc2.html#SP22" class="function-link"><span class="function-syntax">KindConstructors::compatible</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_stored_value</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</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">K_stored_value</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">K_value</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
@ -266,8 +266,8 @@ such a list can't be constructed as data.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K1</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">K2</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">K2</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">K1</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax"> = </span><span class="identifier-syntax">K1</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">a1</span><span class="plain-syntax"> = </span><a href="4-kc2.html#SP15" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">a2</span><span class="plain-syntax"> = </span><a href="4-kc2.html#SP15" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K2</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">a1</span><span class="plain-syntax"> = </span><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">a2</span><span class="plain-syntax"> = </span><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K2</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</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">a1</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">a2</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">K2</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax"> != </span><span class="identifier-syntax">con</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ka</span><span class="plain-syntax">[</span><span class="constant-syntax">MAX_KIND_CONSTRUCTION_ARITY</span><span class="plain-syntax">] = { </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, };</span>
@ -508,8 +508,8 @@ and, of course, "value".
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">f_a</span><span class="plain-syntax"> = </span><a href="4-kc2.html#SP15" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">from</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">t_a</span><span class="plain-syntax"> = </span><a href="4-kc2.html#SP15" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">to</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">f_a</span><span class="plain-syntax"> = </span><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">from</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">t_a</span><span class="plain-syntax"> = </span><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">to</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">arity</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">f_a</span><span class="plain-syntax"> &lt; </span><span class="identifier-syntax">t_a</span><span class="plain-syntax">)?</span><span class="identifier-syntax">f_a:t_a</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">o</span><span class="plain-syntax"> = </span><span class="constant-syntax">ALWAYS_MATCH</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">from</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax"> != </span><span class="identifier-syntax">to</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">)</span>
@ -518,7 +518,7 @@ and, of course, "value".
<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">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">arity</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">if</span><span class="plain-syntax"> ((</span><a href="2-tlok.html#SP13_5" class="function-link"><span class="function-syntax">Latticework::vacuous</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">from</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kc_args</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">])) &amp;&amp; (</span><a href="2-tlok.html#SP13_5" class="function-link"><span class="function-syntax">Latticework::vacuous</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">to</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kc_args</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">continue</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-kc2.html#SP15" class="function-link"><span class="function-syntax">KindConstructors::variance</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">from</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">) == </span><span class="constant-syntax">COVARIANT</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::variance</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">from</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">) == </span><span class="constant-syntax">COVARIANT</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">this_o</span><span class="plain-syntax"> = </span><a href="2-tlok.html#SP13" class="function-link"><span class="function-syntax">Latticework::order_relation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">from</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kc_args</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">], </span><span class="identifier-syntax">to</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kc_args</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">], </span><span class="identifier-syntax">allow_casts</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">this_o</span><span class="plain-syntax"> = </span><a href="2-tlok.html#SP13" class="function-link"><span class="function-syntax">Latticework::order_relation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">to</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kc_args</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">], </span><span class="identifier-syntax">from</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kc_args</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">], </span><span class="identifier-syntax">allow_casts</span><span class="plain-syntax">);</span>
@ -549,7 +549,7 @@ and, of course, "value".
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-knd.html#SP24" class="function-link"><span class="function-syntax">Kinds::eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">to</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">ALWAYS_MATCH</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><a href="2-tlok.html#SP6" class="function-link"><span class="function-syntax">Latticework::super</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</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">allow_casts</span><span class="plain-syntax">) &amp;&amp; (</span><a href="4-kc2.html#SP18" class="function-link"><span class="function-syntax">KindConstructors::find_cast</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">from</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">, </span><span class="identifier-syntax">to</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</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">allow_casts</span><span class="plain-syntax">) &amp;&amp; (</span><a href="4-kc2.html#SP19" class="function-link"><span class="function-syntax">KindConstructors::find_cast</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">from</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">, </span><span class="identifier-syntax">to</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</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">ALWAYS_MATCH</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">to</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">K</span><span class="plain-syntax">) {</span>

View file

@ -73,20 +73,20 @@ MathJax = {
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../services.html">Services</a></li><li><a href="index.html">kinds</a></li><li><a href="index.html#2">Chapter 2: Kinds</a></li><li><b>Using Kinds</b></li></ul></div>
<p class="purpose">To determine the characteristics of different kinds, enabling them to be used in practice.</p>
<ul class="toc"><li><a href="2-uk.html#SP1">&#167;1. Names of kinds</a></li><li><a href="2-uk.html#SP2">&#167;2. Being an object</a></li><li><a href="2-uk.html#SP3">&#167;3. Definiteness</a></li><li><a href="2-uk.html#SP5">&#167;5. (A) How this came into being</a></li><li><a href="2-uk.html#SP12">&#167;12. (B) Constructing kinds</a></li><li><a href="2-uk.html#SP13">&#167;13. (C) Compatibility with other kinds</a></li><li><a href="2-uk.html#SP14">&#167;14. (D) How constant values of this kind are expressed</a></li><li><a href="2-uk.html#SP17">&#167;17. (G) Performing arithmetic</a></li><li><a href="2-uk.html#SP20">&#167;20. (H) An identifier name</a></li><li><a href="2-uk.html#SP21">&#167;21. (I) Storing values at run-time</a></li><li><a href="2-uk.html#SP26">&#167;26. (K) Indexing and documentation</a></li></ul><hr class="tocbar">
<ul class="toc"><li><a href="2-uk.html#SP1">&#167;1. Names of kinds</a></li><li><a href="2-uk.html#SP2">&#167;2. Being an object</a></li><li><a href="2-uk.html#SP3">&#167;3. Definiteness</a></li><li><a href="2-uk.html#SP5">&#167;5. (A) How this came into being</a></li><li><a href="2-uk.html#SP12">&#167;12. (B) Command parsing</a></li><li><a href="2-uk.html#SP13">&#167;13. (C) Compatibility with other kinds</a></li><li><a href="2-uk.html#SP14">&#167;14. (D) How constant values of this kind are expressed</a></li><li><a href="2-uk.html#SP17">&#167;17. (G) Performing arithmetic</a></li><li><a href="2-uk.html#SP20">&#167;20. (H) An identifier name</a></li><li><a href="2-uk.html#SP21">&#167;21. (I) Storing values at run-time</a></li><li><a href="2-uk.html#SP26">&#167;26. (K) Indexing and documentation</a></li></ul><hr class="tocbar">
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. Names of kinds. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::Behaviour::get_name</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">Kinds::Behaviour::get_name</span></span>:<br/>Describing Kinds - <a href="2-dk.html#SP24_2">&#167;24.2</a>, <a href="2-dk.html#SP24_3">&#167;24.3</a>, <a href="2-dk.html#SP26">&#167;26</a><br/>Dimensions - <a href="3-dmn.html#SP26">&#167;26</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">plural_form</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><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">EMPTY_WORDING</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-kc2.html#SP10" class="function-link"><span class="function-syntax">KindConstructors::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">, </span><span class="identifier-syntax">plural_form</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-kc2.html#SP11" class="function-link"><span class="function-syntax">KindConstructors::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">, </span><span class="identifier-syntax">plural_form</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">Kinds::Behaviour::get_name_in_play</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">plural_form</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">NATURAL_LANGUAGE_WORDS_TYPE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nl</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><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">EMPTY_WORDING</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-kc2.html#SP10" class="function-link"><span class="function-syntax">KindConstructors::get_name_in_play</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">, </span><span class="identifier-syntax">plural_form</span><span class="plain-syntax">, </span><span class="identifier-syntax">nl</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-kc2.html#SP11" class="function-link"><span class="function-syntax">KindConstructors::get_name_in_play</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">, </span><span class="identifier-syntax">plural_form</span><span class="plain-syntax">, </span><span class="identifier-syntax">nl</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="identifier-syntax">noun</span><span class="plain-syntax"> *</span><span class="function-syntax">Kinds::Behaviour::get_noun</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
@ -147,8 +147,8 @@ checks that we aren't doing that:
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::Behaviour::definite</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">Kinds::Behaviour::definite</span></span>:<br/>Star Templates - <a href="4-st.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</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">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::is_definite</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</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">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">arity</span><span class="plain-syntax"> = </span><a href="4-kc2.html#SP15" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-kc2.html#SP17" class="function-link"><span class="function-syntax">KindConstructors::is_definite</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</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">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">arity</span><span class="plain-syntax"> = </span><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">arity</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">if</span><span class="plain-syntax"> (</span><a href="2-uk.html#SP4" class="function-link"><span class="function-syntax">Kinds::Behaviour::definite</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kc_args</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</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>
@ -159,8 +159,8 @@ checks that we aren't doing that:
<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><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">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">K</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">construct</span><span class="plain-syntax"> == </span><span class="identifier-syntax">CON_KIND_VARIABLE</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</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">K</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">construct</span><span class="plain-syntax"> == </span><span class="identifier-syntax">CON_NIL</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><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::is_definite</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</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">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">arity</span><span class="plain-syntax"> = </span><a href="4-kc2.html#SP15" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-kc2.html#SP17" class="function-link"><span class="function-syntax">KindConstructors::is_definite</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</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">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">arity</span><span class="plain-syntax"> = </span><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</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">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax"> == </span><span class="identifier-syntax">CON_TUPLE_ENTRY</span><span class="plain-syntax">) &amp;&amp; (</span><a href="2-knd.html#SP24" class="function-link"><span class="function-syntax">Kinds::eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kc_args</span><span class="plain-syntax">[1], </span><span class="identifier-syntax">K_void</span><span class="plain-syntax">))) </span><span class="identifier-syntax">arity</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">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax"> == </span><span class="identifier-syntax">CON_phrase</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax"> == </span><span class="identifier-syntax">CON_activity</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">arity</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++)</span>
@ -179,7 +179,7 @@ checks that we aren't doing that:
<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><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">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">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax"> == </span><span class="identifier-syntax">CON_KIND_VARIABLE</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">v</span><span class="plain-syntax"> == </span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kind_variable_number</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">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">arity</span><span class="plain-syntax"> = </span><a href="4-kc2.html#SP15" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">arity</span><span class="plain-syntax"> = </span><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</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">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">arity</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">if</span><span class="plain-syntax"> (</span><a href="2-uk.html#SP4" class="function-link"><span class="function-syntax">Kinds::Behaviour::involves_var</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kc_args</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
@ -227,7 +227,7 @@ has been used, the matter is settled and there is no going back.
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::Behaviour::is_an_enumeration</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">Kinds::Behaviour::is_an_enumeration</span></span>:<br/><a href="2-uk.html#SP14">&#167;14</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</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">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::is_an_enumeration</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-kc2.html#SP17" class="function-link"><span class="function-syntax">KindConstructors::is_an_enumeration</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>&#167;8. </b>And here we perform the conversion to a unit. The return value is <span class="extract"><span class="extract-syntax">TRUE</span></span>
@ -238,7 +238,7 @@ if the kind was already a unit or was successfully converted into one,
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::Behaviour::convert_to_unit</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</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">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-kc2.html#SP12" class="function-link"><span class="function-syntax">KindConstructors::convert_to_unit</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-kc2.html#SP13" class="function-link"><span class="function-syntax">KindConstructors::convert_to_unit</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>&#167;9. </b>And similarly:
@ -246,7 +246,7 @@ if the kind was already a unit or was successfully converted into one,
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::Behaviour::convert_to_enumeration</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Kinds::Behaviour::convert_to_enumeration</span></span>:<br/><a href="2-uk.html#SP11">&#167;11</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax">) </span><a href="4-kc2.html#SP12" class="function-link"><span class="function-syntax">KindConstructors::convert_to_enumeration</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</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="4-kc2.html#SP13" class="function-link"><span class="function-syntax">KindConstructors::convert_to_enumeration</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</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. </b>And similarly to switch from integer to real arithmetic.
@ -254,7 +254,7 @@ if the kind was already a unit or was successfully converted into one,
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::Behaviour::convert_to_real</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax">) </span><a href="4-kc2.html#SP13" class="function-link"><span class="function-syntax">KindConstructors::convert_to_real</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</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="4-kc2.html#SP14" class="function-link"><span class="function-syntax">KindConstructors::convert_to_real</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>&#167;11. </b>The instances of an enumeration have the values \(1, 2, 3, ..., N\) at
@ -269,6 +269,24 @@ by the next instance to be created.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next_free_value</span><span class="plain-syntax">++;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>&#167;12. (B) Command parsing. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::Behaviour::is_understandable</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</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">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-kc2.html#SP17" class="function-link"><span class="function-syntax">KindConstructors::is_understandable</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</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">Kinds::Behaviour::GPR_identifier</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">explicit_GPR_identifier</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">Kinds::Behaviour::recognition_only_GPR_identifier</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">recognition_routine</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>&#167;13. (C) Compatibility with other kinds. </b></p>
<pre class="displayed-code all-displayed-code code-font">
@ -325,12 +343,12 @@ we have to.
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::Behaviour::uses_signed_comparisons</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</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">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-kc2.html#SP17" class="function-link"><span class="function-syntax">KindConstructors::uses_signed_comparisons</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-kc2.html#SP18" class="function-link"><span class="function-syntax">KindConstructors::uses_signed_comparisons</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</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">Kinds::Behaviour::get_comparison_routine</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</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">return</span><span class="plain-syntax"> </span><a href="4-kc2.html#SP17" class="function-link"><span class="function-syntax">KindConstructors::get_comparison_fn_identifier</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-kc2.html#SP18" class="function-link"><span class="function-syntax">KindConstructors::get_comparison_fn_identifier</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP18" class="paragraph-anchor"></a><b>&#167;18. </b>See "Dimensions.w" for a full account of these ideas. In theory, our
@ -343,7 +361,7 @@ track of dimensions, and the following routines connect the code in the
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::Behaviour::is_quasinumerical</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">Kinds::Behaviour::is_quasinumerical</span></span>:<br/>Dimensions - <a href="3-dmn.html#SP15">&#167;15</a>, <a href="3-dmn.html#SP28_3">&#167;28.3</a>, <a href="3-dmn.html#SP29">&#167;29</a>, <a href="3-dmn.html#SP30">&#167;30</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</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">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::is_arithmetic</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-kc2.html#SP17" class="function-link"><span class="function-syntax">KindConstructors::is_arithmetic</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">unit_sequence</span><span class="plain-syntax"> *</span><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</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">Kinds::Behaviour::get_dimensional_form</span></span>:<br/>Describing Kinds - <a href="2-dk.html#SP24_1">&#167;24.1</a><br/>Dimensions - <a href="3-dmn.html#SP23">&#167;23</a>, <a href="3-dmn.html#SP28_2">&#167;28.2</a>, <a href="3-dmn.html#SP28_3">&#167;28.3</a>, <a href="3-dmn.html#SP28_4">&#167;28.4</a>, <a href="3-dmn.html#SP29">&#167;29</a>, <a href="3-dmn.html#SP30">&#167;30</a>, <a href="3-dmn.html#SP31">&#167;31</a>, <a href="3-dmn.html#SP23_1">&#167;23.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
@ -387,6 +405,12 @@ operations can be applied, and if so, what kind the result has.
<p class="commentary firstcommentary"><a id="SP20" class="paragraph-anchor"></a><b>&#167;20. (H) An identifier name. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::Behaviour::comes_from_Neptune</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</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">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">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">explicit_identifier</span><span class="plain-syntax">) &gt; </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="identifier-syntax">TRUE</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="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">Kinds::Behaviour::get_identifier</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">Kinds::Behaviour::get_identifier</span></span>:<br/>Kinds - <a href="2-knd.html#SP20">&#167;20</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</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">"UNKNOWN_NT"</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">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">explicit_identifier</span><span class="plain-syntax">;</span>
@ -402,7 +426,7 @@ takes depends on its kind:
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::Behaviour::uses_block_values</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</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">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-kc2.html#SP21" class="function-link"><span class="function-syntax">KindConstructors::uses_block_values</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-kc2.html#SP23" class="function-link"><span class="function-syntax">KindConstructors::uses_block_values</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP22" class="paragraph-anchor"></a><b>&#167;22. </b>Exactly how large the small block is:

View file

@ -357,7 +357,7 @@ order of creation.
</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">Kinds::Dimensions::dim_initialise</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">Kinds::Dimensions::dim_initialise</span></span>:<br/>Kind Constructors - <a href="4-kc2.html#SP9_1">&#167;9.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">dimensional_rules</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dimrs</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::Dimensions::dim_initialise</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">Kinds::Dimensions::dim_initialise</span></span>:<br/>Kind Constructors - <a href="4-kc2.html#SP10_1">&#167;10.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">dimensional_rules</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dimrs</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">dimrs</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">multiplications</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
@ -478,7 +478,7 @@ derived and dimensionless, though, so that comes out as the empty sequence.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">unit_sequence</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::Dimensions::fundamental_unit_sequence</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Kinds::Dimensions::fundamental_unit_sequence</span></span>:<br/>Kind Constructors - <a href="4-kc2.html#SP9_1">&#167;9.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">B</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">unit_sequence</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::Dimensions::fundamental_unit_sequence</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Kinds::Dimensions::fundamental_unit_sequence</span></span>:<br/>Kind Constructors - <a href="4-kc2.html#SP10_1">&#167;10.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">B</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">unit_sequence</span><span class="plain-syntax"> </span><span class="identifier-syntax">us</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">B</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">us</span><span class="plain-syntax">.</span><span class="identifier-syntax">no_unit_pairs</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>

View file

@ -85,7 +85,7 @@ have integer equivalents.
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::FloatingPoint::uses_floating_point</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">Kinds::FloatingPoint::uses_floating_point</span></span>:<br/><a href="3-fv.html#SP5">&#167;5</a>, <a href="3-fv.html#SP6">&#167;6</a><br/>The Lattice of Kinds - <a href="2-tlok.html#SP7_2">&#167;7.2</a><br/>Dimensions - <a href="3-dmn.html#SP31_3">&#167;31.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</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">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::is_arithmetic_and_real</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-kc2.html#SP17" class="function-link"><span class="function-syntax">KindConstructors::is_arithmetic_and_real</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>&#167;3. </b>Inform's equations system has to handle promotion (from int to real) or

View file

@ -153,7 +153,7 @@ function togglePopup(material_id) {
<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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">tcc</span><span class="plain-syntax"> == </span><span class="constant-syntax">conforms_to_KCC</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">kind_constructor_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dti</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor_instance</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">kind_constructor_instance_rule</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dti</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor_instance_rule</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">dti</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next_instance_rule</span><span class="plain-syntax"> = </span><span class="identifier-syntax">con</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">first_instance_rule</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">con</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">first_instance_rule</span><span class="plain-syntax"> = </span><span class="identifier-syntax">dti</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">dti</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">instance_of_this_unparsed</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::duplicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">stc</span><span class="plain-syntax">.</span><span class="element-syntax">constructor_argument</span><span class="plain-syntax">);</span>
@ -169,6 +169,36 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">dtcs</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">comparison_schema</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::duplicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">stc</span><span class="plain-syntax">.</span><span class="element-syntax">textual_argument</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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">tcc</span><span class="plain-syntax"> == </span><span class="constant-syntax">instance_KCC</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">match_results</span><span class="plain-syntax"> </span><span class="identifier-syntax">mr</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Regexp::create_mr</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">Regexp::match</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">mr</span><span class="plain-syntax">, </span><span class="identifier-syntax">stc</span><span class="plain-syntax">.</span><span class="element-syntax">textual_argument</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">" *(%c+?) *= *(%C+) *= *(%C+) *"</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">kind_constructor_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kci</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor_instance</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">kci</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">natural_language_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::duplicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[0]);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">kci</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">identifier</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::duplicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[1]);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">bad</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">kci</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">value</span><span class="plain-syntax"> = </span><a href="4-kc.html#SP2" class="function-link"><span class="function-syntax">KindCommands::parse_literal_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[2], &amp;</span><span class="identifier-syntax">bad</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">kci</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">value_specified</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">bad</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="4-nf.html#SP2" class="function-link"><span class="function-syntax">NeptuneFiles::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">stc</span><span class="plain-syntax">.</span><span class="element-syntax">textual_argument</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="string-syntax">"value after the final '=' is not a valid Inform 6 literal"</span><span class="plain-syntax">, </span><span class="identifier-syntax">stc</span><span class="plain-syntax">.</span><span class="element-syntax">origin</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">kci</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">value</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">kci</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">value_specified</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</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">kci</span><span class="plain-syntax">, </span><span class="reserved-syntax">kind_constructor_instance</span><span class="plain-syntax">, </span><span class="identifier-syntax">con</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">instances</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">Regexp::match</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">mr</span><span class="plain-syntax">, </span><span class="identifier-syntax">stc</span><span class="plain-syntax">.</span><span class="element-syntax">textual_argument</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">" *(%c+?) *= *(%C+) *"</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">kind_constructor_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kci</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor_instance</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">kci</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">natural_language_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::duplicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[0]);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">kci</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">identifier</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::duplicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[1]);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">kci</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">value</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">kci</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">value_specified</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">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">kci</span><span class="plain-syntax">, </span><span class="reserved-syntax">kind_constructor_instance</span><span class="plain-syntax">, </span><span class="identifier-syntax">con</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">instances</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="4-nf.html#SP2" class="function-link"><span class="function-syntax">NeptuneFiles::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">stc</span><span class="plain-syntax">.</span><span class="element-syntax">textual_argument</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="string-syntax">"instance not in form NAME = IDENTIFIER = VALUE"</span><span class="plain-syntax">, </span><span class="identifier-syntax">stc</span><span class="plain-syntax">.</span><span class="element-syntax">origin</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Regexp::dispose_of</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">mr</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>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-kc.html#SP1">&#167;1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_4" class="paragraph-anchor"></a><b>&#167;1.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">And the rest fill in fields in the constructor structure in miscellaneous other ways</span><span class="named-paragraph-number">1.4</span></span><span class="comment-syntax"> =</span>
@ -265,6 +295,44 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">con</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">constructor_arity</span><span class="plain-syntax"> = </span><span class="identifier-syntax">c</span><span class="plain-syntax">+1;</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-kc.html#SP1_4">&#167;1.4</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. </b>This is used for parsing the values of enumeration members in <span class="extract"><span class="extract-syntax">instance</span></span>
commands:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindCommands::parse_literal_number</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">KindCommands::parse_literal_number</span></span>:<br/><a href="4-kc.html#SP1_3">&#167;1.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bad</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> *</span><span class="identifier-syntax">bad</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">sign</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="identifier-syntax">base</span><span class="plain-syntax"> = </span><span class="constant-syntax">10</span><span class="plain-syntax">, </span><span class="identifier-syntax">from</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">to</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</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">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">from</span><span class="plain-syntax">) == </span><span class="character-syntax">'('</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">to</span><span class="plain-syntax">) == </span><span class="character-syntax">')'</span><span class="plain-syntax">)) { </span><span class="identifier-syntax">from</span><span class="plain-syntax">++; </span><span class="identifier-syntax">to</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">Characters::is_whitespace</span><span class="plain-syntax">(</span><span class="identifier-syntax">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">from</span><span class="plain-syntax">))) </span><span class="identifier-syntax">from</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">Characters::is_whitespace</span><span class="plain-syntax">(</span><span class="identifier-syntax">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">to</span><span class="plain-syntax">))) </span><span class="identifier-syntax">to</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">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">from</span><span class="plain-syntax">) == </span><span class="character-syntax">'-'</span><span class="plain-syntax">) { </span><span class="identifier-syntax">sign</span><span class="plain-syntax"> = -1; </span><span class="identifier-syntax">from</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">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">from</span><span class="plain-syntax">) == </span><span class="character-syntax">'$'</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">from</span><span class="plain-syntax">++; </span><span class="identifier-syntax">base</span><span class="plain-syntax"> = </span><span class="constant-syntax">16</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">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">from</span><span class="plain-syntax">) == </span><span class="character-syntax">'$'</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">from</span><span class="plain-syntax">++; </span><span class="identifier-syntax">base</span><span class="plain-syntax"> = </span><span class="constant-syntax">2</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">long</span><span class="plain-syntax"> </span><span class="reserved-syntax">long</span><span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</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">LOOP_THROUGH_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">pos</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</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">pos</span><span class="plain-syntax">.</span><span class="identifier-syntax">index</span><span class="plain-syntax"> &lt; </span><span class="identifier-syntax">from</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">pos</span><span class="plain-syntax">.</span><span class="identifier-syntax">index</span><span class="plain-syntax"> &gt; </span><span class="identifier-syntax">to</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">pos</span><span class="plain-syntax">), </span><span class="identifier-syntax">d</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">c</span><span class="plain-syntax"> &gt;= </span><span class="character-syntax">'a'</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">c</span><span class="plain-syntax"> &lt;= </span><span class="character-syntax">'z'</span><span class="plain-syntax">)) </span><span class="identifier-syntax">d</span><span class="plain-syntax"> = </span><span class="identifier-syntax">c</span><span class="plain-syntax">-</span><span class="character-syntax">'a'</span><span class="plain-syntax">+10;</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">c</span><span class="plain-syntax"> &gt;= </span><span class="character-syntax">'A'</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">c</span><span class="plain-syntax"> &lt;= </span><span class="character-syntax">'Z'</span><span class="plain-syntax">)) </span><span class="identifier-syntax">d</span><span class="plain-syntax"> = </span><span class="identifier-syntax">c</span><span class="plain-syntax">-</span><span class="character-syntax">'A'</span><span class="plain-syntax">+10;</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">c</span><span class="plain-syntax"> &gt;= </span><span class="character-syntax">'0'</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">c</span><span class="plain-syntax"> &lt;= </span><span class="character-syntax">'9'</span><span class="plain-syntax">)) </span><span class="identifier-syntax">d</span><span class="plain-syntax"> = </span><span class="identifier-syntax">c</span><span class="plain-syntax">-</span><span class="character-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="identifier-syntax">bad</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</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"> &gt; </span><span class="identifier-syntax">base</span><span class="plain-syntax">) { *</span><span class="identifier-syntax">bad</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">; }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax"> = </span><span class="identifier-syntax">base</span><span class="plain-syntax">*</span><span class="identifier-syntax">N</span><span class="plain-syntax"> + (</span><span class="reserved-syntax">long</span><span class="plain-syntax"> </span><span class="reserved-syntax">long</span><span class="plain-syntax"> </span><span class="reserved-syntax">int</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">pos</span><span class="plain-syntax">.</span><span class="identifier-syntax">index</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">34</span><span class="plain-syntax">) { *</span><span class="identifier-syntax">bad</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</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">bad</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">N</span><span class="plain-syntax"> = </span><span class="identifier-syntax">sign</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="reserved-syntax">int</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">return</span><span class="plain-syntax"> -1;</span>
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="4-st.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-km.html">1</a></li><li class="progresschapter"><a href="2-knd.html">2</a></li><li class="progresschapter"><a href="3-dmn.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-abgtn.html">abgtn</a></li><li class="progresssection"><a href="4-nf.html">nf</a></li><li class="progresssection"><a href="4-ns.html">ns</a></li><li class="progresssection"><a href="4-mcr.html">mcr</a></li><li class="progresssection"><a href="4-st.html">st</a></li><li class="progresscurrent">kc</li><li class="progresssection"><a href="4-kc2.html">kc2</a></li><li class="progressnext"><a href="4-kc2.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->

View file

@ -59,7 +59,7 @@ function togglePopup(material_id) {
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../services.html">Services</a></li><li><a href="index.html">kinds</a></li><li><a href="index.html#4">Chapter 4: Constructors</a></li><li><b>Kind Constructors</b></li></ul></div>
<p class="purpose">The mechanism by which Inform records the characteristics of different kinds.</p>
<ul class="toc"><li><a href="4-kc2.html#SP9">&#167;9. Creation</a></li><li><a href="4-kc2.html#SP10">&#167;10. The noun</a></li><li><a href="4-kc2.html#SP12">&#167;12. Transformations</a></li><li><a href="4-kc2.html#SP15">&#167;15. For construction purposes</a></li><li><a href="4-kc2.html#SP16">&#167;16. Questions about constructors</a></li><li><a href="4-kc2.html#SP18">&#167;18. Cast and instance lists</a></li><li><a href="4-kc2.html#SP20">&#167;20. Compatibility</a></li></ul><hr class="tocbar">
<ul class="toc"><li><a href="4-kc2.html#SP10">&#167;10. Creation</a></li><li><a href="4-kc2.html#SP11">&#167;11. The noun</a></li><li><a href="4-kc2.html#SP13">&#167;13. Transformations</a></li><li><a href="4-kc2.html#SP16">&#167;16. For construction purposes</a></li><li><a href="4-kc2.html#SP17">&#167;17. Questions about constructors</a></li><li><a href="4-kc2.html#SP19">&#167;19. Cast and instance lists</a></li><li><a href="4-kc2.html#SP22">&#167;22. Compatibility</a></li></ul><hr class="tocbar">
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. </b>Constructors are divided into four groups:
</p>
@ -99,7 +99,7 @@ set by commands in Neptune files, others set by calls from Inform.
<span class="plain-syntax"> </span><span class="comment-syntax"> C: compatibility with other kinds</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">superkind_set_at</span><span class="plain-syntax">; </span><span class="comment-syntax"> where it says, e.g., "A rabbit is a kind of animal"</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">kind_constructor_casting_rule</span><span class="plain-syntax"> *</span><span class="identifier-syntax">first_casting_rule</span><span class="plain-syntax">; </span><span class="comment-syntax"> list of these</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">kind_constructor_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">first_instance_rule</span><span class="plain-syntax">; </span><span class="comment-syntax"> list of these</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">kind_constructor_instance_rule</span><span class="plain-syntax"> *</span><span class="identifier-syntax">first_instance_rule</span><span class="plain-syntax">; </span><span class="comment-syntax"> list of these</span>
<span class="plain-syntax"> </span><span class="comment-syntax"> D: how constant values of this kind are expressed</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">literal_pattern</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ways_to_write_literals</span><span class="plain-syntax">; </span><span class="comment-syntax"> list of ways to write this</span>
@ -137,6 +137,7 @@ set by commands in Neptune files, others set by calls from Inform.
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">distinguishing_routine</span><span class="plain-syntax">; </span><span class="comment-syntax"> Inter routine to see if values distinguishable</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">kind_constructor_comparison_schema</span><span class="plain-syntax"> *</span><span class="identifier-syntax">first_comparison_schema</span><span class="plain-syntax">; </span><span class="comment-syntax"> list of these</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">loop_domain_schema</span><span class="plain-syntax">; </span><span class="comment-syntax"> how to compile a loop over the instances</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">instances</span><span class="plain-syntax">; </span><span class="comment-syntax"> if enumerated explicitly in a Neptune file</span>
<span class="plain-syntax"> </span><span class="comment-syntax"> J: printing and parsing values at run-time</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">print_identifier</span><span class="plain-syntax">; </span><span class="comment-syntax"> an Inter identifier used for compiling printing rules</span>
@ -171,7 +172,18 @@ the following are also needed.
<span class="plain-syntax">} </span><span class="reserved-syntax">kind_constructor_casting_rule</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure kind_constructor_casting_rule is accessed in 4/kc and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>&#167;4. </b>And this is the analogous structure for giving Inter schemas to compare
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>&#167;4. </b>And this is the analogous structure for recording conformance:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">typedef</span><span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">kind_constructor_instance_rule</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">instance_of_this_unparsed</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">instance_of_this</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">kind_constructor_instance_rule</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next_instance_rule</span><span class="plain-syntax">;</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">kind_constructor_instance_rule</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure kind_constructor_instance_rule is accessed in 4/kc and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>&#167;5. </b>And this is the analogous structure for giving Inter schemas to compare
data of two different kinds:
</p>
@ -184,19 +196,19 @@ data of two different kinds:
<span class="plain-syntax">} </span><span class="reserved-syntax">kind_constructor_comparison_schema</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure kind_constructor_comparison_schema is accessed in 4/kc.</li></ul>
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>&#167;5. </b>And this is the analogous structure for giving Inter schemas to compare
data of two different kinds:
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>&#167;6. </b>And this is where explicit instances are recorded:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">typedef</span><span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">kind_constructor_instance</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">instance_of_this_unparsed</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">instance_of_this</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">kind_constructor_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next_instance_rule</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">natural_language_name</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">identifier</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">value</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">value_specified</span><span class="plain-syntax">;</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">kind_constructor_instance</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure kind_constructor_instance is accessed in 4/kc and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>&#167;6. </b>The "tupling" of an argument is the extent to which an argument can be
<ul class="endnotetexts"><li>The structure kind_constructor_instance is accessed in 4/kc.</li></ul>
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>&#167;7. </b>The "tupling" of an argument is the extent to which an argument can be
allowed to hold a variable-length list of kinds, rather than a single one.
There aren't actually many possibilities.
</p>
@ -205,7 +217,7 @@ There aren't actually many possibilities.
<span class="definition-keyword">define</span> <span class="constant-syntax">ALLOW_NOTHING_TUPLING</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax"> </span><span class="comment-syntax"> a single kind, or "nothing"</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">ARBITRARY_TUPLING</span><span class="plain-syntax"> </span><span class="constant-syntax">10000</span><span class="plain-syntax"> </span><span class="comment-syntax"> a list of kinds of any length</span>
</pre>
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>&#167;7. </b>Constant compilation modes are:
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>&#167;8. </b>Constant compilation modes are:
</p>
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">NONE_CCM</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax"> </span><span class="comment-syntax"> constant values of this kind cannot exist</span>
@ -213,14 +225,14 @@ There aren't actually many possibilities.
<span class="definition-keyword">define</span> <span class="constant-syntax">NAMED_CONSTANT_CCM</span><span class="plain-syntax"> </span><span class="constant-syntax">3</span><span class="plain-syntax"> </span><span class="comment-syntax"> an </span><span class="extract"><span class="extract-syntax">instance</span></span><span class="comment-syntax"> annotation decides the value</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">SPECIAL_CCM</span><span class="plain-syntax"> </span><span class="constant-syntax">4</span><span class="plain-syntax"> </span><span class="comment-syntax"> special code specific to the kind of value is needed</span>
</pre>
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>&#167;8. </b>We keep track of the newest-created base kind of value (which isn't a kind
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>&#167;9. </b>We keep track of the newest-created base kind of value (which isn't a kind
of object) here:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">latest_base_kind_of_value</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
</pre>
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>&#167;9. Creation. </b>Constructors come from two sources. Built-in ones like <span class="extract"><span class="extract-syntax">number</span></span> or
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>&#167;10. Creation. </b>Constructors come from two sources. Built-in ones like <span class="extract"><span class="extract-syntax">number</span></span> or
<span class="extract"><span class="extract-syntax">list of K</span></span> come from commands in <a href="4-nf.html" class="internal">Neptune Files</a>, while source-created
ones ("Air pressure is a kind of value") result in calls here from
<a href="2-knd.html#SP20" class="internal">Kinds::new_base</a> &mdash; which, as the name suggests, can only make
@ -251,8 +263,8 @@ then <span class="extract"><span class="extract-syntax">CON_VALUE</span></span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">pC</span><span class="plain-syntax">) *</span><span class="identifier-syntax">pC</span><span class="plain-syntax"> = </span><span class="identifier-syntax">con</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">copied</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">super</span><span class="plain-syntax"> == </span><a href="2-knd.html#SP11" class="function-link"><span class="function-syntax">Kinds::get_construct</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">)) </span><span class="named-paragraph-container code-font"><a href="4-kc2.html#SP9_1" class="named-paragraph-link"><span class="named-paragraph">Fill in a new constructor</span><span class="named-paragraph-number">9.1</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="4-kc2.html#SP9_2" class="named-paragraph-link"><span class="named-paragraph">Copy the new constructor from its superconstructor</span><span class="named-paragraph-number">9.2</span></a></span><span class="plain-syntax">; </span><span class="identifier-syntax">copied</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">super</span><span class="plain-syntax"> == </span><a href="2-knd.html#SP11" class="function-link"><span class="function-syntax">Kinds::get_construct</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">)) </span><span class="named-paragraph-container code-font"><a href="4-kc2.html#SP10_1" class="named-paragraph-link"><span class="named-paragraph">Fill in a new constructor</span><span class="named-paragraph-number">10.1</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="4-kc2.html#SP10_2" class="named-paragraph-link"><span class="named-paragraph">Copy the new constructor from its superconstructor</span><span class="named-paragraph-number">10.2</span></a></span><span class="plain-syntax">; </span><span class="identifier-syntax">copied</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">con</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">group</span><span class="plain-syntax"> = </span><span class="identifier-syntax">group</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">con</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">explicit_identifier</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::duplicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">source_name</span><span class="plain-syntax">);</span>
@ -267,14 +279,14 @@ then <span class="extract"><span class="extract-syntax">CON_VALUE</span></span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">con</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP9_1" class="paragraph-anchor"></a><b>&#167;9.1. </b>If our new constructor is wholly new, and isn't a subkind of something else,
<p class="commentary firstcommentary"><a id="SP10_1" class="paragraph-anchor"></a><b>&#167;10.1. </b>If our new constructor is wholly new, and isn't a subkind of something else,
we need to initialise the entire data structure; but note that, having done so,
we apply any defaults set in Neptune files.
</p>
<pre class="definitions code-font"><span class="definition-keyword">default</span> <span class="constant-syntax">LOWEST_INDEX_PRIORITY</span><span class="plain-syntax"> </span><span class="constant-syntax">100</span>
</pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Fill in a new constructor</span><span class="named-paragraph-number">9.1</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Fill in a new constructor</span><span class="named-paragraph-number">10.1</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -339,6 +351,7 @@ we apply any defaults set in Neptune files.
<span class="plain-syntax"> </span><span class="identifier-syntax">con</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">first_comparison_schema</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">con</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">distinguishing_routine</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">con</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">loop_domain_schema</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">con</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">instances</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor_instance</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="comment-syntax"> J: printing and parsing values at run-time</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">con</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">print_identifier</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::new</span><span class="plain-syntax">();</span>
@ -372,8 +385,8 @@ we apply any defaults set in Neptune files.
<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">initialisation_macro</span><span class="plain-syntax">) &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="4-mcr.html#SP2" class="function-link"><span class="function-syntax">NeptuneMacros::play_back</span></a><span class="plain-syntax">(</span><a href="4-mcr.html#SP1" class="function-link"><span class="function-syntax">NeptuneMacros::parse_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">initialisation_macro</span><span class="plain-syntax">), </span><span class="identifier-syntax">con</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-kc2.html#SP9">&#167;9</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP9_2" class="paragraph-anchor"></a><b>&#167;9.2. </b>However, if we create our constructor as a subkind, like so:
<ul class="endnotetexts"><li>This code is used in <a href="4-kc2.html#SP10">&#167;10</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP10_2" class="paragraph-anchor"></a><b>&#167;10.2. </b>However, if we create our constructor as a subkind, like so:
</p>
<blockquote>
@ -387,7 +400,7 @@ we apply any defaults set in Neptune files.
It means that all kinds of object share the same weak ID as "object".
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Copy the new constructor from its superconstructor</span><span class="named-paragraph-number">9.2</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Copy the new constructor from its superconstructor</span><span class="named-paragraph-number">10.2</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -401,8 +414,8 @@ It means that all kinds of object share the same weak ID as "object".
<span class="plain-syntax"> </span><span class="identifier-syntax">con</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">cached_kind</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="comment-syntax"> otherwise the superkind's cache is used by mistake</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">con</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">explicit_identifier</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::new</span><span class="plain-syntax">(); </span><span class="comment-syntax"> otherwise this will be called </span><span class="extract"><span class="extract-syntax">OBJECT_TY</span></span><span class="comment-syntax"> by mistake</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-kc2.html#SP9">&#167;9</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>&#167;10. The noun. </b>It's a requirement that the following be called soon after the creation
<ul class="endnotetexts"><li>This code is used in <a href="4-kc2.html#SP10">&#167;10</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>&#167;11. The noun. </b>It's a requirement that the following be called soon after the creation
of the constructor:
</p>
@ -438,12 +451,12 @@ of the constructor:
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">con</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">explicit_identifier</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>&#167;11. </b>We also need to parse this, occasionally (if we needed this more than a
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>&#167;12. </b>We also need to parse this, occasionally (if we needed this more than a
small and bounded number of times we'd want a faster method, but we don't):
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="function-syntax">KindConstructors::parse</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">KindConstructors::parse</span></span>:<br/><a href="4-kc2.html#SP18">&#167;18</a>, <a href="4-kc2.html#SP19">&#167;19</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sn</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="function-syntax">KindConstructors::parse</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">KindConstructors::parse</span></span>:<br/><a href="4-kc2.html#SP19">&#167;19</a>, <a href="4-kc2.html#SP20">&#167;20</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sn</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">sn</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">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</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">con</span><span class="plain-syntax">, </span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax">)</span>
@ -452,7 +465,7 @@ small and bounded number of times we'd want a faster method, but we don't):
<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>
</pre>
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>&#167;12. Transformations. </b>Conversions of an existing constructor to make it a unit or enumeration also
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>&#167;13. Transformations. </b>Conversions of an existing constructor to make it a unit or enumeration also
require running macros in the kind interpreter:
</p>
@ -462,7 +475,7 @@ require running macros in the kind interpreter:
<span class="plain-syntax"> </span><a href="4-mcr.html#SP2" class="function-link"><span class="function-syntax">NeptuneMacros::play_back</span></a><span class="plain-syntax">(</span><a href="4-mcr.html#SP1" class="function-link"><span class="function-syntax">NeptuneMacros::parse_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"#UNIT"</span><span class="plain-syntax">), </span><span class="identifier-syntax">con</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><span class="identifier-syntax">TRUE</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><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::is_arithmetic</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">; </span><span class="comment-syntax"> i.e., if it succeeded</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-kc2.html#SP17" class="function-link"><span class="function-syntax">KindConstructors::is_arithmetic</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">; </span><span class="comment-syntax"> i.e., if it succeeded</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>
@ -473,11 +486,11 @@ require running macros in the kind interpreter:
<span class="plain-syntax"> </span><a href="4-mcr.html#SP2" class="function-link"><span class="function-syntax">NeptuneMacros::play_back</span></a><span class="plain-syntax">(</span><a href="4-mcr.html#SP1" class="function-link"><span class="function-syntax">NeptuneMacros::parse_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"#LINGUISTIC"</span><span class="plain-syntax">), </span><span class="identifier-syntax">con</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><span class="identifier-syntax">TRUE</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><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::is_an_enumeration</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">; </span><span class="comment-syntax"> i.e., if it succeeded</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-kc2.html#SP17" class="function-link"><span class="function-syntax">KindConstructors::is_an_enumeration</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">; </span><span class="comment-syntax"> i.e., if it succeeded</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>
</pre>
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>&#167;13. </b>And similarly:
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>&#167;14. </b>And similarly:
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -485,7 +498,7 @@ require running macros in the kind interpreter:
<span class="plain-syntax"> </span><a href="4-mcr.html#SP2" class="function-link"><span class="function-syntax">NeptuneMacros::play_back</span></a><span class="plain-syntax">(</span><a href="4-mcr.html#SP1" class="function-link"><span class="function-syntax">NeptuneMacros::parse_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"#REAL"</span><span class="plain-syntax">), </span><span class="identifier-syntax">con</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>&#167;14. </b>A few base kinds are marked as "linguistic", which simply enables us to fence
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>&#167;15. </b>A few base kinds are marked as "linguistic", which simply enables us to fence
them tidily off in the index.
</p>
@ -494,7 +507,7 @@ them tidily off in the index.
<span class="plain-syntax"> </span><span class="identifier-syntax">con</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">linguistic</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>&#167;15. For construction purposes. </b></p>
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>&#167;16. For construction purposes. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">kind</span><span class="plain-syntax"> **</span><span class="function-syntax">KindConstructors::cache_location</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">KindConstructors::cache_location</span></span>:<br/>Kinds - <a href="2-knd.html#SP6">&#167;6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax">) {</span>
@ -515,13 +528,25 @@ them tidily off in the index.
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::variance</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">KindConstructors::variance</span></span>:<br/>Kinds - <a href="2-knd.html#SP17">&#167;17</a><br/>The Lattice of Kinds - <a href="2-tlok.html#SP13_4">&#167;13.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">b</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">con</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">variance</span><span class="plain-syntax">[</span><span class="identifier-syntax">b</span><span class="plain-syntax">];</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::is_base</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</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">con</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">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">con</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">group</span><span class="plain-syntax"> == </span><span class="constant-syntax">BASE_CONSTRUCTOR_GRP</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</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">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">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::is_proper_constructor</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</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">con</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">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">con</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">group</span><span class="plain-syntax"> == </span><span class="constant-syntax">PROPER_CONSTRUCTOR_GRP</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>&#167;16. Questions about constructors. </b>The rest of Inform is not encouraged to poke at constructors directly; it
<p class="commentary firstcommentary"><a id="SP17" class="paragraph-anchor"></a><b>&#167;17. Questions about constructors. </b>The rest of Inform is not encouraged to poke at constructors directly; it
ought to ask questions about kinds instead (see "Using Kinds"). However:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::is_definite</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">KindConstructors::is_definite</span></span>:<br/><a href="4-kc2.html#SP21">&#167;21</a><br/>Using Kinds - <a href="2-uk.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::is_definite</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">KindConstructors::is_definite</span></span>:<br/><a href="4-kc2.html#SP23">&#167;23</a><br/>Using Kinds - <a href="2-uk.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</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">con</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">group</span><span class="plain-syntax"> == </span><span class="constant-syntax">BASE_CONSTRUCTOR_GRP</span><span class="plain-syntax">) ||</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">con</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">group</span><span class="plain-syntax"> == </span><span class="constant-syntax">PROPER_CONSTRUCTOR_GRP</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">TRUE</span><span class="plain-syntax">;</span>
@ -530,69 +555,69 @@ ought to ask questions about kinds instead (see "Using Kinds"). However:
<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">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::offers_I6_GPR</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::is_understandable</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">KindConstructors::is_understandable</span></span>:<br/>Using Kinds - <a href="2-uk.html#SP12">&#167;12</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</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">con</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">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::is_definite</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="4-kc2.html#SP20" class="function-link"><span class="function-syntax">KindConstructors::compatible</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="4-kc2.html#SP17" class="function-link"><span class="function-syntax">KindConstructors::is_definite</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="4-kc2.html#SP22" class="function-link"><span class="function-syntax">KindConstructors::compatible</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="2-knd.html#SP11" class="function-link"><span class="function-syntax">Kinds::get_construct</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_understandable_value</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">TRUE</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">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::is_arithmetic</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">KindConstructors::is_arithmetic</span></span>:<br/><a href="4-kc2.html#SP12">&#167;12</a><br/>Using Kinds - <a href="2-uk.html#SP18">&#167;18</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::is_arithmetic</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">KindConstructors::is_arithmetic</span></span>:<br/><a href="4-kc2.html#SP13">&#167;13</a><br/>Using Kinds - <a href="2-uk.html#SP18">&#167;18</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</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">con</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">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::is_definite</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="4-kc2.html#SP20" class="function-link"><span class="function-syntax">KindConstructors::compatible</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="4-kc2.html#SP17" class="function-link"><span class="function-syntax">KindConstructors::is_definite</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="4-kc2.html#SP22" class="function-link"><span class="function-syntax">KindConstructors::compatible</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="2-knd.html#SP11" class="function-link"><span class="function-syntax">Kinds::get_construct</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_arithmetic_value</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">TRUE</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">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::is_arithmetic_and_real</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">KindConstructors::is_arithmetic_and_real</span></span>:<br/><a href="4-kc2.html#SP17">&#167;17</a><br/>Floating-Point Values - <a href="3-fv.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::is_arithmetic_and_real</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">KindConstructors::is_arithmetic_and_real</span></span>:<br/><a href="4-kc2.html#SP18">&#167;18</a><br/>Floating-Point Values - <a href="3-fv.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</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">con</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">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::is_definite</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="4-kc2.html#SP20" class="function-link"><span class="function-syntax">KindConstructors::compatible</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="4-kc2.html#SP17" class="function-link"><span class="function-syntax">KindConstructors::is_definite</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="4-kc2.html#SP22" class="function-link"><span class="function-syntax">KindConstructors::compatible</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="2-knd.html#SP11" class="function-link"><span class="function-syntax">Kinds::get_construct</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_real_arithmetic_value</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">TRUE</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">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::is_an_enumeration</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">KindConstructors::is_an_enumeration</span></span>:<br/><a href="4-kc2.html#SP12">&#167;12</a><br/>Using Kinds - <a href="2-uk.html#SP7">&#167;7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::is_an_enumeration</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">KindConstructors::is_an_enumeration</span></span>:<br/><a href="4-kc2.html#SP13">&#167;13</a><br/>Using Kinds - <a href="2-uk.html#SP7">&#167;7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</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">con</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">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::is_definite</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="4-kc2.html#SP20" class="function-link"><span class="function-syntax">KindConstructors::compatible</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="4-kc2.html#SP17" class="function-link"><span class="function-syntax">KindConstructors::is_definite</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="4-kc2.html#SP22" class="function-link"><span class="function-syntax">KindConstructors::compatible</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="2-knd.html#SP11" class="function-link"><span class="function-syntax">Kinds::get_construct</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_enumerated_value</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">TRUE</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>
</pre>
<p class="commentary firstcommentary"><a id="SP17" class="paragraph-anchor"></a><b>&#167;17. </b>All floating-point kinds use a common comparison function: the one for
<p class="commentary firstcommentary"><a id="SP18" class="paragraph-anchor"></a><b>&#167;18. </b>All floating-point kinds use a common comparison function: the one for
<span class="extract"><span class="extract-syntax">K_real_number</span></span>.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::uses_signed_comparisons</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">KindConstructors::uses_signed_comparisons</span></span>:<br/>Using Kinds - <a href="2-uk.html#SP17">&#167;17</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kc</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::uses_signed_comparisons</span><button class="popup" onclick="togglePopup('usagePopup19')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup19">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::uses_signed_comparisons</span></span>:<br/>Using Kinds - <a href="2-uk.html#SP17">&#167;17</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kc</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">kc</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">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">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">kc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">comparison_routine</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"signed"</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</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">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">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">KindConstructors::get_comparison_fn_identifier</span><button class="popup" onclick="togglePopup('usagePopup19')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup19">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::get_comparison_fn_identifier</span></span>:<br/>Using Kinds - <a href="2-uk.html#SP17">&#167;17</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kc</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">KindConstructors::get_comparison_fn_identifier</span><button class="popup" onclick="togglePopup('usagePopup20')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup20">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::get_comparison_fn_identifier</span></span>:<br/>Using Kinds - <a href="2-uk.html#SP17">&#167;17</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kc</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">kc</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><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::is_arithmetic_and_real</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kc</span><span class="plain-syntax">)) &amp;&amp; (</span><span class="identifier-syntax">K_real_number</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="4-kc2.html#SP17" class="function-link"><span class="function-syntax">KindConstructors::is_arithmetic_and_real</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kc</span><span class="plain-syntax">)) &amp;&amp; (</span><span class="identifier-syntax">K_real_number</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">K_real_number</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">comparison_routine</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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">kc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">comparison_routine</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"signed"</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><span class="identifier-syntax">kc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">comparison_routine</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP18" class="paragraph-anchor"></a><b>&#167;18. Cast and instance lists. </b>Each constructor has a list of other constructors (all of the <span class="extract"><span class="extract-syntax">PROTOCOL_GRP</span></span>
<p class="commentary firstcommentary"><a id="SP19" class="paragraph-anchor"></a><b>&#167;19. Cast and instance lists. </b>Each constructor has a list of other constructors (all of the <span class="extract"><span class="extract-syntax">PROTOCOL_GRP</span></span>
group) which it's an instance of: value, word value, arithmetic value, and so on.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::find_cast</span><button class="popup" onclick="togglePopup('usagePopup20')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup20">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::find_cast</span></span>:<br/><a href="4-kc2.html#SP20">&#167;20</a><br/>The Lattice of Kinds - <a href="2-tlok.html#SP13_6">&#167;13.6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::find_cast</span><button class="popup" onclick="togglePopup('usagePopup21')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup21">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::find_cast</span></span>:<br/><a href="4-kc2.html#SP22">&#167;22</a><br/>The Lattice of Kinds - <a href="2-tlok.html#SP13_6">&#167;13.6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to</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">to</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">kind_constructor_casting_rule</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dtcr</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">dtcr</span><span class="plain-syntax"> = </span><span class="identifier-syntax">to</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">first_casting_rule</span><span class="plain-syntax">; </span><span class="identifier-syntax">dtcr</span><span class="plain-syntax">; </span><span class="identifier-syntax">dtcr</span><span class="plain-syntax"> = </span><span class="identifier-syntax">dtcr</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next_casting_rule</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">dtcr</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">cast_from_kind_unparsed</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">dtcr</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">cast_from_kind</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><a href="4-kc2.html#SP11" class="function-link"><span class="function-syntax">KindConstructors::parse</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dtcr</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">cast_from_kind_unparsed</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-kc2.html#SP12" class="function-link"><span class="function-syntax">KindConstructors::parse</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dtcr</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">cast_from_kind_unparsed</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Str::clear</span><span class="plain-syntax">(</span><span class="identifier-syntax">dtcr</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">cast_from_kind_unparsed</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">from</span><span class="plain-syntax"> == </span><span class="identifier-syntax">dtcr</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">cast_from_kind</span><span class="plain-syntax">)</span>
@ -602,55 +627,65 @@ group) which it's an instance of: value, word value, arithmetic value, and so on
<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>
</pre>
<p class="commentary firstcommentary"><a id="SP19" class="paragraph-anchor"></a><b>&#167;19. </b>Each constructor has a list of other constructors (all of the <span class="extract"><span class="extract-syntax">BASE_CONSTRUCTOR_GRP</span></span>
<p class="commentary firstcommentary"><a id="SP20" class="paragraph-anchor"></a><b>&#167;20. </b>Each constructor has a list of other constructors (all of the <span class="extract"><span class="extract-syntax">BASE_CONSTRUCTOR_GRP</span></span>
group or <span class="extract"><span class="extract-syntax">PROPER_CONSTRUCTOR_GRP</span></span>) which it can cast to.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::find_instance</span><button class="popup" onclick="togglePopup('usagePopup21')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup21">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::find_instance</span></span>:<br/><a href="4-kc2.html#SP20">&#167;20</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">kind_constructor_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dti</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::find_instance</span><button class="popup" onclick="togglePopup('usagePopup22')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup22">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::find_instance</span></span>:<br/><a href="4-kc2.html#SP22">&#167;22</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">kind_constructor_instance_rule</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dti</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">dti</span><span class="plain-syntax"> = </span><span class="identifier-syntax">from</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">first_instance_rule</span><span class="plain-syntax">; </span><span class="identifier-syntax">dti</span><span class="plain-syntax">; </span><span class="identifier-syntax">dti</span><span class="plain-syntax"> = </span><span class="identifier-syntax">dti</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next_instance_rule</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">dti</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">instance_of_this_unparsed</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">dti</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">instance_of_this</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><a href="4-kc2.html#SP11" class="function-link"><span class="function-syntax">KindConstructors::parse</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dti</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">instance_of_this_unparsed</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-kc2.html#SP12" class="function-link"><span class="function-syntax">KindConstructors::parse</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dti</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">instance_of_this_unparsed</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Str::clear</span><span class="plain-syntax">(</span><span class="identifier-syntax">dti</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">instance_of_this_unparsed</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">dti</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">instance_of_this</span><span class="plain-syntax"> == </span><span class="identifier-syntax">to</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</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><a href="4-kc2.html#SP19" class="function-link"><span class="function-syntax">KindConstructors::find_instance</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dti</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">instance_of_this</span><span class="plain-syntax">, </span><span class="identifier-syntax">to</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</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><a href="4-kc2.html#SP20" class="function-link"><span class="function-syntax">KindConstructors::find_instance</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dti</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">instance_of_this</span><span class="plain-syntax">, </span><span class="identifier-syntax">to</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</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>
</pre>
<p class="commentary firstcommentary"><a id="SP20" class="paragraph-anchor"></a><b>&#167;20. Compatibility. </b>The following tests if <span class="extract"><span class="extract-syntax">from</span></span> is compatible with <span class="extract"><span class="extract-syntax">to</span></span>.
<p class="commentary firstcommentary"><a id="SP21" class="paragraph-anchor"></a><b>&#167;21. </b>Each constructor has a list of explicitly-named instances from the Neptune
file creating it (if any were: by default this will be empty):
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::compatible</span><button class="popup" onclick="togglePopup('usagePopup22')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup22">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::compatible</span></span>:<br/><a href="4-kc2.html#SP16">&#167;16</a>, <a href="4-kc2.html#SP21">&#167;21</a><br/>The Lattice of Kinds - <a href="2-tlok.html#SP6">&#167;6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to</span><span class="plain-syntax">,</span>
<span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="function-syntax">KindConstructors::instances</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kc</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">kc</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">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">kc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">instances</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP22" class="paragraph-anchor"></a><b>&#167;22. Compatibility. </b>The following tests if <span class="extract"><span class="extract-syntax">from</span></span> is compatible with <span class="extract"><span class="extract-syntax">to</span></span>.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::compatible</span><button class="popup" onclick="togglePopup('usagePopup23')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup23">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::compatible</span></span>:<br/><a href="4-kc2.html#SP17">&#167;17</a>, <a href="4-kc2.html#SP23">&#167;23</a><br/>The Lattice of Kinds - <a href="2-tlok.html#SP6">&#167;6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">allow_casts</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">to</span><span class="plain-syntax"> == </span><span class="identifier-syntax">from</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</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">to</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">from</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">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">allow_casts</span><span class="plain-syntax">) &amp;&amp; (</span><a href="4-kc2.html#SP18" class="function-link"><span class="function-syntax">KindConstructors::find_cast</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="identifier-syntax">to</span><span class="plain-syntax">))) </span><span class="reserved-syntax">return</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><a href="4-kc2.html#SP19" class="function-link"><span class="function-syntax">KindConstructors::find_instance</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="identifier-syntax">to</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</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">allow_casts</span><span class="plain-syntax">) &amp;&amp; (</span><a href="4-kc2.html#SP19" class="function-link"><span class="function-syntax">KindConstructors::find_cast</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="identifier-syntax">to</span><span class="plain-syntax">))) </span><span class="reserved-syntax">return</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><a href="4-kc2.html#SP20" class="function-link"><span class="function-syntax">KindConstructors::find_instance</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="identifier-syntax">to</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP21" class="paragraph-anchor"></a><b>&#167;21. </b>And more elaborately:
<p class="commentary firstcommentary"><a id="SP23" class="paragraph-anchor"></a><b>&#167;23. </b>And more elaborately:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::uses_block_values</span><button class="popup" onclick="togglePopup('usagePopup23')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup23">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::uses_block_values</span></span>:<br/>Using Kinds - <a href="2-uk.html#SP21">&#167;21</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::uses_block_values</span><button class="popup" onclick="togglePopup('usagePopup24')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup24">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::uses_block_values</span></span>:<br/>Using Kinds - <a href="2-uk.html#SP21">&#167;21</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</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">con</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">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::is_definite</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="4-kc2.html#SP20" class="function-link"><span class="function-syntax">KindConstructors::compatible</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">, </span><a href="2-knd.html#SP11" class="function-link"><span class="function-syntax">Kinds::get_construct</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_pointer_value</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><a href="4-kc2.html#SP17" class="function-link"><span class="function-syntax">KindConstructors::is_definite</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="4-kc2.html#SP22" class="function-link"><span class="function-syntax">KindConstructors::compatible</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">, </span><a href="2-knd.html#SP11" class="function-link"><span class="function-syntax">Kinds::get_construct</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_pointer_value</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">TRUE</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">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::allow_word_as_pointer</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">left</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">right</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-kc2.html#SP21" class="function-link"><span class="function-syntax">KindConstructors::uses_block_values</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">left</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">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-kc2.html#SP21" class="function-link"><span class="function-syntax">KindConstructors::uses_block_values</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">right</span><span class="plain-syntax">) == </span><span class="identifier-syntax">TRUE</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><a href="4-kc2.html#SP20" class="function-link"><span class="function-syntax">KindConstructors::compatible</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">right</span><span class="plain-syntax">, </span><span class="identifier-syntax">left</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</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><a href="4-kc2.html#SP23" class="function-link"><span class="function-syntax">KindConstructors::uses_block_values</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">left</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">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-kc2.html#SP23" class="function-link"><span class="function-syntax">KindConstructors::uses_block_values</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">right</span><span class="plain-syntax">) == </span><span class="identifier-syntax">TRUE</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><a href="4-kc2.html#SP22" class="function-link"><span class="function-syntax">KindConstructors::compatible</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">right</span><span class="plain-syntax">, </span><span class="identifier-syntax">left</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>

View file

@ -80,7 +80,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">tmd</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">kind_macro_definition</span><span class="plain-syntax"> *</span><span class="function-syntax">NeptuneMacros::parse_name</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">NeptuneMacros::parse_name</span></span>:<br/>Neptune Syntax - <a href="4-ns.html#SP5_12">&#167;5.12</a><br/>Kind Constructors - <a href="4-kc2.html#SP9_1">&#167;9.1</a>, <a href="4-kc2.html#SP12">&#167;12</a>, <a href="4-kc2.html#SP13">&#167;13</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">kind_macro_definition</span><span class="plain-syntax"> *</span><span class="function-syntax">NeptuneMacros::parse_name</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">NeptuneMacros::parse_name</span></span>:<br/>Neptune Syntax - <a href="4-ns.html#SP5_12">&#167;5.12</a><br/>Kind Constructors - <a href="4-kc2.html#SP10_1">&#167;10.1</a>, <a href="4-kc2.html#SP13">&#167;13</a>, <a href="4-kc2.html#SP14">&#167;14</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">kind_macro_definition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tmd</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">tmd</span><span class="plain-syntax">, </span><span class="reserved-syntax">kind_macro_definition</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::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">tmd</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kind_macro_name</span><span class="plain-syntax">))</span>
@ -121,7 +121,7 @@ commands in sequence to the relevant kind.
</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">NeptuneMacros::play_back</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">NeptuneMacros::play_back</span></span>:<br/>Kind Commands - <a href="4-kc.html#SP1_1">&#167;1.1</a><br/>Kind Constructors - <a href="4-kc2.html#SP9_1">&#167;9.1</a>, <a href="4-kc2.html#SP12">&#167;12</a>, <a href="4-kc2.html#SP13">&#167;13</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_macro_definition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">macro</span><span class="plain-syntax">,</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">NeptuneMacros::play_back</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">NeptuneMacros::play_back</span></span>:<br/>Kind Commands - <a href="4-kc.html#SP1_1">&#167;1.1</a><br/>Kind Constructors - <a href="4-kc2.html#SP10_1">&#167;10.1</a>, <a href="4-kc2.html#SP13">&#167;13</a>, <a href="4-kc2.html#SP14">&#167;14</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_macro_definition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">macro</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_file_position</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tfp</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">macro</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><a href="4-nf.html#SP2" class="function-link"><span class="function-syntax">NeptuneFiles::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"no such kind macro to play back"</span><span class="plain-syntax">, </span><span class="identifier-syntax">tfp</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">KIND_CREATIONS</span><span class="plain-syntax">, </span><span class="string-syntax">"Macro %S on %S (%d lines)\n"</span><span class="plain-syntax">,</span>

View file

@ -107,7 +107,7 @@ the Inform GUI can at least display them, if not very elegantly.
</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">NeptuneFiles::error</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">NeptuneFiles::error</span></span>:<br/><a href="4-nf.html#SP1">&#167;1</a><br/>Neptune Syntax - <a href="4-ns.html#SP5">&#167;5</a>, <a href="4-ns.html#SP5_2">&#167;5.2</a>, <a href="4-ns.html#SP5_3">&#167;5.3</a>, <a href="4-ns.html#SP5_4">&#167;5.4</a>, <a href="4-ns.html#SP5_5">&#167;5.5</a>, <a href="4-ns.html#SP5_6">&#167;5.6</a>, <a href="4-ns.html#SP5_8">&#167;5.8</a>, <a href="4-ns.html#SP5_11">&#167;5.11</a>, <a href="4-ns.html#SP5_12">&#167;5.12</a><br/>Macros - <a href="4-mcr.html#SP1">&#167;1</a>, <a href="4-mcr.html#SP2">&#167;2</a><br/>Star Templates - <a href="4-st.html#SP2">&#167;2</a>, <a href="4-st.html#SP5">&#167;5</a>, <a href="4-st.html#SP5_1_1">&#167;5.1.1</a>, <a href="4-st.html#SP8">&#167;8</a><br/>Kind Commands - <a href="4-kc.html#SP1">&#167;1</a>, <a href="4-kc.html#SP1_4">&#167;1.4</a>, <a href="4-kc.html#SP1_4_1">&#167;1.4.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">command</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">error</span><span class="plain-syntax">,</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">NeptuneFiles::error</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">NeptuneFiles::error</span></span>:<br/><a href="4-nf.html#SP1">&#167;1</a><br/>Neptune Syntax - <a href="4-ns.html#SP5">&#167;5</a>, <a href="4-ns.html#SP5_2">&#167;5.2</a>, <a href="4-ns.html#SP5_3">&#167;5.3</a>, <a href="4-ns.html#SP5_4">&#167;5.4</a>, <a href="4-ns.html#SP5_5">&#167;5.5</a>, <a href="4-ns.html#SP5_6">&#167;5.6</a>, <a href="4-ns.html#SP5_8">&#167;5.8</a>, <a href="4-ns.html#SP5_11">&#167;5.11</a>, <a href="4-ns.html#SP5_12">&#167;5.12</a><br/>Macros - <a href="4-mcr.html#SP1">&#167;1</a>, <a href="4-mcr.html#SP2">&#167;2</a><br/>Star Templates - <a href="4-st.html#SP2">&#167;2</a>, <a href="4-st.html#SP5">&#167;5</a>, <a href="4-st.html#SP5_1_1">&#167;5.1.1</a>, <a href="4-st.html#SP8">&#167;8</a><br/>Kind Commands - <a href="4-kc.html#SP1">&#167;1</a>, <a href="4-kc.html#SP1_3">&#167;1.3</a>, <a href="4-kc.html#SP1_4">&#167;1.4</a>, <a href="4-kc.html#SP1_4_1">&#167;1.4.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">command</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">error</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">text_file_position</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tfp</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">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">tfp</span><span class="plain-syntax">)</span>

View file

@ -120,6 +120,7 @@ function togglePopup(material_id) {
<span class="definition-keyword">enum</span> <span class="constant-syntax">specification_text_KCC</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">small_block_size_KCC</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">terms_KCC</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">instance_KCC</span>
</pre>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">kind_command_definition</span><span class="plain-syntax"> </span><span class="identifier-syntax">table_of_kind_commands</span><span class="plain-syntax">[] = {</span>
@ -160,6 +161,8 @@ function togglePopup(material_id) {
<span class="plain-syntax"> { </span><span class="string-syntax">"invent-source-text"</span><span class="plain-syntax">, </span><span class="constant-syntax">invent_source_text_KCC</span><span class="plain-syntax">, </span><span class="constant-syntax">TEMPLATE_KCA</span><span class="plain-syntax"> },</span>
<span class="plain-syntax"> { </span><span class="string-syntax">"instance"</span><span class="plain-syntax">, </span><span class="constant-syntax">instance_KCC</span><span class="plain-syntax">, </span><span class="constant-syntax">TEXT_KCA</span><span class="plain-syntax"> },</span>
<span class="plain-syntax"> { </span><span class="string-syntax">"apply-macro"</span><span class="plain-syntax">, </span><span class="constant-syntax">apply_macro_KCC</span><span class="plain-syntax">, </span><span class="constant-syntax">MACRO_KCA</span><span class="plain-syntax"> },</span>
<span class="plain-syntax"> { </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, -1, </span><span class="constant-syntax">NO_KCA</span><span class="plain-syntax"> }</span>
@ -297,7 +300,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">do_know</span><span class="plain-syntax"> == </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">should_know</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><a href="4-nf.html#SP2" class="function-link"><span class="function-syntax">NeptuneFiles::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">whole_command</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"kind command describes already-known kind"</span><span class="plain-syntax">, </span><span class="identifier-syntax">tfp</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">constructor_described</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><a href="4-kc2.html#SP9" class="function-link"><span class="function-syntax">KindConstructors::new</span></a><span class="plain-syntax">(</span><a href="2-knd.html#SP11" class="function-link"><span class="function-syntax">Kinds::get_construct</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">), </span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">group</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-kc2.html#SP10" class="function-link"><span class="function-syntax">KindConstructors::new</span></a><span class="plain-syntax">(</span><a href="2-knd.html#SP11" class="function-link"><span class="function-syntax">Kinds::get_construct</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">), </span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">group</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">NEW_BASE_KINDS_CALLBACK</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">constructor_described</span><span class="plain-syntax"> != </span><span class="identifier-syntax">CON_KIND_VARIABLE</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">constructor_described</span><span class="plain-syntax"> != </span><span class="identifier-syntax">CON_INTERMEDIATE</span><span class="plain-syntax">)) {</span>

View file

@ -282,9 +282,9 @@ not matter, since such things never come into kind definitions.
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">StarTemplates::transcribe_constructor_name</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">StarTemplates::transcribe_constructor_name</span></span>:<br/><a href="4-st.html#SP5_1_1_1">&#167;5.1.1.1</a>, <a href="4-st.html#SP5_1_1_2">&#167;5.1.1.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">lower_case</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EMPTY_WORDING</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">con</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">dt_tag</span><span class="plain-syntax">) </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><a href="4-kc2.html#SP10" class="function-link"><span class="function-syntax">KindConstructors::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</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">con</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">dt_tag</span><span class="plain-syntax">) </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><a href="4-kc2.html#SP11" class="function-link"><span class="function-syntax">KindConstructors::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</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">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-kc2.html#SP15" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</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><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">full_length</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Wordings::length</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">w1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</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">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">full_length</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>

View file

@ -95,7 +95,7 @@ subject is supplied to stand as \(x\), the thing the proposition is discussing.
</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">Assert::true</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">Assert::true</span></span>:<br/>Conditions of Subjects - <a href="4-cos.html#SP3_4">&#167;3.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">pcalc_prop</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">certitude</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assert::true</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">Assert::true</span></span>:<br/>Instances - <a href="2-ins.html#SP15">&#167;15</a><br/>Conditions of Subjects - <a href="4-cos.html#SP3_4">&#167;3.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">pcalc_prop</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">certitude</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="1-ap.html#SP5" class="function-link"><span class="function-syntax">Assert::inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prop</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">certitude</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>

View file

@ -64,7 +64,7 @@ function togglePopup(material_id) {
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../inform7n.html">Inform7</a></li><li><a href="index.html">knowledge</a></li><li><a href="index.html#2">Chapter 2: Instances and Variables</a></li><li><b>Instances</b></li></ul></div>
<p class="purpose">To manage constant values of enumerated kinds or kinds of object.</p>
<ul class="toc"><li><a href="2-ins.html#SP5">&#167;5. Name and number</a></li><li><a href="2-ins.html#SP6">&#167;6. Subject and source references</a></li><li><a href="2-ins.html#SP7">&#167;7. Coincidence with property names</a></li><li><a href="2-ins.html#SP10">&#167;10. The kind of an instance</a></li><li><a href="2-ins.html#SP13">&#167;13. Iterating through instances of a kind</a></li><li><a href="2-ins.html#SP14">&#167;14. Instances of grammatical gender</a></li><li><a href="2-ins.html#SP15">&#167;15. Logging</a></li><li><a href="2-ins.html#SP16">&#167;16. Writer</a></li></ul><hr class="tocbar">
<ul class="toc"><li><a href="2-ins.html#SP5">&#167;5. Name and number</a></li><li><a href="2-ins.html#SP6">&#167;6. Subject and source references</a></li><li><a href="2-ins.html#SP7">&#167;7. Coincidence with property names</a></li><li><a href="2-ins.html#SP10">&#167;10. The kind of an instance</a></li><li><a href="2-ins.html#SP13">&#167;13. Iterating through instances of a kind</a></li><li><a href="2-ins.html#SP14">&#167;14. Instances of grammatical gender</a></li><li><a href="2-ins.html#SP15">&#167;15. Instances specified in Neptune files</a></li><li><a href="2-ins.html#SP16">&#167;16. Logging</a></li><li><a href="2-ins.html#SP17">&#167;17. Writer</a></li></ul><hr class="tocbar">
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. </b>Instances are named constants giving a finite range of possible values of
a kind,<sup id="fnref:1"><a href="#fn:1" rel="footnote">1</a></sup> where these are chosen by the author.<sup id="fnref:2"><a href="#fn:2" rel="footnote">2</a></sup> Instances are can have
@ -124,7 +124,7 @@ hierarchy. See <a href="2-ins.html#SP10" class="internal">Instances::to_kind</a>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">latest_instance</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">Instances::latest</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">Instances::latest</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">Instances::latest</span></span>:<br/><a href="2-ins.html#SP15">&#167;15</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">latest_instance</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
@ -132,7 +132,7 @@ hierarchy. See <a href="2-ins.html#SP10" class="internal">Instances::to_kind</a>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">Instances::new</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">Instances::new</span></span>:<br/>Assert Propositions - <a href="1-ap.html#SP6_5_2">&#167;6.5.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</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="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">Instances::new</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">Instances::new</span></span>:<br/>Assert Propositions - <a href="1-ap.html#SP6_5_2">&#167;6.5.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</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="plain-syntax"> </span><span class="constant-syntax">PROTECTED_MODEL_PROCEDURE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-ins.html#SP4_1" class="named-paragraph-link"><span class="named-paragraph">Simplify the initial kind of the instance</span><span class="named-paragraph-number">4.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">instance</span><span class="plain-syntax">);</span>
@ -208,12 +208,12 @@ be done later on: see <a href="../runtime-module/2-ic.html" class="internal">Ins
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>&#167;5. Name and number. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="function-syntax">Instances::get_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">Instances::get_name</span></span>:<br/><a href="2-ins.html#SP16_1">&#167;16.1</a>, <a href="2-ins.html#SP16_2">&#167;16.2</a><br/>Instances as Adjectives - <a href="2-iaa.html#SP2_2">&#167;2.2</a><br/>Instance Subjects - <a href="4-is2.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">plural</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="function-syntax">Instances::get_name</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">Instances::get_name</span></span>:<br/><a href="2-ins.html#SP17_1">&#167;17.1</a>, <a href="2-ins.html#SP17_2">&#167;17.2</a><br/>Instances as Adjectives - <a href="2-iaa.html#SP2_2">&#167;2.2</a><br/>Instance Subjects - <a href="4-is2.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">plural</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">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_noun</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">EMPTY_WORDING</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">Nouns::nominative</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_noun</span><span class="plain-syntax">, </span><span class="identifier-syntax">plural</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">Instances::get_name_in_play</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">Instances::get_name_in_play</span></span>:<br/>The Naming Thicket - <a href="5-tnt.html#SP9_1">&#167;9.1</a>, <a href="5-tnt.html#SP9_1_2">&#167;9.1.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">plural</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="function-syntax">Instances::get_name_in_play</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">Instances::get_name_in_play</span></span>:<br/>The Naming Thicket - <a href="5-tnt.html#SP9_1">&#167;9.1</a>, <a href="5-tnt.html#SP9_1_2">&#167;9.1.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">plural</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">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_noun</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">EMPTY_WORDING</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">Nouns::nominative_in_language</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_noun</span><span class="plain-syntax">, </span><span class="identifier-syntax">plural</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Projects::get_language_of_play</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::project</span><span class="plain-syntax">()));</span>
@ -223,7 +223,7 @@ be done later on: see <a href="../runtime-module/2-ic.html" class="internal">Ins
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_noun</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Instances::get_numerical_value</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">Instances::get_numerical_value</span></span>:<br/>The Naming Thicket - <a href="5-tnt.html#SP12">&#167;12</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Instances::get_numerical_value</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">Instances::get_numerical_value</span></span>:<br/>The Naming Thicket - <a href="5-tnt.html#SP12">&#167;12</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">instance</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">enumeration_index</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
@ -243,7 +243,7 @@ be done later on: see <a href="../runtime-module/2-ic.html" class="internal">Ins
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>&#167;6. Subject and source references. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="function-syntax">Instances::as_subject</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">Instances::as_subject</span></span>:<br/>Assert Propositions - <a href="1-ap.html#SP6_5_2">&#167;6.5.2</a>, <a href="1-ap.html#SP9">&#167;9</a><br/>Inference Subjects - <a href="4-is.html#SP8">&#167;8</a>, <a href="4-is.html#SP14">&#167;14</a>, <a href="4-is.html#SP29">&#167;29</a><br/>The Naming Thicket - <a href="5-tnt.html#SP5">&#167;5</a>, <a href="5-tnt.html#SP7">&#167;7</a>, <a href="5-tnt.html#SP8">&#167;8</a>, <a href="5-tnt.html#SP9_1">&#167;9.1</a>, <a href="5-tnt.html#SP12">&#167;12</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="function-syntax">Instances::as_subject</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Instances::as_subject</span></span>:<br/>Assert Propositions - <a href="1-ap.html#SP6_5_2">&#167;6.5.2</a>, <a href="1-ap.html#SP9">&#167;9</a><br/>Inference Subjects - <a href="4-is.html#SP8">&#167;8</a>, <a href="4-is.html#SP14">&#167;14</a>, <a href="4-is.html#SP29">&#167;29</a><br/>The Naming Thicket - <a href="5-tnt.html#SP5">&#167;5</a>, <a href="5-tnt.html#SP7">&#167;7</a>, <a href="5-tnt.html#SP8">&#167;8</a>, <a href="5-tnt.html#SP9_1">&#167;9.1</a>, <a href="5-tnt.html#SP12">&#167;12</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">instance</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_subject</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
@ -276,7 +276,7 @@ and the property "colour", whose names coincide:
</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">Instances::make_kind_coincident</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Instances::make_kind_coincident</span></span>:<br/>Valued Properties - <a href="3-vp.html#SP7">&#167;7</a><br/>Kind Subjects - <a href="4-ks.html#SP11">&#167;11</a></span></button><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="reserved-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Instances::make_kind_coincident</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Instances::make_kind_coincident</span></span>:<br/>Valued Properties - <a href="3-vp.html#SP7">&#167;7</a><br/>Kind Subjects - <a href="4-ks.html#SP11">&#167;11</a></span></button><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="reserved-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="3-prp.html#SP19" class="function-link"><span class="function-syntax">Properties::mark_kind_as_having_same_name_as</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP8" class="function-link"><span class="function-syntax">Instances::update_adjectival_forms</span></a><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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_grammatical_gender</span><span class="plain-syntax">)) </span><span class="identifier-syntax">P_grammatical_gender</span><span class="plain-syntax"> = </span><span class="identifier-syntax">P</span><span class="plain-syntax">;</span>
@ -294,7 +294,7 @@ use of colour turns up subsequently, e.g., in response to:
</blockquote>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Instances::update_adjectival_forms</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Instances::update_adjectival_forms</span></span>:<br/><a href="2-ins.html#SP7">&#167;7</a><br/>The Provision Relation - <a href="3-tpr.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Instances::update_adjectival_forms</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">Instances::update_adjectival_forms</span></span>:<br/><a href="2-ins.html#SP7">&#167;7</a><br/>The Provision Relation - <a href="3-tpr.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">property</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">if</span><span class="plain-syntax"> (</span><a href="3-prp.html#SP13" class="function-link"><span class="function-syntax">Properties::is_either_or</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">) == </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</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><a href="3-vp.html#SP6" class="function-link"><span class="function-syntax">ValueProperties::kind</span></a><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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax"> == </span><a href="3-prp.html#SP19" class="function-link"><span class="function-syntax">Properties::property_with_same_name_as</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) {</span>
@ -314,7 +314,7 @@ turns up subsequently, e.g., in response to
</blockquote>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Instances::register_as_adjectival_constant</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">Instances::register_as_adjectival_constant</span></span>:<br/><a href="2-ins.html#SP4_3">&#167;4.3</a>, <a href="2-ins.html#SP8">&#167;8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Instances::register_as_adjectival_constant</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">Instances::register_as_adjectival_constant</span></span>:<br/><a href="2-ins.html#SP4_3">&#167;4.3</a>, <a href="2-ins.html#SP8">&#167;8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">property</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">property_permission</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pp</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_PERMISSIONS_FOR_PROPERTY</span><span class="plain-syntax">(</span><span class="identifier-syntax">pp</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">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">infs</span><span class="plain-syntax"> = </span><a href="4-pp.html#SP5" class="function-link"><span class="function-syntax">PropertyPermissions::get_subject</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pp</span><span class="plain-syntax">);</span>
@ -340,13 +340,13 @@ specialised than which other ones, and by making a call, we can find out.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="function-syntax">Instances::to_kind</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">Instances::to_kind</span></span>:<br/><a href="2-ins.html#SP5">&#167;5</a>, <a href="2-ins.html#SP11">&#167;11</a>, <a href="2-ins.html#SP15">&#167;15</a>, <a href="2-ins.html#SP16_1">&#167;16.1</a>, <a href="2-ins.html#SP16_2">&#167;16.2</a><br/>Instances as Adjectives - <a href="2-iaa.html#SP2_1">&#167;2.1</a>, <a href="2-iaa.html#SP3">&#167;3</a><br/>Instance Subjects - <a href="4-is2.html#SP1">&#167;1</a><br/>Conditions of Subjects - <a href="4-cos.html#SP3_1">&#167;3.1</a><br/>The Model World - <a href="5-tmw.html#SP4_3">&#167;4.3</a><br/>The Naming Thicket - <a href="5-tnt.html#SP9_1_2">&#167;9.1.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="function-syntax">Instances::to_kind</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">Instances::to_kind</span></span>:<br/><a href="2-ins.html#SP5">&#167;5</a>, <a href="2-ins.html#SP11">&#167;11</a>, <a href="2-ins.html#SP16">&#167;16</a>, <a href="2-ins.html#SP17_1">&#167;17.1</a>, <a href="2-ins.html#SP17_2">&#167;17.2</a><br/>Instances as Adjectives - <a href="2-iaa.html#SP2_1">&#167;2.1</a>, <a href="2-iaa.html#SP3">&#167;3</a><br/>Instance Subjects - <a href="4-is2.html#SP1">&#167;1</a><br/>Conditions of Subjects - <a href="4-cos.html#SP3_1">&#167;3.1</a><br/>The Model World - <a href="5-tmw.html#SP4_3">&#167;4.3</a><br/>The Naming Thicket - <a href="5-tnt.html#SP9_1_2">&#167;9.1.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">instance</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</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">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inherits_from</span><span class="plain-syntax"> = </span><a href="4-is.html#SP11" class="function-link"><span class="function-syntax">InferenceSubjects::narrowest_broader_subject</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_subject</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-ks.html#SP3" class="function-link"><span class="function-syntax">KindSubjects::to_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inherits_from</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Instances::of_kind</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">Instances::of_kind</span></span>:<br/><a href="2-ins.html#SP13">&#167;13</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">match</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Instances::of_kind</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">Instances::of_kind</span></span>:<br/><a href="2-ins.html#SP13">&#167;13</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">match</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">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">match</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">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">Kinds::conforms_to</span><span class="plain-syntax">(</span><a href="2-ins.html#SP10" class="function-link"><span class="function-syntax">Instances::to_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">match</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
@ -358,7 +358,7 @@ are allowed to refine it. Such revisions are allowed to specialise the kind
</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">Instances::set_kind</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">Instances::set_kind</span></span>:<br/><a href="2-ins.html#SP4_2">&#167;4.2</a><br/>Assert Propositions - <a href="1-ap.html#SP7">&#167;7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">new</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Instances::set_kind</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">Instances::set_kind</span></span>:<br/><a href="2-ins.html#SP4_2">&#167;4.2</a><br/>Assert Propositions - <a href="1-ap.html#SP7">&#167;7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">new</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="constant-syntax">PROTECTED_MODEL_PROCEDURE</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">NULL</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"Tried to set kind to %u\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">new</span><span class="plain-syntax">);</span>
@ -447,16 +447,55 @@ so we keep track of them here.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">grammatical_genders</span><span class="plain-syntax">[</span><span class="identifier-syntax">g</span><span class="plain-syntax">-1];</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Instances::new_grammatical</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">Instances::new_grammatical</span></span>:<br/><a href="2-ins.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Instances::new_grammatical</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">Instances::new_grammatical</span></span>:<br/><a href="2-ins.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">instance</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">no_ggs_recorded</span><span class="plain-syntax"> &lt; </span><span class="constant-syntax">NO_GRAMMATICAL_GENDERS</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">grammatical_genders</span><span class="plain-syntax">[</span><span class="identifier-syntax">no_ggs_recorded</span><span class="plain-syntax">++] = </span><span class="identifier-syntax">I</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>&#167;15. Logging. </b></p>
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>&#167;15. Instances specified in Neptune files. </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">Instances::make_instances_from_Neptune</span><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">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kc</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">kc</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind_constructor</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">KindConstructors::instances</span><span class="plain-syntax">(</span><span class="identifier-syntax">kc</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">kind_constructor_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kci</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">current_val</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">first_val</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">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">kci</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind_constructor_instance</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">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Feeds::feed_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">kci</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">natural_language_name</span><span class="plain-syntax">);</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">Kinds::base_construction</span><span class="plain-syntax">(</span><span class="identifier-syntax">kc</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">pcalc_prop</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Propositions::Abstract::to_create_something</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="1-ap.html#SP2" class="function-link"><span class="function-syntax">Assert::true</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prop</span><span class="plain-syntax">, </span><span class="identifier-syntax">CERTAIN_CE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">Instances::latest</span></a><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">kci</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">value_specified</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">current_val</span><span class="plain-syntax"> &gt;= (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">kci</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">value</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">first_val</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">Problems::quote_object</span><span class="plain-syntax">(1, </span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_kind</span><span class="plain-syntax">(2, </span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">StandardProblems::handmade_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">Untestable</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_segment</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="string-syntax">"A kit defined an instance %1 of a kind called %2, but this "</span>
<span class="plain-syntax"> </span><span class="string-syntax">"has a numerical value which is equal to or greater than that "</span>
<span class="plain-syntax"> </span><span class="string-syntax">"of its predecessor. Instances in a kit have to be defined "</span>
<span class="plain-syntax"> </span><span class="string-syntax">"in evaluation order."</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_end</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">current_val</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">kci</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">value</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTKindConstructors::set_explicit_runtime_instance_value</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">current_val</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTInstances::set_translation</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">kci</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">identifier</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="comment-syntax"> LOG("From kit: %W = %S = %d -&gt; $O\n", W, kci-&gt;identifier, current_val, I);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">current_val</span><span class="plain-syntax">++;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">first_val</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>&#167;16. Logging. </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">Instances::log</span><span class="plain-syntax">(</span><span class="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP15" class="function-link"><span class="function-syntax">Instances::write</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">DL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP16" class="function-link"><span class="function-syntax">Instances::write</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">DL</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">void</span><span class="plain-syntax"> </span><span class="function-syntax">Instances::write</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
@ -470,7 +509,7 @@ so we keep track of them here.
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>&#167;16. Writer. </b></p>
<p class="commentary firstcommentary"><a id="SP17" class="paragraph-anchor"></a><b>&#167;17. Writer. </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">Instances::writer</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">format_string</span><span class="plain-syntax">, </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vI</span><span class="plain-syntax">) {</span>
@ -478,8 +517,8 @@ so we keep track of them here.
<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">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"nothing"</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">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">format_string</span><span class="plain-syntax">[0]) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'I'</span><span class="plain-syntax">: </span><span class="comment-syntax"> bare </span><span class="extract"><span class="extract-syntax">%I</span></span><span class="comment-syntax"> means the same as </span><span class="extract"><span class="extract-syntax">%+I</span></span><span class="comment-syntax">, so fall through to...</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'+'</span><span class="plain-syntax">: </span><span class="named-paragraph-container code-font"><a href="2-ins.html#SP16_1" class="named-paragraph-link"><span class="named-paragraph">Write the instance raw</span><span class="named-paragraph-number">16.1</span></a></span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'-'</span><span class="plain-syntax">: </span><span class="named-paragraph-container code-font"><a href="2-ins.html#SP16_2" class="named-paragraph-link"><span class="named-paragraph">Write the instance with normalised casing</span><span class="named-paragraph-number">16.2</span></a></span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'+'</span><span class="plain-syntax">: </span><span class="named-paragraph-container code-font"><a href="2-ins.html#SP17_1" class="named-paragraph-link"><span class="named-paragraph">Write the instance raw</span><span class="named-paragraph-number">17.1</span></a></span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'-'</span><span class="plain-syntax">: </span><span class="named-paragraph-container code-font"><a href="2-ins.html#SP17_2" class="named-paragraph-link"><span class="named-paragraph">Write the instance with normalised casing</span><span class="named-paragraph-number">17.2</span></a></span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'~'</span><span class="plain-syntax">: {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">N</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RTInstances::value_iname</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">NounIdentifiers::identifier</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_noun</span><span class="plain-syntax">)) &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">)</span>
@ -491,7 +530,7 @@ so we keep track of them here.
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP16_1" class="paragraph-anchor"></a><b>&#167;16.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Write the instance raw</span><span class="named-paragraph-number">16.1</span></span><span class="comment-syntax"> =</span>
<p class="commentary firstcommentary"><a id="SP17_1" class="paragraph-anchor"></a><b>&#167;17.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Write the instance raw</span><span class="named-paragraph-number">17.1</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -504,8 +543,8 @@ so we keep track of them here.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-ins.html#SP16">&#167;16</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP16_2" class="paragraph-anchor"></a><b>&#167;16.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Write the instance with normalised casing</span><span class="named-paragraph-number">16.2</span></span><span class="comment-syntax"> =</span>
<ul class="endnotetexts"><li>This code is used in <a href="2-ins.html#SP17">&#167;17</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP17_2" class="paragraph-anchor"></a><b>&#167;17.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Write the instance with normalised casing</span><span class="named-paragraph-number">17.2</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -518,7 +557,7 @@ so we keep track of them here.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-ins.html#SP16">&#167;16</a>.</li></ul>
<ul class="endnotetexts"><li>This code is used in <a href="2-ins.html#SP17">&#167;17</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="1-ap.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-km.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresscurrent">ins</li><li class="progresssection"><a href="2-iaa.html">iaa</a></li><li class="progresssection"><a href="2-pfi.html">pfi</a></li><li class="progresssection"><a href="2-oi.html">oi</a></li><li class="progresssection"><a href="2-nv.html">nv</a></li><li class="progresschapter"><a href="3-prp.html">3</a></li><li class="progresschapter"><a href="4-is.html">4</a></li><li class="progresschapter"><a href="5-inf.html">5</a></li><li class="progressnext"><a href="2-iaa.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->

View file

@ -123,7 +123,7 @@ a little trickier than for other subject families:
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">construct</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">base_as_infs</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="function-syntax">KindSubjects::to_kind</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">KindSubjects::to_kind</span></span>:<br/><a href="4-ks.html#SP7">&#167;7</a>, <a href="4-ks.html#SP8">&#167;8</a>, <a href="4-ks.html#SP10">&#167;10</a><br/>Knowledge Module - <a href="1-km.html#SP4">&#167;4</a><br/>Instances - <a href="2-ins.html#SP10">&#167;10</a><br/>Either-Or Properties - <a href="3-ep.html#SP3">&#167;3</a><br/>Inference Subjects - <a href="4-is.html#SP15">&#167;15</a>, <a href="4-is.html#SP16">&#167;16</a><br/>Indefinite Appearance - <a href="5-ia.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">infs</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="function-syntax">KindSubjects::to_kind</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">KindSubjects::to_kind</span></span>:<br/><a href="4-ks.html#SP6">&#167;6</a>, <a href="4-ks.html#SP7">&#167;7</a>, <a href="4-ks.html#SP8">&#167;8</a>, <a href="4-ks.html#SP10">&#167;10</a><br/>Knowledge Module - <a href="1-km.html#SP4">&#167;4</a><br/>Instances - <a href="2-ins.html#SP10">&#167;10</a><br/>Either-Or Properties - <a href="3-ep.html#SP3">&#167;3</a><br/>Inference Subjects - <a href="4-is.html#SP15">&#167;15</a>, <a href="4-is.html#SP16">&#167;16</a><br/>Indefinite Appearance - <a href="5-ia.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">infs</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">infs</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">infs</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">infs_family</span><span class="plain-syntax"> == </span><span class="identifier-syntax">kinds_family</span><span class="plain-syntax">)) {</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">Kinds::base_construction</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RETRIEVE_POINTER_kind_constructor</span><span class="plain-syntax">(</span><span class="identifier-syntax">infs</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">represents</span><span class="plain-syntax">));</span>
@ -179,6 +179,12 @@ concerning our kind.
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">KindSubjects::new_permission_granted</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">KindSubjects::new_permission_granted</span></span>:<br/><a href="4-ks.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inference_subject_family</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">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="reserved-syntax">property_permission</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pp</span><span class="plain-syntax">) {</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><a href="4-ks.html#SP3" class="function-link"><span class="function-syntax">KindSubjects::to_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">from</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">RTKindConstructors::is_nonstandard_enumeration</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">StandardProblems::sentence_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</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">Untestable</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="string-syntax">"this kind cannot have properties"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"since it is an enumeration provided by a kit."</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTPropertyPermissions::new_storage</span><span class="plain-syntax">(</span><span class="identifier-syntax">pp</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>

View file

@ -209,7 +209,7 @@ as yet.
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</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">excerpt_meaning</span><span class="plain-syntax"> *</span><span class="identifier-syntax">em</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">em</span><span class="plain-syntax">, </span><span class="reserved-syntax">excerpt_meaning</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"%02d: %08x $M\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">++, (</span><span class="identifier-syntax">pointer_sized_int</span><span class="plain-syntax">) </span><span class="identifier-syntax">em</span><span class="plain-syntax">, </span><span class="identifier-syntax">em</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"%02d: $M\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">++, </span><span class="identifier-syntax">em</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>&#167;7. Hashing excerpts. </b>For excerpts <span class="extract"><span class="extract-syntax">(w1, w2)</span></span>, we need a form of hash function which makes it

View file

@ -181,21 +181,21 @@ than the number with correct ones
number of successes.
</li></ul>
<pre class="undisplayed-code all-displayed-code code-font">
<span class="plain-syntax">Size of lexicon: 3127 excerpt meanings</span>
<span class="plain-syntax"> Stored among 845 words out of total vocabulary of 10732</span>
<span class="plain-syntax"> 715 words have a start list: longest belongs to report (with 293 meanings)</span>
<span class="plain-syntax">Size of lexicon: 3129 excerpt meanings</span>
<span class="plain-syntax"> Stored among 846 words out of total vocabulary of 10735</span>
<span class="plain-syntax"> 716 words have a start list: longest belongs to report (with 293 meanings)</span>
<span class="plain-syntax"> 15 words have an end list: longest belongs to case (with 6 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">Number of attempts to retrieve: 110340</span>
<span class="plain-syntax"> of which unsuccessful: 92203</span>
<span class="plain-syntax"> of which successful: 18137</span>
<span class="plain-syntax">Number of attempts to retrieve: 110344</span>
<span class="plain-syntax"> of which unsuccessful: 92205</span>
<span class="plain-syntax"> of which successful: 18139</span>
<span class="plain-syntax">Total attempts to match against excerpt meanings: 276468</span>
<span class="plain-syntax"> of which, total with incorrect hash codes: 253733</span>
<span class="plain-syntax"> of which, total with correct hash codes: 22735</span>
<span class="plain-syntax"> of which, total which matched: 19904</span>
<span class="plain-syntax">Total attempts to match against excerpt meanings: 276472</span>
<span class="plain-syntax"> of which, total with incorrect hash codes: 253735</span>
<span class="plain-syntax"> of which, total with correct hash codes: 22737</span>
<span class="plain-syntax"> of which, total which matched: 19906</span>
</pre>
<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>

View file

@ -335,7 +335,7 @@ move, add or remove some of these symbols.
<span class="definition-keyword">define</span> <span class="constant-syntax">MAX_RPSYM</span><span class="plain-syntax"> </span><span class="constant-syntax">100</span>
</pre>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">RunningPipelines::get_symbol</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">RunningPipelines::get_symbol</span></span>:<br/><a href="2-rp.html#SP6">&#167;6</a><br/>Compile Splats Stage - <a href="3-css.html#SP3_2_3_1_1_1">&#167;3.2.3.1.1.1</a>, <a href="3-css.html#SP3_2_3_1_4_5_3_1_1">&#167;3.2.3.1.4.5.3.1.1</a>, <a href="3-css.html#SP3_3_3_1">&#167;3.3.3.1</a>, <a href="3-css.html#SP3_3_3_2">&#167;3.3.3.2</a>, <a href="3-css.html#SP6">&#167;6</a><br/>Kinds - <a href="5-knd.html#SP1_13">&#167;1.13</a>, <a href="5-knd.html#SP2">&#167;2</a><br/>Eliminate Redundant Matter Stage - <a href="6-erms.html#SP2">&#167;2</a>, <a href="6-erms.html#SP3_3">&#167;3.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">pipeline_step</span><span class="plain-syntax"> *</span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">RunningPipelines::get_symbol</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">RunningPipelines::get_symbol</span></span>:<br/><a href="2-rp.html#SP6">&#167;6</a><br/>Compile Splats Stage - <a href="3-css.html#SP3_2_3_1_1_1">&#167;3.2.3.1.1.1</a>, <a href="3-css.html#SP3_2_3_1_4_5_3_1_1">&#167;3.2.3.1.4.5.3.1.1</a>, <a href="3-css.html#SP3_3_3_1">&#167;3.3.3.1</a>, <a href="3-css.html#SP3_3_3_2">&#167;3.3.3.2</a>, <a href="3-css.html#SP6">&#167;6</a><br/>Kinds - <a href="5-knd.html#SP1_14">&#167;1.14</a>, <a href="5-knd.html#SP2">&#167;2</a><br/>Eliminate Redundant Matter Stage - <a href="6-erms.html#SP2">&#167;2</a>, <a href="6-erms.html#SP3_3">&#167;3.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">pipeline_step</span><span class="plain-syntax"> *</span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</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">id</span><span class="plain-syntax"> &lt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">id</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">MAX_RPSYM</span><span class="plain-syntax">)) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"bad ID"</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">step</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 step"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><span class="identifier-syntax">step</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ephemera</span><span class="plain-syntax">.</span><span class="element-syntax">tree</span><span class="plain-syntax">;</span>

View file

@ -159,6 +159,7 @@ comprehensive list of what is there.)
<span class="definition-keyword">enum</span> <span class="constant-syntax">GPROPERTY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">HASHLISTRELATIONHANDLER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">I7SFRAME_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INDEX_OF_ENUM_VAL_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INTEGERDIVIDE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INTEGERREMAINDER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KINDATOMIC_HL</span>
@ -175,6 +176,7 @@ comprehensive list of what is there.)
<span class="definition-keyword">enum</span> <span class="constant-syntax">MSTVO_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MSTVON_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NAME_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NEXT_ENUM_VAL_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NOTHING_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NUMBER_TY_ABS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NUMBER_TY_TO_REAL_NUMBER_TY_HL</span>
@ -182,12 +184,14 @@ comprehensive list of what is there.)
<span class="definition-keyword">enum</span> <span class="constant-syntax">PACKED_TEXT_STORAGE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PARACONTENT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PARAMETER_VALUE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PREV_ENUM_VAL_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PRINTORRUN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PRIOR_NAMED_LIST_GENDER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PRIOR_NAMED_LIST_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PRIOR_NAMED_NOUN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PROPERTY_LOOP_SIGN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PROPERTY_TO_BE_TOTALLED_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RANDOM_ENUM_VAL_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REAL_NUMBER_TY_ABS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REAL_NUMBER_TY_APPROXIMATE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REAL_NUMBER_TY_COMPARE_HL</span>
@ -305,6 +309,7 @@ comprehensive list of what is there.)
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">GPROPERTY_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"GProperty"</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">HASHLISTRELATIONHANDLER_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"HashListRelationHandler"</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">I7SFRAME_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"I7SFRAME"</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">INDEX_OF_ENUM_VAL_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"IndexOfEnumVal"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">INTEGERDIVIDE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"IntegerDivide"</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">INTEGERREMAINDER_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"IntegerRemainder"</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">KINDATOMIC_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"KindAtomic"</span><span class="plain-syntax">)</span>
@ -321,6 +326,7 @@ comprehensive list of what is there.)
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">MSTVO_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"MstVO"</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">MSTVON_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"MstVON"</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">NAME_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">NEXT_ENUM_VAL_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"NextEnumVal"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">NOTHING_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"nothing"</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">NUMBER_TY_ABS_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"NUMBER_TY_Abs"</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">NUMBER_TY_TO_REAL_NUMBER_TY_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"NUMBER_TY_to_REAL_NUMBER_TY"</span><span class="plain-syntax">)</span>
@ -328,12 +334,14 @@ comprehensive list of what is there.)
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">PACKED_TEXT_STORAGE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"PACKED_TEXT_STORAGE"</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">PARACONTENT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ParaContent"</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">PARAMETER_VALUE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"parameter_value"</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">PREV_ENUM_VAL_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"PrevEnumVal"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">PRINTORRUN_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"PrintOrRun"</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">PRIOR_NAMED_LIST_GENDER_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"prior_named_list_gender"</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">PRIOR_NAMED_LIST_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"prior_named_list"</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">PRIOR_NAMED_NOUN_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"prior_named_noun"</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">PROPERTY_LOOP_SIGN_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"property_loop_sign"</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">PROPERTY_TO_BE_TOTALLED_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"property_to_be_totalled"</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">RANDOM_ENUM_VAL_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RandomEnumVal"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">REAL_NUMBER_TY_ABS_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"REAL_NUMBER_TY_Abs"</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">REAL_NUMBER_TY_APPROXIMATE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"REAL_NUMBER_TY_Approximate"</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">REAL_NUMBER_TY_COMPARE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"REAL_NUMBER_TY_Compare"</span><span class="plain-syntax">)</span>

View file

@ -85,16 +85,17 @@ the list <span class="extract"><span class="extract-syntax">inv-&gt;derived_kind
<span class="plain-syntax"> </span><span class="identifier-syntax">InterNodeList::array_sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">derived_kind_nodes</span><span class="plain-syntax">, </span><a href="5-msms.html#SP7" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::module_order</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-knd.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Define BASE_KIND_HWM</span><span class="named-paragraph-number">1.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-knd.html#SP1_3" class="named-paragraph-link"><span class="named-paragraph">Define DEFAULTVALUEFINDER function</span><span class="named-paragraph-number">1.3</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-knd.html#SP1_4" class="named-paragraph-link"><span class="named-paragraph">Define DEFAULTVALUEOFKOV function</span><span class="named-paragraph-number">1.4</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-knd.html#SP1_5" class="named-paragraph-link"><span class="named-paragraph">Define PRINTKINDVALUEPAIR function</span><span class="named-paragraph-number">1.5</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-knd.html#SP1_6" class="named-paragraph-link"><span class="named-paragraph">Define KOVCOMPARISONFUNCTION function</span><span class="named-paragraph-number">1.6</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-knd.html#SP1_7" class="named-paragraph-link"><span class="named-paragraph">Define KOVDOMAINSIZE function</span><span class="named-paragraph-number">1.7</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-knd.html#SP1_8" class="named-paragraph-link"><span class="named-paragraph">Define KOVISBLOCKVALUE function</span><span class="named-paragraph-number">1.8</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-knd.html#SP1_9" class="named-paragraph-link"><span class="named-paragraph">Define I7_KIND_NAME function</span><span class="named-paragraph-number">1.9</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-knd.html#SP1_10" class="named-paragraph-link"><span class="named-paragraph">Define KOVSUPPORTFUNCTION function</span><span class="named-paragraph-number">1.10</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-knd.html#SP1_11" class="named-paragraph-link"><span class="named-paragraph">Define SHOWMEKINDDETAILS function</span><span class="named-paragraph-number">1.11</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-knd.html#SP1_12" class="named-paragraph-link"><span class="named-paragraph">Define RUCKSACK_CLASS constant</span><span class="named-paragraph-number">1.12</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-knd.html#SP1_13" class="named-paragraph-link"><span class="named-paragraph">Define KINDHIERARCHY array</span><span class="named-paragraph-number">1.13</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-knd.html#SP1_4" class="named-paragraph-link"><span class="named-paragraph">Define VALUESFINDER function</span><span class="named-paragraph-number">1.4</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-knd.html#SP1_5" class="named-paragraph-link"><span class="named-paragraph">Define DEFAULTVALUEOFKOV function</span><span class="named-paragraph-number">1.5</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-knd.html#SP1_6" class="named-paragraph-link"><span class="named-paragraph">Define PRINTKINDVALUEPAIR function</span><span class="named-paragraph-number">1.6</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-knd.html#SP1_7" class="named-paragraph-link"><span class="named-paragraph">Define KOVCOMPARISONFUNCTION function</span><span class="named-paragraph-number">1.7</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-knd.html#SP1_8" class="named-paragraph-link"><span class="named-paragraph">Define KOVDOMAINSIZE function</span><span class="named-paragraph-number">1.8</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-knd.html#SP1_9" class="named-paragraph-link"><span class="named-paragraph">Define KOVISBLOCKVALUE function</span><span class="named-paragraph-number">1.9</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-knd.html#SP1_10" class="named-paragraph-link"><span class="named-paragraph">Define I7_KIND_NAME function</span><span class="named-paragraph-number">1.10</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-knd.html#SP1_11" class="named-paragraph-link"><span class="named-paragraph">Define KOVSUPPORTFUNCTION function</span><span class="named-paragraph-number">1.11</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-knd.html#SP1_12" class="named-paragraph-link"><span class="named-paragraph">Define SHOWMEKINDDETAILS function</span><span class="named-paragraph-number">1.12</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-knd.html#SP1_13" class="named-paragraph-link"><span class="named-paragraph">Define RUCKSACK_CLASS constant</span><span class="named-paragraph-number">1.13</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-knd.html#SP1_14" class="named-paragraph-link"><span class="named-paragraph">Define KINDHIERARCHY array</span><span class="named-paragraph-number">1.14</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP1_1" class="paragraph-anchor"></a><b>&#167;1.1. </b>Each base kind package contains a numeric constant with the symbol name <span class="extract"><span class="extract-syntax">strong_id</span></span>.
@ -166,12 +167,46 @@ or higher is therefore that of a derived kind.
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::end_function</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-knd.html#SP1">&#167;1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_4" class="paragraph-anchor"></a><b>&#167;1.4. </b><span class="extract"><span class="extract-syntax">DefaultValueOfKOV(K)</span></span> returns the default value for kind <span class="extract"><span class="extract-syntax">K</span></span>: it's needed,
<p class="commentary firstcommentary"><a id="SP1_4" class="paragraph-anchor"></a><b>&#167;1.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define VALUESFINDER function</span><span class="named-paragraph-number">1.4</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">VALUESFINDER_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::begin_function</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">k_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP6" class="function-link"><span class="function-syntax">Synoptic::local</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"k"</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">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;InterNodeList::array_len(inv-&gt;</span><span class="element-syntax">kind_nodes</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">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PackageInstruction::at_this_head</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kind_nodes</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ea_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::optional_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^enumeration_array"</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">ea_s</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">id_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::required_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^strong_id"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</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">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">EQ_BIP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</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">Produce::val_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">k_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">id_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</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">Produce::code</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">Produce::down</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">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">RETURN_BIP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</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">Produce::val_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">ea_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</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">Produce::up</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">Produce::up</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>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::rfalse</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::end_function</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-knd.html#SP1">&#167;1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_5" class="paragraph-anchor"></a><b>&#167;1.5. </b><span class="extract"><span class="extract-syntax">DefaultValueOfKOV(K)</span></span> returns the default value for kind <span class="extract"><span class="extract-syntax">K</span></span>: it's needed,
for instance, when increasing the size of a list of \(K\) to include new entries,
which have to be given some type-safe value to start out at.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define DEFAULTVALUEOFKOV function</span><span class="named-paragraph-number">1.4</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define DEFAULTVALUEOFKOV function</span><span class="named-paragraph-number">1.5</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -219,10 +254,10 @@ which have to be given some type-safe value to start out at.
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::end_function</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-knd.html#SP1">&#167;1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_5" class="paragraph-anchor"></a><b>&#167;1.5. </b><span class="extract"><span class="extract-syntax">PrintKindValuePair(K, V)</span></span> prints out the value <span class="extract"><span class="extract-syntax">V</span></span>, declaring its kind to be <span class="extract"><span class="extract-syntax">K</span></span>.
<p class="commentary firstcommentary"><a id="SP1_6" class="paragraph-anchor"></a><b>&#167;1.6. </b><span class="extract"><span class="extract-syntax">PrintKindValuePair(K, V)</span></span> prints out the value <span class="extract"><span class="extract-syntax">V</span></span>, declaring its kind to be <span class="extract"><span class="extract-syntax">K</span></span>.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define PRINTKINDVALUEPAIR function</span><span class="named-paragraph-number">1.5</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define PRINTKINDVALUEPAIR function</span><span class="named-paragraph-number">1.6</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -245,8 +280,7 @@ which have to be given some type-safe value to start out at.
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;InterNodeList::array_len(inv-&gt;</span><span class="element-syntax">kind_nodes</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">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PackageInstruction::at_this_head</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kind_nodes</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</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">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_base"</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Metadata::optional_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^print_fn"</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Metadata::optional_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^print_fn"</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_subkind_of_object"</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">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">id_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::required_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^strong_id"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">print_fn_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::required_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^print_fn"</span><span class="plain-syntax">);</span>
@ -278,7 +312,7 @@ which have to be given some type-safe value to start out at.
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::end_function</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-knd.html#SP1">&#167;1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_6" class="paragraph-anchor"></a><b>&#167;1.6. </b><span class="extract"><span class="extract-syntax">KOVComparisonFunction(K)</span></span> returns either the address of a function to
<p class="commentary firstcommentary"><a id="SP1_7" class="paragraph-anchor"></a><b>&#167;1.7. </b><span class="extract"><span class="extract-syntax">KOVComparisonFunction(K)</span></span> returns either the address of a function to
perform a comparison between two values, or else 0 to signal that no
special sort of comparison is needed. (In which case signed numerical
comparison will be used.) The function <span class="extract"><span class="extract-syntax">F</span></span> may be used in a sorting algorithm,
@ -287,7 +321,7 @@ so it must have no side-effects. <span class="extract"><span class="extract-synt
unless the two values are genuinely equal.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define KOVCOMPARISONFUNCTION function</span><span class="named-paragraph-number">1.6</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define KOVCOMPARISONFUNCTION function</span><span class="named-paragraph-number">1.7</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -331,7 +365,7 @@ unless the two values are genuinely equal.
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::end_function</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-knd.html#SP1">&#167;1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_7" class="paragraph-anchor"></a><b>&#167;1.7. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define KOVDOMAINSIZE function</span><span class="named-paragraph-number">1.7</span></span><span class="comment-syntax"> =</span>
<p class="commentary firstcommentary"><a id="SP1_8" class="paragraph-anchor"></a><b>&#167;1.8. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define KOVDOMAINSIZE function</span><span class="named-paragraph-number">1.8</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -375,11 +409,11 @@ unless the two values are genuinely equal.
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::end_function</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-knd.html#SP1">&#167;1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_8" class="paragraph-anchor"></a><b>&#167;1.8. </b><span class="extract"><span class="extract-syntax">KOVIsBlockValue(k)</span></span> is true if and only if <span class="extract"><span class="extract-syntax">k</span></span> is the (strong or weak) ID of
<p class="commentary firstcommentary"><a id="SP1_9" class="paragraph-anchor"></a><b>&#167;1.9. </b><span class="extract"><span class="extract-syntax">KOVIsBlockValue(k)</span></span> is true if and only if <span class="extract"><span class="extract-syntax">k</span></span> is the (strong or weak) ID of
a kind storing pointers to blocks of data.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define KOVISBLOCKVALUE function</span><span class="named-paragraph-number">1.8</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define KOVISBLOCKVALUE function</span><span class="named-paragraph-number">1.9</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -421,7 +455,7 @@ a kind storing pointers to blocks of data.
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::end_function</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-knd.html#SP1">&#167;1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_9" class="paragraph-anchor"></a><b>&#167;1.9. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define I7_KIND_NAME function</span><span class="named-paragraph-number">1.9</span></span><span class="comment-syntax"> =</span>
<p class="commentary firstcommentary"><a id="SP1_10" class="paragraph-anchor"></a><b>&#167;1.10. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define I7_KIND_NAME function</span><span class="named-paragraph-number">1.10</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -453,12 +487,12 @@ a kind storing pointers to blocks of data.
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::end_function</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-knd.html#SP1">&#167;1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_10" class="paragraph-anchor"></a><b>&#167;1.10. </b><span class="extract"><span class="extract-syntax">KOVSupportFunction(K)</span></span> returns the address of the specific support function
<p class="commentary firstcommentary"><a id="SP1_11" class="paragraph-anchor"></a><b>&#167;1.11. </b><span class="extract"><span class="extract-syntax">KOVSupportFunction(K)</span></span> returns the address of the specific support function
for a pointer-value kind <span class="extract"><span class="extract-syntax">K</span></span>, or returns 0 if <span class="extract"><span class="extract-syntax">K</span></span> is not such a kind. For what
such a function does, see "BlockValues.i6t".
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define KOVSUPPORTFUNCTION function</span><span class="named-paragraph-number">1.10</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define KOVSUPPORTFUNCTION function</span><span class="named-paragraph-number">1.11</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -518,7 +552,7 @@ such a function does, see "BlockValues.i6t".
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::end_function</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-knd.html#SP1">&#167;1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_11" class="paragraph-anchor"></a><b>&#167;1.11. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define SHOWMEKINDDETAILS function</span><span class="named-paragraph-number">1.11</span></span><span class="comment-syntax"> =</span>
<p class="commentary firstcommentary"><a id="SP1_12" class="paragraph-anchor"></a><b>&#167;1.12. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define SHOWMEKINDDETAILS function</span><span class="named-paragraph-number">1.12</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -552,7 +586,7 @@ such a function does, see "BlockValues.i6t".
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::end_function</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-knd.html#SP1">&#167;1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_12" class="paragraph-anchor"></a><b>&#167;1.12. </b>This goes right back to a curious feature of Inform 1, in 1993. To enable
<p class="commentary firstcommentary"><a id="SP1_13" class="paragraph-anchor"></a><b>&#167;1.13. </b>This goes right back to a curious feature of Inform 1, in 1993. To enable
the use of player's holdalls, we must declare a constant <span class="extract"><span class="extract-syntax">RUCKSACK_CLASS</span></span> to
tell some code in <span class="extract"><span class="extract-syntax">WorldModelKit</span></span> to use possessions with this Inter class as
the rucksack pro tem. This is all a bit of a hack, and isn't really fully
@ -560,7 +594,7 @@ general: only the player has the benefit of a "player's holdall" (hence the
name), with other actors oblivious.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define RUCKSACK_CLASS constant</span><span class="named-paragraph-number">1.12</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define RUCKSACK_CLASS constant</span><span class="named-paragraph-number">1.13</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -579,7 +613,7 @@ name), with other actors oblivious.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">found</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="identifier-syntax">Produce::numeric_constant</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-knd.html#SP1">&#167;1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_13" class="paragraph-anchor"></a><b>&#167;1.13. </b>The kind inheritance tree is represented by an array providing metadata on
<p class="commentary firstcommentary"><a id="SP1_14" class="paragraph-anchor"></a><b>&#167;1.14. </b>The kind inheritance tree is represented by an array providing metadata on
the kinds of object: there are just two words per kind &mdash; the class, then
the instance count for its own kind. For instance, "door" is usually
kind number 4, so it occupies record 4 in this array &mdash; words 8 and 9. Word
@ -587,7 +621,7 @@ kind number 4, so it occupies record 4 in this array &mdash; words 8 and 9. Word
"thing". This tells us that a door is a kind of thing.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define KINDHIERARCHY array</span><span class="named-paragraph-number">1.13</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define KINDHIERARCHY array</span><span class="named-paragraph-number">1.14</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -634,7 +668,7 @@ kind number 4, so it occupies record 4 in this array &mdash; words 8 and 9. Word
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticKinds::kind_of_object_count</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">SynopticKinds::kind_of_object_count</span></span>:<br/><a href="5-knd.html#SP1_13">&#167;1.13</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">pipeline_step</span><span class="plain-syntax"> *</span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kind_name</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticKinds::kind_of_object_count</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">SynopticKinds::kind_of_object_count</span></span>:<br/><a href="5-knd.html#SP1_14">&#167;1.14</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">pipeline_step</span><span class="plain-syntax"> *</span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kind_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">kind_name</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">kind_name</span><span class="plain-syntax"> == </span><a href="2-rp.html#SP5" class="function-link"><span class="function-syntax">RunningPipelines::get_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="constant-syntax">object_kind_RPSYM</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax"> = </span><span class="identifier-syntax">SymbolAnnotation::get_i</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">OBJECT_KIND_COUNTER_IANN</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="../intern.html">Inter Modules</a></li><li><a href="index.html">pipeline</a></li><li><a href="index.html#5">Chapter 5: Synoptic Module</a></li><li><b>Synoptic Hierarchy</b></li></ul></div>
<p class="purpose">The layout and naming conventions for the contents of the main/synoptic module.</p>
<ul class="toc"><li><a href="5-sh.html#SP1_2">&#167;1.2. Actions</a></li><li><a href="5-sh.html#SP1_3">&#167;1.3. Activities</a></li><li><a href="5-sh.html#SP1_5">&#167;1.5. Chronology</a></li><li><a href="5-sh.html#SP1_7">&#167;1.7. Conjugations</a></li><li><a href="5-sh.html#SP1_9">&#167;1.9. Dialogue</a></li><li><a href="5-sh.html#SP1_11">&#167;1.11. Extensions</a></li><li><a href="5-sh.html#SP1_13">&#167;1.13. Instances</a></li><li><a href="5-sh.html#SP1_15">&#167;1.15. Kinds</a></li><li><a href="5-sh.html#SP1_17">&#167;1.17. Multimedia</a></li><li><a href="5-sh.html#SP1_19">&#167;1.19. Properties</a></li><li><a href="5-sh.html#SP1_21">&#167;1.21. Relations</a></li><li><a href="5-sh.html#SP1_23">&#167;1.23. Rulebooks</a></li><li><a href="5-sh.html#SP1_25">&#167;1.25. Rules</a></li><li><a href="5-sh.html#SP1_27">&#167;1.27. Scenes</a></li><li><a href="5-sh.html#SP1_29">&#167;1.29. Tables</a></li><li><a href="5-sh.html#SP1_31">&#167;1.31. Tests</a></li><li><a href="5-sh.html#SP1_33">&#167;1.33. Use options</a></li></ul><hr class="tocbar">
<ul class="toc"><li><a href="5-sh.html#SP1_2">&#167;1.2. Actions</a></li><li><a href="5-sh.html#SP1_3">&#167;1.3. Activities</a></li><li><a href="5-sh.html#SP1_5">&#167;1.5. Chronology</a></li><li><a href="5-sh.html#SP1_7">&#167;1.7. Conjugations</a></li><li><a href="5-sh.html#SP1_9">&#167;1.9. Dialogue</a></li><li><a href="5-sh.html#SP1_11">&#167;1.11. Extensions</a></li><li><a href="5-sh.html#SP1_13">&#167;1.13. Instances</a></li><li><a href="5-sh.html#SP1_15">&#167;1.15. Kinds</a></li><li><a href="5-sh.html#SP1_17">&#167;1.17. Multimedia</a></li><li><a href="5-sh.html#SP1_19">&#167;1.19. Properties</a></li><li><a href="5-sh.html#SP1_21">&#167;1.21. Relations</a></li><li><a href="5-sh.html#SP1_23">&#167;1.23. Rulebooks</a></li><li><a href="5-sh.html#SP1_25">&#167;1.25. Rules</a></li><li><a href="5-sh.html#SP1_27">&#167;1.27. Scenes</a></li><li><a href="5-sh.html#SP1_29">&#167;1.29. Tables</a></li><li><a href="5-sh.html#SP1_31">&#167;1.31. Tests</a></li><li><a href="5-sh.html#SP1_33">&#167;1.33. Use options</a></li><li><a href="5-sh.html#SP2">&#167;2. Synoptic printing functions</a></li></ul><hr class="tocbar">
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. </b>This section gives a map of what resources will be made in the synoptic
module. The definitions here enable code generated by <a href="../inform7/index.html" class="internal">inform7</a> or <a href="../inter/index.html" class="internal">inter</a>
@ -254,6 +254,7 @@ fuller explanation.
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">DEFAULTVALUEOFKOV_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DEFAULTVALUEFINDER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VALUESFINDER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PRINTKINDVALUEPAIR_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KOVCOMPARISONFUNCTION_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KOVDOMAINSIZE_HL</span>
@ -273,6 +274,7 @@ fuller explanation.
<span class="plain-syntax"> </span><span class="identifier-syntax">SYN_CONST</span><span class="plain-syntax">(</span><span class="constant-syntax">BASE_KIND_HWM_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"BASE_KIND_HWM"</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">SYN_FUNCT</span><span class="plain-syntax">(</span><span class="constant-syntax">DEFAULTVALUEOFKOV_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"defaultvalue_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"DefaultValueOfKOV"</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">SYN_FUNCT</span><span class="plain-syntax">(</span><span class="constant-syntax">DEFAULTVALUEFINDER_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"defaultvaluefinder_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"DefaultValueFinder"</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">SYN_FUNCT</span><span class="plain-syntax">(</span><span class="constant-syntax">VALUESFINDER_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"valuesfinder_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ValuesFinder"</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">SYN_FUNCT</span><span class="plain-syntax">(</span><span class="constant-syntax">PRINTKINDVALUEPAIR_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"printkindvaluepair_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"PrintKindValuePair"</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">SYN_FUNCT</span><span class="plain-syntax">(</span><span class="constant-syntax">KOVCOMPARISONFUNCTION_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"comparison_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"KOVComparisonFunction"</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">SYN_FUNCT</span><span class="plain-syntax">(</span><span class="constant-syntax">KOVDOMAINSIZE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"domainsize_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"KOVDomainSize"</span><span class="plain-syntax">)</span>
@ -453,6 +455,18 @@ fuller explanation.
<span class="plain-syntax"> </span><span class="identifier-syntax">SYN_CONST</span><span class="plain-syntax">(</span><span class="constant-syntax">USE_OPTION_VALUES_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"USE_OPTION_VALUES"</span><span class="plain-syntax">)</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-sh.html#SP1">&#167;1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. Synoptic printing functions. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">#</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">CORE_MODULE</span>
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">SynopticHierarchy::printing_function_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_use_option</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">HierarchyLocations::iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">PRINT_USE_OPTION_HL</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">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_table</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">HierarchyLocations::iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">PRINT_TABLE_HL</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">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_response</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">HierarchyLocations::iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">PRINT_RESPONSE_HL</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">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="plain-syntax">#</span><span class="identifier-syntax">endif</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="5-msms.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-ps.html">3</a></li><li class="progresschapter"><a href="4-lbks.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-msms.html">msms</a></li><li class="progresscurrent">sh</li><li class="progresssection"><a href="5-su.html">su</a></li><li class="progresssection"><a href="5-ext.html">ext</a></li><li class="progresssection"><a href="5-lt.html">lt</a></li><li class="progresssection"><a href="5-rsp.html">rsp</a></li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-act2.html">act2</a></li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresssection"><a href="5-dlg.html">dlg</a></li><li class="progresssection"><a href="5-knd.html">knd</a></li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresssection"><a href="5-rlt.html">rlt</a></li><li class="progresssection"><a href="5-tbl.html">tbl</a></li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progresssection"><a href="5-mlt.html">mlt</a></li><li class="progresssection"><a href="5-uo.html">uo</a></li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresssection"><a href="5-tst.html">tst</a></li><li class="progresschapter"><a href="6-erms.html">6</a></li><li class="progressnext"><a href="5-su.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->

View file

@ -91,6 +91,10 @@ does exist, it must have a definition, and we return that.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">Synoptic::get_optional_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">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">InterSymbolsTable::symbol_from_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">InterPackage::scope</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">), </span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Synoptic::get_optional_definition</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">Synoptic::get_optional_definition</span></span>:<br/>Activities - <a href="5-act.html#SP1_1">&#167;1.1</a><br/>Actions - <a href="5-act2.html#SP1_1">&#167;1.1</a><br/>Tables - <a href="5-tbl.html#SP1_6">&#167;1.6</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">def_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterSymbolsTable::symbol_from_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">InterPackage::scope</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">), </span><span class="identifier-syntax">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">def_s</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>
@ -122,10 +126,10 @@ does exist, it must have a definition, and we return that.
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">synoptic_fn_package</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">synoptic_fn_ps</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Synoptic::begin_function</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Synoptic::begin_function</span></span>:<br/>Extensions - <a href="5-ext.html#SP1_2">&#167;1.2</a>, <a href="5-ext.html#SP1_3">&#167;1.3</a>, <a href="5-ext.html#SP1_4">&#167;1.4</a><br/>Responses - <a href="5-rsp.html#SP1_5">&#167;1.5</a><br/>Rules - <a href="5-rls.html#SP1_6">&#167;1.6</a>, <a href="5-rls.html#SP1_7">&#167;1.7</a>, <a href="5-rls.html#SP1_8">&#167;1.8</a><br/>Actions - <a href="5-act2.html#SP1_7">&#167;1.7</a><br/>Instances - <a href="5-ins.html#SP1_1">&#167;1.1</a><br/>Kinds - <a href="5-knd.html#SP1_3">&#167;1.3</a>, <a href="5-knd.html#SP1_4">&#167;1.4</a>, <a href="5-knd.html#SP1_5">&#167;1.5</a>, <a href="5-knd.html#SP1_6">&#167;1.6</a>, <a href="5-knd.html#SP1_7">&#167;1.7</a>, <a href="5-knd.html#SP1_8">&#167;1.8</a>, <a href="5-knd.html#SP1_9">&#167;1.9</a>, <a href="5-knd.html#SP1_10">&#167;1.10</a>, <a href="5-knd.html#SP1_11">&#167;1.11</a><br/>Relations - <a href="5-rlt.html#SP1_3">&#167;1.3</a>, <a href="5-rlt.html#SP1_4">&#167;1.4</a>, <a href="5-rlt.html#SP1_5">&#167;1.5</a><br/>Tables - <a href="5-tbl.html#SP1_4">&#167;1.4</a>, <a href="5-tbl.html#SP1_5">&#167;1.5</a><br/>Chronology - <a href="5-chr.html#SP1_8">&#167;1.8</a><br/>Scenes - <a href="5-scn.html#SP1_1">&#167;1.1</a>, <a href="5-scn.html#SP1_2">&#167;1.2</a><br/>Use Options - <a href="5-uo.html#SP1_3">&#167;1.3</a>, <a href="5-uo.html#SP1_4">&#167;1.4</a><br/>Tests - <a href="5-tst.html#SP1_1">&#167;1.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Synoptic::begin_function</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Synoptic::begin_function</span></span>:<br/>Extensions - <a href="5-ext.html#SP1_2">&#167;1.2</a>, <a href="5-ext.html#SP1_3">&#167;1.3</a>, <a href="5-ext.html#SP1_4">&#167;1.4</a><br/>Responses - <a href="5-rsp.html#SP1_5">&#167;1.5</a><br/>Rules - <a href="5-rls.html#SP1_6">&#167;1.6</a>, <a href="5-rls.html#SP1_7">&#167;1.7</a>, <a href="5-rls.html#SP1_8">&#167;1.8</a><br/>Actions - <a href="5-act2.html#SP1_7">&#167;1.7</a><br/>Instances - <a href="5-ins.html#SP1_1">&#167;1.1</a><br/>Kinds - <a href="5-knd.html#SP1_3">&#167;1.3</a>, <a href="5-knd.html#SP1_4">&#167;1.4</a>, <a href="5-knd.html#SP1_5">&#167;1.5</a>, <a href="5-knd.html#SP1_6">&#167;1.6</a>, <a href="5-knd.html#SP1_7">&#167;1.7</a>, <a href="5-knd.html#SP1_8">&#167;1.8</a>, <a href="5-knd.html#SP1_9">&#167;1.9</a>, <a href="5-knd.html#SP1_10">&#167;1.10</a>, <a href="5-knd.html#SP1_11">&#167;1.11</a>, <a href="5-knd.html#SP1_12">&#167;1.12</a><br/>Relations - <a href="5-rlt.html#SP1_3">&#167;1.3</a>, <a href="5-rlt.html#SP1_4">&#167;1.4</a>, <a href="5-rlt.html#SP1_5">&#167;1.5</a><br/>Tables - <a href="5-tbl.html#SP1_4">&#167;1.4</a>, <a href="5-tbl.html#SP1_5">&#167;1.5</a><br/>Chronology - <a href="5-chr.html#SP1_8">&#167;1.8</a><br/>Scenes - <a href="5-scn.html#SP1_1">&#167;1.1</a>, <a href="5-scn.html#SP1_2">&#167;1.2</a><br/>Use Options - <a href="5-uo.html#SP1_3">&#167;1.3</a>, <a href="5-uo.html#SP1_4">&#167;1.4</a><br/>Tests - <a href="5-tst.html#SP1_1">&#167;1.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">synoptic_fn_package</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Produce::function_body</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">synoptic_fn_ps</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</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">Synoptic::end_function</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Synoptic::end_function</span></span>:<br/>Extensions - <a href="5-ext.html#SP1_2">&#167;1.2</a>, <a href="5-ext.html#SP1_3">&#167;1.3</a>, <a href="5-ext.html#SP1_4">&#167;1.4</a><br/>Responses - <a href="5-rsp.html#SP1_5">&#167;1.5</a><br/>Rules - <a href="5-rls.html#SP1_6">&#167;1.6</a>, <a href="5-rls.html#SP1_7">&#167;1.7</a>, <a href="5-rls.html#SP1_8">&#167;1.8</a><br/>Actions - <a href="5-act2.html#SP1_7">&#167;1.7</a><br/>Instances - <a href="5-ins.html#SP1_1">&#167;1.1</a><br/>Kinds - <a href="5-knd.html#SP1_3">&#167;1.3</a>, <a href="5-knd.html#SP1_4">&#167;1.4</a>, <a href="5-knd.html#SP1_5">&#167;1.5</a>, <a href="5-knd.html#SP1_6">&#167;1.6</a>, <a href="5-knd.html#SP1_7">&#167;1.7</a>, <a href="5-knd.html#SP1_8">&#167;1.8</a>, <a href="5-knd.html#SP1_9">&#167;1.9</a>, <a href="5-knd.html#SP1_10">&#167;1.10</a>, <a href="5-knd.html#SP1_11">&#167;1.11</a><br/>Relations - <a href="5-rlt.html#SP1_3">&#167;1.3</a>, <a href="5-rlt.html#SP1_4">&#167;1.4</a>, <a href="5-rlt.html#SP1_5">&#167;1.5</a><br/>Tables - <a href="5-tbl.html#SP1_4">&#167;1.4</a>, <a href="5-tbl.html#SP1_5">&#167;1.5</a><br/>Chronology - <a href="5-chr.html#SP1_8">&#167;1.8</a><br/>Scenes - <a href="5-scn.html#SP1_1">&#167;1.1</a>, <a href="5-scn.html#SP1_2">&#167;1.2</a><br/>Use Options - <a href="5-uo.html#SP1_3">&#167;1.3</a>, <a href="5-uo.html#SP1_4">&#167;1.4</a><br/>Tests - <a href="5-tst.html#SP1_1">&#167;1.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">pipeline_step</span><span class="plain-syntax"> *</span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Synoptic::end_function</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Synoptic::end_function</span></span>:<br/>Extensions - <a href="5-ext.html#SP1_2">&#167;1.2</a>, <a href="5-ext.html#SP1_3">&#167;1.3</a>, <a href="5-ext.html#SP1_4">&#167;1.4</a><br/>Responses - <a href="5-rsp.html#SP1_5">&#167;1.5</a><br/>Rules - <a href="5-rls.html#SP1_6">&#167;1.6</a>, <a href="5-rls.html#SP1_7">&#167;1.7</a>, <a href="5-rls.html#SP1_8">&#167;1.8</a><br/>Actions - <a href="5-act2.html#SP1_7">&#167;1.7</a><br/>Instances - <a href="5-ins.html#SP1_1">&#167;1.1</a><br/>Kinds - <a href="5-knd.html#SP1_3">&#167;1.3</a>, <a href="5-knd.html#SP1_4">&#167;1.4</a>, <a href="5-knd.html#SP1_5">&#167;1.5</a>, <a href="5-knd.html#SP1_6">&#167;1.6</a>, <a href="5-knd.html#SP1_7">&#167;1.7</a>, <a href="5-knd.html#SP1_8">&#167;1.8</a>, <a href="5-knd.html#SP1_9">&#167;1.9</a>, <a href="5-knd.html#SP1_10">&#167;1.10</a>, <a href="5-knd.html#SP1_11">&#167;1.11</a>, <a href="5-knd.html#SP1_12">&#167;1.12</a><br/>Relations - <a href="5-rlt.html#SP1_3">&#167;1.3</a>, <a href="5-rlt.html#SP1_4">&#167;1.4</a>, <a href="5-rlt.html#SP1_5">&#167;1.5</a><br/>Tables - <a href="5-tbl.html#SP1_4">&#167;1.4</a>, <a href="5-tbl.html#SP1_5">&#167;1.5</a><br/>Chronology - <a href="5-chr.html#SP1_8">&#167;1.8</a><br/>Scenes - <a href="5-scn.html#SP1_1">&#167;1.1</a>, <a href="5-scn.html#SP1_2">&#167;1.2</a><br/>Use Options - <a href="5-uo.html#SP1_3">&#167;1.3</a>, <a href="5-uo.html#SP1_4">&#167;1.4</a><br/>Tests - <a href="5-tst.html#SP1_1">&#167;1.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">pipeline_step</span><span class="plain-syntax"> *</span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::end_function_body</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">Packaging::exit</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">synoptic_fn_ps</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
@ -134,7 +138,7 @@ does exist, it must have a definition, and we return that.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">Synoptic::local</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">Synoptic::local</span></span>:<br/>Extensions - <a href="5-ext.html#SP1_4">&#167;1.4</a><br/>Responses - <a href="5-rsp.html#SP1_5">&#167;1.5</a><br/>Rules - <a href="5-rls.html#SP1_6">&#167;1.6</a>, <a href="5-rls.html#SP1_7">&#167;1.7</a>, <a href="5-rls.html#SP1_8">&#167;1.8</a><br/>Actions - <a href="5-act2.html#SP1_7">&#167;1.7</a><br/>Instances - <a href="5-ins.html#SP1_1">&#167;1.1</a><br/>Kinds - <a href="5-knd.html#SP1_3">&#167;1.3</a>, <a href="5-knd.html#SP1_4">&#167;1.4</a>, <a href="5-knd.html#SP1_5">&#167;1.5</a>, <a href="5-knd.html#SP1_6">&#167;1.6</a>, <a href="5-knd.html#SP1_7">&#167;1.7</a>, <a href="5-knd.html#SP1_8">&#167;1.8</a>, <a href="5-knd.html#SP1_9">&#167;1.9</a>, <a href="5-knd.html#SP1_10">&#167;1.10</a>, <a href="5-knd.html#SP1_11">&#167;1.11</a><br/>Relations - <a href="5-rlt.html#SP1_4">&#167;1.4</a>, <a href="5-rlt.html#SP1_5">&#167;1.5</a><br/>Tables - <a href="5-tbl.html#SP1_4">&#167;1.4</a>, <a href="5-tbl.html#SP1_5">&#167;1.5</a><br/>Chronology - <a href="5-chr.html#SP1_8">&#167;1.8</a><br/>Scenes - <a href="5-scn.html#SP1_2">&#167;1.2</a><br/>Use Options - <a href="5-uo.html#SP1_3">&#167;1.3</a>, <a href="5-uo.html#SP1_4">&#167;1.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">comment</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">Synoptic::local</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">Synoptic::local</span></span>:<br/>Extensions - <a href="5-ext.html#SP1_4">&#167;1.4</a><br/>Responses - <a href="5-rsp.html#SP1_5">&#167;1.5</a><br/>Rules - <a href="5-rls.html#SP1_6">&#167;1.6</a>, <a href="5-rls.html#SP1_7">&#167;1.7</a>, <a href="5-rls.html#SP1_8">&#167;1.8</a><br/>Actions - <a href="5-act2.html#SP1_7">&#167;1.7</a><br/>Instances - <a href="5-ins.html#SP1_1">&#167;1.1</a><br/>Kinds - <a href="5-knd.html#SP1_3">&#167;1.3</a>, <a href="5-knd.html#SP1_4">&#167;1.4</a>, <a href="5-knd.html#SP1_5">&#167;1.5</a>, <a href="5-knd.html#SP1_6">&#167;1.6</a>, <a href="5-knd.html#SP1_7">&#167;1.7</a>, <a href="5-knd.html#SP1_8">&#167;1.8</a>, <a href="5-knd.html#SP1_9">&#167;1.9</a>, <a href="5-knd.html#SP1_10">&#167;1.10</a>, <a href="5-knd.html#SP1_11">&#167;1.11</a>, <a href="5-knd.html#SP1_12">&#167;1.12</a><br/>Relations - <a href="5-rlt.html#SP1_4">&#167;1.4</a>, <a href="5-rlt.html#SP1_5">&#167;1.5</a><br/>Tables - <a href="5-tbl.html#SP1_4">&#167;1.4</a>, <a href="5-tbl.html#SP1_5">&#167;1.5</a><br/>Chronology - <a href="5-chr.html#SP1_8">&#167;1.8</a><br/>Scenes - <a href="5-scn.html#SP1_2">&#167;1.2</a><br/>Use Options - <a href="5-uo.html#SP1_3">&#167;1.3</a>, <a href="5-uo.html#SP1_4">&#167;1.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">comment</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">Produce::local</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">comment</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
@ -144,7 +148,7 @@ does exist, it must have a definition, and we return that.
<span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">synoptic_array_node</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">synoptic_array_ps</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Synoptic::begin_array</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">Synoptic::begin_array</span></span>:<br/>Responses - <a href="5-rsp.html#SP1_3">&#167;1.3</a>, <a href="5-rsp.html#SP1_4">&#167;1.4</a><br/>Rules - <a href="5-rls.html#SP1_3">&#167;1.3</a>, <a href="5-rls.html#SP1_4">&#167;1.4</a>, <a href="5-rls.html#SP1_5">&#167;1.5</a><br/>Activities - <a href="5-act.html#SP1_2">&#167;1.2</a>, <a href="5-act.html#SP1_3">&#167;1.3</a>, <a href="5-act.html#SP1_4">&#167;1.4</a>, <a href="5-act.html#SP1_5">&#167;1.5</a><br/>Actions - <a href="5-act2.html#SP1_4">&#167;1.4</a>, <a href="5-act2.html#SP1_5">&#167;1.5</a><br/>Dialogue - <a href="5-dlg.html#SP1_1">&#167;1.1</a>, <a href="5-dlg.html#SP1_2">&#167;1.2</a>, <a href="5-dlg.html#SP1_3">&#167;1.3</a><br/>Kinds - <a href="5-knd.html#SP1_13">&#167;1.13</a><br/>Tables - <a href="5-tbl.html#SP1_3">&#167;1.3</a><br/>Chronology - <a href="5-chr.html#SP1_7">&#167;1.7</a><br/>Multimedia - <a href="5-mlt.html#SP1_1">&#167;1.1</a>, <a href="5-mlt.html#SP1_2">&#167;1.2</a>, <a href="5-mlt.html#SP1_4">&#167;1.4</a>, <a href="5-mlt.html#SP1_6">&#167;1.6</a><br/>Use Options - <a href="5-uo.html#SP1_5">&#167;1.5</a><br/>Verbs - <a href="5-vrb.html#SP1_2">&#167;1.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">pipeline_step</span><span class="plain-syntax"> *</span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Synoptic::begin_array</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">Synoptic::begin_array</span></span>:<br/>Responses - <a href="5-rsp.html#SP1_3">&#167;1.3</a>, <a href="5-rsp.html#SP1_4">&#167;1.4</a><br/>Rules - <a href="5-rls.html#SP1_3">&#167;1.3</a>, <a href="5-rls.html#SP1_4">&#167;1.4</a>, <a href="5-rls.html#SP1_5">&#167;1.5</a><br/>Activities - <a href="5-act.html#SP1_2">&#167;1.2</a>, <a href="5-act.html#SP1_3">&#167;1.3</a>, <a href="5-act.html#SP1_4">&#167;1.4</a>, <a href="5-act.html#SP1_5">&#167;1.5</a><br/>Actions - <a href="5-act2.html#SP1_4">&#167;1.4</a>, <a href="5-act2.html#SP1_5">&#167;1.5</a><br/>Dialogue - <a href="5-dlg.html#SP1_1">&#167;1.1</a>, <a href="5-dlg.html#SP1_2">&#167;1.2</a>, <a href="5-dlg.html#SP1_3">&#167;1.3</a><br/>Kinds - <a href="5-knd.html#SP1_14">&#167;1.14</a><br/>Tables - <a href="5-tbl.html#SP1_3">&#167;1.3</a><br/>Chronology - <a href="5-chr.html#SP1_7">&#167;1.7</a><br/>Multimedia - <a href="5-mlt.html#SP1_1">&#167;1.1</a>, <a href="5-mlt.html#SP1_2">&#167;1.2</a>, <a href="5-mlt.html#SP1_4">&#167;1.4</a>, <a href="5-mlt.html#SP1_6">&#167;1.6</a><br/>Use Options - <a href="5-uo.html#SP1_5">&#167;1.5</a><br/>Verbs - <a href="5-vrb.html#SP1_2">&#167;1.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">pipeline_step</span><span class="plain-syntax"> *</span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP7" class="function-link"><span class="function-syntax">Synoptic::begin_array_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">CONST_LIST_FORMAT_WORDS</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
@ -168,7 +172,7 @@ does exist, it must have a definition, and we return that.
<span class="plain-syntax"> (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">InterBookmark::baseline</span><span class="plain-syntax">(</span><span class="identifier-syntax">Packaging::at</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</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">void</span><span class="plain-syntax"> </span><span class="function-syntax">Synoptic::end_array</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">Synoptic::end_array</span></span>:<br/>Responses - <a href="5-rsp.html#SP1_3">&#167;1.3</a>, <a href="5-rsp.html#SP1_4">&#167;1.4</a><br/>Rules - <a href="5-rls.html#SP1_3">&#167;1.3</a>, <a href="5-rls.html#SP1_4">&#167;1.4</a>, <a href="5-rls.html#SP1_5">&#167;1.5</a><br/>Activities - <a href="5-act.html#SP1_2">&#167;1.2</a>, <a href="5-act.html#SP1_3">&#167;1.3</a>, <a href="5-act.html#SP1_4">&#167;1.4</a>, <a href="5-act.html#SP1_5">&#167;1.5</a>, <a href="5-act.html#SP1_6">&#167;1.6</a><br/>Actions - <a href="5-act2.html#SP1_4">&#167;1.4</a>, <a href="5-act2.html#SP1_5">&#167;1.5</a>, <a href="5-act2.html#SP1_6">&#167;1.6</a><br/>Dialogue - <a href="5-dlg.html#SP1_1">&#167;1.1</a>, <a href="5-dlg.html#SP1_2">&#167;1.2</a>, <a href="5-dlg.html#SP1_3">&#167;1.3</a><br/>Kinds - <a href="5-knd.html#SP1_13">&#167;1.13</a><br/>Tables - <a href="5-tbl.html#SP1_3">&#167;1.3</a>, <a href="5-tbl.html#SP1_6">&#167;1.6</a><br/>Chronology - <a href="5-chr.html#SP1_5">&#167;1.5</a>, <a href="5-chr.html#SP1_6">&#167;1.6</a>, <a href="5-chr.html#SP1_7">&#167;1.7</a><br/>Multimedia - <a href="5-mlt.html#SP1_1">&#167;1.1</a>, <a href="5-mlt.html#SP1_2">&#167;1.2</a>, <a href="5-mlt.html#SP1_4">&#167;1.4</a>, <a href="5-mlt.html#SP1_6">&#167;1.6</a><br/>Use Options - <a href="5-uo.html#SP1_5">&#167;1.5</a><br/>Verbs - <a href="5-vrb.html#SP1_2">&#167;1.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Synoptic::end_array</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">Synoptic::end_array</span></span>:<br/>Responses - <a href="5-rsp.html#SP1_3">&#167;1.3</a>, <a href="5-rsp.html#SP1_4">&#167;1.4</a><br/>Rules - <a href="5-rls.html#SP1_3">&#167;1.3</a>, <a href="5-rls.html#SP1_4">&#167;1.4</a>, <a href="5-rls.html#SP1_5">&#167;1.5</a><br/>Activities - <a href="5-act.html#SP1_2">&#167;1.2</a>, <a href="5-act.html#SP1_3">&#167;1.3</a>, <a href="5-act.html#SP1_4">&#167;1.4</a>, <a href="5-act.html#SP1_5">&#167;1.5</a>, <a href="5-act.html#SP1_6">&#167;1.6</a><br/>Actions - <a href="5-act2.html#SP1_4">&#167;1.4</a>, <a href="5-act2.html#SP1_5">&#167;1.5</a>, <a href="5-act2.html#SP1_6">&#167;1.6</a><br/>Dialogue - <a href="5-dlg.html#SP1_1">&#167;1.1</a>, <a href="5-dlg.html#SP1_2">&#167;1.2</a>, <a href="5-dlg.html#SP1_3">&#167;1.3</a><br/>Kinds - <a href="5-knd.html#SP1_14">&#167;1.14</a><br/>Tables - <a href="5-tbl.html#SP1_3">&#167;1.3</a>, <a href="5-tbl.html#SP1_6">&#167;1.6</a><br/>Chronology - <a href="5-chr.html#SP1_5">&#167;1.5</a>, <a href="5-chr.html#SP1_6">&#167;1.6</a>, <a href="5-chr.html#SP1_7">&#167;1.7</a><br/>Multimedia - <a href="5-mlt.html#SP1_1">&#167;1.1</a>, <a href="5-mlt.html#SP1_2">&#167;1.2</a>, <a href="5-mlt.html#SP1_4">&#167;1.4</a>, <a href="5-mlt.html#SP1_6">&#167;1.6</a><br/>Use Options - <a href="5-uo.html#SP1_5">&#167;1.5</a><br/>Verbs - <a href="5-vrb.html#SP1_2">&#167;1.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</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">inter_error_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><span class="identifier-syntax">VerifyingInter::instruction</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterBookmark::package</span><span class="plain-syntax">(</span><span class="identifier-syntax">Packaging::at</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)), </span><span class="identifier-syntax">synoptic_array_node</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>
@ -183,12 +187,12 @@ does exist, it must have a definition, and we return that.
</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">Synoptic::numeric_entry</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">Synoptic::numeric_entry</span></span>:<br/>Responses - <a href="5-rsp.html#SP1_3">&#167;1.3</a>, <a href="5-rsp.html#SP1_4">&#167;1.4</a><br/>Rules - <a href="5-rls.html#SP1_3">&#167;1.3</a>, <a href="5-rls.html#SP1_4">&#167;1.4</a>, <a href="5-rls.html#SP1_5">&#167;1.5</a><br/>Activities - <a href="5-act.html#SP1_5">&#167;1.5</a>, <a href="5-act.html#SP1_6">&#167;1.6</a><br/>Actions - <a href="5-act2.html#SP1_4">&#167;1.4</a>, <a href="5-act2.html#SP1_5">&#167;1.5</a>, <a href="5-act2.html#SP1_6">&#167;1.6</a><br/>Dialogue - <a href="5-dlg.html#SP1_1">&#167;1.1</a>, <a href="5-dlg.html#SP1_2">&#167;1.2</a>, <a href="5-dlg.html#SP1_3">&#167;1.3</a><br/>Kinds - <a href="5-knd.html#SP1_13">&#167;1.13</a><br/>Tables - <a href="5-tbl.html#SP1_3">&#167;1.3</a>, <a href="5-tbl.html#SP1_6">&#167;1.6</a><br/>Chronology - <a href="5-chr.html#SP1_5">&#167;1.5</a>, <a href="5-chr.html#SP1_6">&#167;1.6</a>, <a href="5-chr.html#SP1_7">&#167;1.7</a><br/>Multimedia - <a href="5-mlt.html#SP1_1">&#167;1.1</a>, <a href="5-mlt.html#SP1_2">&#167;1.2</a>, <a href="5-mlt.html#SP1_4">&#167;1.4</a>, <a href="5-mlt.html#SP1_6">&#167;1.6</a><br/>Use Options - <a href="5-uo.html#SP1_5">&#167;1.5</a><br/>Verbs - <a href="5-vrb.html#SP1_2">&#167;1.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Synoptic::numeric_entry</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">Synoptic::numeric_entry</span></span>:<br/>Responses - <a href="5-rsp.html#SP1_3">&#167;1.3</a>, <a href="5-rsp.html#SP1_4">&#167;1.4</a><br/>Rules - <a href="5-rls.html#SP1_3">&#167;1.3</a>, <a href="5-rls.html#SP1_4">&#167;1.4</a>, <a href="5-rls.html#SP1_5">&#167;1.5</a><br/>Activities - <a href="5-act.html#SP1_5">&#167;1.5</a>, <a href="5-act.html#SP1_6">&#167;1.6</a><br/>Actions - <a href="5-act2.html#SP1_4">&#167;1.4</a>, <a href="5-act2.html#SP1_5">&#167;1.5</a>, <a href="5-act2.html#SP1_6">&#167;1.6</a><br/>Dialogue - <a href="5-dlg.html#SP1_1">&#167;1.1</a>, <a href="5-dlg.html#SP1_2">&#167;1.2</a>, <a href="5-dlg.html#SP1_3">&#167;1.3</a><br/>Kinds - <a href="5-knd.html#SP1_14">&#167;1.14</a><br/>Tables - <a href="5-tbl.html#SP1_3">&#167;1.3</a>, <a href="5-tbl.html#SP1_6">&#167;1.6</a><br/>Chronology - <a href="5-chr.html#SP1_5">&#167;1.5</a>, <a href="5-chr.html#SP1_6">&#167;1.6</a>, <a href="5-chr.html#SP1_7">&#167;1.7</a><br/>Multimedia - <a href="5-mlt.html#SP1_1">&#167;1.1</a>, <a href="5-mlt.html#SP1_2">&#167;1.2</a>, <a href="5-mlt.html#SP1_4">&#167;1.4</a>, <a href="5-mlt.html#SP1_6">&#167;1.6</a><br/>Use Options - <a href="5-uo.html#SP1_5">&#167;1.5</a><br/>Verbs - <a href="5-vrb.html#SP1_2">&#167;1.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_ti</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">Inode::extend_instruction_by</span><span class="plain-syntax">(</span><span class="identifier-syntax">synoptic_array_node</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">InterValuePairs::set</span><span class="plain-syntax">(</span><span class="identifier-syntax">synoptic_array_node</span><span class="plain-syntax">, </span><span class="identifier-syntax">synoptic_array_node</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">extent</span><span class="plain-syntax">-2,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterValuePairs::number</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">void</span><span class="plain-syntax"> </span><span class="function-syntax">Synoptic::symbol_entry</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">Synoptic::symbol_entry</span></span>:<br/>Responses - <a href="5-rsp.html#SP1_3">&#167;1.3</a><br/>Rules - <a href="5-rls.html#SP1_4">&#167;1.4</a>, <a href="5-rls.html#SP1_5">&#167;1.5</a><br/>Activities - <a href="5-act.html#SP1_2">&#167;1.2</a>, <a href="5-act.html#SP1_3">&#167;1.3</a>, <a href="5-act.html#SP1_4">&#167;1.4</a>, <a href="5-act.html#SP1_5">&#167;1.5</a><br/>Actions - <a href="5-act2.html#SP1_5">&#167;1.5</a>, <a href="5-act2.html#SP1_6">&#167;1.6</a><br/>Dialogue - <a href="5-dlg.html#SP1_1">&#167;1.1</a>, <a href="5-dlg.html#SP1_2">&#167;1.2</a>, <a href="5-dlg.html#SP1_3">&#167;1.3</a><br/>Kinds - <a href="5-knd.html#SP1_13">&#167;1.13</a><br/>Tables - <a href="5-tbl.html#SP1_3">&#167;1.3</a><br/>Chronology - <a href="5-chr.html#SP1_5">&#167;1.5</a>, <a href="5-chr.html#SP1_7">&#167;1.7</a><br/>Multimedia - <a href="5-mlt.html#SP1_4">&#167;1.4</a>, <a href="5-mlt.html#SP1_6">&#167;1.6</a><br/>Verbs - <a href="5-vrb.html#SP1_2">&#167;1.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Synoptic::symbol_entry</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">Synoptic::symbol_entry</span></span>:<br/>Responses - <a href="5-rsp.html#SP1_3">&#167;1.3</a><br/>Rules - <a href="5-rls.html#SP1_4">&#167;1.4</a>, <a href="5-rls.html#SP1_5">&#167;1.5</a><br/>Activities - <a href="5-act.html#SP1_2">&#167;1.2</a>, <a href="5-act.html#SP1_3">&#167;1.3</a>, <a href="5-act.html#SP1_4">&#167;1.4</a>, <a href="5-act.html#SP1_5">&#167;1.5</a><br/>Actions - <a href="5-act2.html#SP1_5">&#167;1.5</a>, <a href="5-act2.html#SP1_6">&#167;1.6</a><br/>Dialogue - <a href="5-dlg.html#SP1_1">&#167;1.1</a>, <a href="5-dlg.html#SP1_2">&#167;1.2</a>, <a href="5-dlg.html#SP1_3">&#167;1.3</a><br/>Kinds - <a href="5-knd.html#SP1_14">&#167;1.14</a><br/>Tables - <a href="5-tbl.html#SP1_3">&#167;1.3</a><br/>Chronology - <a href="5-chr.html#SP1_5">&#167;1.5</a>, <a href="5-chr.html#SP1_7">&#167;1.7</a><br/>Multimedia - <a href="5-mlt.html#SP1_4">&#167;1.4</a>, <a href="5-mlt.html#SP1_6">&#167;1.6</a><br/>Verbs - <a href="5-vrb.html#SP1_2">&#167;1.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Inode::extend_instruction_by</span><span class="plain-syntax">(</span><span class="identifier-syntax">synoptic_array_node</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">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterPackage::container</span><span class="plain-syntax">(</span><span class="identifier-syntax">synoptic_array_node</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">local_S</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterSymbolsTable::create_with_unique_name</span><span class="plain-syntax">(</span>

View file

@ -93,7 +93,7 @@ messages.
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::generic_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">val</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">rv</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">DefaultValues::val</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">DefaultValues::val</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP10">&#167;10</a></span></button><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">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">storage_name</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">DefaultValues::val</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">DefaultValues::val</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP30_3_12">&#167;30.3.12</a></span></button><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">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">storage_name</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">value_holster</span><span class="plain-syntax"> </span><span class="identifier-syntax">VH</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Holsters::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">INTER_DATA_VHMODE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax"> = </span><a href="2-dv.html#SP1" class="function-link"><span class="function-syntax">DefaultValues::to_holster</span></a><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">VH</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">storage_name</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">Holsters::unholster_to_code_val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), &amp;</span><span class="identifier-syntax">VH</span><span class="plain-syntax">);</span>

View file

@ -79,7 +79,7 @@ enforced; it's fine to store arbitrary data with <span class="extract"><span cla
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::begin_word</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">EmitArrays::begin_word</span></span>:<br/>List Literals - <a href="4-ll.html#SP1">&#167;1</a><br/>Box Quotations - <a href="4-bq.html#SP2">&#167;2</a><br/>Instances - <a href="5-ins.html#SP4">&#167;4</a><br/>Multimedia - <a href="5-mlt.html#SP2_2">&#167;2.2</a>, <a href="5-mlt.html#SP3_2">&#167;3.2</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2">&#167;2</a>, <a href="5-dbi.html#SP2_8">&#167;2.8</a><br/>Dialogue - <a href="5-dli.html#SP3">&#167;3</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3">&#167;3</a><br/>Relations - <a href="5-rlt.html#SP10">&#167;10</a><br/>Kind IDs - <a href="5-ki.html#SP9_1">&#167;9.1</a><br/>Test Scripts - <a href="5-ts.html#SP4">&#167;4</a><br/>The Player - <a href="6-tp.html#SP1">&#167;1</a><br/>The Map - <a href="6-tm.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</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">packaging_state</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::begin_word</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">EmitArrays::begin_word</span></span>:<br/>List Literals - <a href="4-ll.html#SP1">&#167;1</a><br/>Box Quotations - <a href="4-bq.html#SP2">&#167;2</a><br/>Instances - <a href="5-ins.html#SP4">&#167;4</a><br/>Multimedia - <a href="5-mlt.html#SP2_2">&#167;2.2</a>, <a href="5-mlt.html#SP3_2">&#167;3.2</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2">&#167;2</a>, <a href="5-dbi.html#SP2_8">&#167;2.8</a><br/>Dialogue - <a href="5-dli.html#SP3">&#167;3</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3">&#167;3</a><br/>Relations - <a href="5-rlt.html#SP10">&#167;10</a><br/>Kind Constructors - <a href="5-kc.html#SP30_3_2">&#167;30.3.2</a><br/>Kind IDs - <a href="5-ki.html#SP9_1">&#167;9.1</a><br/>Test Scripts - <a href="5-ts.html#SP4">&#167;4</a><br/>The Player - <a href="6-tp.html#SP1">&#167;1</a><br/>The Map - <a href="6-tm.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</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="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Packaging::enter_home_of</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ea.html#SP8" class="function-link"><span class="function-syntax">EmitArrays::begin_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">CONST_LIST_FORMAT_WORDS</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">save</span><span class="plain-syntax">;</span>
@ -151,11 +151,11 @@ which would be a typesafe list in I7, so they can be absolutely any data.
</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">EmitArrays::numeric_entry</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">EmitArrays::numeric_entry</span></span>:<br/>The Heap - <a href="2-th.html#SP6">&#167;6</a><br/>List Literals - <a href="4-ll.html#SP1">&#167;1</a>, <a href="4-ll.html#SP2">&#167;2</a>, <a href="4-ll.html#SP7_1">&#167;7.1</a><br/>Box Quotations - <a href="4-bq.html#SP2">&#167;2</a><br/>Relation Literals - <a href="4-rl.html#SP1">&#167;1</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">&#167;1</a><br/>Instances - <a href="5-ins.html#SP4">&#167;4</a><br/>Multimedia - <a href="5-mlt.html#SP2_1">&#167;2.1</a>, <a href="5-mlt.html#SP2_2">&#167;2.2</a>, <a href="5-mlt.html#SP3_2">&#167;3.2</a><br/>Tables - <a href="5-tbl.html#SP2_1_1_1_4">&#167;2.1.1.1.4</a>, <a href="5-tbl.html#SP2_2_3">&#167;2.2.3</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2">&#167;2</a>, <a href="5-dbi.html#SP2_1">&#167;2.1</a>, <a href="5-dbi.html#SP2_2">&#167;2.2</a>, <a href="5-dbi.html#SP2_4">&#167;2.4</a>, <a href="5-dbi.html#SP2_5">&#167;2.5</a>, <a href="5-dbi.html#SP2_8">&#167;2.8</a>, <a href="5-dbi.html#SP3">&#167;3</a><br/>Dialogue - <a href="5-dli.html#SP3_2">&#167;3.2</a>, <a href="5-dli.html#SP3_3">&#167;3.3</a>, <a href="5-dli.html#SP3_4">&#167;3.4</a>, <a href="5-dli.html#SP3_7">&#167;3.7</a>, <a href="5-dli.html#SP3_8">&#167;3.8</a>, <a href="5-dli.html#SP3_9">&#167;3.9</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3_2">&#167;3.2</a>, <a href="5-dci.html#SP3_3">&#167;3.3</a>, <a href="5-dci.html#SP3_4">&#167;3.4</a><br/>Relations - <a href="5-rlt.html#SP6_3">&#167;6.3</a>, <a href="5-rlt.html#SP6_3_3">&#167;6.3.3</a>, <a href="5-rlt.html#SP7">&#167;7</a>, <a href="5-rlt.html#SP9">&#167;9</a>, <a href="5-rlt.html#SP10_2">&#167;10.2</a>, <a href="5-rlt.html#SP10_3">&#167;10.3</a><br/>Kind IDs - <a href="5-ki.html#SP9_1_1_1">&#167;9.1.1.1</a>, <a href="5-ki.html#SP9_1_1_2">&#167;9.1.1.2</a><br/>Test Scripts - <a href="5-ts.html#SP4">&#167;4</a><br/>The Player - <a href="6-tp.html#SP1">&#167;1</a><br/>The Map - <a href="6-tm.html#SP1">&#167;1</a><br/>Action Bitmap Property - <a href="6-abp.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::numeric_entry</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">EmitArrays::numeric_entry</span></span>:<br/>The Heap - <a href="2-th.html#SP6">&#167;6</a><br/>List Literals - <a href="4-ll.html#SP1">&#167;1</a>, <a href="4-ll.html#SP2">&#167;2</a><br/>Box Quotations - <a href="4-bq.html#SP2">&#167;2</a><br/>Relation Literals - <a href="4-rl.html#SP1">&#167;1</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">&#167;1</a><br/>Instances - <a href="5-ins.html#SP4">&#167;4</a><br/>Multimedia - <a href="5-mlt.html#SP2_1">&#167;2.1</a>, <a href="5-mlt.html#SP2_2">&#167;2.2</a>, <a href="5-mlt.html#SP3_2">&#167;3.2</a><br/>Tables - <a href="5-tbl.html#SP2_1_1_1_4">&#167;2.1.1.1.4</a>, <a href="5-tbl.html#SP2_2_3">&#167;2.2.3</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2">&#167;2</a>, <a href="5-dbi.html#SP2_1">&#167;2.1</a>, <a href="5-dbi.html#SP2_2">&#167;2.2</a>, <a href="5-dbi.html#SP2_4">&#167;2.4</a>, <a href="5-dbi.html#SP2_5">&#167;2.5</a>, <a href="5-dbi.html#SP2_8">&#167;2.8</a>, <a href="5-dbi.html#SP3">&#167;3</a><br/>Dialogue - <a href="5-dli.html#SP3_2">&#167;3.2</a>, <a href="5-dli.html#SP3_3">&#167;3.3</a>, <a href="5-dli.html#SP3_4">&#167;3.4</a>, <a href="5-dli.html#SP3_7">&#167;3.7</a>, <a href="5-dli.html#SP3_8">&#167;3.8</a>, <a href="5-dli.html#SP3_9">&#167;3.9</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3_2">&#167;3.2</a>, <a href="5-dci.html#SP3_3">&#167;3.3</a>, <a href="5-dci.html#SP3_4">&#167;3.4</a><br/>Relations - <a href="5-rlt.html#SP6_3">&#167;6.3</a>, <a href="5-rlt.html#SP6_3_3">&#167;6.3.3</a>, <a href="5-rlt.html#SP7">&#167;7</a>, <a href="5-rlt.html#SP9">&#167;9</a>, <a href="5-rlt.html#SP10_2">&#167;10.2</a>, <a href="5-rlt.html#SP10_3">&#167;10.3</a><br/>Kind Constructors - <a href="5-kc.html#SP28">&#167;28</a>, <a href="5-kc.html#SP30_3_2">&#167;30.3.2</a><br/>Kind IDs - <a href="5-ki.html#SP9_1_1_1">&#167;9.1.1.1</a>, <a href="5-ki.html#SP9_1_1_2">&#167;9.1.1.2</a><br/>Test Scripts - <a href="5-ts.html#SP4">&#167;4</a><br/>The Player - <a href="6-tp.html#SP1">&#167;1</a><br/>The Map - <a href="6-tm.html#SP1">&#167;1</a><br/>Action Bitmap Property - <a href="6-abp.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-ea.html#SP9" class="function-link"><span class="function-syntax">EmitArrays::entry_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">InterValuePairs::number</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">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::iname_entry</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">EmitArrays::iname_entry</span></span>:<br/>The Heap - <a href="2-th.html#SP6">&#167;6</a><br/>Short Names - <a href="2-sn.html#SP4">&#167;4</a><br/>List Literals - <a href="4-ll.html#SP2">&#167;2</a>, <a href="4-ll.html#SP7_2">&#167;7.2</a><br/>Text Literals - <a href="4-tl.html#SP1">&#167;1</a><br/>Text Substitutions - <a href="4-ts.html#SP1">&#167;1</a><br/>Relation Literals - <a href="4-rl.html#SP1">&#167;1</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">&#167;1</a><br/>Instances - <a href="5-ins.html#SP4">&#167;4</a><br/>Door Instances - <a href="5-di.html#SP6">&#167;6</a><br/>Multimedia - <a href="5-mlt.html#SP2_2">&#167;2.2</a>, <a href="5-mlt.html#SP3_2">&#167;3.2</a><br/>Tables - <a href="5-tbl.html#SP2_1_1">&#167;2.1.1</a>, <a href="5-tbl.html#SP2_1_1_1_3">&#167;2.1.1.1.3</a>, <a href="5-tbl.html#SP2_1_1_1_5">&#167;2.1.1.1.5</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2">&#167;2</a>, <a href="5-dbi.html#SP2_1">&#167;2.1</a>, <a href="5-dbi.html#SP2_2">&#167;2.2</a>, <a href="5-dbi.html#SP2_3">&#167;2.3</a>, <a href="5-dbi.html#SP2_4">&#167;2.4</a>, <a href="5-dbi.html#SP2_5">&#167;2.5</a>, <a href="5-dbi.html#SP3">&#167;3</a><br/>Dialogue - <a href="5-dli.html#SP3_2">&#167;3.2</a>, <a href="5-dli.html#SP3_3">&#167;3.3</a>, <a href="5-dli.html#SP3_4">&#167;3.4</a>, <a href="5-dli.html#SP3_5">&#167;3.5</a>, <a href="5-dli.html#SP3_6">&#167;3.6</a>, <a href="5-dli.html#SP3_7">&#167;3.7</a>, <a href="5-dli.html#SP3_8">&#167;3.8</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3_3">&#167;3.3</a>, <a href="5-dci.html#SP3_4">&#167;3.4</a><br/>Relations - <a href="5-rlt.html#SP6_3_2">&#167;6.3.2</a>, <a href="5-rlt.html#SP6_3_2_1">&#167;6.3.2.1</a>, <a href="5-rlt.html#SP6_3_3">&#167;6.3.3</a>, <a href="5-rlt.html#SP6_3_6">&#167;6.3.6</a>, <a href="5-rlt.html#SP7">&#167;7</a>, <a href="5-rlt.html#SP10_2">&#167;10.2</a><br/>Kind IDs - <a href="5-ki.html#SP6">&#167;6</a>, <a href="5-ki.html#SP9_1">&#167;9.1</a><br/>Test Scripts - <a href="5-ts.html#SP4">&#167;4</a><br/>The Player - <a href="6-tp.html#SP1">&#167;1</a><br/>The Map - <a href="6-tm.html#SP1">&#167;1</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP6_1">&#167;6.1</a>, <a href="7-cgl.html#SP6_4">&#167;6.4</a>, <a href="7-cgl.html#SP7">&#167;7</a>, <a href="7-cgl.html#SP8">&#167;8</a>, <a href="7-cgl.html#SP10">&#167;10</a>, <a href="7-cgl.html#SP14_4">&#167;14.4</a>, <a href="7-cgl.html#SP14_5">&#167;14.5</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_3">&#167;1.3</a>, <a href="7-cgt.html#SP1_4_3">&#167;1.4.3</a>, <a href="7-cgt.html#SP1_5">&#167;1.5</a><br/>Noun Filter Tokens - <a href="7-nft.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::iname_entry</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">EmitArrays::iname_entry</span></span>:<br/>The Heap - <a href="2-th.html#SP6">&#167;6</a><br/>Short Names - <a href="2-sn.html#SP4">&#167;4</a><br/>List Literals - <a href="4-ll.html#SP2">&#167;2</a>, <a href="4-ll.html#SP7_1">&#167;7.1</a><br/>Text Literals - <a href="4-tl.html#SP1">&#167;1</a><br/>Text Substitutions - <a href="4-ts.html#SP1">&#167;1</a><br/>Relation Literals - <a href="4-rl.html#SP1">&#167;1</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">&#167;1</a><br/>Instances - <a href="5-ins.html#SP4">&#167;4</a><br/>Door Instances - <a href="5-di.html#SP6">&#167;6</a><br/>Multimedia - <a href="5-mlt.html#SP2_2">&#167;2.2</a>, <a href="5-mlt.html#SP3_2">&#167;3.2</a><br/>Tables - <a href="5-tbl.html#SP2_1_1">&#167;2.1.1</a>, <a href="5-tbl.html#SP2_1_1_1_3">&#167;2.1.1.1.3</a>, <a href="5-tbl.html#SP2_1_1_1_5">&#167;2.1.1.1.5</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2">&#167;2</a>, <a href="5-dbi.html#SP2_1">&#167;2.1</a>, <a href="5-dbi.html#SP2_2">&#167;2.2</a>, <a href="5-dbi.html#SP2_3">&#167;2.3</a>, <a href="5-dbi.html#SP2_4">&#167;2.4</a>, <a href="5-dbi.html#SP2_5">&#167;2.5</a>, <a href="5-dbi.html#SP3">&#167;3</a><br/>Dialogue - <a href="5-dli.html#SP3_2">&#167;3.2</a>, <a href="5-dli.html#SP3_3">&#167;3.3</a>, <a href="5-dli.html#SP3_4">&#167;3.4</a>, <a href="5-dli.html#SP3_5">&#167;3.5</a>, <a href="5-dli.html#SP3_6">&#167;3.6</a>, <a href="5-dli.html#SP3_7">&#167;3.7</a>, <a href="5-dli.html#SP3_8">&#167;3.8</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3_3">&#167;3.3</a>, <a href="5-dci.html#SP3_4">&#167;3.4</a><br/>Relations - <a href="5-rlt.html#SP6_3_2">&#167;6.3.2</a>, <a href="5-rlt.html#SP6_3_2_1">&#167;6.3.2.1</a>, <a href="5-rlt.html#SP6_3_3">&#167;6.3.3</a>, <a href="5-rlt.html#SP6_3_6">&#167;6.3.6</a>, <a href="5-rlt.html#SP7">&#167;7</a>, <a href="5-rlt.html#SP10_2">&#167;10.2</a><br/>Kind Constructors - <a href="5-kc.html#SP28">&#167;28</a><br/>Kind IDs - <a href="5-ki.html#SP6">&#167;6</a>, <a href="5-ki.html#SP9_1">&#167;9.1</a><br/>Test Scripts - <a href="5-ts.html#SP4">&#167;4</a><br/>The Player - <a href="6-tp.html#SP1">&#167;1</a><br/>The Map - <a href="6-tm.html#SP1">&#167;1</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP6_1">&#167;6.1</a>, <a href="7-cgl.html#SP6_4">&#167;6.4</a>, <a href="7-cgl.html#SP7">&#167;7</a>, <a href="7-cgl.html#SP8">&#167;8</a>, <a href="7-cgl.html#SP10">&#167;10</a>, <a href="7-cgl.html#SP14_4">&#167;14.4</a>, <a href="7-cgl.html#SP14_5">&#167;14.5</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_3">&#167;1.3</a>, <a href="7-cgt.html#SP1_4_3">&#167;1.4.3</a>, <a href="7-cgt.html#SP1_5">&#167;1.5</a><br/>Noun Filter Tokens - <a href="7-nft.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">alias</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">iname</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">alias</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">NOTHING_HL</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">alias</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
@ -189,7 +189,7 @@ which would be a typesafe list in I7, so they can be absolutely any data.
</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">EmitArrays::end</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">EmitArrays::end</span></span>:<br/>Short Names - <a href="2-sn.html#SP4">&#167;4</a><br/>List Literals - <a href="4-ll.html#SP1">&#167;1</a>, <a href="4-ll.html#SP2">&#167;2</a><br/>Text Literals - <a href="4-tl.html#SP1">&#167;1</a><br/>Text Substitutions - <a href="4-ts.html#SP1">&#167;1</a><br/>Box Quotations - <a href="4-bq.html#SP2">&#167;2</a><br/>Relation Literals - <a href="4-rl.html#SP1">&#167;1</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">&#167;1</a><br/>Instances - <a href="5-ins.html#SP4">&#167;4</a><br/>Door Instances - <a href="5-di.html#SP6">&#167;6</a><br/>Multimedia - <a href="5-mlt.html#SP2_1">&#167;2.1</a>, <a href="5-mlt.html#SP2_2">&#167;2.2</a>, <a href="5-mlt.html#SP3_2">&#167;3.2</a><br/>Tables - <a href="5-tbl.html#SP2_1_1">&#167;2.1.1</a>, <a href="5-tbl.html#SP2_1_1_1">&#167;2.1.1.1</a>, <a href="5-tbl.html#SP2_2">&#167;2.2</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2">&#167;2</a>, <a href="5-dbi.html#SP2_8">&#167;2.8</a><br/>Dialogue - <a href="5-dli.html#SP3">&#167;3</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3">&#167;3</a><br/>Relations - <a href="5-rlt.html#SP6_3">&#167;6.3</a>, <a href="5-rlt.html#SP6_3_2">&#167;6.3.2</a>, <a href="5-rlt.html#SP7">&#167;7</a>, <a href="5-rlt.html#SP10">&#167;10</a>, <a href="5-rlt.html#SP10_3">&#167;10.3</a><br/>Kind IDs - <a href="5-ki.html#SP9_1">&#167;9.1</a><br/>Test Scripts - <a href="5-ts.html#SP4">&#167;4</a><br/>The Player - <a href="6-tp.html#SP1">&#167;1</a><br/>The Map - <a href="6-tm.html#SP1">&#167;1</a><br/>Action Bitmap Property - <a href="6-abp.html#SP1">&#167;1</a><br/>Command Grammars - <a href="7-cg.html#SP11">&#167;11</a><br/>Name Properties - <a href="7-np.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::end</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">EmitArrays::end</span></span>:<br/>Short Names - <a href="2-sn.html#SP4">&#167;4</a><br/>List Literals - <a href="4-ll.html#SP1">&#167;1</a>, <a href="4-ll.html#SP2">&#167;2</a><br/>Text Literals - <a href="4-tl.html#SP1">&#167;1</a><br/>Text Substitutions - <a href="4-ts.html#SP1">&#167;1</a><br/>Box Quotations - <a href="4-bq.html#SP2">&#167;2</a><br/>Relation Literals - <a href="4-rl.html#SP1">&#167;1</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">&#167;1</a><br/>Instances - <a href="5-ins.html#SP4">&#167;4</a><br/>Door Instances - <a href="5-di.html#SP6">&#167;6</a><br/>Multimedia - <a href="5-mlt.html#SP2_1">&#167;2.1</a>, <a href="5-mlt.html#SP2_2">&#167;2.2</a>, <a href="5-mlt.html#SP3_2">&#167;3.2</a><br/>Tables - <a href="5-tbl.html#SP2_1_1">&#167;2.1.1</a>, <a href="5-tbl.html#SP2_1_1_1">&#167;2.1.1.1</a>, <a href="5-tbl.html#SP2_2">&#167;2.2</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2">&#167;2</a>, <a href="5-dbi.html#SP2_8">&#167;2.8</a><br/>Dialogue - <a href="5-dli.html#SP3">&#167;3</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3">&#167;3</a><br/>Relations - <a href="5-rlt.html#SP6_3">&#167;6.3</a>, <a href="5-rlt.html#SP6_3_2">&#167;6.3.2</a>, <a href="5-rlt.html#SP7">&#167;7</a>, <a href="5-rlt.html#SP10">&#167;10</a>, <a href="5-rlt.html#SP10_3">&#167;10.3</a><br/>Kind Constructors - <a href="5-kc.html#SP30_3_2">&#167;30.3.2</a><br/>Kind IDs - <a href="5-ki.html#SP9_1">&#167;9.1</a><br/>Test Scripts - <a href="5-ts.html#SP4">&#167;4</a><br/>The Player - <a href="6-tp.html#SP1">&#167;1</a><br/>The Map - <a href="6-tm.html#SP1">&#167;1</a><br/>Action Bitmap Property - <a href="6-abp.html#SP1">&#167;1</a><br/>Command Grammars - <a href="7-cg.html#SP11">&#167;11</a><br/>Name Properties - <a href="7-np.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-ea.html#SP10" class="function-link"><span class="function-syntax">EmitArrays::end_inner</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Packaging::exit</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>

File diff suppressed because one or more lines are too long

View file

@ -79,7 +79,7 @@ creates the <span class="extract"><span class="extract-syntax">main</span></span
<span class="plain-syntax"> </span><span class="identifier-syntax">LargeScale::begin_new_tree</span><span class="plain-syntax">(</span><span class="identifier-syntax">main_emission_tree</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">main_emission_tree</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::tree</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">Emit::tree</span></span>:<br/><a href="2-emt.html#SP4">&#167;4</a>, <a href="2-emt.html#SP5">&#167;5</a>, <a href="2-emt.html#SP6">&#167;6</a>, <a href="2-emt.html#SP7">&#167;7</a>, <a href="2-emt.html#SP8">&#167;8</a>, <a href="2-emt.html#SP9">&#167;9</a>, <a href="2-emt.html#SP11">&#167;11</a>, <a href="2-emt.html#SP12">&#167;12</a>, <a href="2-emt.html#SP13">&#167;13</a>, <a href="2-emt.html#SP14">&#167;14</a><br/>Hierarchy - <a href="2-hrr.html#SP1">&#167;1</a>, <a href="2-hrr.html#SP2">&#167;2</a>, <a href="2-hrr.html#SP8">&#167;8</a>, <a href="2-hrr.html#SP9">&#167;9</a>, <a href="2-hrr.html#SP11">&#167;11</a>, <a href="2-hrr.html#SP12">&#167;12</a>, <a href="2-hrr.html#SP13">&#167;13</a>, <a href="2-hrr.html#SP14">&#167;14</a>, <a href="2-hrr.html#SP15">&#167;15</a>, <a href="2-hrr.html#SP16">&#167;16</a>, <a href="2-hrr.html#SP17">&#167;17</a>, <a href="2-hrr.html#SP18">&#167;18</a>, <a href="2-hrr.html#SP20">&#167;20</a>, <a href="2-hrr.html#SP21">&#167;21</a>, <a href="2-hrr.html#SP22">&#167;22</a><br/>Compilation Units - <a href="2-cu.html#SP2_1">&#167;2.1</a><br/>Emit Code - <a href="2-ec.html#SP2">&#167;2</a>, <a href="2-ec.html#SP3">&#167;3</a>, <a href="2-ec.html#SP4">&#167;4</a>, <a href="2-ec.html#SP5">&#167;5</a>, <a href="2-ec.html#SP7">&#167;7</a>, <a href="2-ec.html#SP8">&#167;8</a>, <a href="2-ec.html#SP10">&#167;10</a>, <a href="2-ec.html#SP12">&#167;12</a>, <a href="2-ec.html#SP13">&#167;13</a>, <a href="2-ec.html#SP14">&#167;14</a>, <a href="2-ec.html#SP15">&#167;15</a>, <a href="2-ec.html#SP16">&#167;16</a>, <a href="2-ec.html#SP17">&#167;17</a><br/>Emit Arrays - <a href="2-ea.html#SP5">&#167;5</a><br/>Default Values - <a href="2-dv.html#SP1">&#167;1</a><br/>Generic Module - <a href="3-gm.html#SP1">&#167;1</a><br/>Use Options - <a href="3-uo.html#SP3">&#167;3</a><br/>Enclosures - <a href="4-enc.html#SP1">&#167;1</a><br/>Text Substitutions - <a href="4-ts.html#SP7_4">&#167;7.4</a><br/>Rules - <a href="5-rls.html#SP6">&#167;6</a><br/>Variables - <a href="5-vrb.html#SP6">&#167;6</a>, <a href="5-vrb.html#SP15">&#167;15</a><br/>Kind Constructors - <a href="5-kc.html#SP3">&#167;3</a>, <a href="5-kc.html#SP4">&#167;4</a>, <a href="5-kc.html#SP8">&#167;8</a>, <a href="5-kc.html#SP10">&#167;10</a><br/>Property Permissions - <a href="6-pp.html#SP2">&#167;2</a>, <a href="6-pp.html#SP3">&#167;3</a><br/>Property Values - <a href="6-pv.html#SP2">&#167;2</a>, <a href="6-pv.html#SP2_2_1">&#167;2.2.1</a><br/>Command Grammars - <a href="7-cg.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">inter_tree</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::tree</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">Emit::tree</span></span>:<br/><a href="2-emt.html#SP4">&#167;4</a>, <a href="2-emt.html#SP5">&#167;5</a>, <a href="2-emt.html#SP6">&#167;6</a>, <a href="2-emt.html#SP7">&#167;7</a>, <a href="2-emt.html#SP8">&#167;8</a>, <a href="2-emt.html#SP9">&#167;9</a>, <a href="2-emt.html#SP11">&#167;11</a>, <a href="2-emt.html#SP12">&#167;12</a>, <a href="2-emt.html#SP13">&#167;13</a>, <a href="2-emt.html#SP14">&#167;14</a><br/>Hierarchy - <a href="2-hrr.html#SP1">&#167;1</a>, <a href="2-hrr.html#SP2">&#167;2</a>, <a href="2-hrr.html#SP8">&#167;8</a>, <a href="2-hrr.html#SP9">&#167;9</a>, <a href="2-hrr.html#SP11">&#167;11</a>, <a href="2-hrr.html#SP12">&#167;12</a>, <a href="2-hrr.html#SP13">&#167;13</a>, <a href="2-hrr.html#SP14">&#167;14</a>, <a href="2-hrr.html#SP15">&#167;15</a>, <a href="2-hrr.html#SP16">&#167;16</a>, <a href="2-hrr.html#SP17">&#167;17</a>, <a href="2-hrr.html#SP18">&#167;18</a>, <a href="2-hrr.html#SP20">&#167;20</a>, <a href="2-hrr.html#SP21">&#167;21</a>, <a href="2-hrr.html#SP22">&#167;22</a><br/>Compilation Units - <a href="2-cu.html#SP2_1">&#167;2.1</a><br/>Emit Code - <a href="2-ec.html#SP2">&#167;2</a>, <a href="2-ec.html#SP3">&#167;3</a>, <a href="2-ec.html#SP4">&#167;4</a>, <a href="2-ec.html#SP5">&#167;5</a>, <a href="2-ec.html#SP7">&#167;7</a>, <a href="2-ec.html#SP8">&#167;8</a>, <a href="2-ec.html#SP10">&#167;10</a>, <a href="2-ec.html#SP12">&#167;12</a>, <a href="2-ec.html#SP13">&#167;13</a>, <a href="2-ec.html#SP14">&#167;14</a>, <a href="2-ec.html#SP15">&#167;15</a>, <a href="2-ec.html#SP16">&#167;16</a>, <a href="2-ec.html#SP17">&#167;17</a><br/>Emit Arrays - <a href="2-ea.html#SP5">&#167;5</a><br/>Default Values - <a href="2-dv.html#SP1">&#167;1</a><br/>Generic Module - <a href="3-gm.html#SP1">&#167;1</a><br/>Use Options - <a href="3-uo.html#SP3">&#167;3</a><br/>Enclosures - <a href="4-enc.html#SP1">&#167;1</a><br/>Text Substitutions - <a href="4-ts.html#SP7_4">&#167;7.4</a><br/>Rules - <a href="5-rls.html#SP6">&#167;6</a><br/>Variables - <a href="5-vrb.html#SP6">&#167;6</a>, <a href="5-vrb.html#SP15">&#167;15</a><br/>Kind Constructors - <a href="5-kc.html#SP3">&#167;3</a>, <a href="5-kc.html#SP9">&#167;9</a>, <a href="5-kc.html#SP12">&#167;12</a>, <a href="5-kc.html#SP17_1">&#167;17.1</a><br/>Property Permissions - <a href="6-pp.html#SP2">&#167;2</a>, <a href="6-pp.html#SP3">&#167;3</a><br/>Property Values - <a href="6-pv.html#SP2">&#167;2</a>, <a href="6-pv.html#SP2_2_1">&#167;2.2.1</a><br/>Command Grammars - <a href="7-cg.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="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">main_emission_tree</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
@ -193,7 +193,7 @@ it represents an actual number at run-time, the second if not:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::numeric_constant</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">Emit::numeric_constant</span></span>:<br/>Hierarchy - <a href="2-hrr.html#SP23">&#167;23</a><br/>Compilation Units - <a href="2-cu.html#SP2_1_3">&#167;2.1.3</a><br/>The Heap - <a href="2-th.html#SP2">&#167;2</a><br/>Completion Module - <a href="3-cm.html#SP1_5">&#167;1.5</a>, <a href="3-cm.html#SP1_6">&#167;1.6</a>, <a href="3-cm.html#SP1_7">&#167;1.7</a>, <a href="3-cm.html#SP1_8">&#167;1.8</a>, <a href="3-cm.html#SP1_11_1">&#167;1.11.1</a><br/>Use Options - <a href="3-uo.html#SP1_3">&#167;1.3</a>, <a href="3-uo.html#SP3">&#167;3</a><br/>Responses - <a href="4-rsp.html#SP6">&#167;6</a><br/>Activities - <a href="5-act.html#SP8">&#167;8</a><br/>Chronology - <a href="5-chr.html#SP3_3">&#167;3.3</a>, <a href="5-chr.html#SP7_1">&#167;7.1</a><br/>Conjugations - <a href="5-cnj.html#SP12">&#167;12</a><br/>Tables - <a href="5-tbl.html#SP2_1_1_1_3">&#167;2.1.1.1.3</a>, <a href="5-tbl.html#SP2_3">&#167;2.3</a><br/>Table Columns - <a href="5-tc.html#SP2">&#167;2</a><br/>Rules - <a href="5-rls.html#SP12_2">&#167;12.2</a><br/>Rulebooks - <a href="5-rlb.html#SP8_2">&#167;8.2</a><br/>Variables - <a href="5-vrb.html#SP14">&#167;14</a><br/>Properties - <a href="5-prp.html#SP8_3">&#167;8.3</a><br/>Relations - <a href="5-rlt.html#SP5">&#167;5</a>, <a href="5-rlt.html#SP10_3">&#167;10.3</a><br/>Kind Constructors - <a href="5-kc.html#SP10">&#167;10</a><br/>Kind IDs - <a href="5-ki.html#SP9_2">&#167;9.2</a><br/>Actions - <a href="5-act2.html#SP8_1">&#167;8.1</a>, <a href="5-act2.html#SP8_3">&#167;8.3</a><br/>Bibliographic Data - <a href="6-bd.html#SP1_6">&#167;1.6</a><br/>The Player - <a href="6-tp.html#SP1">&#167;1</a><br/>The Map - <a href="6-tm.html#SP1">&#167;1</a><br/>Command Grammars - <a href="7-cg.html#SP3">&#167;3</a>, <a href="7-cg.html#SP11">&#167;11</a>, <a href="7-cg.html#SP16">&#167;16</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::numeric_constant</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">Emit::numeric_constant</span></span>:<br/>Hierarchy - <a href="2-hrr.html#SP23">&#167;23</a><br/>Compilation Units - <a href="2-cu.html#SP2_1_3">&#167;2.1.3</a><br/>The Heap - <a href="2-th.html#SP2">&#167;2</a><br/>Completion Module - <a href="3-cm.html#SP1_5">&#167;1.5</a>, <a href="3-cm.html#SP1_6">&#167;1.6</a>, <a href="3-cm.html#SP1_7">&#167;1.7</a>, <a href="3-cm.html#SP1_8">&#167;1.8</a>, <a href="3-cm.html#SP1_11_1">&#167;1.11.1</a><br/>Use Options - <a href="3-uo.html#SP1_3">&#167;1.3</a>, <a href="3-uo.html#SP3">&#167;3</a><br/>Responses - <a href="4-rsp.html#SP6">&#167;6</a><br/>Activities - <a href="5-act.html#SP8">&#167;8</a><br/>Chronology - <a href="5-chr.html#SP3_3">&#167;3.3</a>, <a href="5-chr.html#SP7_1">&#167;7.1</a><br/>Conjugations - <a href="5-cnj.html#SP12">&#167;12</a><br/>Tables - <a href="5-tbl.html#SP2_1_1_1_3">&#167;2.1.1.1.3</a>, <a href="5-tbl.html#SP2_3">&#167;2.3</a><br/>Table Columns - <a href="5-tc.html#SP2">&#167;2</a><br/>Rules - <a href="5-rls.html#SP12_2">&#167;12.2</a><br/>Rulebooks - <a href="5-rlb.html#SP8_2">&#167;8.2</a><br/>Variables - <a href="5-vrb.html#SP14">&#167;14</a><br/>Properties - <a href="5-prp.html#SP8_3">&#167;8.3</a><br/>Relations - <a href="5-rlt.html#SP5">&#167;5</a>, <a href="5-rlt.html#SP10_3">&#167;10.3</a><br/>Kind Constructors - <a href="5-kc.html#SP30_1_1">&#167;30.1.1</a>, <a href="5-kc.html#SP30_1_2">&#167;30.1.2</a>, <a href="5-kc.html#SP30_3_1">&#167;30.3.1</a>, <a href="5-kc.html#SP30_3_3">&#167;30.3.3</a>, <a href="5-kc.html#SP30_3_4">&#167;30.3.4</a>, <a href="5-kc.html#SP30_3_5">&#167;30.3.5</a><br/>Kind IDs - <a href="5-ki.html#SP9_2">&#167;9.2</a><br/>Actions - <a href="5-act2.html#SP8_1">&#167;8.1</a>, <a href="5-act2.html#SP8_3">&#167;8.3</a><br/>Bibliographic Data - <a href="6-bd.html#SP1_6">&#167;1.6</a><br/>The Player - <a href="6-tp.html#SP1">&#167;1</a><br/>The Map - <a href="6-tm.html#SP1">&#167;1</a><br/>Command Grammars - <a href="7-cg.html#SP3">&#167;3</a>, <a href="7-cg.html#SP11">&#167;11</a>, <a href="7-cg.html#SP16">&#167;16</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-emt.html#SP6" class="function-link"><span class="function-syntax">Emit::numeric_constant_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterValuePairs::number_in_base</span><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="constant-syntax">10</span><span class="plain-syntax">), </span><span class="identifier-syntax">INT32_ITCONC</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
@ -255,7 +255,7 @@ it represents an actual number at run-time, the second if not:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::iname_constant</span><button class="popup" onclick="togglePopup('usagePopup20')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup20">Usage of <span class="code-font"><span class="function-syntax">Emit::iname_constant</span></span>:<br/>Hierarchy - <a href="2-hrr.html#SP23">&#167;23</a><br/>Instance Counting - <a href="2-ic.html#SP8">&#167;8</a><br/>Short Names - <a href="2-sn.html#SP2">&#167;2</a><br/>Responses - <a href="4-rsp.html#SP6">&#167;6</a><br/>Activities - <a href="5-act.html#SP8">&#167;8</a><br/>Chronology - <a href="5-chr.html#SP4">&#167;4</a>, <a href="5-chr.html#SP8">&#167;8</a><br/>Conjugations - <a href="5-cnj.html#SP12">&#167;12</a><br/>Scene Instances - <a href="5-si.html#SP3">&#167;3</a>, <a href="5-si.html#SP7">&#167;7</a><br/>Tables - <a href="5-tbl.html#SP2_1_1_1_3">&#167;2.1.1.1.3</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2">&#167;2</a><br/>Rulebooks - <a href="5-rlb.html#SP8_2">&#167;8.2</a>, <a href="5-rlb.html#SP8_4">&#167;8.4</a>, <a href="5-rlb.html#SP15_3">&#167;15.3</a><br/>Properties - <a href="5-prp.html#SP8_2">&#167;8.2</a><br/>Relations - <a href="5-rlt.html#SP4">&#167;4</a>, <a href="5-rlt.html#SP5">&#167;5</a>, <a href="5-rlt.html#SP6_2">&#167;6.2</a><br/>Kind Constructors - <a href="5-kc.html#SP4">&#167;4</a><br/>Kind IDs - <a href="5-ki.html#SP6">&#167;6</a>, <a href="5-ki.html#SP9_2">&#167;9.2</a><br/>Actions - <a href="5-act2.html#SP8_3">&#167;8.3</a>, <a href="5-act2.html#SP8_4">&#167;8.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val_iname</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::iname_constant</span><button class="popup" onclick="togglePopup('usagePopup20')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup20">Usage of <span class="code-font"><span class="function-syntax">Emit::iname_constant</span></span>:<br/>Hierarchy - <a href="2-hrr.html#SP23">&#167;23</a><br/>Instance Counting - <a href="2-ic.html#SP8">&#167;8</a><br/>Short Names - <a href="2-sn.html#SP2">&#167;2</a><br/>Responses - <a href="4-rsp.html#SP6">&#167;6</a><br/>Activities - <a href="5-act.html#SP8">&#167;8</a><br/>Chronology - <a href="5-chr.html#SP4">&#167;4</a>, <a href="5-chr.html#SP8">&#167;8</a><br/>Conjugations - <a href="5-cnj.html#SP12">&#167;12</a><br/>Scene Instances - <a href="5-si.html#SP3">&#167;3</a>, <a href="5-si.html#SP7">&#167;7</a><br/>Tables - <a href="5-tbl.html#SP2_1_1_1_3">&#167;2.1.1.1.3</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2">&#167;2</a><br/>Rulebooks - <a href="5-rlb.html#SP8_2">&#167;8.2</a>, <a href="5-rlb.html#SP8_4">&#167;8.4</a>, <a href="5-rlb.html#SP15_3">&#167;15.3</a><br/>Properties - <a href="5-prp.html#SP8_2">&#167;8.2</a><br/>Relations - <a href="5-rlt.html#SP4">&#167;4</a>, <a href="5-rlt.html#SP5">&#167;5</a>, <a href="5-rlt.html#SP6_2">&#167;6.2</a><br/>Kind IDs - <a href="5-ki.html#SP6">&#167;6</a>, <a href="5-ki.html#SP9_2">&#167;9.2</a><br/>Actions - <a href="5-act2.html#SP8_3">&#167;8.3</a>, <a href="5-act2.html#SP8_4">&#167;8.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val_iname</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Packaging::enter_home_of</span><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val_s</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">val_iname</span><span class="plain-syntax">)?</span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">val_iname</span><span class="plain-syntax">):</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
@ -324,10 +324,10 @@ of a "variable" and define it as a constant:
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>&#167;12. Instances. </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">Emit::instance</span><button class="popup" onclick="togglePopup('usagePopup26')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup26">Usage of <span class="code-font"><span class="function-syntax">Emit::instance</span></span>:<br/>Instances - <a href="5-ins.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inst_iname</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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">v</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::instance</span><button class="popup" onclick="togglePopup('usagePopup26')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup26">Usage of <span class="code-font"><span class="function-syntax">Emit::instance</span></span>:<br/>Instances - <a href="5-ins.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inst_iname</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">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">v</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">has_value</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Packaging::enter_home_of</span><span class="plain-syntax">(</span><span class="identifier-syntax">inst_iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inst_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">inst_iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax"> = </span><span class="identifier-syntax">v</span><span class="plain-syntax"> ? </span><span class="identifier-syntax">InterValuePairs::number</span><span class="plain-syntax">((</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">v</span><span class="plain-syntax">) : </span><span class="identifier-syntax">InterValuePairs::undef</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax"> = </span><span class="identifier-syntax">has_value</span><span class="plain-syntax"> ? </span><span class="identifier-syntax">InterValuePairs::number</span><span class="plain-syntax">(</span><span class="identifier-syntax">v</span><span class="plain-syntax">) : </span><span class="identifier-syntax">InterValuePairs::undef</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::guard</span><span class="plain-syntax">(</span><span class="identifier-syntax">InstanceInstruction::new</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::at</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">inst_s</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::kind_to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">), </span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::baseline</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">Packaging::exit</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>

File diff suppressed because one or more lines are too long

View file

@ -217,7 +217,7 @@ the same set of objects, but in the same order.
creates an explicit player.
<a href="#fnref:2" title="return to text"> &#x21A9;</a></p></li></ul>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">InstanceCounting::next_in_IK_sequence</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">InstanceCounting::next_in_IK_sequence</span></span>:<br/><a href="2-ic.html#SP8">&#167;8</a>, <a href="2-ic.html#SP10_4_2">&#167;10.4.2</a><br/>List Literals - <a href="4-ll.html#SP7_2">&#167;7.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</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">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">InstanceCounting::next_in_IK_sequence</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">InstanceCounting::next_in_IK_sequence</span></span>:<br/><a href="2-ic.html#SP8">&#167;8</a>, <a href="2-ic.html#SP10_4_2">&#167;10.4.2</a><br/>List Literals - <a href="4-ll.html#SP7_1">&#167;7.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</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="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><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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">resuming</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">I</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) { </span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FIRST_IN_INSTANCE_ORDERING</span><span class="plain-syntax">; </span><span class="identifier-syntax">resuming</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">; }</span>
@ -248,7 +248,7 @@ compile time.
<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="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_BASE_KINDS</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_subkind_of_object</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::first_instance_iname</span></a><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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP10" class="function-link"><span class="function-syntax">RTKindConstructors::first_instance_iname</span></a><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">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next</span><span class="plain-syntax"> = </span><a href="2-ic.html#SP7" class="function-link"><span class="function-syntax">InstanceCounting::next_in_IK_sequence</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">next</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::iname_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">, </span><a href="5-ins.html#SP1" class="function-link"><span class="function-syntax">RTInstances::value_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">next</span><span class="plain-syntax">));</span>
@ -328,9 +328,8 @@ property values: one for (red car, thing), one for (red car, vehicle). The
properties in question are the <span class="extract"><span class="extract-syntax">IK_count_prop</span></span> for thing and vehicle.
</p>
<p class="commentary">Similarly for the next terms in the IK-sequences, where the properties are
the <span class="extract"><span class="extract-syntax">
</span></span></p>
<p class="commentary">Similarly for the next terms in the IK-sequences.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Create the two instance properties for each kind of object</span><span class="named-paragraph-number">10.2</span></span><span class="comment-syntax"> =</span>
</p>
@ -340,16 +339,16 @@ the <span class="extract"><span class="extract-syntax">
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_BASE_KINDS</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_subkind_of_object</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">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">subj</span><span class="plain-syntax"> = </span><span class="identifier-syntax">KindSubjects::from_kind</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">count_iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::instance_count_iname</span></a><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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">count_iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP11" class="function-link"><span class="function-syntax">RTKindConstructors::base_IK_iname</span></a><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">COUNTING_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">subj</span><span class="plain-syntax">)-&gt;</span><span class="identifier-syntax">IK_count_prop</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">ValueProperties::new_nameless_using</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_number</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="5-kc.html#SP4" class="function-link"><span class="function-syntax">RTKindConstructors::kind_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">), </span><span class="identifier-syntax">count_iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::kind_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">), </span><span class="identifier-syntax">count_iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next_iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::next_instance_iname</span></a><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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next_iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP10" class="function-link"><span class="function-syntax">RTKindConstructors::next_instance_iname</span></a><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">COUNTING_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">subj</span><span class="plain-syntax">)-&gt;</span><span class="identifier-syntax">next_in_IK_sequence_prop</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">ValueProperties::new_nameless_using</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_object</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="5-kc.html#SP4" class="function-link"><span class="function-syntax">RTKindConstructors::kind_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">), </span><span class="identifier-syntax">next_iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::kind_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">), </span><span class="identifier-syntax">next_iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-ic.html#SP10">&#167;10</a>.</li></ul>
@ -440,8 +439,8 @@ misleading to a human reader.
<span class="plain-syntax"> </span><span class="identifier-syntax">Calculus::Schemas::modify</span><span class="plain-syntax">(</span><span class="identifier-syntax">sch</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"for (*1=nothing: false: )"</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">first_iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::first_instance_iname</span></a><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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next_iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::next_instance_iname</span></a><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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">first_iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP10" class="function-link"><span class="function-syntax">RTKindConstructors::first_instance_iname</span></a><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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next_iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP10" class="function-link"><span class="function-syntax">RTKindConstructors::next_instance_iname</span></a><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">Calculus::Schemas::modify</span><span class="plain-syntax">(</span><span class="identifier-syntax">sch</span><span class="plain-syntax">, </span><span class="string-syntax">"for (*1=%n: *1: *1=*1.%n)"</span><span class="plain-syntax">, </span><span class="identifier-syntax">first_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">next_iname</span><span class="plain-syntax">);</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">TRUE</span><span class="plain-syntax">;</span>

View file

@ -65,7 +65,7 @@ function togglePopup(material_id) {
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">RTKindDeclarations::base_represented_in_Inter</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">RTKindDeclarations::base_represented_in_Inter</span></span>:<br/><a href="2-kd.html#SP5">&#167;5</a>, <a href="2-kd.html#SP7">&#167;7</a><br/>Kind Constructors - <a href="5-kc.html#SP10_6">&#167;10.6</a>, <a href="5-kc.html#SP10_7">&#167;10.7</a></span></button><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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">RTKindDeclarations::base_represented_in_Inter</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">RTKindDeclarations::base_represented_in_Inter</span></span>:<br/><a href="2-kd.html#SP5">&#167;5</a>, <a href="2-kd.html#SP7">&#167;7</a><br/>Kind Constructors - <a href="5-kc.html#SP29">&#167;29</a>, <a href="5-kc.html#SP33">&#167;33</a></span></button><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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Kinds::Behaviour::is_kind_of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::is_proper_constructor</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax"> != </span><span class="identifier-syntax">K_void</span><span class="plain-syntax">) &amp;&amp;</span>
@ -130,7 +130,7 @@ the kind in Inter, ensuring that it has been declared exactly once.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTKindDeclarations::iname</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">RTKindDeclarations::iname</span></span>:<br/><a href="2-kd.html#SP7">&#167;7</a>, <a href="2-kd.html#SP8">&#167;8</a><br/>Relations - <a href="5-rlt.html#SP19_1">&#167;19.1</a>, <a href="5-rlt.html#SP19_2">&#167;19.2</a>, <a href="5-rlt.html#SP19_3">&#167;19.3</a>, <a href="5-rlt.html#SP19_4">&#167;19.4</a>, <a href="5-rlt.html#SP19_5">&#167;19.5</a>, <a href="5-rlt.html#SP21">&#167;21</a><br/>Kind Constructors - <a href="5-kc.html#SP2">&#167;2</a>, <a href="5-kc.html#SP10">&#167;10</a><br/>Kind IDs - <a href="5-ki.html#SP10">&#167;10</a><br/>Property Permissions - <a href="6-pp.html#SP1">&#167;1</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_2_4">&#167;1.2.4</a>, <a href="7-cgt.html#SP1_2_10_1_1">&#167;1.2.10.1.1</a>, <a href="7-cgt.html#SP1_2_10_2_2">&#167;1.2.10.2.2</a><br/>Noun Filter Tokens - <a href="7-nft.html#SP3_2">&#167;3.2</a></span></button><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">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTKindDeclarations::iname</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">RTKindDeclarations::iname</span></span>:<br/><a href="2-kd.html#SP7">&#167;7</a>, <a href="2-kd.html#SP8">&#167;8</a><br/>Relations - <a href="5-rlt.html#SP19_1">&#167;19.1</a>, <a href="5-rlt.html#SP19_2">&#167;19.2</a>, <a href="5-rlt.html#SP19_3">&#167;19.3</a>, <a href="5-rlt.html#SP19_4">&#167;19.4</a>, <a href="5-rlt.html#SP19_5">&#167;19.5</a>, <a href="5-rlt.html#SP21">&#167;21</a><br/>Kind Constructors - <a href="5-kc.html#SP10">&#167;10</a>, <a href="5-kc.html#SP11">&#167;11</a>, <a href="5-kc.html#SP13">&#167;13</a>, <a href="5-kc.html#SP30_2_7">&#167;30.2.7</a><br/>Kind IDs - <a href="5-ki.html#SP10">&#167;10</a><br/>Property Permissions - <a href="6-pp.html#SP1">&#167;1</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_2_4">&#167;1.2.4</a>, <a href="7-cgt.html#SP1_2_10_1_1">&#167;1.2.10.1.1</a>, <a href="7-cgt.html#SP1_2_10_2_2">&#167;1.2.10.2.2</a><br/>Noun Filter Tokens - <a href="7-nft.html#SP3_2">&#167;3.2</a></span></button><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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-kd.html#SP1" class="function-link"><span class="function-syntax">RTKindDeclarations::base_represented_in_Inter</span></a><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">noun</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nt</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Kinds::Behaviour::get_noun</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">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">nt</span><span class="plain-syntax">) &amp;&amp; (</span><a href="2-ni.html#SP3" class="function-link"><span class="function-syntax">NounIdentifiers::iname_set</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">nt</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">))</span>
@ -166,7 +166,7 @@ sequence in which declarations are made here.
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTKindDeclarations::create_iname</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">RTKindDeclarations::create_iname</span></span>:<br/><a href="2-kd.html#SP5">&#167;5</a></span></button><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="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP1" class="function-link"><span class="function-syntax">RTKindConstructors::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">construct</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">construct</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">KT</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Kinds::Textual::write</span><span class="plain-syntax">(</span><span class="identifier-syntax">KT</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">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Feeds::feed_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">KT</span><span class="plain-syntax">);</span>

View file

@ -71,7 +71,7 @@ plugged in.
<span class="plain-syntax"> </span><span class="identifier-syntax">SHOWME_is_active</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">int</span><span class="plain-syntax"> </span><span class="function-syntax">RTShowmeCommand::needed_for_kind</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">RTShowmeCommand::needed_for_kind</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP10">&#167;10</a></span></button><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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">RTShowmeCommand::needed_for_kind</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">RTShowmeCommand::needed_for_kind</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP30_3">&#167;30.3</a></span></button><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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">SHOWME_is_active</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">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">subj</span><span class="plain-syntax"> = </span><span class="identifier-syntax">KindSubjects::from_kind</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">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">;</span>
@ -108,7 +108,7 @@ properties.
</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">RTShowmeCommand::compile_kind_showme_fn</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">RTShowmeCommand::compile_kind_showme_fn</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTShowmeCommand::compile_kind_showme_fn</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">RTShowmeCommand::compile_kind_showme_fn</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP30_3_18">&#167;30.3.18</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</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="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Functions::begin</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">which_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::new_other_as_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"which"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">na_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::new_other_as_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"na"</span><span class="plain-syntax">);</span>
@ -420,7 +420,7 @@ routine for colours; and the best thing is to print nothing at all.
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">INDIRECT1V_BIP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP8" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="5-kc.html#SP4" class="function-link"><span class="function-syntax">RTKindConstructors::get_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP8" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="5-kc.html#SP16" class="function-link"><span class="function-syntax">RTKindConstructors::printing_fn_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">GPROPERTY_HL</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="5-ki.html#SP2" class="function-link"><span class="function-syntax">RTKindIDs::emit_weak_ID_as_val</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_object</span><span class="plain-syntax">);</span>

View file

@ -70,7 +70,7 @@ It can be conjured into being by calling this function:
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P_cap_short_name</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">property_iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">CAPSHORTNAME_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">P_cap_short_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ValueProperties::new_nameless_using</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">K_text</span><span class="plain-syntax">, </span><a href="5-kc.html#SP4" class="function-link"><span class="function-syntax">RTKindConstructors::kind_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_object</span><span class="plain-syntax">), </span><span class="identifier-syntax">property_iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">K_text</span><span class="plain-syntax">, </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::kind_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_object</span><span class="plain-syntax">), </span><span class="identifier-syntax">property_iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP17" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">property_iname</span><span class="plain-syntax">);</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_cap_short_name</span><span class="plain-syntax">;</span>

View file

@ -215,28 +215,11 @@ for the number of instances it has:
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">ListLiterals::extent_of_instance_list</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">ListLiterals::extent_of_instance_list</span></span>:<br/><a href="4-ll.html#SP7">&#167;7</a></span></button><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="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</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">Kinds::Behaviour::is_an_enumeration</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) </span><span class="named-paragraph-container code-font"><a href="4-ll.html#SP6_1" class="named-paragraph-link"><span class="named-paragraph">Count entries for an enumeration</span><span class="named-paragraph-number">6.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">Kinds::Behaviour::is_subkind_of_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) </span><span class="named-paragraph-container code-font"><a href="4-ll.html#SP6_2" class="named-paragraph-link"><span class="named-paragraph">Count entries for a kind of object</span><span class="named-paragraph-number">6.2</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="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">Kinds::Behaviour::is_an_enumeration</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-kc.html#SP26" class="function-link"><span class="function-syntax">RTKindConstructors::enumeration_size</span></a><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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_subkind_of_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">Instances::count</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">return</span><span class="plain-syntax"> -1;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP6_1" class="paragraph-anchor"></a><b>&#167;6.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Count entries for an enumeration</span><span class="named-paragraph-number">6.1</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP9" class="function-link"><span class="function-syntax">RTKindConstructors::get_highest_valid_value_as_integer</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-ll.html#SP6">&#167;6</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP6_2" class="paragraph-anchor"></a><b>&#167;6.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Count entries for a kind of object</span><span class="named-paragraph-number">6.2</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">N</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">instance</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">LOOP_OVER_INSTANCES</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">) </span><span class="identifier-syntax">N</span><span class="plain-syntax">++;</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-ll.html#SP6">&#167;6</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>&#167;7. </b>And the following then constructs the literal list, on demand:
</p>
@ -244,39 +227,25 @@ for the number of instances it has:
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">ListLiterals::get_instance_list</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="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax"> = </span><a href="4-ll.html#SP6" class="function-link"><span class="function-syntax">ListLiterals::extent_of_instance_list</span></a><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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax"> &lt; </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="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">large_block_iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::list_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Kinds::get_construct</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">large_block_iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP14" class="function-link"><span class="function-syntax">RTKindConstructors::list_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Kinds::get_construct</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">large_block_iname</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">large_block_iname</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_LIST_HL</span><span class="plain-syntax">, </span><a href="5-kc.html#SP4" class="function-link"><span class="function-syntax">RTKindConstructors::kind_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_LIST_HL</span><span class="plain-syntax">, </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::kind_package</span></a><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">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><a href="4-ll.html#SP1" class="function-link"><span class="function-syntax">ListLiterals::begin_large_block</span></a><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">large_block_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">Kinds::unary_con</span><span class="plain-syntax">(</span><span class="identifier-syntax">CON_list_of</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</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">Kinds::Behaviour::is_an_enumeration</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) </span><span class="named-paragraph-container code-font"><a href="4-ll.html#SP7_1" class="named-paragraph-link"><span class="named-paragraph">Compile entries for an enumeration</span><span class="named-paragraph-number">7.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">Kinds::Behaviour::is_subkind_of_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) </span><span class="named-paragraph-container code-font"><a href="4-ll.html#SP7_2" class="named-paragraph-link"><span class="named-paragraph">Compile entries for a kind of object</span><span class="named-paragraph-number">7.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">Kinds::Behaviour::is_an_enumeration</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) </span><a href="5-kc.html#SP28" class="function-link"><span class="function-syntax">RTKindConstructors::make_enumeration_entries</span></a><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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_subkind_of_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) </span><span class="named-paragraph-container code-font"><a href="4-ll.html#SP7_1" class="named-paragraph-link"><span class="named-paragraph">Compile entries for a kind of object</span><span class="named-paragraph-number">7.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="4-ll.html#SP1" class="function-link"><span class="function-syntax">ListLiterals::end_large_block</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::set_list_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Kinds::get_construct</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">), </span><span class="identifier-syntax">large_block_iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-kc.html#SP14" class="function-link"><span class="function-syntax">RTKindConstructors::set_list_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Kinds::get_construct</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">), </span><span class="identifier-syntax">large_block_iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-ll.html#SP2" class="function-link"><span class="function-syntax">ListLiterals::small_block</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">large_block_iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP7_1" class="paragraph-anchor"></a><b>&#167;7.1. </b>A little dubiously, for an enumeration ("Colour is a kind of value. The
colours are red, green and blue."), the entries are just the numbers 1, 2, 3, ...
That never seems a good use of memory, but it is still more efficient to store
one copy of this than to have to construct it frequently at runtime.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile entries for an enumeration</span><span class="named-paragraph-number">7.1</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax"> &lt;= </span><span class="identifier-syntax">N</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++)</span>
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::numeric_entry</span></a><span class="plain-syntax">((</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">i</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-ll.html#SP7">&#167;7</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP7_2" class="paragraph-anchor"></a><b>&#167;7.2. </b>Note that the instances are given in the order preferred by <a href="2-ic.html" class="internal">Instance Counting</a>,
<p class="commentary firstcommentary"><a id="SP7_1" class="paragraph-anchor"></a><b>&#167;7.1. </b>Note that the instances are given in the order preferred by <a href="2-ic.html" class="internal">Instance Counting</a>,
not in creation order, as a simple <span class="extract"><span class="extract-syntax">LOOP_OVER_INSTANCES</span></span> would have done.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile entries for a kind of object</span><span class="named-paragraph-number">7.2</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile entries for a kind of object</span><span class="named-paragraph-number">7.1</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">

View file

@ -163,7 +163,6 @@ through a sentence like:
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</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">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="string-syntax">"response (%c) to '%W'"</span><span class="plain-syntax">, </span><span class="character-syntax">'A'</span><span class="plain-syntax">+</span><span class="identifier-syntax">marker</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Sequence::queue</span><span class="plain-syntax">(&amp;</span><a href="4-rsp.html#SP6" class="function-link"><span class="function-syntax">Responses::compilation_agent</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">STORE_POINTER_response_message</span><span class="plain-syntax">(</span><span class="identifier-syntax">resp</span><span class="plain-syntax">), </span><span class="identifier-syntax">desc</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">resp</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>

View file

@ -495,7 +495,7 @@ the function is attached to.
<span class="plain-syntax"> </span><span class="identifier-syntax">var</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">PARSED_NUMBER_HL</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">INDIRECT1V_BIP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP8" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="5-kc.html#SP4" class="function-link"><span class="function-syntax">RTKindConstructors::get_debug_print_fn_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP8" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="5-kc.html#SP18" class="function-link"><span class="function-syntax">RTKindConstructors::debug_print_fn_iname</span></a><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">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">K_understanding</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_understanding</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">PLUS_BIP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>

View file

@ -71,6 +71,8 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">instance_iname</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">usages</span><span class="plain-syntax">; </span><span class="comment-syntax"> of </span><span class="extract"><span class="extract-syntax">parse_node</span></span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">declaration_sequence_number</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">has_explicit_runtime_value</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">explicit_runtime_value</span><span class="plain-syntax">;</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">instance_compilation_data</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">instance_compilation_data</span><span class="plain-syntax"> </span><span class="function-syntax">RTInstances::new_compilation_data</span><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
@ -80,13 +82,15 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">icd</span><span class="plain-syntax">.</span><span class="element-syntax">instance_iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP13" class="function-link"><span class="function-syntax">Hierarchy::make_iname_with_memo</span></a><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_HL</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">icd</span><span class="plain-syntax">.</span><span class="element-syntax">instance_package</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">icd</span><span class="plain-syntax">.</span><span class="element-syntax">declaration_sequence_number</span><span class="plain-syntax"> = -1;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">icd</span><span class="plain-syntax">.</span><span class="element-syntax">has_explicit_runtime_value</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">icd</span><span class="plain-syntax">.</span><span class="element-syntax">explicit_runtime_value</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">icd</span><span class="plain-syntax">.</span><span class="element-syntax">usages</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ni.html#SP3" class="function-link"><span class="function-syntax">NounIdentifiers::set_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">as_noun</span><span class="plain-syntax">, </span><span class="identifier-syntax">icd</span><span class="plain-syntax">.</span><span class="element-syntax">instance_iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP17" class="function-link"><span class="function-syntax">Hierarchy::make_available_one_per_name_only</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">icd</span><span class="plain-syntax">.</span><span class="element-syntax">instance_iname</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">icd</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTInstances::value_iname</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">RTInstances::value_iname</span></span>:<br/><a href="5-ins.html#SP4">&#167;4</a>, <a href="5-ins.html#SP5">&#167;5</a><br/>Default Values - <a href="2-dv.html#SP2_4">&#167;2.4</a><br/>Instance Counting - <a href="2-ic.html#SP8">&#167;8</a><br/>Short Names - <a href="2-sn.html#SP4_1">&#167;4.1</a><br/>List Literals - <a href="4-ll.html#SP7_2">&#167;7.2</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">&#167;1</a><br/>Backdrop Instances - <a href="5-bi.html#SP2_1">&#167;2.1</a><br/>Door Instances - <a href="5-di.html#SP3">&#167;3</a>, <a href="5-di.html#SP5">&#167;5</a>, <a href="5-di.html#SP6">&#167;6</a><br/>Region Instances - <a href="5-ri.html#SP2">&#167;2</a><br/>Scene Instances - <a href="5-si.html#SP1">&#167;1</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP1">&#167;1</a>, <a href="5-dbi.html#SP2">&#167;2</a>, <a href="5-dbi.html#SP2_4">&#167;2.4</a>, <a href="5-dbi.html#SP2_5">&#167;2.5</a>, <a href="5-dbi.html#SP2_6_1_1">&#167;2.6.1.1</a>, <a href="5-dbi.html#SP2_7_1">&#167;2.7.1</a>, <a href="5-dbi.html#SP3">&#167;3</a><br/>Dialogue - <a href="5-dli.html#SP3_3">&#167;3.3</a>, <a href="5-dli.html#SP3_4">&#167;3.4</a>, <a href="5-dli.html#SP3_6">&#167;3.6</a>, <a href="5-dli.html#SP3_7">&#167;3.7</a>, <a href="5-dli.html#SP3_11">&#167;3.11</a>, <a href="5-dli.html#SP3_12">&#167;3.12</a>, <a href="5-dli.html#SP3_13">&#167;3.13</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3_4">&#167;3.4</a><br/>Rulebooks - <a href="5-rlb.html#SP8_1">&#167;8.1</a><br/>Kind Constructors - <a href="5-kc.html#SP10_8_3">&#167;10.8.3</a><br/>Test Scripts - <a href="5-ts.html#SP4">&#167;4</a><br/>The Player - <a href="6-tp.html#SP1">&#167;1</a><br/>The Map - <a href="6-tm.html#SP1">&#167;1</a>, <a href="6-tm.html#SP2">&#167;2</a><br/>Property Permissions - <a href="6-pp.html#SP1">&#167;1</a>, <a href="6-pp.html#SP3">&#167;3</a><br/>Mapping Hints - <a href="6-mh.html#SP1">&#167;1</a><br/>Kind GPRs - <a href="7-kg.html#SP5_1_1_1">&#167;5.1.1.1</a>, <a href="7-kg.html#SP5_1_1_2">&#167;5.1.1.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTInstances::value_iname</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">RTInstances::value_iname</span></span>:<br/><a href="5-ins.html#SP4">&#167;4</a>, <a href="5-ins.html#SP4_1">&#167;4.1</a>, <a href="5-ins.html#SP5">&#167;5</a><br/>Default Values - <a href="2-dv.html#SP2_4">&#167;2.4</a><br/>Instance Counting - <a href="2-ic.html#SP8">&#167;8</a><br/>Short Names - <a href="2-sn.html#SP4_1">&#167;4.1</a><br/>List Literals - <a href="4-ll.html#SP7_1">&#167;7.1</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">&#167;1</a><br/>Backdrop Instances - <a href="5-bi.html#SP2_1">&#167;2.1</a><br/>Door Instances - <a href="5-di.html#SP3">&#167;3</a>, <a href="5-di.html#SP5">&#167;5</a>, <a href="5-di.html#SP6">&#167;6</a><br/>Region Instances - <a href="5-ri.html#SP2">&#167;2</a><br/>Scene Instances - <a href="5-si.html#SP1">&#167;1</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP1">&#167;1</a>, <a href="5-dbi.html#SP2">&#167;2</a>, <a href="5-dbi.html#SP2_4">&#167;2.4</a>, <a href="5-dbi.html#SP2_5">&#167;2.5</a>, <a href="5-dbi.html#SP2_6_1_1">&#167;2.6.1.1</a>, <a href="5-dbi.html#SP2_7_1">&#167;2.7.1</a>, <a href="5-dbi.html#SP3">&#167;3</a><br/>Dialogue - <a href="5-dli.html#SP3_3">&#167;3.3</a>, <a href="5-dli.html#SP3_4">&#167;3.4</a>, <a href="5-dli.html#SP3_6">&#167;3.6</a>, <a href="5-dli.html#SP3_7">&#167;3.7</a>, <a href="5-dli.html#SP3_11">&#167;3.11</a>, <a href="5-dli.html#SP3_12">&#167;3.12</a>, <a href="5-dli.html#SP3_13">&#167;3.13</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3_4">&#167;3.4</a><br/>Rulebooks - <a href="5-rlb.html#SP8_1">&#167;8.1</a><br/>Kind Constructors - <a href="5-kc.html#SP28">&#167;28</a>, <a href="5-kc.html#SP30_3_16">&#167;30.3.16</a><br/>Test Scripts - <a href="5-ts.html#SP4">&#167;4</a><br/>The Player - <a href="6-tp.html#SP1">&#167;1</a><br/>The Map - <a href="6-tm.html#SP1">&#167;1</a>, <a href="6-tm.html#SP2">&#167;2</a><br/>Property Permissions - <a href="6-pp.html#SP1">&#167;1</a>, <a href="6-pp.html#SP3">&#167;3</a><br/>Mapping Hints - <a href="6-mh.html#SP1">&#167;1</a><br/>Kind GPRs - <a href="7-kg.html#SP5_1_1_1">&#167;5.1.1.1</a>, <a href="7-kg.html#SP5_1_1_2">&#167;5.1.1.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">instance_iname</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
@ -175,7 +179,7 @@ using Inter's <span class="extract"><span class="extract-syntax">INSTANCE_IST</s
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">INSTANCE_PRINTED_NAME_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</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">pname</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">abbrev</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-ins.html#SP4_2" class="named-paragraph-link"><span class="named-paragraph">Compose the abbreviated name</span><span class="named-paragraph-number">4.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-ins.html#SP4_3" class="named-paragraph-link"><span class="named-paragraph">Compose the abbreviated name</span><span class="named-paragraph-number">4.3</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">INSTANCE_ABBREVIATION_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">abbrev</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">abbrev</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">INSTANCE_AT_MD_HL</span><span class="plain-syntax">,</span>
@ -218,7 +222,7 @@ using Inter's <span class="extract"><span class="extract-syntax">INSTANCE_IST</s
<span class="plain-syntax"> </span><a href="5-ki.html#SP6" class="function-link"><span class="function-syntax">RTKindIDs::define_constant_as_strong_id</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kn_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">INSTANCE_KIND_XREF_MD_HL</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="5-kc.html#SP1" class="function-link"><span class="function-syntax">RTKindConstructors::xref_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">construct</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="5-kc.html#SP5" class="function-link"><span class="function-syntax">RTKindConstructors::xref_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">construct</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">Kinds::Behaviour::is_subkind_of_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="constant-syntax">INSTANCE_IS_OBJECT_MD_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
@ -353,7 +357,12 @@ using Inter's <span class="extract"><span class="extract-syntax">INSTANCE_IST</s
<span class="plain-syntax"> </span><span class="constant-syntax">INST_SHOWME_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP12" class="function-link"><span class="function-syntax">Emit::instance</span></a><span class="plain-syntax">(</span><a href="5-ins.html#SP1" class="function-link"><span class="function-syntax">RTInstances::value_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">Instances::to_kind</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">-&gt;</span><span class="identifier-syntax">enumeration_index</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">enumeration_index</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">has_value</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">val</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">has_value</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">I</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">has_explicit_runtime_value</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax"> = </span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">explicit_runtime_value</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP12" class="function-link"><span class="function-syntax">Emit::instance</span></a><span class="plain-syntax">(</span><a href="5-ins.html#SP1" class="function-link"><span class="function-syntax">RTInstances::value_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">Instances::to_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="identifier-syntax">has_value</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">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">declaration_sequence_number</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="5-ins.html#SP1" class="function-link"><span class="function-syntax">RTInstances::value_iname</span></a><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">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">req</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::location</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
@ -382,7 +391,33 @@ using Inter's <span class="extract"><span class="extract-syntax">INSTANCE_IST</s
<span class="plain-syntax"> </span><a href="5-ins.html#SP1" class="function-link"><span class="function-syntax">RTInstances::value_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">X</span><span class="plain-syntax">));</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP4_1" class="paragraph-anchor"></a><b>&#167;4.1. </b>When names are abbreviated for use on the World Index map (for instance,
<p class="commentary firstcommentary"><a id="SP4_1" class="paragraph-anchor"></a><b>&#167;4.1. </b>Explicit instance numbering is used for enumerative kinds provided by kits,
which exist for the benefit of the Inter layer. Such kinds might have an erratic
series of values such as 2, 6, 17, ... rather than 1, 2, 3, ..., and if so then
an instance with an unexpected runtime value is called "out of place".
</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">RTInstances::set_explicit_runtime_value</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">RTInstances::set_explicit_runtime_value</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP27">&#167;27</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">has_explicit_runtime_value</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">I</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">explicit_runtime_value</span><span class="plain-syntax"> = </span><span class="identifier-syntax">val</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">RTInstances::out_of_place</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">RTInstances::out_of_place</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP27">&#167;27</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">has_explicit_runtime_value</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">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">I</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">explicit_runtime_value</span><span class="plain-syntax"> == (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">enumeration_index</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">TRUE</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">RTInstances::set_translation</span><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">identifier</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="5-ins.html#SP1" class="function-link"><span class="function-syntax">RTInstances::value_iname</span></a><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">InterNames::set_translation</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">identifier</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterNames::clear_flag</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">MAKE_NAME_UNIQUE_ISYMF</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP17" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP4_2" class="paragraph-anchor"></a><b>&#167;4.2. </b>When names are abbreviated for use on the World Index map (for instance,
"Marble Hallway" becomes "MH") each word is tested against the following
nonterminal; those which match are omitted. So, for instance, "Queen Of The
South" comes out as "QS".
@ -397,7 +432,7 @@ South" comes out as "QS".
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;article&gt;</span>
</pre>
<ul class="endnotetexts"><li>This is <a href="../words-module/4-ap.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
<p class="commentary firstcommentary"><a id="SP4_2" class="paragraph-anchor"></a><b>&#167;4.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compose the abbreviated name</span><span class="named-paragraph-number">4.2</span></span><span class="Preform-comment-syntax"> =</span>
<p class="commentary firstcommentary"><a id="SP4_3" class="paragraph-anchor"></a><b>&#167;4.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compose the abbreviated name</span><span class="named-paragraph-number">4.3</span></span><span class="Preform-comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">

File diff suppressed because it is too large Load diff

View file

@ -111,30 +111,29 @@ like variables. That's what makes them intermediate.)
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">RTKindIDs::identifier_for_weak_ID</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">RTKindIDs::identifier_for_weak_ID</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kc</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">kc</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">explicit_identifier</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">kc</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">explicit_identifier</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">RTKindIDs::identifier_for_weak_ID</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">RTKindIDs::identifier_for_weak_ID</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP6">&#167;6</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kc</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">kc</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">explicit_identifier</span><span class="plain-syntax">) &gt; </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="identifier-syntax">kc</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">explicit_identifier</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">invented</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">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">invented</span><span class="plain-syntax">, </span><span class="string-syntax">"WEAK_ID_%d"</span><span class="plain-syntax">, </span><span class="identifier-syntax">kc</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">allocation_id</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">invented</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTKindIDs::weak_iname</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">RTKindIDs::weak_iname</span></span>:<br/><a href="5-ki.html#SP2">&#167;2</a>, <a href="5-ki.html#SP6">&#167;6</a>, <a href="5-ki.html#SP9_1">&#167;9.1</a><br/>Emit Code - <a href="2-ec.html#SP9">&#167;9</a><br/>The Heap - <a href="2-th.html#SP6">&#167;6</a><br/>Short Names - <a href="2-sn.html#SP4_1">&#167;4.1</a><br/>Kind Constructors - <a href="5-kc.html#SP10_8_1">&#167;10.8.1</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_2_1">&#167;1.2.1</a>, <a href="7-cgt.html#SP1_2_2">&#167;1.2.2</a>, <a href="7-cgt.html#SP1_2_3">&#167;1.2.3</a>, <a href="7-cgt.html#SP1_2_4">&#167;1.2.4</a>, <a href="7-cgt.html#SP1_2_5">&#167;1.2.5</a>, <a href="7-cgt.html#SP1_2_6">&#167;1.2.6</a>, <a href="7-cgt.html#SP1_2_7">&#167;1.2.7</a>, <a href="7-cgt.html#SP1_2_9">&#167;1.2.9</a>, <a href="7-cgt.html#SP1_2_10_2_1">&#167;1.2.10.2.1</a>, <a href="7-cgt.html#SP1_2_10_2_2">&#167;1.2.10.2.2</a><br/>Parse Name Properties - <a href="7-pnp.html#SP8">&#167;8</a>, <a href="7-pnp.html#SP10">&#167;10</a></span></button><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="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><span class="identifier-syntax">NULL</span><span class="plain-syntax">) { </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::UNKNOWN_iname</span></a><span class="plain-syntax">(); }</span>
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTKindIDs::weak_iname</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">RTKindIDs::weak_iname</span></span>:<br/><a href="5-ki.html#SP2">&#167;2</a>, <a href="5-ki.html#SP6">&#167;6</a>, <a href="5-ki.html#SP9_1">&#167;9.1</a><br/>Emit Code - <a href="2-ec.html#SP9">&#167;9</a><br/>The Heap - <a href="2-th.html#SP6">&#167;6</a><br/>Short Names - <a href="2-sn.html#SP4_1">&#167;4.1</a><br/>Kind Constructors - <a href="5-kc.html#SP30_3_14">&#167;30.3.14</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_2_1">&#167;1.2.1</a>, <a href="7-cgt.html#SP1_2_2">&#167;1.2.2</a>, <a href="7-cgt.html#SP1_2_3">&#167;1.2.3</a>, <a href="7-cgt.html#SP1_2_4">&#167;1.2.4</a>, <a href="7-cgt.html#SP1_2_5">&#167;1.2.5</a>, <a href="7-cgt.html#SP1_2_6">&#167;1.2.6</a>, <a href="7-cgt.html#SP1_2_7">&#167;1.2.7</a>, <a href="7-cgt.html#SP1_2_9">&#167;1.2.9</a>, <a href="7-cgt.html#SP1_2_10_2_1">&#167;1.2.10.2.1</a>, <a href="7-cgt.html#SP1_2_10_2_2">&#167;1.2.10.2.2</a><br/>Parse Name Properties - <a href="7-pnp.html#SP8">&#167;8</a>, <a href="7-pnp.html#SP10">&#167;10</a></span></button><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="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><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-kc.html#SP6" class="function-link"><span class="function-syntax">RTKindConstructors::weak_ID_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">CON_UNKNOWN</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">Kinds::Behaviour::is_subkind_of_object</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"> = </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Kinds::get_construct</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::weak_ID_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP6" class="function-link"><span class="function-syntax">RTKindConstructors::weak_ID_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</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">iname</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">iname</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"%u has no weak ID iname\n"</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">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"kind has no weak ID iname"</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">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTKindIDs::weak_iname_of_constructor</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">RTKindIDs::weak_iname_of_constructor</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kc</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">kc</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><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::UNKNOWN_iname</span></a><span class="plain-syntax">();</span>
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTKindIDs::weak_iname_of_constructor</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">RTKindIDs::weak_iname_of_constructor</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP30_2_1">&#167;30.2.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kc</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">kc</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><a href="5-kc.html#SP6" class="function-link"><span class="function-syntax">RTKindConstructors::weak_ID_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">CON_UNKNOWN</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">Kinds::Behaviour::is_subkind_of_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">Kinds::base_construction</span><span class="plain-syntax">(</span><span class="identifier-syntax">kc</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-ki.html#SP1" class="function-link"><span class="function-syntax">RTKindIDs::weak_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_object</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-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::weak_ID_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kc</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-kc.html#SP6" class="function-link"><span class="function-syntax">RTKindConstructors::weak_ID_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kc</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. </b>And the following compiles an easier-on-the-eye form of the weak ID, but

View file

@ -81,7 +81,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">lpcd</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<ul class="endnotetexts"><li>The structure literal_pattern_compilation_data is accessed in 3/uo, 5/mlt, 5/tbl, 5/dbi, 5/dli, 5/dci, 5/prp, 5/act2, 5/nap and here.</li></ul>
<ul class="endnotetexts"><li>The structure literal_pattern_compilation_data is accessed in 3/uo, 5/mlt, 5/tbl, 5/dbi, 5/dli, 5/dci, 5/prp, 5/kc, 5/act2, 5/nap and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. </b>And each gives rise to a package, though it contains only two functions:
one to print, one to parse from a player's command. (So in Basic Inform, only
the first function appears.)
@ -1467,7 +1467,7 @@ sets the <span class="extract"><span class="extract-syntax">parsed_number</span>
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>&#167;5. Printing the I6 variable |value| out in an LP's notation at run-time. </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">RTLiteralPatterns::printing_routine</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">RTLiteralPatterns::printing_routine</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP10_8_2">&#167;10.8.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">literal_pattern</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lp_list</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTLiteralPatterns::printing_routine</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">RTLiteralPatterns::printing_routine</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP30_3_15">&#167;30.3.15</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">literal_pattern</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lp_list</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Functions::begin</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">literal_pattern_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lpn</span><span class="plain-syntax">;</span>

View file

@ -849,33 +849,6 @@ questionable arrangement, but there it is).
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTRulebooks::RulebookOutcomePrintingRule</span><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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">printing_rule_name</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP4" class="function-link"><span class="function-syntax">RTKindConstructors::get_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_rulebook_outcome</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Functions::begin</span><span class="plain-syntax">(</span><span class="identifier-syntax">printing_rule_name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rbnov_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::new_other_as_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"nro"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IFELSE_BIP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">EQ_BIP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP8" class="function-link"><span class="function-syntax">EmitCode::val_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">rbnov_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP8" class="function-link"><span class="function-syntax">EmitCode::val_number</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP5" class="function-link"><span class="function-syntax">EmitCode::code</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">PRINT_BIP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP8" class="function-link"><span class="function-syntax">EmitCode::val_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"(no outcome)"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP5" class="function-link"><span class="function-syntax">EmitCode::code</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">PRINTSTRING_BIP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP8" class="function-link"><span class="function-syntax">EmitCode::val_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">rbnov_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP15" class="function-link"><span class="function-syntax">EmitCode::rfalse</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Functions::end</span><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">

View file

@ -487,11 +487,7 @@ failing; so it doesn't terminate the following of its rulebook.
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><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">acl</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">substituted_rule</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">subbed</span><span class="plain-syntax"> = </span><a href="5-rls.html#SP9" class="function-link"><span class="function-syntax">RTRules::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">acl</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">substituted_rule</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">PackageInstruction::is_function</span><span class="plain-syntax">(</span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">subbed</span><span class="plain-syntax">)) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP8" class="function-link"><span class="function-syntax">EmitCode::val_number</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">subbed</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">subbed</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="2-ec.html#SP8" class="function-link"><span class="function-syntax">EmitCode::val_number</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> }</span>

View file

@ -1398,8 +1398,8 @@ this is done by the function <span class="extract"><span class="extract-syntax">
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::numeric_entry</span></a><span class="plain-syntax">((</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">left_count</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::numeric_entry</span></a><span class="plain-syntax">((</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">right_count</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::iname_entry</span></a><span class="plain-syntax">(</span><a href="5-kc.html#SP4" class="function-link"><span class="function-syntax">RTKindConstructors::get_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">left_kind</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::iname_entry</span></a><span class="plain-syntax">(</span><a href="5-kc.html#SP4" class="function-link"><span class="function-syntax">RTKindConstructors::get_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">right_kind</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::iname_entry</span></a><span class="plain-syntax">(</span><a href="5-kc.html#SP16" class="function-link"><span class="function-syntax">RTKindConstructors::printing_fn_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">left_kind</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::iname_entry</span></a><span class="plain-syntax">(</span><a href="5-kc.html#SP16" class="function-link"><span class="function-syntax">RTKindConstructors::printing_fn_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">right_kind</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::numeric_entry</span></a><span class="plain-syntax">(1); </span><span class="comment-syntax"> Cache broken flag</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">left_count</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">right_count</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">))</span>

View file

@ -66,7 +66,7 @@ has, and so on &mdash; is generated.
</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">RTInferences::index</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">RTInferences::index</span></span>:<br/>Instances - <a href="5-ins.html#SP4">&#167;4</a><br/>Kind Constructors - <a href="5-kc.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">hl</span><span class="plain-syntax">, </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">infs</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">brief</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTInferences::index</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">RTInferences::index</span></span>:<br/>Instances - <a href="5-ins.html#SP4">&#167;4</a><br/>Kind Constructors - <a href="5-kc.html#SP30_4_9">&#167;30.4.9</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">hl</span><span class="plain-syntax">, </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">infs</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">brief</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">OUT</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</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">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">property</span><span class="plain-syntax">) </span><a href="5-prp.html#SP7" class="function-link"><span class="function-syntax">RTProperties::set_indexed_already_flag</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
@ -92,13 +92,13 @@ state of being boolean, and the given certainty levels:
</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">RTInferences::index_provided</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">RTInferences::index_provided</span></span>:<br/><a href="6-inf.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">infs</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">bool</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cert</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">brief</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTInferences::index_provided</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">RTInferences::index_provided</span></span>:<br/><a href="6-inf.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">infs</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">boolean</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cert</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">brief</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">f</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">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</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">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">property</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="5-prp.html#SP7" class="function-link"><span class="function-syntax">RTProperties::is_shown_in_index</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</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><a href="5-prp.html#SP7" class="function-link"><span class="function-syntax">RTProperties::get_indexed_already_flag</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</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">Properties::is_either_or</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">) != </span><span class="identifier-syntax">bool</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">Properties::is_either_or</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">) != </span><span class="identifier-syntax">boolean</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">state</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PropertyInferences::has_or_can_have</span><span class="plain-syntax">(</span><span class="identifier-syntax">infs</span><span class="plain-syntax">, </span><span class="identifier-syntax">prn</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">state</span><span class="plain-syntax"> != </span><span class="identifier-syntax">c</span><span class="plain-syntax">) </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span>

View file

@ -70,7 +70,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InstanceSubjects::to_instance</span><span class="plain-syntax">(</span><span class="identifier-syntax">subj</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">pack</span><span class="plain-syntax"> = </span><a href="5-ins.html#SP1" class="function-link"><span class="function-syntax">RTInstances::package</span></a><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">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><span class="identifier-syntax">KindSubjects::to_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">subj</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><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP4" class="function-link"><span class="function-syntax">RTKindConstructors::kind_package</span></a><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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax">) </span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::kind_package</span></a><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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">pack</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
@ -87,12 +87,14 @@ function togglePopup(material_id) {
</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">RTPropertyPermissions::emit_kind_permissions</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">RTPropertyPermissions::emit_kind_permissions</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP10_7">&#167;10.7</a></span></button><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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTPropertyPermissions::emit_kind_permissions</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">RTPropertyPermissions::emit_kind_permissions</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP33">&#167;33</a></span></button><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="plain-syntax"> </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">subj</span><span class="plain-syntax"> = </span><span class="identifier-syntax">KindSubjects::from_kind</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">c</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">property_permission</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pp</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_PERMISSIONS_FOR_INFS</span><span class="plain-syntax">(</span><span class="identifier-syntax">pp</span><span class="plain-syntax">, </span><span class="identifier-syntax">subj</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"> == </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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="5-kc.html#SP27" class="function-link"><span class="function-syntax">RTKindConstructors::is_nonstandard_enumeration</span></a><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">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"nonstandard enumeration with properties"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Packaging::enter</span><span class="plain-syntax">(</span><a href="6-pp.html#SP1" class="function-link"><span class="function-syntax">RTPropertyPermissions::home</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">subj</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Produce::kind_to_symbol</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">LOOP_OVER_PERMISSIONS_FOR_INFS</span><span class="plain-syntax">(</span><span class="identifier-syntax">pp</span><span class="plain-syntax">, </span><span class="identifier-syntax">subj</span><span class="plain-syntax">)</span>

View file

@ -69,7 +69,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><a href="6-pv.html#SP2" class="function-link"><span class="function-syntax">RTPropertyValues::emit_subject</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Instances::as_subject</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">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTPropertyValues::compile_values_for_kind</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">RTPropertyValues::compile_values_for_kind</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP10_7">&#167;10.7</a></span></button><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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTPropertyValues::compile_values_for_kind</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">RTPropertyValues::compile_values_for_kind</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP33">&#167;33</a></span></button><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="plain-syntax"> </span><a href="6-pv.html#SP2" class="function-link"><span class="function-syntax">RTPropertyValues::emit_subject</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">KindSubjects::from_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="6-pv.html#SP4" class="function-link"><span class="function-syntax">RTPropertyValues::check_kind_can_have_property</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>

View file

@ -1008,7 +1008,7 @@ object, we again use a noun-filter token:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">GPR</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP3" class="function-link"><span class="function-syntax">RTKindConstructors::get_exp_kind_GPR_iname</span></a><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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">GPR</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP21" class="function-link"><span class="function-syntax">RTKindConstructors::GPR_iname</span></a><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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">code_mode</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">STORE_BIP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>

View file

@ -136,7 +136,7 @@ which picks up any irregular meanings added by the source text, say by "Understa
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>&#167;4. </b>More generally, we can make a GPR for values of any enumeration or quasinumerical
kind on request: see <a href="5-kc.html#SP7" class="internal">RTKindConstructors::request_I6_GPR</a>.
kind on request.
</p>
<p class="commentary">This does not work for other kinds, and in particular for kinds of object. Those
@ -148,10 +148,10 @@ kind, trying each possible notation in turn until one matches:
</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">KindGPRs::quasinumerical_agent</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">KindGPRs::quasinumerical_agent</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP7">&#167;7</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">compilation_subtask</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">KindGPRs::quasinumerical_agent</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">KindGPRs::quasinumerical_agent</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP30_3_20">&#167;30.3.20</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">compilation_subtask</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">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">data</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">Kinds::Behaviour::is_quasinumerical</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"miscall"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP3" class="function-link"><span class="function-syntax">RTKindConstructors::get_kind_GPR_iname</span></a><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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP21" class="function-link"><span class="function-syntax">RTKindConstructors::GPR_iname</span></a><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">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Functions::begin</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">gpr_kit</span><span class="plain-syntax"> </span><span class="identifier-syntax">kit</span><span class="plain-syntax"> = </span><a href="2-gpr.html#SP3" class="function-link"><span class="function-syntax">GPRs::new_kit</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-gpr.html#SP4" class="function-link"><span class="function-syntax">GPRs::add_original_var</span></a><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">kit</span><span class="plain-syntax">);</span>
@ -235,7 +235,7 @@ kind, trying each possible notation in turn until one matches:
</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">KindGPRs::enumeration_agent</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">KindGPRs::enumeration_agent</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP7">&#167;7</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">compilation_subtask</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">KindGPRs::enumeration_agent</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">KindGPRs::enumeration_agent</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP30_3_19">&#167;30.3.19</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">compilation_subtask</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">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">data</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">Kinds::Behaviour::is_an_enumeration</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"miscall"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-kg.html#SP5_1" class="named-paragraph-link"><span class="named-paragraph">Compile the normal GPR</span><span class="named-paragraph-number">5.1</span></a></span><span class="plain-syntax">;</span>
@ -251,7 +251,7 @@ For example, for a kind called "colour", it might match any of "burnt umber",
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP3" class="function-link"><span class="function-syntax">RTKindConstructors::get_kind_GPR_iname</span></a><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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP21" class="function-link"><span class="function-syntax">RTKindConstructors::GPR_iname</span></a><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">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Functions::begin</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">gpr_kit</span><span class="plain-syntax"> </span><span class="identifier-syntax">kit</span><span class="plain-syntax"> = </span><a href="2-gpr.html#SP3" class="function-link"><span class="function-syntax">GPRs::new_kit</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-gpr.html#SP4" class="function-link"><span class="function-syntax">GPRs::add_original_var</span></a><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">kit</span><span class="plain-syntax">);</span>
@ -279,7 +279,7 @@ the grammar holding "sooty" comes out only in the following function.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP3" class="function-link"><span class="function-syntax">RTKindConstructors::get_instance_GPR_iname</span></a><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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP22" class="function-link"><span class="function-syntax">RTKindConstructors::instance_GPR_iname</span></a><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">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Functions::begin</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">gpr_kit</span><span class="plain-syntax"> </span><span class="identifier-syntax">kit</span><span class="plain-syntax"> = </span><a href="2-gpr.html#SP3" class="function-link"><span class="function-syntax">GPRs::new_kit</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-gpr.html#SP4" class="function-link"><span class="function-syntax">GPRs::add_instance_var</span></a><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">kit</span><span class="plain-syntax">);</span>

View file

@ -181,9 +181,7 @@ their names (used as I6 tokens), and compile their routines.
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">STORE_BIP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::ref_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">v_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gpr_to_ask</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP4" class="function-link"><span class="function-syntax">RTKindConstructors::get_explicit_I6_GPR_iname</span></a><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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">gpr_to_ask</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">gpr_to_ask</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP3" class="function-link"><span class="function-syntax">RTKindConstructors::get_kind_GPR_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">gpr_to_ask</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><a href="5-kc.html#SP21" class="function-link"><span class="function-syntax">RTKindConstructors::GPR_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>

View file

@ -917,7 +917,7 @@ or vice versa, then they are distinguishable;
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><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">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ValueProperties::kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">distinguisher</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP4" class="function-link"><span class="function-syntax">RTKindConstructors::get_distinguisher_iname</span></a><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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">distinguisher</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP24" class="function-link"><span class="function-syntax">RTKindConstructors::distinguisher_function_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><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">distinguisher</span><span class="plain-syntax">) {</span>
@ -1069,7 +1069,7 @@ alter the value of <span class="extract"><span class="extract-syntax">self</span
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</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">ValueProperties::kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">recog_gpr</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP8" class="function-link"><span class="function-syntax">RTKindConstructors::get_recognition_only_GPR_as_iname</span></a><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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">recog_gpr</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP23" class="function-link"><span class="function-syntax">RTKindConstructors::recognition_only_GPR_iname</span></a><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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">recog_gpr</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">EQ_BIP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
@ -1084,14 +1084,13 @@ alter the value of <span class="extract"><span class="extract-syntax">self</span
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP8" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">GPR_PREPOSITION_HL</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><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><a href="5-kc.html#SP6" class="function-link"><span class="function-syntax">RTKindConstructors::offers_I6_GPR</span></a><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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">i6_gpr_name</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP4" class="function-link"><span class="function-syntax">RTKindConstructors::get_explicit_I6_GPR_iname</span></a><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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i6_gpr_name</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">Kinds::Behaviour::is_understandable</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">if</span><span class="plain-syntax"> (</span><a href="5-kc.html#SP21" class="function-link"><span class="function-syntax">RTKindConstructors::GPR_provided_by_kit</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">AND_BIP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">EQ_BIP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">i6_gpr_name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><a href="5-kc.html#SP21" class="function-link"><span class="function-syntax">RTKindConstructors::GPR_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP8" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">GPR_NUMBER_HL</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">EQ_BIP</span><span class="plain-syntax">);</span>
@ -1108,7 +1107,7 @@ alter the value of <span class="extract"><span class="extract-syntax">self</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">Kinds::Behaviour::is_an_enumeration</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">EQ_BIP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><a href="5-kc.html#SP3" class="function-link"><span class="function-syntax">RTKindConstructors::get_instance_GPR_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><a href="5-kc.html#SP22" class="function-link"><span class="function-syntax">RTKindConstructors::instance_GPR_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">PROPERTYVALUE_BIP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
@ -1124,7 +1123,7 @@ alter the value of <span class="extract"><span class="extract-syntax">self</span
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">EQ_BIP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><a href="5-kc.html#SP3" class="function-link"><span class="function-syntax">RTKindConstructors::get_kind_GPR_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><a href="5-kc.html#SP21" class="function-link"><span class="function-syntax">RTKindConstructors::GPR_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP8" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">GPR_NUMBER_HL</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">EQ_BIP</span><span class="plain-syntax">);</span>

View file

@ -45,7 +45,7 @@
</nav>
<main role="main">
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../extensions.html">Extensions</a></li><li><b>srules</b></li></ul>
<p class="purpose">The Standard Rules extension, included in all interactive fiction projects. This is version 6.</p>
<p class="purpose">The Standard Rules extension, included in all interactive fiction projects. This is version 7.</p>
<hr>
<div class="contentspage">
<ul class="chapterlist">

View file

@ -231,8 +231,7 @@ such newcomers are graphed too.
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">build_vertex</span><span class="plain-syntax"> *</span><span class="function-syntax">Copies::construct_project_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">Copies::construct_project_graph</span></span>:<br/><a href="2-cps.html#SP12">&#167;12</a>, <a href="2-cps.html#SP13">&#167;13</a>, <a href="2-cps.html#SP14">&#167;14</a><br/>The Report - <a href="7-tr.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="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">C</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="identifier-syntax">VOID_METHOD_CALL</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="identifier-syntax">work</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">genre</span><span class="plain-syntax">, </span><span class="constant-syntax">GENRE_BUILDING_SOON_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">V</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::building_soon</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#SP9" class="function-link"><span class="function-syntax">Copies::graph_everything</span></a><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">V</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
@ -241,6 +240,12 @@ such newcomers are graphed too.
<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">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax">) </span><a href="2-cps.html#SP8" class="function-link"><span class="function-syntax">Copies::construct_graph</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">build_vertex</span><span class="plain-syntax"> *</span><span class="function-syntax">Copies::building_soon</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><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">C</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="identifier-syntax">VOID_METHOD_CALL</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="identifier-syntax">work</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">genre</span><span class="plain-syntax">, </span><span class="constant-syntax">GENRE_BUILDING_SOON_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">V</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">V</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. Sorting. </b>The command-line <a href="../inbuild/index.html" class="internal">inbuild</a> uses this when sorting search results.
</p>

View file

@ -177,7 +177,7 @@ at most one edge of each colour.
<span class="plain-syntax"> </span><span class="identifier-syntax">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">to</span><span class="plain-syntax">, </span><span class="reserved-syntax">build_vertex</span><span class="plain-syntax">, </span><span class="identifier-syntax">from</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">build_edges</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">Graphs::need_this_to_use</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">Graphs::need_this_to_use</span></span>:<br/>Kit Services - <a href="5-ks.html#SP15">&#167;15</a><br/>Project Services - <a href="5-ps2.html#SP34">&#167;34</a><br/>Inclusions - <a href="6-inc.html#SP2_1">&#167;2.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">build_vertex</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="reserved-syntax">build_vertex</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Graphs::need_this_to_use</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">Graphs::need_this_to_use</span></span>:<br/>Extension Services - <a href="5-es.html#SP9">&#167;9</a><br/>Kit Services - <a href="5-ks.html#SP15">&#167;15</a><br/>Project Services - <a href="5-ps2.html#SP34">&#167;34</a><br/>Inclusions - <a href="6-inc.html#SP2_1">&#167;2.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">build_vertex</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="reserved-syntax">build_vertex</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to</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">from</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 from"</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">to</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 to"</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">from</span><span class="plain-syntax"> == </span><span class="identifier-syntax">to</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"graph node depends on itself"</span><span class="plain-syntax">);</span>

View file

@ -116,7 +116,7 @@ to access any of <span class="extract"><span class="extract-syntax">inbuild</spa
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">build_step</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure build_step is accessed in 2/cps, 3/bg, 3/is, 3/is2, 3/is3, 3/is4, 4/em, 4/ebm, 4/km, 5/ks, 5/ps2, 6/hdn, 6/inc and here.</li></ul>
<ul class="endnotetexts"><li>The structure build_step is accessed in 2/cps, 3/bg, 3/is, 3/is2, 3/is3, 3/is4, 4/em, 4/ebm, 4/km, 5/es, 5/ks, 5/ps2, 6/hdn, 6/inc and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>&#167;4. </b>We build scripts for a vertex by attaching one step at a time to it:
</p>

View file

@ -330,16 +330,16 @@ created during the same second.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">last_up_to_date_at</span><span class="plain-syntax"> == </span><span class="identifier-syntax">Platform::never_time</span><span class="plain-syntax">())</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">needs_building</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">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">T</span><span class="plain-syntax">) { </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="string-syntax">"Last built at: %08x\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">last_up_to_date_at</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">T</span><span class="plain-syntax">) { </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="string-syntax">"Last built at: %s\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ctime</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">last_up_to_date_at</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">gb</span><span class="plain-syntax"> &amp; </span><span class="constant-syntax">BUILD_DEPENDENCIES_MATTER_GB</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">time_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax"> = </span><a href="3-ib.html#SP3" class="function-link"><span class="function-syntax">IncrementalBuild::time_of_latest_build_dependency</span></a><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">T</span><span class="plain-syntax">) { </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="string-syntax">"Most recent build dependency: %08x\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">t</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">T</span><span class="plain-syntax">) { </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="string-syntax">"Most recent build dependency: %s\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ctime</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">t</span><span class="plain-syntax">)); }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-ib.html#SP2" class="function-link"><span class="function-syntax">IncrementalBuild::timecmp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="identifier-syntax">last_up_to_date_at</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">needs_building</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</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">gb</span><span class="plain-syntax"> &amp; </span><span class="constant-syntax">USE_DEPENDENCIES_MATTER_GB</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">time_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax"> = </span><a href="3-ib.html#SP4" class="function-link"><span class="function-syntax">IncrementalBuild::time_of_latest_use_dependency</span></a><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">T</span><span class="plain-syntax">) { </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="string-syntax">"Most recent use dependency: %08x\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">t</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">T</span><span class="plain-syntax">) { </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="string-syntax">"Most recent use dependency: %s\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ctime</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">t</span><span class="plain-syntax">)); }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-ib.html#SP2" class="function-link"><span class="function-syntax">IncrementalBuild::timecmp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="identifier-syntax">last_up_to_date_at</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">needs_building</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>

View file

@ -309,7 +309,8 @@ the current VM settings.
<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-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">build_vertex</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">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="reserved-syntax">build_vertex</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">vertex</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">use_edges</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="4-em.html#SP8" class="function-link"><span class="function-syntax">ExtensionManager::ensure_graphed</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</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="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">V</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="4-em.html#SP8" class="function-link"><span class="function-syntax">ExtensionManager::ensure_graphed</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>&#167;9. Source text. </b></p>

View file

@ -783,7 +783,7 @@ in a minimal sort of way, with just an <span class="extract"><span class="extrac
<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">inbuild_nest</span><span class="plain-syntax"> *</span><span class="function-syntax">Extensions::materials_nest</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Extensions::materials_nest</span></span>:<br/><a href="5-es.html#SP8">&#167;8</a><br/>Language Services - <a href="5-ls.html#SP10">&#167;10</a><br/>Project Services - <a href="5-ps2.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">inbuild_nest</span><span class="plain-syntax"> *</span><span class="function-syntax">Extensions::materials_nest</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Extensions::materials_nest</span></span>:<br/><a href="5-es.html#SP8">&#167;8</a>, <a href="5-es.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#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="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="5-es.html#SP4" class="function-link"><span class="function-syntax">Extensions::materials_path</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">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">materials_nest</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">P</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">materials_nest</span><span class="plain-syntax"> = </span><a href="2-nst.html#SP1" class="function-link"><span class="function-syntax">Nests::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
@ -956,6 +956,14 @@ no project involved, we must take action ourselves.)
<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="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="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">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="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">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_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">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">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>
</pre>
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>&#167;10. Read source text. </b>The scan only skimmed the surface of the file, and didn't try to parse it as

View file

@ -373,7 +373,7 @@ a kit, going only on a name such as <span class="extract"><span class="extract-s
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inform_kit</span><span class="plain-syntax"> *</span><span class="function-syntax">Kits::find_by_name</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">Kits::find_by_name</span></span>:<br/>Project Services - <a href="5-ps2.html#SP20">&#167;20</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nest_list</span><span class="plain-syntax">,</span>
<span class="reserved-syntax">inform_kit</span><span class="plain-syntax"> *</span><span class="function-syntax">Kits::find_by_name</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">Kits::find_by_name</span></span>:<br/>Extension Services - <a href="5-es.html#SP9">&#167;9</a><br/>Project Services - <a href="5-ps2.html#SP20">&#167;20</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nest_list</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">req</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">req</span><span class="plain-syntax"> = </span><a href="2-rqr.html#SP2" class="function-link"><span class="function-syntax">Requirements::any_version_of</span></a><span class="plain-syntax">(</span><a href="2-wrk.html#SP2" class="function-link"><span class="function-syntax">Works::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kit_genre</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">""</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">R</span><span class="plain-syntax"> = </span><a href="2-nst.html#SP10" class="function-link"><span class="function-syntax">Nests::search_for_best</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><span class="identifier-syntax">nest_list</span><span class="plain-syntax">);</span>

View file

@ -1693,7 +1693,6 @@ For instance, the dollars-and-cents example compiles:
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">lp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">no_lp_elements</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">feed_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Feeds::begin</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">print_rule_buff</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Feeds::feed_C_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="string-syntax">"To decide which "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Feeds::feed_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Feeds::feed_C_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="string-syntax">" is "</span><span class="plain-syntax">);</span>
@ -1701,19 +1700,21 @@ For instance, the dollars-and-cents example compiles:
<span class="plain-syntax"> </span><span class="identifier-syntax">Feeds::feed_C_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="string-syntax">" with "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;lp-&gt;</span><span class="element-syntax">no_lp_elements</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">literal_pattern_element</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lpe</span><span class="plain-syntax"> = &amp;(</span><span class="identifier-syntax">lp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">lp_elements</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">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">print_rule_buff</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">print_rule_buff</span><span class="plain-syntax">, </span><span class="string-syntax">" part%d "</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">Feeds::feed_wording</span><span class="plain-syntax">(</span><span class="identifier-syntax">lpe</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">element_name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Feeds::feed_C_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="string-syntax">" part ( "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Feeds::feed_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">print_rule_buff</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Feeds::feed_C_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="string-syntax">" - a number ) "</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">print_rule_buff</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="identifier-syntax">XW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Feeds::end</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</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">Wordings::phrasual_length</span><span class="plain-syntax">(</span><span class="identifier-syntax">XW</span><span class="plain-syntax">) &gt;= </span><span class="identifier-syntax">MAX_WORDS_PER_PHRASE</span><span class="plain-syntax"> + </span><span class="constant-syntax">5</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">Wordings::phrasual_length</span><span class="plain-syntax">(</span><span class="identifier-syntax">XW</span><span class="plain-syntax">) &gt;= </span><span class="identifier-syntax">MAX_WORDS_PER_PHRASE</span><span class="plain-syntax"> + </span><span class="constant-syntax">5</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-lp.html#SP28_1_1" class="named-paragraph-link"><span class="named-paragraph">Issue a problem for overly long part names</span><span class="named-paragraph-number">28.1.1</span></a></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">Sentences::make_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">XW</span><span class="plain-syntax">, </span><span class="character-syntax">':'</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Feeds::begin</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Str::clear</span><span class="plain-syntax">(</span><span class="identifier-syntax">print_rule_buff</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">print_rule_buff</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">print_rule_buff</span><span class="plain-syntax">, </span><span class="string-syntax">" (- ("</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;lp-&gt;</span><span class="element-syntax">no_lp_elements</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">literal_pattern_element</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lpe</span><span class="plain-syntax"> = &amp;(</span><span class="identifier-syntax">lp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">lp_elements</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">]);</span>
@ -1725,9 +1726,9 @@ For instance, the dollars-and-cents example compiles:
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">print_rule_buff</span><span class="plain-syntax">, </span><span class="string-syntax">") -) "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Feeds::feed_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">print_rule_buff</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">XW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Feeds::end</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</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">print_rule_buff</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Sentences::make_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">XW</span><span class="plain-syntax">, </span><span class="character-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">print_rule_buff</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> }</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-lp.html#SP28">&#167;28</a>.</li></ul>

View file

@ -165,8 +165,7 @@ such newcomers are graphed too.
=
build_vertex *Copies::construct_project_graph(inbuild_copy *C) {
build_vertex *V = C->vertex;
VOID_METHOD_CALL(C->edition->work->genre, GENRE_BUILDING_SOON_MTID, C, &V);
build_vertex *V = Copies::building_soon(C);
Copies::graph_everything();
return V;
}
@ -176,6 +175,12 @@ void Copies::graph_everything(void) {
LOOP_OVER(C, inbuild_copy) Copies::construct_graph(C);
}
build_vertex *Copies::building_soon(inbuild_copy *C) {
build_vertex *V = C->vertex;
VOID_METHOD_CALL(C->edition->work->genre, GENRE_BUILDING_SOON_MTID, C, &V);
return V;
}
@h Sorting.
The command-line //inbuild// uses this when sorting search results.

View file

@ -239,16 +239,16 @@ created during the same second.
if (last_up_to_date_at == Platform::never_time())
needs_building = TRUE;
else {
if (T) { WRITE_TO(T, "Last built at: %08x\n", last_up_to_date_at); }
if (T) { WRITE_TO(T, "Last built at: %s\n", ctime(&last_up_to_date_at)); }
if (gb & BUILD_DEPENDENCIES_MATTER_GB) {
time_t t = IncrementalBuild::time_of_latest_build_dependency(V);
if (T) { WRITE_TO(T, "Most recent build dependency: %08x\n", t); }
if (T) { WRITE_TO(T, "Most recent build dependency: %s\n", ctime(&t)); }
if (IncrementalBuild::timecmp(t, last_up_to_date_at) >= 0)
needs_building = TRUE;
}
if (gb & USE_DEPENDENCIES_MATTER_GB) {
time_t t = IncrementalBuild::time_of_latest_use_dependency(V);
if (T) { WRITE_TO(T, "Most recent use dependency: %08x\n", t); }
if (T) { WRITE_TO(T, "Most recent use dependency: %s\n", ctime(&t)); }
if (IncrementalBuild::timecmp(t, last_up_to_date_at) >= 0)
needs_building = TRUE;
}

View file

@ -241,7 +241,8 @@ void ExtensionManager::ensure_graphed(inbuild_copy *C) {
Extensions::construct_graph(ExtensionManager::from_copy(C));
build_vertex *V;
LOOP_OVER_LINKED_LIST(V, build_vertex, C->vertex->use_edges)
ExtensionManager::ensure_graphed(V->as_copy);
if (ExtensionManager::from_copy(V->as_copy))
ExtensionManager::ensure_graphed(V->as_copy);
}
@h Source text.

View file

@ -778,6 +778,14 @@ void Extensions::construct_graph(inform_extension *E) {
Copies::get_source_text(E->as_copy);
Sentences::set_start_of_source(sfsm, -1);
Inclusions::traverse(E->as_copy, E->syntax_tree);
linked_list *L = NEW_LINKED_LIST(inbuild_nest);
inbuild_nest *N = Extensions::materials_nest(E);
ADD_TO_LINKED_LIST(N, inbuild_nest, L);
inbuild_requirement *req;
LOOP_OVER_LINKED_LIST(req, inbuild_requirement, E->kits) {
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);
}
}
@h Read source text.

2
inform7/.gitignore vendored
View file

@ -56,9 +56,9 @@ Tests/Test Problems/_Results_Actual/
Tests/Test Filings/_Results_Actual/
Tests/Documentation/
**/*.interb
Internal/Inter/Architecture16Kit/*.interb
Internal/Inter/Architecture32Kit/*.interb
Internal/Inter/BasicInformExtrasKit/*.interb
Internal/Inter/BasicInformKit/*.interb
Internal/Inter/CommandParserKit/*.interb
Internal/Inter/DialogueKit/*.interb

View file

@ -1,15 +1,15 @@
Size of lexicon: 3127 excerpt meanings
Stored among 845 words out of total vocabulary of 10732
715 words have a start list: longest belongs to report (with 293 meanings)
Size of lexicon: 3129 excerpt meanings
Stored among 846 words out of total vocabulary of 10735
716 words have a start list: longest belongs to report (with 293 meanings)
15 words have an end list: longest belongs to case (with 6 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)
Number of attempts to retrieve: 110340
of which unsuccessful: 92203
of which successful: 18137
Number of attempts to retrieve: 110344
of which unsuccessful: 92205
of which successful: 18139
Total attempts to match against excerpt meanings: 276468
of which, total with incorrect hash codes: 253733
of which, total with correct hash codes: 22735
of which, total which matched: 19904
Total attempts to match against excerpt meanings: 276472
of which, total with incorrect hash codes: 253735
of which, total with correct hash codes: 22737
of which, total which matched: 19906

View file

@ -1,6 +1,6 @@
<preform-nonterminal> internal nti 6 constraint (none) extremes [1, 1]
<if-start-of-paragraph> internal hits 1271/8464 nti 7 constraint (none) extremes [0, 0]
<if-start-of-paragraph> internal hits 1271/8468 nti 7 constraint (none) extremes [0, 0]
<if-not-cap> internal hits 4004/8232 nti 8 constraint (none) extremes [0, 0]
@ -16,7 +16,7 @@
<any-integer> internal nti 10 constraint (none) extremes [1, 1]
<quoted-text> internal hits 3000/26136 nti 11 constraint (none) extremes [1, 1]
<quoted-text> internal hits 3000/26140 nti 11 constraint (none) extremes [1, 1]
<quoted-text-with-subs> internal nti 12 constraint (none) extremes [1, 1]
@ -24,7 +24,7 @@
<empty-text> internal nti 14 constraint (none) extremes [1, 1]
<if-start-of-source-text> internal hits 2/13752 nti 15 constraint (none) extremes [0, 0]
<if-start-of-source-text> internal hits 2/13760 nti 15 constraint (none) extremes [0, 0]
<list-or-division> hits 0/18 nti 16 constraint DS = {16} extremes [3, infinity)
English:
@ -76,12 +76,12 @@
* : {...}
constraint DS = {21} extremes [3, infinity)
<documentation-symbol-tail> hits 448/2588 nti 23 constraint DS = {22, 23} extremes [6, infinity)
<documentation-symbol-tail> hits 448/2596 nti 23 constraint DS = {22, 23} extremes [6, infinity)
English:
{...} ( <documentation-symbol> )
(hits 425/883) (matched long text) constraint DS = {22, 23} extremes [6, infinity)
(hits 425/887) (matched long text) constraint DS = {22, 23} extremes [6, infinity)
{...} -- <documentation-symbol> --
(hits 23/458) (matched long text) constraint DS = {22, 23} extremes [6, infinity)
(hits 23/462) (matched long text) constraint DS = {22, 23} extremes [6, infinity)
<documentation-symbol> hits 481/1192 nti 22 constraint DS = {22} extremes [3, 3]
English:
@ -4772,23 +4772,23 @@
{...}
constraint (none) extremes [1, infinity)
<optional-article> hits 86201/172402 nti 29 constraint (none) extremes [1, infinity)
<optional-article> hits 86205/172410 nti 29 constraint (none) extremes [1, infinity)
English:
<article> {...}
(hits 16328/49247) (matched long text) constraint (none) extremes [2, infinity)
(hits 16328/49251) (matched long text) constraint (none) extremes [2, infinity)
{...}
(hits 69873/69873) (matched long text) constraint (none) extremes [1, infinity)
(hits 69877/69877) (matched long text) constraint (none) extremes [1, infinity)
<compulsory-article> nti 30 constraint (none) extremes [2, infinity)
English:
<article> {...}
constraint (none) extremes [2, infinity)
<article> internal hits 16857/102740 nti r2 constraint (none) extremes [1, 1]
<article> internal hits 16857/102752 nti r2 constraint (none) extremes [1, 1]
<definite-article> internal hits 20758/244732 nti r2 constraint (none) extremes [1, 1]
<definite-article> internal hits 20758/244740 nti r2 constraint (none) extremes [1, 1]
<indefinite-article> internal hits 2341/44110 nti r2 constraint (none) extremes [1, 1]
<indefinite-article> internal hits 2341/44114 nti r2 constraint (none) extremes [1, 1]
<definite-article-table> nti r2 constraint CS = {r2} extremes [6, 6]
English:
@ -5293,9 +5293,9 @@
grammatical case
(hits 1/1) (matched: 'grammatical case') constraint CS = {14} extremes [2, 2]
<if-parsing-phrase-tokens> internal hits 2494/44380 nti 16 constraint (none) extremes [0, 0]
<if-parsing-phrase-tokens> internal hits 2504/44400 nti 16 constraint (none) extremes [0, 0]
<k-kind-prototype> internal hits 167/334 nti 17 constraint (none) extremes [1, infinity)
<k-kind-prototype> internal hits 169/338 nti 17 constraint (none) extremes [1, infinity)
<k-kind-as-name-token> hits 24/68 nti 16 constraint DS = {16} extremes [3, infinity)
English:
@ -5319,16 +5319,16 @@
<k-kind>
(hits 5/5) (matched: 'value of kind k') constraint (none) extremes [1, infinity)
<k-kind> hits 5878/107440 nti r5 constraint (none) extremes [1, infinity)
<k-kind> hits 5883/107450 nti r5 constraint (none) extremes [1, infinity)
English:
( <k-kind> )
(hits 0/2331) constraint DS = {r5} & CW = {r2, r5} extremes [3, infinity)
(hits 0/2332) constraint DS = {r5} & CW = {r2, r5} extremes [3, infinity)
^<if-parsing-phrase-tokens> <k-kind-variable>
(hits 1594/11892) (matched: 'k') constraint CW = {r2, r5} extremes [1, infinity)
(hits 1594/11897) (matched: 'k') constraint CW = {r2, r5} extremes [1, infinity)
<if-parsing-phrase-tokens> <k-variable-definition>
(hits 201/10298) (matched: 'sayable value of kind k') constraint CW = {r2, r5} extremes [1, infinity)
(hits 202/10303) (matched: 'sayable value of kind k') constraint CW = {r2, r5} extremes [1, infinity)
<k-base-kind>
(hits 3722/10097) (matched: 'an ice cream cone') constraint CW = {r2, r5} extremes [1, infinity)
(hits 3726/10101) (matched: 'an ice cream cone') constraint CW = {r2, r5} extremes [1, infinity)
<k-irregular-kind-construction>
(hits 2/16834) (matched: 'object-based rulebook') constraint DS = {r5} extremes [2, infinity)
<k-kind-construction>
@ -5341,14 +5341,14 @@
<k-kind>
(hits 8/137) (matched: 'room') constraint (none) extremes [1, infinity)
<k-variable-definition> hits 201/2494 nti r5 constraint CW = {r2, r5} extremes [1, infinity)
<k-variable-definition> hits 202/2504 nti r5 constraint CW = {r2, r5} extremes [1, infinity)
English:
<k-formal-variable>
(hits 120/614) (matched: 'k') constraint CW = {r2, r5} extremes [1, 1]
(hits 120/616) (matched: 'k') constraint CW = {r2, r5} extremes [1, 1]
<k-kind-of-kind> of kind <k-formal-variable>
(hits 81/315) (matched: 'sayable value of kind k') constraint DS = {r5} & CW = {r2, r5} extremes [4, infinity)
(hits 82/316) (matched: 'sayable value of kind k') constraint DS = {r5} & CW = {r2, r5} extremes [4, infinity)
<k-base-kind> internal hits 3722/20194 nti r5 constraint CW = {r2, r5} extremes [1, infinity)
<k-base-kind> internal hits 3726/20202 nti r5 constraint CW = {r2, r5} extremes [1, infinity)
<k-irregular-kind-construction> hits 2/33668 nti r5 constraint DS = {r5} extremes [2, infinity)
English:
@ -5419,14 +5419,14 @@
<k-single-term>
(hits 7/7) (matched: 'value of kind l') constraint (none) extremes [1, infinity)
<k-kind-of-kind> hits 100/448 nti r5 constraint (none) extremes [1, infinity)
<k-kind-of-kind> hits 101/450 nti r5 constraint (none) extremes [1, infinity)
English:
<k-kind>
(hits 100/224) (matched: 'sayable value') constraint (none) extremes [1, infinity)
(hits 101/225) (matched: 'sayable value') constraint (none) extremes [1, infinity)
<k-kind-variable> internal hits 1594/21290 nti r5 constraint CW = {r2, r5} extremes [1, 1]
<k-formal-variable> internal hits 220/1428 nti r5 constraint CW = {r2, r5} extremes [1, 1]
<k-formal-variable> internal hits 221/1434 nti r5 constraint CW = {r2, r5} extremes [1, 1]
<k-formal-variable-singular> internal hits 0/774 nti 19 constraint (none) extremes [1, 1]
@ -5496,12 +5496,12 @@
<natural-language> internal nti 21 constraint (none) extremes [1, infinity)
<dividing-sentence> hits 208/10844 nti 22 constraint DW = {18, 19} extremes [2, infinity)
<dividing-sentence> hits 208/10852 nti 22 constraint DW = {18, 19} extremes [2, infinity)
English:
<if-start-of-paragraph> <heading>
(hits 200/4218) (matched long text) constraint DS = {18} extremes [2, infinity)
(hits 200/4220) (matched long text) constraint DS = {18} extremes [2, infinity)
<extension-end-marker-sentence>
(hits 8/3857) (matched long text) constraint DS = {19} extremes [3, infinity)
(hits 8/3859) (matched long text) constraint DS = {19} extremes [3, infinity)
<heading> hits 200/2514 nti 18 constraint DS = {18} extremes [2, infinity)
English:
@ -5520,35 +5520,35 @@
section {...}
(hits 158/1215) (matched long text) constraint DS = {18} extremes [2, infinity)
<extension-end-marker-sentence> hits 8/7714 nti 19 constraint DS = {19} extremes [3, infinity)
<extension-end-marker-sentence> hits 8/7718 nti 19 constraint DS = {19} extremes [3, infinity)
English:
{...} begin/begins here
(hits 4/3857) (matched long text) constraint DS = {19} extremes [3, infinity)
(hits 4/3859) (matched long text) constraint DS = {19} extremes [3, infinity)
{...} end/ends here
(hits 4/3853) (matched: 'the standard rules end here') constraint DS = {19} extremes [3, infinity)
(hits 4/3855) (matched: 'the standard rules end here') constraint DS = {19} extremes [3, infinity)
<structural-sentence> hits 32/13752 nti 21 constraint (none) extremes [1, infinity)
<structural-sentence> hits 32/13760 nti 21 constraint (none) extremes [1, infinity)
English:
<if-start-of-source-text> <quoted-text>
(hits 0/20) constraint (none) extremes [1, 1]
<if-start-of-source-text> <quoted-text> {...}
(hits 0/6856) constraint (none) extremes [2, infinity)
(hits 0/6860) constraint (none) extremes [2, infinity)
<language-modifying-sentence>
(hits 0/6650) constraint DS = {20} extremes [4, infinity)
(hits 0/6654) constraint DS = {20} extremes [4, infinity)
*
constraint CS = {21} extremes [1, 1]
* <quoted-text-without-subs>
constraint DS = {21} extremes [2, 2]
<if-start-of-paragraph> table {...}
(hits 14/6745) (matched long text) constraint DS = {21} extremes [2, infinity)
(hits 14/6749) (matched long text) constraint DS = {21} extremes [2, infinity)
<if-start-of-paragraph> equation {...}
(hits 0/6731) constraint DS = {21} extremes [2, infinity)
(hits 0/6735) constraint DS = {21} extremes [2, infinity)
include the {...} by {...}
(hits 0/6662) constraint DS = {21} extremes [5, infinity)
(hits 0/6666) constraint DS = {21} extremes [5, infinity)
include {...} by {...}
(hits 18/6731) (matched long text) constraint DS = {21} extremes [4, infinity)
(hits 18/6735) (matched long text) constraint DS = {21} extremes [4, infinity)
include (- {...}
(hits 0/6713) constraint DS = {21} extremes [3, infinity)
(hits 0/6717) constraint DS = {21} extremes [3, infinity)
<comma-divisible-sentence> hits 9/2928 nti 22 constraint DS = {22} extremes [2, infinity)
English:
@ -5563,12 +5563,12 @@
when {...}
(hits 4/1412) (matched: 'when scene begins is a scene based rulebook') constraint DS = {22} extremes [2, infinity)
<language-modifying-sentence> hits 0/13300 nti 20 constraint DS = {20} extremes [4, infinity)
<language-modifying-sentence> hits 0/13308 nti 20 constraint DS = {20} extremes [4, infinity)
English:
include (- {###} in the preform grammar
(hits 0/116) constraint DS = {20} extremes [7, 7]
use {...} language element/elements
(hits 0/6650) constraint DS = {20} extremes [4, infinity)
(hits 0/6654) constraint DS = {20} extremes [4, infinity)
<heading-qualifier> hits 37/474 nti 28 constraint DS = {28} extremes [2, infinity)
English:
@ -5669,9 +5669,9 @@
<extension-title-and-version> hits 10/20 nti 8 constraint (none) extremes [1, infinity)
English:
version <extension-version> of <definite-article> <extension-unversioned>
(hits 1/3) (matched: 'version 6 of the standard rules') constraint DS = {8} extremes [5, infinity)
(hits 1/3) (matched: 'version 7 of the standard rules') constraint DS = {8} extremes [5, infinity)
version <extension-version> of <extension-unversioned>
(hits 3/3) (matched: 'version 1 of basic inform') constraint DS = {8} extremes [4, infinity)
(hits 3/3) (matched: 'version 2 of basic inform') constraint DS = {8} extremes [4, infinity)
<definite-article> <extension-unversioned>
(hits 0/5) constraint (none) extremes [2, infinity)
<extension-unversioned>
@ -5705,7 +5705,7 @@
the {...}
(hits 1/1) (matched: 'the standard rules') constraint DS = {10} extremes [2, infinity)
<control-structure-phrase> hits 2957/19342 nti 11 constraint DS = {11} extremes [1, infinity)
<control-structure-phrase> hits 2957/19354 nti 11 constraint DS = {11} extremes [1, infinity)
English:
if {...} is begin
(hits 0/4792) constraint DS = {11} extremes [4, infinity)
@ -5728,7 +5728,7 @@
-- {...}
(hits 0/3128) constraint DS = {11} extremes [2, infinity)
<end-control-structure-phrase> hits 22/12340 nti 12 constraint CS = {12} extremes [2, 2]
<end-control-structure-phrase> hits 22/12348 nti 12 constraint CS = {12} extremes [2, 2]
English:
end if/unless
(hits 20/22) (matched: 'end if') constraint CS = {12} extremes [2, 2]
@ -5737,7 +5737,7 @@
end repeat
constraint CS = {12} extremes [2, 2]
<other-significant-phrase> hits 785/14924 nti 13 constraint DS = {13} extremes [2, infinity)
<other-significant-phrase> hits 785/14928 nti 13 constraint DS = {13} extremes [2, infinity)
English:
say {...}
(hits 604/2929) (matched long text) constraint DS = {13} extremes [2, infinity)
@ -5749,7 +5749,7 @@
{......} , {......}
(hits 2324/2543) (matched long text) constraint DS = {14} extremes [3, infinity)
<instead-keyword> hits 30/10134 nti 15 constraint DS = {15} extremes [2, infinity)
<instead-keyword> hits 30/10138 nti 15 constraint DS = {15} extremes [2, infinity)
English:
instead {...}
(hits 0/1914) constraint DS = {15} extremes [2, infinity)
@ -6813,14 +6813,14 @@
{***} <quoted-text> {***}
(hits 0/953) constraint (none) extremes [1, infinity)
<unsuitable-name-for-locals> hits 0/1656 nti 6 constraint (none) extremes [1, infinity)
<unsuitable-name-for-locals> hits 0/1660 nti 6 constraint (none) extremes [1, infinity)
English:
<definite-article>
(hits 0/680) constraint (none) extremes [1, 1]
(hits 0/682) constraint (none) extremes [1, 1]
{***} (/)/{/}/,/. {***}
(hits 0/33) constraint DS = {6} extremes [1, infinity)
{***} <quoted-text> {***}
(hits 0/828) constraint (none) extremes [1, infinity)
(hits 0/830) constraint (none) extremes [1, infinity)
<unfortunate-name> hits 0/84 nti 7 constraint (none) extremes [1, infinity)
English:
@ -6834,7 +6834,7 @@
{***} something {***}
constraint DS = {8} extremes [1, infinity)
<inline-phrase-definition> hits 436/1438 nti 9 constraint DS = {9} extremes [2, infinity)
<inline-phrase-definition> hits 438/1442 nti 9 constraint DS = {9} extremes [2, infinity)
English:
(- {###} - in to only
(hits 17/27) (matched: '(- rtrue; - in to only') constraint DS = {9} extremes [6, 6]
@ -6843,11 +6843,11 @@
(- {###} - in to decide only
(hits 0/7) constraint DS = {9} extremes [7, 7]
(- {###}
(hits 415/449) (matched: '(- {-say:val:K} ') constraint DS = {9} extremes [2, 2]
(hits 417/451) (matched: '(- {-say:val:K} ') constraint DS = {9} extremes [2, 2]
(- {###} {...}
(hits 0/66) constraint DS = {9} extremes [3, infinity)
<definition-preamble> hits 48/2786 nti 10 constraint CS = {10} extremes [1, 1]
<definition-preamble> hits 48/2790 nti 10 constraint CS = {10} extremes [1, 1]
English:
definition
(hits 48/48) (matched: 'definition') constraint CS = {10} extremes [1, 1]
@ -6882,172 +6882,172 @@
{...}
(hits 28/28) (matched: 'going on') constraint (none) extremes [1, infinity)
<to-phrase-preamble> hits 504/2690 nti 15 constraint DS = {15} extremes [1, infinity)
<to-phrase-preamble> hits 506/2694 nti 15 constraint DS = {15} extremes [1, infinity)
English:
{to}
constraint CS = {15} extremes [1, 1]
to {...} ( called {...} )
(hits 0/810) constraint DS = {15} extremes [6, infinity)
(hits 0/812) constraint DS = {15} extremes [6, infinity)
{to ...} ( this is the {### function} inverse to {###} )
(hits 16/686) (matched long text) constraint DS = {15} extremes [12, infinity)
(hits 16/688) (matched long text) constraint DS = {15} extremes [12, infinity)
{to ...} ( this is the {### function} )
(hits 4/728) (matched long text) constraint DS = {15} extremes [9, infinity)
(hits 4/730) (matched long text) constraint DS = {15} extremes [9, infinity)
{to ...} ( this is {...} )
(hits 0/773) constraint DS = {15} extremes [7, infinity)
(hits 0/775) constraint DS = {15} extremes [7, infinity)
{to ...}
(hits 484/853) (matched long text) constraint DS = {15} extremes [2, infinity)
(hits 486/855) (matched long text) constraint DS = {15} extremes [2, infinity)
<now-phrase-preamble> hits 1/1008 nti 16 constraint DS = {16} extremes [3, infinity)
<now-phrase-preamble> hits 1/1012 nti 16 constraint DS = {16} extremes [3, infinity)
English:
to now {...}
(hits 1/500) (matched: 'to now ( cn - condition )') constraint DS = {16} extremes [3, infinity)
(hits 1/502) (matched: 'to now ( cn - condition )') constraint DS = {16} extremes [3, infinity)
<begin-phrase-preamble> hits 0/1008 nti 17 constraint CS = {17} extremes [2, 2]
<begin-phrase-preamble> hits 0/1012 nti 17 constraint CS = {17} extremes [2, 2]
English:
to begin
constraint CS = {17} extremes [2, 2]
<to-return-data> hits 524/1048 nti 18 constraint DS = {18} extremes [2, infinity)
<to-return-data> hits 526/1052 nti 18 constraint DS = {18} extremes [2, infinity)
English:
to {decide yes/no}
(hits 2/2) (matched: 'to decide yes') constraint CS = {18} extremes [3, 3]
to {decide on ...}
(hits 1/475) (matched: 'to decide on ( something - value )') constraint DS = {18} extremes [4, infinity)
(hits 1/477) (matched: 'to decide on ( something - value )') constraint DS = {18} extremes [4, infinity)
to decide whether/if the {...}
(hits 12/461) (matched long text) constraint DS = {18} extremes [5, infinity)
(hits 12/463) (matched long text) constraint DS = {18} extremes [5, infinity)
to decide whether/if {...}
(hits 39/462) (matched long text) constraint DS = {18} extremes [4, infinity)
(hits 39/464) (matched long text) constraint DS = {18} extremes [4, infinity)
to decide what/which <return-kind> is the {...}
(hits 88/388) (matched long text) constraint DS = {18} extremes [7, infinity)
(hits 90/390) (matched long text) constraint DS = {18} extremes [7, infinity)
to decide what/which <return-kind> is {...}
(hits 74/310) (matched long text) constraint DS = {18} extremes [6, infinity)
to {...}
(hits 308/308) (matched long text) constraint DS = {18} extremes [2, infinity)
<return-kind> hits 162/324 nti 7 constraint (none) extremes [1, infinity)
<return-kind> hits 164/328 nti 7 constraint (none) extremes [1, infinity)
English:
<k-kind-prototype>
(hits 162/162) (matched: 'relation of objects') constraint (none) extremes [1, infinity)
(hits 164/164) (matched: 'relation of objects') constraint (none) extremes [1, infinity)
{...}
constraint (none) extremes [1, infinity)
<phrase-preamble> hits 525/1050 nti 21 constraint (none) extremes [1, infinity)
<phrase-preamble> hits 527/1054 nti 21 constraint (none) extremes [1, infinity)
English:
<phrase-preamble> ( deprecated )
(hits 1/442) (matched long text) constraint DS = {21} extremes [4, infinity)
(hits 1/444) (matched long text) constraint DS = {21} extremes [4, infinity)
<say-preamble>
(hits 139/485) (matched long text) constraint DS = {19} extremes [2, infinity)
(hits 139/487) (matched long text) constraint DS = {19} extremes [2, infinity)
<to-preamble>
(hits 385/385) (matched long text) constraint (none) extremes [1, infinity)
(hits 387/387) (matched long text) constraint (none) extremes [1, infinity)
<to-preamble> hits 407/814 nti 20 constraint (none) extremes [1, infinity)
<to-preamble> hits 409/818 nti 20 constraint (none) extremes [1, infinity)
English:
<to-preamble> ( arithmetic operation <cardinal-number> )
(hits 16/351) (matched long text) constraint DS = {20} extremes [6, infinity)
(hits 16/353) (matched long text) constraint DS = {20} extremes [6, infinity)
<to-preamble> ( assignment operation )
(hits 6/340) (matched long text) constraint DS = {20} extremes [5, infinity)
(hits 6/342) (matched long text) constraint DS = {20} extremes [5, infinity)
{let ... be given by ...}
(hits 2/329) (matched long text) constraint DS = {20} extremes [6, infinity)
(hits 2/331) (matched long text) constraint DS = {20} extremes [6, infinity)
{let ...}
(hits 4/347) (matched long text) constraint DS = {20} extremes [2, infinity)
(hits 4/349) (matched long text) constraint DS = {20} extremes [2, infinity)
{...} -- end
(hits 0/341) constraint DS = {20} extremes [3, infinity)
(hits 0/343) constraint DS = {20} extremes [3, infinity)
{...} -- end conditional
(hits 3/335) (matched long text) constraint DS = {20} extremes [4, infinity)
(hits 3/337) (matched long text) constraint DS = {20} extremes [4, infinity)
{...} -- end loop
(hits 10/332) (matched long text) constraint DS = {20} extremes [4, infinity)
(hits 10/334) (matched long text) constraint DS = {20} extremes [4, infinity)
{...} -- in loop
(hits 2/322) (matched: 'break -- in loop') constraint DS = {20} extremes [4, infinity)
(hits 2/324) (matched: 'break -- in loop') constraint DS = {20} extremes [4, infinity)
{...} -- in {###}
(hits 0/320) constraint DS = {20} extremes [4, infinity)
(hits 0/322) constraint DS = {20} extremes [4, infinity)
{...}
(hits 364/364) (matched long text) constraint (none) extremes [1, infinity)
(hits 366/366) (matched long text) constraint (none) extremes [1, infinity)
<say-preamble> hits 155/1002 nti 19 constraint DS = {19} extremes [2, infinity)
<say-preamble> hits 155/1006 nti 19 constraint DS = {19} extremes [2, infinity)
English:
<say-preamble> -- running on
(hits 16/447) (matched long text) constraint DS = {19} extremes [4, infinity)
(hits 16/449) (matched long text) constraint DS = {19} extremes [4, infinity)
{say otherwise/else}
(hits 2/5) (matched: 'say otherwise') constraint CS = {19} extremes [2, 2]
{say otherwise/else if/unless ...}
(hits 0/431) constraint DS = {19} extremes [4, infinity)
(hits 0/433) constraint DS = {19} extremes [4, infinity)
{say if/unless ...}
(hits 2/443) (matched: 'say if ( c - condition )') constraint DS = {19} extremes [3, infinity)
(hits 2/445) (matched: 'say if ( c - condition )') constraint DS = {19} extremes [3, infinity)
{say end if/unless}
(hits 2/2) (matched: 'say end if') constraint CS = {19} extremes [3, 3]
{say ...} -- beginning {###}
(hits 2/411) (matched: 'say one of -- beginning say_one_of') constraint DS = {19} extremes [5, infinity)
(hits 2/413) (matched: 'say one of -- beginning say_one_of') constraint DS = {19} extremes [5, infinity)
{say ...} -- continuing {###}
(hits 1/409) (matched: 'say or -- continuing say_one_of') constraint DS = {19} extremes [5, infinity)
(hits 1/411) (matched: 'say or -- continuing say_one_of') constraint DS = {19} extremes [5, infinity)
{say ...} -- ending {###} with marker {###}
(hits 9/355) (matched long text) constraint DS = {19} extremes [8, infinity)
(hits 9/357) (matched long text) constraint DS = {19} extremes [8, infinity)
{say ...} -- ending {###}
(hits 1/399) (matched: 'say only -- ending say_first_time') constraint DS = {19} extremes [5, infinity)
(hits 1/401) (matched: 'say only -- ending say_first_time') constraint DS = {19} extremes [5, infinity)
{say ...}
(hits 120/466) (matched long text) constraint DS = {19} extremes [2, infinity)
(hits 120/468) (matched long text) constraint DS = {19} extremes [2, infinity)
<phrase-vetting> hits 0/1048 nti 22 constraint DS = {13, 22} extremes [8, infinity)
<phrase-vetting> hits 0/1052 nti 22 constraint DS = {13, 22} extremes [8, infinity)
English:
( {......} ) <copular-verb> {<copular-preposition>} ( {......} )
(hits 0/343) constraint DS = {13, 22} extremes [8, infinity)
(hits 0/345) constraint DS = {13, 22} extremes [8, infinity)
<phrase-definition-word-or-token> hits 2279/4558 nti 24 constraint (none) extremes [1, infinity)
<phrase-definition-word-or-token> hits 2287/4574 nti 24 constraint (none) extremes [1, infinity)
English:
( ) {***}
(hits 0/1777) constraint DS = {24} extremes [2, infinity)
(hits 0/1785) constraint DS = {24} extremes [2, infinity)
( <phrase-token-declaration> ) {***}
(hits 587/1750) (matched long text) constraint DS = {24} extremes [3, infinity)
(hits 589/1758) (matched long text) constraint DS = {24} extremes [3, infinity)
( {***}
(hits 0/1201) constraint DS = {24} extremes [1, infinity)
(hits 0/1207) constraint DS = {24} extremes [1, infinity)
) {***}
(hits 0/1201) constraint DS = {24} extremes [1, infinity)
(hits 0/1207) constraint DS = {24} extremes [1, infinity)
{###} {***}
(hits 1692/1692) (matched long text) constraint (none) extremes [1, infinity)
(hits 1698/1698) (matched long text) constraint (none) extremes [1, infinity)
<phrase-token-declaration> hits 587/1184 nti 23 constraint (none) extremes [1, infinity)
<phrase-token-declaration> hits 589/1188 nti 23 constraint (none) extremes [1, infinity)
English:
{***} ( {***} - {......}
(hits 0/570) constraint DS = {23} extremes [3, infinity)
(hits 0/572) constraint DS = {23} extremes [3, infinity)
{......} - a nonexisting variable
(hits 0/177) constraint DS = {23} extremes [5, infinity)
(hits 0/178) constraint DS = {23} extremes [5, infinity)
{......} - a nonexisting <k-kind-prototype> variable
(hits 0/85) constraint DS = {23} extremes [6, infinity)
(hits 0/86) constraint DS = {23} extremes [6, infinity)
{......} - a nonexisting <k-kind-prototype> that/which varies
(hits 0/57) constraint DS = {23} extremes [7, infinity)
(hits 0/58) constraint DS = {23} extremes [7, infinity)
{......} - nonexisting variable
(hits 4/344) (matched: 't - nonexisting variable') constraint DS = {23} extremes [4, infinity)
(hits 4/346) (matched: 't - nonexisting variable') constraint DS = {23} extremes [4, infinity)
{......} - nonexisting <k-kind-prototype> variable
(hits 5/177) (matched: 'loopvar - nonexisting k variable') constraint DS = {23} extremes [5, infinity)
(hits 5/178) (matched: 'loopvar - nonexisting k variable') constraint DS = {23} extremes [5, infinity)
{......} - nonexisting <k-kind-prototype> that/which varies
(hits 0/85) constraint DS = {23} extremes [6, infinity)
(hits 0/86) constraint DS = {23} extremes [6, infinity)
{......} - {an existing variable}
(hits 0/172) constraint DS = {23} extremes [5, infinity)
(hits 0/173) constraint DS = {23} extremes [5, infinity)
{......} - {an existing <k-kind-prototype> variable}
(hits 0/85) constraint DS = {23} extremes [6, infinity)
(hits 0/86) constraint DS = {23} extremes [6, infinity)
{......} - {an existing <k-kind-prototype> that/which varies}
(hits 0/57) constraint DS = {23} extremes [7, infinity)
(hits 0/58) constraint DS = {23} extremes [7, infinity)
{......} - {existing variable}
(hits 2/335) (matched: 't - existing variable') constraint DS = {23} extremes [4, infinity)
(hits 2/337) (matched: 't - existing variable') constraint DS = {23} extremes [4, infinity)
{......} - {existing <k-kind-prototype> variable}
(hits 0/172) constraint DS = {23} extremes [5, infinity)
(hits 0/173) constraint DS = {23} extremes [5, infinity)
{......} - {existing <k-kind-prototype> that/which varies}
(hits 0/85) constraint DS = {23} extremes [6, infinity)
(hits 0/86) constraint DS = {23} extremes [6, infinity)
{......} - a condition
(hits 0/333) constraint DS = {23} extremes [4, infinity)
(hits 0/335) constraint DS = {23} extremes [4, infinity)
{......} - condition
(hits 9/559) (matched: 'c - condition') constraint DS = {23} extremes [3, infinity)
(hits 9/561) (matched: 'c - condition') constraint DS = {23} extremes [3, infinity)
{......} - a phrase
(hits 0/333) constraint DS = {23} extremes [4, infinity)
(hits 0/335) constraint DS = {23} extremes [4, infinity)
{......} - phrase
(hits 0/550) constraint DS = {23} extremes [3, infinity)
(hits 0/552) constraint DS = {23} extremes [3, infinity)
{......} - storage
(hits 4/550) (matched: 's - storage') constraint DS = {23} extremes [3, infinity)
(hits 4/552) (matched: 's - storage') constraint DS = {23} extremes [3, infinity)
{......} - a table-reference
(hits 0/333) constraint DS = {23} extremes [4, infinity)
(hits 0/335) constraint DS = {23} extremes [4, infinity)
{......} - table-reference
(hits 3/546) (matched: 'tr - table-reference') constraint DS = {23} extremes [3, infinity)
(hits 3/548) (matched: 'tr - table-reference') constraint DS = {23} extremes [3, infinity)
{......} - <s-phrase-token-type>
(hits 536/543) (matched long text) constraint DS = {23} extremes [3, infinity)
(hits 538/545) (matched long text) constraint DS = {23} extremes [3, infinity)
{......} - <s-kind-as-name-token>
(hits 2/7) (matched long text) constraint DS = {23} extremes [3, infinity)
{......} - {......}
@ -7818,9 +7818,9 @@
<s-type-expression> internal hits 1979/5290 nti 22 constraint (none) extremes [1, infinity)
<s-descriptive-type-expression> internal hits 1280/3076 nti 23 constraint (none) extremes [1, infinity)
<s-descriptive-type-expression> internal hits 1282/3080 nti 23 constraint (none) extremes [1, infinity)
<s-phrase-token-type> internal hits 536/1086 nti 24 constraint (none) extremes [1, infinity)
<s-phrase-token-type> internal hits 538/1090 nti 24 constraint (none) extremes [1, infinity)
<s-type-expression-or-value> hits 249/1760 nti 25 constraint (none) extremes [1, infinity)
English:
@ -7871,21 +7871,21 @@
<s-property-name> internal hits 818/22078 nti 10 constraint (none) extremes [1, infinity)
<s-adjective-list-as-desc> hits 705/22526 nti 11 constraint (none) extremes [1, infinity)
<s-adjective-list-as-desc> hits 705/22530 nti 11 constraint (none) extremes [1, infinity)
English:
<s-adjective-list>
(hits 705/11263) (matched: 'unmarked for listing') constraint (none) extremes [1, infinity)
(hits 705/11265) (matched: 'unmarked for listing') constraint (none) extremes [1, infinity)
<s-adjective-list> hits 1512/28318 nti 28 constraint (none) extremes [1, infinity)
<s-adjective-list> hits 1512/28322 nti 28 constraint (none) extremes [1, infinity)
English:
not <indefinite-article> <s-adjective-list-unarticled>
(hits 0/3012) constraint DS = {28} extremes [3, infinity)
(hits 0/3013) constraint DS = {28} extremes [3, infinity)
<indefinite-article> <s-adjective-list-unarticled>
(hits 0/7114) constraint (none) extremes [2, infinity)
(hits 0/7116) constraint (none) extremes [2, infinity)
<s-adjective-list-unarticled>
(hits 1512/14159) (matched: 'marked for listing other') constraint (none) extremes [1, infinity)
(hits 1512/14161) (matched: 'marked for listing other') constraint (none) extremes [1, infinity)
<s-adjective-list-unarticled> hits 1583/30576 nti 27 constraint (none) extremes [1, infinity)
<s-adjective-list-unarticled> hits 1583/30580 nti 27 constraint (none) extremes [1, infinity)
English:
not <s-adjective>
(hits 12/4538) (matched: 'not lockable') constraint DS = {27} extremes [2, infinity)
@ -7894,9 +7894,9 @@
not <s-adjective> <s-adjective-list-unarticled>
(hits 0/2752) constraint DS = {27} extremes [3, infinity)
<s-adjective> <s-adjective-list-unarticled>
(hits 71/7443) (matched: 'marked for listing other') constraint (none) extremes [2, infinity)
(hits 71/7445) (matched: 'marked for listing other') constraint (none) extremes [2, infinity)
<s-adjective> internal hits 2299/19596 nti r3 constraint CS = {r3} extremes [1, infinity)
<s-adjective> internal hits 2299/19600 nti r3 constraint CS = {r3} extremes [1, infinity)
<s-qualifiable-noun> hits 3751/93856 nti 12 constraint (none) extremes [1, infinity)
English:
@ -8041,14 +8041,14 @@
<s-type-expression-unarticled>
(hits 1838/2321) (matched long text) constraint (none) extremes [1, infinity)
<s-type-expression-unarticled> hits 3150/7870 nti 12 constraint (none) extremes [1, infinity)
<s-type-expression-unarticled> hits 3152/7874 nti 12 constraint (none) extremes [1, infinity)
English:
<s-variable-scope> variable/variables
(hits 2/618) (matched: 'text variables') constraint DS = {12} extremes [2, infinity)
(hits 2/620) (matched: 'text variables') constraint DS = {12} extremes [2, infinity)
<s-variable-scope> that/which vary/varies
(hits 60/423) (matched: 'action based rule producing nothing that varies') constraint DS = {12} extremes [3, infinity)
(hits 60/424) (matched: 'action based rule producing nothing that varies') constraint DS = {12} extremes [3, infinity)
<k-kind>
(hits 2459/3873) (matched long text) constraint (none) extremes [1, infinity)
(hits 2461/3875) (matched long text) constraint (none) extremes [1, infinity)
<s-literal>
(hits 221/1414) (matched: 'Represents geographical locations, both indoor
and outdoor, which are not necessarily areas in a building. A player in one
@ -8065,19 +8065,19 @@
<s-object-instance>
(hits 0/26) constraint CW = {r2, r4} extremes [1, infinity)
<s-descriptive-type-expression-uncached> hits 1260/3036 nti 30 constraint (none) extremes [1, infinity)
<s-descriptive-type-expression-uncached> hits 1262/3040 nti 30 constraint (none) extremes [1, infinity)
English:
<article> <s-descriptive-type-expression-unarticled>
(hits 167/798) (matched: 'an ice cream cone') constraint (none) extremes [2, infinity)
(hits 167/800) (matched: 'an ice cream cone') constraint (none) extremes [2, infinity)
<s-descriptive-type-expression-unarticled>
(hits 1093/1351) (matched long text) constraint (none) extremes [1, infinity)
(hits 1095/1353) (matched long text) constraint (none) extremes [1, infinity)
<s-descriptive-type-expression-unarticled> hits 1260/3036 nti 6 constraint (none) extremes [1, infinity)
<s-descriptive-type-expression-unarticled> hits 1262/3040 nti 6 constraint (none) extremes [1, infinity)
English:
<s-adjective-list-as-desc>
(hits 74/1518) (matched: 'unmarked for listing') constraint (none) extremes [1, infinity)
(hits 74/1520) (matched: 'unmarked for listing') constraint (none) extremes [1, infinity)
<s-type-expression-unarticled>
(hits 1186/1444) (matched long text) constraint (none) extremes [1, infinity)
(hits 1188/1446) (matched long text) constraint (none) extremes [1, infinity)
<s-variable-scope> hits 62/126 nti 11 constraint (none) extremes [1, infinity)
English:

View file

@ -1,50 +1,50 @@
Total memory consumption was 135423K = 132 MB
Total memory consumption was 135610K = 132 MB
---- was used for 2099578 objects, in 372265 frames in 0 x 800K = 0K = 0 MB:
---- was used for 2111059 objects, in 373571 frames in 0 x 800K = 0K = 0 MB:
30.6% inter_tree_node_array 59 x 8192 = 483328 objects, 42534752 bytes
19.4% text_stream_array 4789 x 100 = 478900 objects, 26971648 bytes
18.0% linked_list 44801 objects, 25088560 bytes
31.1% inter_tree_node_array 60 x 8192 = 491520 objects, 43255680 bytes
19.4% text_stream_array 4802 x 100 = 480200 objects, 27044864 bytes
18.2% linked_list 45247 objects, 25338320 bytes
10.2% inter_symbol_array 134 x 1024 = 137216 objects, 14274752 bytes
10.0% inter_error_stash_array 106 x 1024 = 108544 objects, 13897024 bytes
7.6% parse_node 133423 objects, 10673840 bytes
7.6% parse_node 133440 objects, 10675200 bytes
5.4% verb_conjugation 164 objects, 7610912 bytes
4.1% parse_node_annotation_array 356 x 500 = 178000 objects, 5707392 bytes
2.7% scan_directory 915 objects, 3777120 bytes
4.1% parse_node_annotation_array 357 x 500 = 178500 objects, 5723424 bytes
3.4% scan_directory 1148 objects, 4738944 bytes
2.5% pcalc_prop_array 26 x 1000 = 26000 objects, 3536832 bytes
2.3% inter_name_array 67 x 1000 = 67000 objects, 3218144 bytes
1.9% kind_array 68 x 1000 = 68000 objects, 2722176 bytes
1.5% inter_schema_token 14157 objects, 2151864 bytes
1.4% inter_name_generator_array 51 x 1000 = 51000 objects, 2041632 bytes
1.3% package_request 21235 objects, 1868680 bytes
1.3% package_request 21270 objects, 1871760 bytes
1.3% vocabulary_entry_array 164 x 100 = 16400 objects, 1842048 bytes
1.1% dict_entry_array 482 x 100 = 48200 objects, 1557824 bytes
1.0% inter_symbols_table 26763 objects, 1498728 bytes
1.1% dict_entry_array 483 x 100 = 48300 objects, 1561056 bytes
1.0% inter_symbols_table 26838 objects, 1502928 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
0.9% inter_package 26763 objects, 1284624 bytes
0.9% inter_package 26838 objects, 1288224 bytes
0.8% map_data 672 objects, 1128960 bytes
0.7% id_body 955 objects, 1092520 bytes
0.7% id_body 957 objects, 1094808 bytes
0.7% adjective_meaning 208 objects, 1030016 bytes
0.7% inter_schema_node 9050 objects, 1013600 bytes
0.7% excerpt_meaning 3127 objects, 975624 bytes
0.7% excerpt_meaning 3129 objects, 976248 bytes
0.6% production 3973 objects, 921736 bytes
0.6% ptoken 8643 objects, 898872 bytes
0.6% grammatical_usage 3641 objects, 873840 bytes
0.6% individual_form 2574 objects, 864864 bytes
0.4% unary_predicate_array 17 x 1000 = 17000 objects, 680544 bytes
0.3% local_variable_array 48 x 100 = 4800 objects, 462336 bytes
0.3% local_variable_array 49 x 100 = 4900 objects, 471968 bytes
0.2% verb_usage 1148 objects, 394912 bytes
0.2% dictionary 7726 objects, 370848 bytes
0.2% rule 472 objects, 370048 bytes
0.2% dictionary 7702 objects, 369696 bytes
0.2% verb_form 388 objects, 350752 bytes
0.2% noun 2389 objects, 286680 bytes
0.1% compilation_subtask 3369 objects, 269520 bytes
0.1% compilation_subtask 3380 objects, 270400 bytes
0.1% inter_annotation_array 2 x 8192 = 16384 objects, 262208 bytes
0.1% inference_subject 667 objects, 261464 bytes
0.1% vanilla_function 3755 objects, 240320 bytes
0.1% vanilla_function 3794 objects, 242816 bytes
0.1% binary_predicate 326 objects, 172128 bytes
0.1% hierarchy_location 1180 objects, 169920 bytes
0.1% hierarchy_location 1181 objects, 170064 bytes
0.1% linguistic_stock_item 3332 objects, 159936 bytes
0.1% rule_family_data 403 objects, 148304 bytes
0.1% nonterminal 774 objects, 142416 bytes
@ -53,10 +53,10 @@ Total memory consumption was 135423K = 132 MB
---- pcalc_term_array 3 x 1000 = 3000 objects, 120096 bytes
---- documentation_ref 1270 objects, 111760 bytes
---- inter_schema 1539 objects, 110808 bytes
---- imperative_defn 1393 objects, 100296 bytes
---- imperative_defn 1395 objects, 100440 bytes
---- noun_usage 2412 objects, 96480 bytes
---- anl_entry_array 2 x 1000 = 2000 objects, 96064 bytes
---- inter_tree 7 objects, 95760 bytes
---- inter_tree 7 objects, 95704 bytes
---- preposition 274 objects, 87680 bytes
---- lexical_cluster 2529 objects, 80928 bytes
---- kind_variable_declaration 1656 objects, 79488 bytes
@ -64,11 +64,11 @@ Total memory consumption was 135423K = 132 MB
---- label_namespace 1480 objects, 71040 bytes
---- spatial_data 672 objects, 64512 bytes
---- linked_list_item_array 4 x 1000 = 4000 objects, 64128 bytes
---- kind_constructor 78 objects, 63648 bytes
---- kind_macro_definition 9 objects, 62280 bytes
---- booking 863 objects, 62136 bytes
---- scenes_rcd_data 1910 objects, 61120 bytes
---- actions_rcd_data 1910 objects, 61120 bytes
---- kind_constructor 78 objects, 59280 bytes
---- actions_rcd_data 1914 objects, 61248 bytes
---- scenes_rcd_data 1914 objects, 61248 bytes
---- command_grammar 130 objects, 58240 bytes
---- table 7 objects, 56672 bytes
---- pcalc_func_array 1 x 1000 objects, 56032 bytes
@ -80,7 +80,7 @@ Total memory consumption was 135423K = 132 MB
---- HTML_tag_array 1 x 1000 objects, 48032 bytes
---- heading 207 objects, 46368 bytes
---- text_substitution 438 objects, 42048 bytes
---- to_family_data 504 objects, 40320 bytes
---- to_family_data 506 objects, 40480 bytes
---- anl_clause_array 1 x 1000 objects, 40032 bytes
---- activity_list_array 1 x 1000 objects, 40032 bytes
---- shared_variable_access_list_array 12 x 100 = 1200 objects, 38784 bytes
@ -89,59 +89,59 @@ Total memory consumption was 135423K = 132 MB
---- regions_data 672 objects, 32256 bytes
---- counting_data 672 objects, 32256 bytes
---- property_permission 96 objects, 31488 bytes
---- filename 767 objects, 30680 bytes
---- parse_node_tree 34 objects, 29648 bytes
---- stack_frame_box 307 objects, 29472 bytes
---- verb_sense 407 objects, 29304 bytes
---- parse_node_tree 33 objects, 28776 bytes
---- action_pattern_array 7 x 100 = 700 objects, 28224 bytes
---- filename 621 objects, 24840 bytes
---- pathname 659 objects, 26360 bytes
---- shared_variable_set_array 6 x 100 = 600 objects, 24192 bytes
---- property 146 objects, 22192 bytes
---- backdrops_data 672 objects, 21504 bytes
---- pathname 522 objects, 20880 bytes
---- inter_node_list 646 objects, 20672 bytes
---- nonlocal_variable 94 objects, 20304 bytes
---- pipeline_step 15 objects, 20280 bytes
---- action_name 90 objects, 20160 bytes
---- build_vertex 163 objects, 19560 bytes
---- build_vertex 164 objects, 19680 bytes
---- timed_rules_rfd_data 403 objects, 19344 bytes
---- method 398 objects, 19104 bytes
---- instance 162 objects, 18144 bytes
---- pcalc_prop_deferral 86 objects, 17888 bytes
---- to_phrase_request 63 objects, 17136 bytes
---- instance 162 objects, 16848 bytes
---- understanding_reference_array 2 x 100 = 200 objects, 16064 bytes
---- action_name_list_array 1 x 1000 objects, 16032 bytes
---- match_avinue_array 1 x 1000 objects, 16032 bytes
---- adjective 140 objects, 15680 bytes
---- JSON_value 163 objects, 14344 bytes
---- JSON_value 174 objects, 15312 bytes
---- booking_list 407 objects, 13024 bytes
---- web_bibliographic_datum 203 objects, 12992 bytes
---- adjective_iname_holder 323 objects, 12920 bytes
---- uniqueness_count 474 objects, 11376 bytes
---- uniqueness_count 481 objects, 11544 bytes
---- inter_construct 32 objects, 11008 bytes
---- heading_tree 33 objects, 10296 bytes
---- stopwatch_timer 121 objects, 9680 bytes
---- inbuild_work 135 objects, 8640 bytes
---- inbuild_copy 65 objects, 7800 bytes
---- heading_tree 34 objects, 10608 bytes
---- stopwatch_timer 123 objects, 9840 bytes
---- inbuild_work 138 objects, 8832 bytes
---- inbuild_copy 66 objects, 7920 bytes
---- equation_node 68 objects, 7616 bytes
---- understanding_item_array 3 x 100 = 300 objects, 7296 bytes
---- shared_variable_array 1 x 100 objects, 7232 bytes
---- determiner 22 objects, 7216 bytes
---- inbuild_edition 97 objects, 6984 bytes
---- inbuild_edition 99 objects, 7128 bytes
---- verb 109 objects, 6976 bytes
---- hierarchy_attachment_point 78 objects, 6864 bytes
---- inform_extension 32 objects, 6656 bytes
---- inform_extension 33 objects, 6864 bytes
---- hierarchy_attachment_point 77 objects, 6776 bytes
---- text_literal_holder 163 objects, 6520 bytes
---- section_md 62 objects, 5952 bytes
---- parsed_use_option_setting 80 objects, 5760 bytes
---- compatibility_specification 113 objects, 5424 bytes
---- build_script 163 objects, 5216 bytes
---- compatibility_specification 115 objects, 5520 bytes
---- build_script 164 objects, 5248 bytes
---- activity 35 objects, 5040 bytes
---- explicit_action_array 1 x 100 objects, 4832 bytes
---- value_property_data 84 objects, 4704 bytes
---- parsing_pp_data 96 objects, 4608 bytes
---- command_line_switch 55 objects, 4400 bytes
---- semver_range 42 objects, 4368 bytes
---- use_option 32 objects, 4352 bytes
---- semver_range 41 objects, 4264 bytes
---- either_or_property_data 62 objects, 3968 bytes
---- parse_node_annotation_type 119 objects, 3808 bytes
---- method_set 108 objects, 3456 bytes
@ -152,21 +152,21 @@ Total memory consumption was 135423K = 132 MB
---- target_vm 20 objects, 2880 bytes
---- JSON_type 39 objects, 2808 bytes
---- JSON_single_requirement 55 objects, 2640 bytes
---- part_of_inference_data 79 objects, 2528 bytes
---- parentage_inference_data 79 objects, 2528 bytes
---- part_of_inference_data 79 objects, 2528 bytes
---- kind_constructor_instance_rule_array 1 x 100 objects, 2432 bytes
---- kind_constructor_casting_rule_array 1 x 100 objects, 2432 bytes
---- kind_constructor_instance_array 1 x 100 objects, 2432 bytes
---- equation_symbol 30 objects, 2400 bytes
---- scene 1 object, 2352 bytes
---- build_step 28 objects, 2016 bytes
---- pronoun_usage 42 objects, 1680 bytes
---- compiler_feature 30 objects, 1680 bytes
---- pronoun_usage 42 objects, 1680 bytes
---- table_contribution_array 1 x 100 objects, 1632 bytes
---- inform_pipeline 24 objects, 1536 bytes
---- inbuild_requirement 36 objects, 1440 bytes
---- inbuild_requirement 37 objects, 1480 bytes
---- noun_filter_token 22 objects, 1408 bytes
---- special_meaning_holder 35 objects, 1400 bytes
---- inter_node_array 35 objects, 1400 bytes
---- special_meaning_holder 35 objects, 1400 bytes
---- JSON_requirement 42 objects, 1344 bytes
---- table_column 16 objects, 1280 bytes
---- constant_phrase 20 objects, 1280 bytes
@ -178,32 +178,32 @@ Total memory consumption was 135423K = 132 MB
---- runtime_kind_structure 13 objects, 1040 bytes
---- quantifier 16 objects, 1024 bytes
---- web_md 7 objects, 1008 bytes
---- pipeline_stage 20 objects, 960 bytes
---- named_rulebook_outcome 15 objects, 960 bytes
---- pipeline_stage 20 objects, 960 bytes
---- JSON_pair_requirement 29 objects, 928 bytes
---- control_structure_phrase 12 objects, 864 bytes
---- cached_understanding 21 objects, 840 bytes
---- kit_configuration 21 objects, 840 bytes
---- cached_understanding 21 objects, 840 bytes
---- phrase_option_array 1 x 100 objects, 824 bytes
---- inform_kit 7 objects, 784 bytes
---- copy_error 7 objects, 784 bytes
---- inform_kit 7 objects, 784 bytes
---- internal_test 15 objects, 720 bytes
---- relation_guard 5 objects, 640 bytes
---- implication 13 objects, 624 bytes
---- chapter_md 7 objects, 616 bytes
---- code_generation 1 object, 576 bytes
---- inter_annotation_form 14 objects, 560 bytes
---- generated_segment 14 objects, 560 bytes
---- module 7 objects, 560 bytes
---- inter_warehouse_room 10 objects, 560 bytes
---- generated_segment 14 objects, 560 bytes
---- rulebook_outcome 17 objects, 544 bytes
---- small_word_set 11 objects, 528 bytes
---- i6_memory_setting 15 objects, 480 bytes
---- equation 4 objects, 480 bytes
---- bp_family 14 objects, 448 bytes
---- inference_family 11 objects, 440 bytes
---- inbuild_genre 8 objects, 384 bytes
---- article_usage 8 objects, 384 bytes
---- inbuild_genre 8 objects, 384 bytes
---- source_file 5 objects, 360 bytes
---- tree_inventory 1 object, 320 bytes
---- grammatical_category 8 objects, 320 bytes
@ -214,8 +214,8 @@ Total memory consumption was 135423K = 132 MB
---- inter_pipeline 1 object, 312 bytes
---- up_family 9 objects, 288 bytes
---- explicit_bp_data 5 objects, 280 bytes
---- compilation_unit 5 objects, 280 bytes
---- contents_entry 7 objects, 280 bytes
---- compilation_unit 5 objects, 280 bytes
---- door_to_notice 5 objects, 280 bytes
---- verb_usage_tier 5 objects, 240 bytes
---- kit_dependency 5 objects, 240 bytes
@ -225,42 +225,42 @@ Total memory consumption was 135423K = 132 MB
---- test_scenario 1 object, 216 bytes
---- release_instructions 1 object, 208 bytes
---- build_skill 5 objects, 200 bytes
---- code_generator 5 objects, 200 bytes
---- attachment_instruction 5 objects, 200 bytes
---- plural_dictionary_entry 4 objects, 192 bytes
---- code_generator 5 objects, 200 bytes
---- element_activation 6 objects, 192 bytes
---- plural_dictionary_entry 4 objects, 192 bytes
---- inference_subject_family 5 objects, 160 bytes
---- imperative_defn_family 4 objects, 160 bytes
---- inter_architecture 4 objects, 160 bytes
---- inbuild_nest 3 objects, 120 bytes
---- inform_language 1 object, 104 bytes
---- group_together_function 2 objects, 80 bytes
---- article 2 objects, 80 bytes
---- compile_task_data 1 object, 80 bytes
---- article 2 objects, 80 bytes
---- build_methodology 1 object, 56 bytes
---- inter_warehouse 1 object, 56 bytes
---- figures_data 1 object, 56 bytes
---- build_methodology 1 object, 56 bytes
---- star_invention 1 object, 48 bytes
---- inform_kit_ittt 1 object, 48 bytes
---- HTML_file_state 1 object, 48 bytes
---- kind_template_definition 1 object, 40 bytes
---- target_pragma_setting 1 object, 40 bytes
---- by_function_bp_data 1 object, 40 bytes
---- star_invention 1 object, 48 bytes
---- loop_over_scope 1 object, 40 bytes
---- I6_generation_data 1 object, 40 bytes
---- target_pragma_setting 1 object, 40 bytes
---- kind_template_definition 1 object, 40 bytes
---- by_function_bp_data 1 object, 40 bytes
100.0% was used for memory not allocated for objects:
61.3% text stream storage 85093092 bytes in 498645 claims
3.8% dictionary storage 5357056 bytes in 7702 claims
---- sorting 2792 bytes in 403 claims
61.4% text stream storage 85280548 bytes in 499960 claims
3.8% dictionary storage 5364736 bytes in 7726 claims
---- sorting 3320 bytes in 547 claims
5.1% source text 7200000 bytes in 3 claims
7.7% source text details 10800000 bytes in 2 claims
0.1% documentation fragments 262144 bytes in 1 claim
---- linguistic stock array 81920 bytes in 2 claims
---- small word set array 105600 bytes in 22 claims
3.2% inter symbols storage 4565968 bytes in 28141 claims
12.0% inter bytecode storage 16763624 bytes in 15 claims
3.2% inter symbols storage 4566640 bytes in 28213 claims
12.0% inter bytecode storage 16757840 bytes in 15 claims
4.4% inter links storage 6222976 bytes in 11 claims
0.1% inter tree location list storage 191232 bytes in 32 claims
1.2% instance-of-kind counting 1705636 bytes in 1 claim
@ -269,5 +269,5 @@ Total memory consumption was 135423K = 132 MB
---- code generation workspace for objects 3480 bytes in 19 claims
0.2% emitter array storage 280672 bytes in 2002 claims
-138.-6% was overhead - -192270800 bytes = -187764K = -183 MB
-139.-9% was overhead - -194346184 bytes = -189791K = -185 MB

View file

@ -1,17 +1,17 @@
ROOT_NT
HEADING_NT'implied inclusions' {under: H0'implied inclusions'} {heading 0} {implied}
INCLUSION_NT'include basic inform by graham nelson'
HEADING_NT'version 1 of basic inform by graham nelson begins here' {heading 0} {under: H0'version 1 of basic inform by graham nelson begins here'} {includes: Basic Inform by Graham Nelson v1 } {unit: 0}
BEGINHERE_NT'version 1 of basic inform by graham nelson' {unit: 0}
HEADING_NT'version 2 of basic inform by graham nelson begins here' {heading 0} {under: H0'version 2 of basic inform by graham nelson begins here'} {includes: Basic Inform by Graham Nelson v2 } {unit: 0}
BEGINHERE_NT'version 2 of basic inform by graham nelson' {unit: 0}
...
INCLUSION_NT'include english language by graham nelson'
HEADING_NT'version 1 of english language by graham nelson begins here' {heading 0} {under: H0'version 1 of english language by graham nelson begins here'} {includes: English Language by Graham Nelson v1 } {unit: 1}
BEGINHERE_NT'version 1 of english language by graham nelson' {unit: 1}
HEADING_NT'version 2 of english language by graham nelson begins here' {heading 0} {under: H0'version 2 of english language by graham nelson begins here'} {includes: English Language by Graham Nelson v2 } {unit: 1}
BEGINHERE_NT'version 2 of english language by graham nelson' {unit: 1}
...
INCLUSION_NT'include english language by graham nelson'
INCLUSION_NT'include standard rules by graham nelson'
HEADING_NT'version 6 of the standard rules by graham nelson begins here' {heading 0} {under: H0'version 6 of the standard rules by graham nelson begins here'} {includes: Standard Rules by Graham Nelson v6 } {unit: 2}
BEGINHERE_NT'version 6 of the standard rules by graham nelson' {unit: 2}
HEADING_NT'version 7 of the standard rules by graham nelson begins here' {heading 0} {under: H0'version 7 of the standard rules by graham nelson begins here'} {includes: Standard Rules by Graham Nelson v7 } {unit: 2}
BEGINHERE_NT'version 7 of the standard rules by graham nelson' {unit: 2}
...
INCLUSION_NT'include standard rules by graham nelson'
HEADING_NT'use the serial comma and no scoring' {heading 0} {under: H0'use the serial comma and no scoring'} {unit: 3}
@ -28,8 +28,8 @@ ROOT_NT
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action}
UNPARSED_NOUN_NT'asking for information'
UNPARSED_NOUN_NT'out of world'
IMPERATIVE_NT'carry out asking for information' {unit: 3} {imperative definition: 813}
IMPERATIVE_NT'when play begins' {unit: 3} {imperative definition: 814}
IMPERATIVE_NT'carry out asking for information' {unit: 3} {imperative definition: 815}
IMPERATIVE_NT'when play begins' {unit: 3} {imperative definition: 816}
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}
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}
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}
IMPERATIVE_NT'every turn' {unit: 3} {imperative definition: 815}
IMPERATIVE_NT'every turn' {unit: 3} {imperative definition: 816}
IMPERATIVE_NT'every turn' {unit: 3} {imperative definition: 817}
IMPERATIVE_NT'every turn' {unit: 3} {imperative definition: 818}
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}
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}
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}
IMPERATIVE_NT'the first character movement rule' {unit: 3} {imperative definition: 817}
IMPERATIVE_NT'a character movement rule' {unit: 3} {imperative definition: 818}
IMPERATIVE_NT'a character movement rule' {unit: 3} {imperative definition: 819}
IMPERATIVE_NT'to decide whether movement has not yet occurred' {unit: 3} {imperative definition: 820}
IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 821}
IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 822}
IMPERATIVE_NT'the first character movement rule' {unit: 3} {imperative definition: 819}
IMPERATIVE_NT'a character movement rule' {unit: 3} {imperative definition: 820}
IMPERATIVE_NT'a character movement rule' {unit: 3} {imperative definition: 821}
IMPERATIVE_NT'to decide whether movement has not yet occurred' {unit: 3} {imperative definition: 822}
IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 823}
IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 824}
SENTENCE_NT'the shopowner rules is a rulebook' {unit: 3} {classified} {clears pronouns}
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}
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: 823}
IMPERATIVE_NT'report someone closing a door when the person asked owns the' {unit: 3} {imperative definition: 824}
IMPERATIVE_NT'report vanessa closing the metal door when the metal door is' {unit: 3} {imperative definition: 825}
IMPERATIVE_NT'a shopowner rule' {unit: 3} {imperative definition: 826}
IMPERATIVE_NT'a shopowner rule' {unit: 3} {imperative definition: 825}
IMPERATIVE_NT'report someone closing a door when the person asked owns the' {unit: 3} {imperative definition: 826}
IMPERATIVE_NT'report vanessa closing the metal door when the metal door is' {unit: 3} {imperative definition: 827}
IMPERATIVE_NT'a shopowner rule' {unit: 3} {imperative definition: 828}
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}
UNPARSED_NOUN_NT'filing'
UNPARSED_NOUN_NT'applying to one thing'
IMPERATIVE_NT'before someone filing something which is not carried by the ' {unit: 3} {imperative definition: 827}
IMPERATIVE_NT'carry out someone filing' {unit: 3} {imperative definition: 828}
IMPERATIVE_NT'report someone filing' {unit: 3} {imperative definition: 829}
IMPERATIVE_NT'before someone filing something which is not carried by the ' {unit: 3} {imperative definition: 829}
IMPERATIVE_NT'carry out someone filing' {unit: 3} {imperative definition: 830}
IMPERATIVE_NT'report someone filing' {unit: 3} {imperative definition: 831}
SENTENCE_NT'the shopper rules is a rulebook' {unit: 3} {classified} {clears pronouns}
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}
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: 830}
IMPERATIVE_NT'a shopper rule' {unit: 3} {imperative definition: 831}
IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 832}
IMPERATIVE_NT'a shopper rule' {unit: 3} {imperative definition: 832}
IMPERATIVE_NT'a shopper rule' {unit: 3} {imperative definition: 833}
IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 834}
DEFN_CONT_NT'a room is air-conditioned' {unit: 3}
CODE_BLOCK_NT
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}
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}
IMPERATIVE_NT'before printing the name of an artwork' {unit: 3} {imperative definition: 833}
IMPERATIVE_NT'after printing the name of an artwork' {unit: 3} {imperative definition: 834}
IMPERATIVE_NT'before printing the name of an artwork' {unit: 3} {imperative definition: 835}
IMPERATIVE_NT'after printing the name of an artwork' {unit: 3} {imperative definition: 836}
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}
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}
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}
IMPERATIVE_NT'before someone resolving a book when the person asked is not' {unit: 3} {imperative definition: 835}
IMPERATIVE_NT'carry out someone resolving a book' {unit: 3} {imperative definition: 836}
IMPERATIVE_NT'report someone resolving a book' {unit: 3} {imperative definition: 837}
IMPERATIVE_NT'before listing contents' {unit: 3} {imperative definition: 838}
IMPERATIVE_NT'before grouping together books' {unit: 3} {imperative definition: 839}
IMPERATIVE_NT'before someone resolving a book when the person asked is not' {unit: 3} {imperative definition: 837}
IMPERATIVE_NT'carry out someone resolving a book' {unit: 3} {imperative definition: 838}
IMPERATIVE_NT'report someone resolving a book' {unit: 3} {imperative definition: 839}
IMPERATIVE_NT'before listing contents' {unit: 3} {imperative definition: 840}
IMPERATIVE_NT'before grouping together books' {unit: 3} {imperative definition: 841}
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}
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'}
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: 840}
IMPERATIVE_NT'carry out someone resolving a stamped envelope' {unit: 3} {imperative definition: 841}
IMPERATIVE_NT'report someone resolving a stamped envelope' {unit: 3} {imperative definition: 842}
IMPERATIVE_NT'instead of someone resolving a stamped envelope when the per' {unit: 3} {imperative definition: 843}
IMPERATIVE_NT'before someone resolving a stamped envelope when the person ' {unit: 3} {imperative definition: 842}
IMPERATIVE_NT'carry out someone resolving a stamped envelope' {unit: 3} {imperative definition: 843}
IMPERATIVE_NT'report someone resolving a stamped envelope' {unit: 3} {imperative definition: 844}
IMPERATIVE_NT'instead of someone resolving a stamped envelope when the per' {unit: 3} {imperative definition: 845}
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}
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'}
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: 844}
IMPERATIVE_NT'carry out someone resolving a dvd' {unit: 3} {imperative definition: 845}
IMPERATIVE_NT'report someone resolving a dvd' {unit: 3} {imperative definition: 846}
IMPERATIVE_NT'instead of someone resolving a dvd when the person asked car' {unit: 3} {imperative definition: 847}
IMPERATIVE_NT'before listing contents' {unit: 3} {imperative definition: 848}
IMPERATIVE_NT'before grouping together dvds' {unit: 3} {imperative definition: 849}
IMPERATIVE_NT'before someone resolving a dvd when the person asked is not ' {unit: 3} {imperative definition: 846}
IMPERATIVE_NT'carry out someone resolving a dvd' {unit: 3} {imperative definition: 847}
IMPERATIVE_NT'report someone resolving a dvd' {unit: 3} {imperative definition: 848}
IMPERATIVE_NT'instead of someone resolving a dvd when the person asked car' {unit: 3} {imperative definition: 849}
IMPERATIVE_NT'before listing contents' {unit: 3} {imperative definition: 850}
IMPERATIVE_NT'before grouping together dvds' {unit: 3} {imperative definition: 851}
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}
UNPARSED_NOUN_NT'approaching'
UNPARSED_NOUN_NT'applying to one thing'
IMPERATIVE_NT'carry out someone approaching' {unit: 3} {imperative definition: 850}
IMPERATIVE_NT'carry out someone approaching' {unit: 3} {imperative definition: 852}
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}
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'}
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: 851}
IMPERATIVE_NT'carry out someone resolving a coupon' {unit: 3} {imperative definition: 853}
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}
UNPARSED_NOUN_NT'the block giving rule'
UNPARSED_NOUN_NT'in any rulebook'
IMPERATIVE_NT'check giving something to someone ( this is the block player' {unit: 3} {imperative definition: 852}
IMPERATIVE_NT'before someone resolving a coupon when the person asked is n' {unit: 3} {imperative definition: 853}
IMPERATIVE_NT'after someone giving a coupon to vanessa' {unit: 3} {imperative definition: 854}
IMPERATIVE_NT'check giving something to someone ( this is the block player' {unit: 3} {imperative definition: 854}
IMPERATIVE_NT'before someone resolving a coupon when the person asked is n' {unit: 3} {imperative definition: 855}
IMPERATIVE_NT'after someone giving a coupon to vanessa' {unit: 3} {imperative definition: 856}
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}
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}
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}
IMPERATIVE_NT'to say list of flavors' {unit: 3} {imperative definition: 855}
IMPERATIVE_NT'to say list of flavors' {unit: 3} {imperative definition: 857}
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}
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}
UNPARSED_NOUN_NT'buying the flavor'
UNPARSED_NOUN_NT'applying to one infection color'
IMPERATIVE_NT'check buying the flavor' {unit: 3} {imperative definition: 856}
IMPERATIVE_NT'carry out buying the flavor' {unit: 3} {imperative definition: 857}
IMPERATIVE_NT'check buying the flavor' {unit: 3} {imperative definition: 858}
IMPERATIVE_NT'carry out buying the flavor' {unit: 3} {imperative definition: 859}
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}
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}
UNPARSED_NOUN_NT'the infection color property'
UNPARSED_NOUN_NT'referring to an ice cream cone'
IMPERATIVE_NT'carry out someone resolving an ice cream cone' {unit: 3} {imperative definition: 858}
IMPERATIVE_NT'instead of someone eating a fresh ice cream cone' {unit: 3} {imperative definition: 859}
IMPERATIVE_NT'report someone eating an ice cream cone' {unit: 3} {imperative definition: 860}
IMPERATIVE_NT'before printing the name of an ice cream cone' {unit: 3} {imperative definition: 861}
IMPERATIVE_NT'carry out someone resolving an ice cream cone' {unit: 3} {imperative definition: 860}
IMPERATIVE_NT'instead of someone eating a fresh ice cream cone' {unit: 3} {imperative definition: 861}
IMPERATIVE_NT'report someone eating an ice cream cone' {unit: 3} {imperative definition: 862}
IMPERATIVE_NT'before printing the name of an ice cream cone' {unit: 3} {imperative definition: 863}
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: 862}
IMPERATIVE_NT'this is the infection rule' {unit: 3} {imperative definition: 864}
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}
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}
ALLOWED_NT'has' {refined}
UNPARSED_NOUN_NT'infection color' {indefinite 'an' n/m/f nom/acc s} {refined}
IMPERATIVE_NT'every turn' {unit: 3} {imperative definition: 863}
IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 864}
IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 865}
IMPERATIVE_NT'when play begins' {unit: 3} {imperative definition: 866}
IMPERATIVE_NT'every turn' {unit: 3} {imperative definition: 867}
IMPERATIVE_NT'every turn' {unit: 3} {imperative definition: 865}
IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 866}
IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 867}
IMPERATIVE_NT'when play begins' {unit: 3} {imperative definition: 868}
IMPERATIVE_NT'every turn' {unit: 3} {imperative definition: 869}
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}
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}
UNPARSED_NOUN_NT'sneezing on'
UNPARSED_NOUN_NT'applying to one thing'
IMPERATIVE_NT'check sneezing on' {unit: 3} {imperative definition: 868}
IMPERATIVE_NT'carry out sneezing on' {unit: 3} {imperative definition: 869}
IMPERATIVE_NT'carry out someone sneezing on' {unit: 3} {imperative definition: 870}
IMPERATIVE_NT'report sneezing on' {unit: 3} {imperative definition: 871}
IMPERATIVE_NT'report someone sneezing on' {unit: 3} {imperative definition: 872}
IMPERATIVE_NT'check sneezing on' {unit: 3} {imperative definition: 870}
IMPERATIVE_NT'carry out sneezing on' {unit: 3} {imperative definition: 871}
IMPERATIVE_NT'carry out someone sneezing on' {unit: 3} {imperative definition: 872}
IMPERATIVE_NT'report sneezing on' {unit: 3} {imperative definition: 873}
IMPERATIVE_NT'report someone sneezing on' {unit: 3} {imperative definition: 874}
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}
UNPARSED_NOUN_NT'"inject [someone] with [something]"'
@ -361,14 +361,14 @@ ROOT_NT
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action}
UNPARSED_NOUN_NT'injecting it with'
UNPARSED_NOUN_NT'applying to two things'
IMPERATIVE_NT'check injecting it with' {unit: 3} {imperative definition: 873}
IMPERATIVE_NT'carry out injecting it with' {unit: 3} {imperative definition: 874}
IMPERATIVE_NT'after injecting the player with something' {unit: 3} {imperative definition: 875}
IMPERATIVE_NT'report injecting it with' {unit: 3} {imperative definition: 876}
IMPERATIVE_NT'check injecting it with' {unit: 3} {imperative definition: 875}
IMPERATIVE_NT'carry out injecting it with' {unit: 3} {imperative definition: 876}
IMPERATIVE_NT'after injecting the player with something' {unit: 3} {imperative definition: 877}
IMPERATIVE_NT'report injecting it with' {unit: 3} {imperative definition: 878}
HEADING_NT'section 3 - geography' {heading 5} {under: H5'section 3 - geography'} {unit: 3}
INCLUSION_NT'include locksmith by emily short' {unit: 3}
HEADING_NT'version 13 of locksmith by emily short begins here' {heading 0} {under: H0'version 13 of locksmith by emily short begins here'} {includes: Locksmith by Emily Short v13 } {unit: 3}
BEGINHERE_NT'version 13 of 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}
BEGINHERE_NT'version 14 of locksmith by emily short' {unit: 3}
...
SENTENCE_NT'understand "go to/toward/into [any room]" as going toward' {unit: 3} {classified}
VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as}
@ -389,9 +389,9 @@ ROOT_NT
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action}
UNPARSED_NOUN_NT'going toward'
UNPARSED_NOUN_NT'applying to one thing'
IMPERATIVE_NT'check going toward' {unit: 3} {imperative definition: 914}
IMPERATIVE_NT'carry out going toward' {unit: 3} {imperative definition: 915}
IMPERATIVE_NT'instead of waiting when the destination of the player is not' {unit: 3} {imperative definition: 916}
IMPERATIVE_NT'check going toward' {unit: 3} {imperative definition: 916}
IMPERATIVE_NT'carry out going toward' {unit: 3} {imperative definition: 917}
IMPERATIVE_NT'instead of waiting when the destination of the player is not' {unit: 3} {imperative definition: 918}
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}
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}
UNPARSED_NOUN_NT'stopping'
UNPARSED_NOUN_NT'applying to nothing'
IMPERATIVE_NT'carry out stopping' {unit: 3} {imperative definition: 917}
IMPERATIVE_NT'report stopping' {unit: 3} {imperative definition: 918}
IMPERATIVE_NT'after going to an air-conditioned room' {unit: 3} {imperative definition: 919}
IMPERATIVE_NT'after going from an air-conditioned room' {unit: 3} {imperative definition: 920}
IMPERATIVE_NT'instead of listening to an air-conditioned room' {unit: 3} {imperative definition: 921}
IMPERATIVE_NT'carry out stopping' {unit: 3} {imperative definition: 919}
IMPERATIVE_NT'report stopping' {unit: 3} {imperative definition: 920}
IMPERATIVE_NT'after going to an air-conditioned room' {unit: 3} {imperative definition: 921}
IMPERATIVE_NT'after going from an air-conditioned room' {unit: 3} {imperative definition: 922}
IMPERATIVE_NT'instead of listening to an air-conditioned room' {unit: 3} {imperative definition: 923}
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}
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'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}}
IMPERATIVE_NT'after locking a door with something in the presence of an ot' {unit: 3} {imperative definition: 922}
IMPERATIVE_NT'after locking a door with something in the presence of an ot' {unit: 3} {imperative definition: 924}
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}
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}
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}
IMPERATIVE_NT'carry out inserting something into the slot' {unit: 3} {imperative definition: 923}
IMPERATIVE_NT'report inserting something into the slot' {unit: 3} {imperative definition: 924}
IMPERATIVE_NT'carry out inserting something into the slot' {unit: 3} {imperative definition: 925}
IMPERATIVE_NT'report inserting something into the slot' {unit: 3} {imperative definition: 926}
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}
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}
ADJECTIVE_NT'lockable' {refined} {predicate: lockable} {creation: << lockable(x) ^ lockable(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: 925}
IMPERATIVE_NT'before printing the name of the iron gate while not opening ' {unit: 3} {imperative definition: 927}
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}
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}
UNPARSED_NOUN_NT'"glass"'
UNPARSED_NOUN_NT'the box'
IMPERATIVE_NT'instead of attacking the closed emergency box' {unit: 3} {imperative definition: 926}
IMPERATIVE_NT'instead of attacking the open emergency box' {unit: 3} {imperative definition: 927}
IMPERATIVE_NT'instead of attacking the closed emergency box' {unit: 3} {imperative definition: 928}
IMPERATIVE_NT'instead of attacking the open emergency box' {unit: 3} {imperative definition: 929}
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}
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}
VERB_NT'use' {verb 'use' 3p p act IS_TENSE +ve} {special meaning: use}
UNPARSED_NOUN_NT'full-length room descriptions'
IMPERATIVE_NT'after looking in an outdoors room' {unit: 3} {imperative definition: 928}
IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 929}
IMPERATIVE_NT'after looking in an outdoors room' {unit: 3} {imperative definition: 930}
IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 931}
DEFN_CONT_NT'a door is proximate' {unit: 3}
CODE_BLOCK_NT
CODE_BLOCK_NT {control structure: IF}
@ -765,7 +765,7 @@ ROOT_NT
INVOCATION_NT'yes' {phrase invoked: <no-inter-name>}
INVOCATION_LIST_NT'no' {unit: 3}
INVOCATION_NT'no' {phrase invoked: <no-inter-name>}
IMPERATIVE_NT'before exiting when the player is in an indoors room' {unit: 3} {imperative definition: 930}
IMPERATIVE_NT'before exiting when the player is in an indoors room' {unit: 3} {imperative definition: 932}
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}
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}}
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}}
IMPERATIVE_NT'after printing the name of someone ( called target ) while l' {unit: 3} {imperative definition: 931}
IMPERATIVE_NT'after printing the name of someone ( called target ) while l' {unit: 3} {imperative definition: 933}
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}
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}
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}}
IMPERATIVE_NT'after examining another person who is carrying something' {unit: 3} {imperative definition: 932}
IMPERATIVE_NT'when play begins' {unit: 3} {imperative definition: 933}
IMPERATIVE_NT'after examining another person who is carrying something' {unit: 3} {imperative definition: 934}
IMPERATIVE_NT'when play begins' {unit: 3} {imperative definition: 935}
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}
VERB_NT'has' {verb 'have' 3p s act IS_TENSE +ve}
@ -1008,8 +1008,8 @@ ROOT_NT
PROPERTYCALLED_NT'called'
UNPARSED_NOUN_NT'table name' {indefinite 'a' n/m/f nom/acc s}
UNPARSED_NOUN_NT'conversation'
IMPERATIVE_NT'instead of asking someone about something' {unit: 3} {imperative definition: 934}
IMPERATIVE_NT'instead of telling someone about something' {unit: 3} {imperative definition: 935}
IMPERATIVE_NT'instead of asking someone about something' {unit: 3} {imperative definition: 936}
IMPERATIVE_NT'instead of telling someone about something' {unit: 3} {imperative definition: 937}
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}
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}
UNPARSED_NOUN_NT'recalling conversations'
UNPARSED_NOUN_NT'applying to nothing'
IMPERATIVE_NT'carry out recalling conversations' {unit: 3} {imperative definition: 936}
IMPERATIVE_NT'carry out recalling conversations' {unit: 3} {imperative definition: 938}
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}
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'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}
IMPERATIVE_NT'after reading a command' {unit: 3} {imperative definition: 937}
IMPERATIVE_NT'after reading a command' {unit: 3} {imperative definition: 939}
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}
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}}
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}
IMPERATIVE_NT'to clear ( current table - a table name )' {unit: 3} {imperative definition: 938}
IMPERATIVE_NT'to tidy departures of ( current table - a table name )' {unit: 3} {imperative definition: 939}
IMPERATIVE_NT'to clear ( current table - a table name )' {unit: 3} {imperative definition: 940}
IMPERATIVE_NT'to tidy departures of ( current table - a table name )' {unit: 3} {imperative definition: 941}
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}
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'
UNPARSED_NOUN_NT'person' {indefinite 'a' n/m/f nom/acc s}
UNPARSED_NOUN_NT'last opener'
IMPERATIVE_NT'report someone opening a door' {unit: 3} {imperative definition: 940}
IMPERATIVE_NT'report someone going through a door ( called route )' {unit: 3} {imperative definition: 941}
IMPERATIVE_NT'report someone opening a door' {unit: 3} {imperative definition: 942}
IMPERATIVE_NT'report someone going through a door ( called route )' {unit: 3} {imperative definition: 943}
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}
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}
IMPERATIVE_NT'before printing the name of something ( called target ) whic' {unit: 3} {imperative definition: 942}
IMPERATIVE_NT'report someone going a direction' {unit: 3} {imperative definition: 943}
IMPERATIVE_NT'this is the movement reporting rule' {unit: 3} {imperative definition: 944}
IMPERATIVE_NT'to generate descriptions from ( current table - a table name' {unit: 3} {imperative definition: 945}
IMPERATIVE_NT'before printing the name of something ( called target ) whic' {unit: 3} {imperative definition: 944}
IMPERATIVE_NT'report someone going a direction' {unit: 3} {imperative definition: 945}
IMPERATIVE_NT'this is the movement reporting rule' {unit: 3} {imperative definition: 946}
IMPERATIVE_NT'to generate descriptions from ( current table - a table name' {unit: 3} {imperative definition: 947}
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}
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}
IMPERATIVE_NT'before printing the name of a person ( called target )' {unit: 3} {imperative definition: 946}
IMPERATIVE_NT'before printing the name of a person ( called target )' {unit: 3} {imperative definition: 948}
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}
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}
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}}
IMPERATIVE_NT'to clear marked people' {unit: 3} {imperative definition: 947}
IMPERATIVE_NT'before listing nondescript items' {unit: 3} {imperative definition: 948}
IMPERATIVE_NT'to describe patients' {unit: 3} {imperative definition: 949}
IMPERATIVE_NT'to say ( named character - a man ) as pronoun' {unit: 3} {imperative definition: 950}
IMPERATIVE_NT'to say ( named character - a woman ) as pronoun' {unit: 3} {imperative definition: 951}
IMPERATIVE_NT'to say looks as though dipped in for ( index - a number )' {unit: 3} {imperative definition: 952}
IMPERATIVE_NT'to clear marked people' {unit: 3} {imperative definition: 949}
IMPERATIVE_NT'before listing nondescript items' {unit: 3} {imperative definition: 950}
IMPERATIVE_NT'to describe patients' {unit: 3} {imperative definition: 951}
IMPERATIVE_NT'to say ( named character - a man ) as pronoun' {unit: 3} {imperative definition: 952}
IMPERATIVE_NT'to say ( named character - a woman ) as pronoun' {unit: 3} {imperative definition: 953}
IMPERATIVE_NT'to say looks as though dipped in for ( index - a number )' {unit: 3} {imperative definition: 954}
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'}
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}
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: 953}
IMPERATIVE_NT'to say optional comma' {unit: 3} {imperative definition: 954}
IMPERATIVE_NT'to make delimiter ( index - a number ) of ( count - a number' {unit: 3} {imperative definition: 955}
IMPERATIVE_NT'to say optional comma' {unit: 3} {imperative definition: 956}
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}
UNPARSED_NOUN_NT'me'

View file

@ -1,32 +1,29 @@
100.0% in inform7 run
70.3% in compilation to Inter
50.2% in //Sequence::undertake_queued_tasks//
67.6% in compilation to Inter
45.7% in //Sequence::undertake_queued_tasks//
4.6% in //MajorNodes::pre_pass//
3.3% in //MajorNodes::pass_1//
1.7% in //ImperativeDefinitions::assess_all//
1.5% in //RTPhrasebook::compile_entries//
1.3% in //RTKindConstructors::compile//
0.9% in //Sequence::lint_inter//
0.5% in //ImperativeDefinitions::compile_first_block//
0.5% in //Sequence::undertake_queued_tasks//
0.5% in //World::stage_V//
0.3% in //InferenceSubjects::emit_all//
3.8% in //MajorNodes::pass_1//
1.5% in //ImperativeDefinitions::assess_all//
1.5% in //RTKindConstructors::compile//
1.1% in //RTPhrasebook::compile_entries//
1.1% in //Sequence::lint_inter//
0.3% in //CompletionModule::compile//
0.3% in //ImperativeDefinitions::compile_first_block//
0.3% in //MajorNodes::pass_2//
0.3% in //RTKindConstructors::compile_permissions//
0.3% in //Sequence::undertake_queued_tasks//
0.1% in //CompletionModule::compile//
0.1% in //RTKindConstructors::compile_permissions//
0.1% in //Task::make_built_in_kind_constructors//
2.9% not specifically accounted for
26.1% in running Inter pipeline
10.7% in step 14/15: generate inform6 -> auto.inf
5.8% in step 5/15: load-binary-kits
5.0% in step 6/15: make-synoptic-module
1.7% in step 9/15: make-identifiers-unique
0.3% in //Sequence::undertake_queued_tasks//
0.3% in //World::stage_V//
5.3% not specifically accounted for
28.0% in running Inter pipeline
9.6% in step 14/15: generate inform6 -> auto.inf
7.3% in step 5/15: load-binary-kits
5.7% in step 6/15: make-synoptic-module
1.9% in step 9/15: make-identifiers-unique
0.3% in step 12/15: eliminate-redundant-operations
0.3% in step 4/15: compile-splats
0.3% in step 7/15: shorten-wiring
0.3% in step 8/15: detect-indirect-calls
0.1% in step 11/15: eliminate-redundant-labels
1.0% not specifically accounted for
2.9% in supervisor
0.6% not specifically accounted for
1.9% not specifically accounted for
3.4% in supervisor
0.8% not specifically accounted for

View file

@ -1,4 +1,4 @@
Version 1 of Inanimate Listeners by Emily Short begins here.
Version 2 of Inanimate Listeners by Emily Short begins here.
"Allows the player to address inanimate objects such as a talking computer, microphone, or telephone in a form such as ASK COMPUTER ABOUT COORDINATES."

View file

@ -1,4 +1,4 @@
Version 13 of Locksmith by Emily Short begins here.
Version 14 of Locksmith by Emily Short begins here.
"Implicit handling of doors and containers so that lock manipulation is automatic if the player has the necessary keys."

Some files were not shown because too many files have changed in this diff Show more