1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-06-26 12:10:44 +03:00

Began work on synoptic module

This commit is contained in:
Graham Nelson 2022-01-04 23:10:34 +00:00
parent 4ff69d1edd
commit 80963c1e34
110 changed files with 2824 additions and 2397 deletions

View file

@ -1,6 +1,6 @@
# Inform 7
v10.1.0-alpha.1+6T95 'Krypton' (3 January 2022)
v10.1.0-alpha.1+6T96 'Krypton' (4 January 2022)
## About Inform 7

View file

@ -1,3 +1,3 @@
Prerelease: alpha.1
Build Date: 3 January 2022
Build Number: 6T95
Build Date: 4 January 2022
Build Number: 6T96

View file

@ -56,7 +56,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>Definitions Template</b></li></ul></div>
<p class="purpose">Miscellaneous constant definitions, usually providing symbolic names for otherwise inscrutable numbers, which are used throughout the template layer.</p>
<ul class="toc"><li><a href="S-dfn.html#SP1">&#167;1. Z-Machine Definitions</a></li><li><a href="S-dfn.html#SP2">&#167;2. Glulx Definitions</a></li><li><a href="S-dfn.html#SP3">&#167;3. Nothing</a></li><li><a href="S-dfn.html#SP4">&#167;4. Powers of Two</a></li><li><a href="S-dfn.html#SP5">&#167;5. Text Styles</a></li><li><a href="S-dfn.html#SP6">&#167;6. Colour Numbers</a></li><li><a href="S-dfn.html#SP7">&#167;7. Window Numbers</a></li><li><a href="S-dfn.html#SP8">&#167;8. Paragraphing Flags</a></li><li><a href="S-dfn.html#SP9">&#167;9. Descriptors in the Language of Play</a></li><li><a href="S-dfn.html#SP10">&#167;10. Run-Time Problem Numbers</a></li><li><a href="S-dfn.html#SP11">&#167;11. Template Activities</a></li><li><a href="S-dfn.html#SP12">&#167;12. Template Rulebooks</a></li><li><a href="S-dfn.html#SP13">&#167;13. Kind IDs</a></li><li><a href="S-dfn.html#SP14">&#167;14. Parser Error Numbers</a></li><li><a href="S-dfn.html#SP15">&#167;15. Scope Searching Reasons</a></li><li><a href="S-dfn.html#SP16">&#167;16. Token Types</a></li><li><a href="S-dfn.html#SP17">&#167;17. GPR Return Values</a></li><li><a href="S-dfn.html#SP18">&#167;18. List Styles</a></li><li><a href="S-dfn.html#SP19">&#167;19. Lengths Of Time</a></li><li><a href="S-dfn.html#SP20">&#167;20. Empty Text</a></li><li><a href="S-dfn.html#SP21">&#167;21. Empty Table</a></li><li><a href="S-dfn.html#SP22">&#167;22. Empty Set</a></li><li><a href="S-dfn.html#SP23">&#167;23. Template Attributes</a></li><li><a href="S-dfn.html#SP24">&#167;24. Template Properties</a></li><li><a href="S-dfn.html#SP25">&#167;25. Fake Actions</a></li><li><a href="S-dfn.html#SP26">&#167;26. Formal Parameters</a></li><li><a href="S-dfn.html#SP27">&#167;27. Template Configuration</a></li></ul><hr class="tocbar">
<ul class="toc"><li><a href="S-dfn.html#SP1">&#167;1. Z-Machine Definitions</a></li><li><a href="S-dfn.html#SP2">&#167;2. Glulx Definitions</a></li><li><a href="S-dfn.html#SP3">&#167;3. Nothing</a></li><li><a href="S-dfn.html#SP4">&#167;4. Powers of Two</a></li><li><a href="S-dfn.html#SP5">&#167;5. Text Styles</a></li><li><a href="S-dfn.html#SP6">&#167;6. Colour Numbers</a></li><li><a href="S-dfn.html#SP7">&#167;7. Window Numbers</a></li><li><a href="S-dfn.html#SP8">&#167;8. Paragraphing Flags</a></li><li><a href="S-dfn.html#SP9">&#167;9. Descriptors in the Language of Play</a></li><li><a href="S-dfn.html#SP10">&#167;10. Run-Time Problem Numbers</a></li><li><a href="S-dfn.html#SP11">&#167;11. Template Activities</a></li><li><a href="S-dfn.html#SP12">&#167;12. Template Rulebooks</a></li><li><a href="S-dfn.html#SP13">&#167;13. Scope Searching Reasons</a></li><li><a href="S-dfn.html#SP14">&#167;14. Token Types</a></li><li><a href="S-dfn.html#SP15">&#167;15. GPR Return Values</a></li><li><a href="S-dfn.html#SP16">&#167;16. List Styles</a></li><li><a href="S-dfn.html#SP17">&#167;17. Lengths Of Time</a></li><li><a href="S-dfn.html#SP18">&#167;18. Empty Text</a></li><li><a href="S-dfn.html#SP19">&#167;19. Empty Table</a></li><li><a href="S-dfn.html#SP20">&#167;20. Empty Set</a></li><li><a href="S-dfn.html#SP21">&#167;21. Template Attributes</a></li><li><a href="S-dfn.html#SP22">&#167;22. Template Properties</a></li><li><a href="S-dfn.html#SP23">&#167;23. Formal Parameters</a></li><li><a href="S-dfn.html#SP24">&#167;24. Template Configuration</a></li></ul><hr class="tocbar">
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. Z-Machine Definitions. </b>The Z-machine contains certain special constants and variables at fixed
position in its "header"; the addresses of these are given below. See
@ -445,43 +445,7 @@ creation sequence in the Standard Rules.)
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">DOES_THE_PLAYER_MEAN_RB</span><span class="plain-syntax"> = </span><span class="constant-syntax">34</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">MULTIPLE_ACTION_PROCESSING_RB</span><span class="plain-syntax"> = </span><span class="constant-syntax">35</span><span class="plain-syntax">;</span>
</pre>
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>&#167;13. Kind IDs. </b>These are filled in automatically by Inform, and have the same names as are used
in the Inform source (and in the Load-.i6t sections): for instance <span class="extract"><span class="extract-syntax">NUMBER_TY</span></span>.
</p>
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>&#167;14. Parser Error Numbers. </b>The traditional ways in which the I6 library's parser, which we adopt here
more or less intact, can give up on a player's command. See the {\it Inform
Designer's Manual}, 4th edition, for details.
</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">STUCK_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">UPTO_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">2</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">NUMBER_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">3</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ANIMA_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">4</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">CANTSEE_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">5</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">TOOLIT_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">6</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">NOTHELD_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">7</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">MULTI_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">8</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">MMULTI_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">9</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">VAGUE_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">10</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">EXCEPT_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">11</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">VERB_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">12</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">SCENERY_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">13</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ITGONE_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">14</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">JUNKAFTER_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">15</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">TOOFEW_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">16</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">NOTHING_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">17</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ASKSCOPE_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">18</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">NOTINCONTEXT_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">19</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">BLANKLINE_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">20</span><span class="plain-syntax">; </span><span class="comment-syntax">Not formally a parser error, but used by I7 as if</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ANIMAAGAIN_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">21</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">COMMABEGIN_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">22</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">MISSINGPERSON_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">23</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ANIMALISTEN_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">24</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">TOTALK_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">25</span><span class="plain-syntax">;</span>
</pre>
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>&#167;15. Scope Searching Reasons. </b>The parser makes use of a mechanism for searching through the objects currently
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>&#167;13. Scope Searching Reasons. </b>The parser makes use of a mechanism for searching through the objects currently
"in scope", which basically means visible to the actor who would perform the
action envisaged by the command being parsed. It is sometimes useful to
behave differently depending on why this scope searching is being done, so
@ -500,7 +464,7 @@ in numbering.
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">LOOPOVERSCOPE_REASON</span><span class="plain-syntax"> = </span><span class="constant-syntax">5</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">TESTSCOPE_REASON</span><span class="plain-syntax"> = </span><span class="constant-syntax">6</span><span class="plain-syntax">;</span>
</pre>
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>&#167;16. Token Types. </b>Tokens are the indecomposable pieces of a grammar line making up a possible
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>&#167;14. Token Types. </b>Tokens are the indecomposable pieces of a grammar line making up a possible
reading of a command; some are literal words, others stand for "any named
object in scope", and so on. The following codes identify the possibilities.
The <span class="extract"><span class="extract-syntax">*_TOKEN</span></span> constants must not be altered without modifying the I6 compiler
@ -528,7 +492,7 @@ to match (so, basically, they must not be altered at all).
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">TOPIC_TOKEN</span><span class="plain-syntax"> = </span><span class="constant-syntax">9</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ENDIT_TOKEN</span><span class="plain-syntax"> = </span><span class="constant-syntax">15</span><span class="plain-syntax">; </span><span class="comment-syntax">Value used to mean "end of grammar line"</span>
</pre>
<p class="commentary firstcommentary"><a id="SP17" class="paragraph-anchor"></a><b>&#167;17. GPR Return Values. </b>GRP stands for "General Parsing Routine", an I6 routine which acts as a
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>&#167;15. GPR Return Values. </b>GRP stands for "General Parsing Routine", an I6 routine which acts as a
grammar token: again, see the {\it Inform Designer's Manual}, 4th edition,
for details.
</p>
@ -556,7 +520,7 @@ here regardless.
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">GPR_MULTIINSIDE</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GPR_NOUN</span><span class="plain-syntax"> + </span><span class="constant-syntax">5</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">GPR_CREATURE</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GPR_NOUN</span><span class="plain-syntax"> + </span><span class="constant-syntax">6</span><span class="plain-syntax">;</span>
</pre>
<p class="commentary firstcommentary"><a id="SP18" class="paragraph-anchor"></a><b>&#167;18. List Styles. </b>These constants make up bitmaps of the options in use when listing objects.
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>&#167;16. List Styles. </b>These constants make up bitmaps of the options in use when listing objects.
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -579,7 +543,7 @@ here regardless.
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">EXTRAINDENT_BIT</span><span class="plain-syntax"> = </span><span class="constant-syntax">$$0010000000000000</span><span class="plain-syntax">; </span><span class="comment-syntax">New in I7: extra indentation of 1 level</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">CFIRSTART_BIT</span><span class="plain-syntax"> = </span><span class="constant-syntax">$$0100000000000000</span><span class="plain-syntax">; </span><span class="comment-syntax">Capitalise first article in list</span>
</pre>
<p class="commentary firstcommentary"><a id="SP19" class="paragraph-anchor"></a><b>&#167;19. Lengths Of Time. </b>Inform measures time in minutes.
<p class="commentary firstcommentary"><a id="SP17" class="paragraph-anchor"></a><b>&#167;17. Lengths Of Time. </b>Inform measures time in minutes.
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -589,7 +553,7 @@ here regardless.
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">TWELVE_HOURS</span><span class="plain-syntax"> = </span><span class="constant-syntax">720</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">TWENTY_FOUR_HOURS</span><span class="plain-syntax"> = </span><span class="constant-syntax">1440</span><span class="plain-syntax">;</span>
</pre>
<p class="commentary firstcommentary"><a id="SP20" class="paragraph-anchor"></a><b>&#167;20. Empty Text. </b>The I6 compiler does not optimise string compilation: if it needs to compile
<p class="commentary firstcommentary"><a id="SP18" class="paragraph-anchor"></a><b>&#167;18. Empty Text. </b>The I6 compiler does not optimise string compilation: if it needs to compile
the (packed, read-only) string <span class="extract"><span class="extract-syntax">"exemplum"</span></span> twice, it will compile two copies.
This is slightly wasteful on memory, though in practice the loss is not
enough for us to care. But we do want to avoid this in I7 because, to make
@ -605,21 +569,21 @@ and properties: we give it a name as follows.
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">EMPTY_TEXT_PACKED</span><span class="plain-syntax"> </span><span class="string-syntax">""</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Array</span><span class="plain-syntax"> </span><span class="identifier-syntax">EMPTY_TEXT_VALUE</span><span class="plain-syntax"> --&gt; </span><span class="identifier-syntax">CONSTANT_PACKED_TEXT_STORAGE</span><span class="plain-syntax"> </span><span class="identifier-syntax">EMPTY_TEXT_PACKED</span><span class="plain-syntax">;</span>
</pre>
<p class="commentary firstcommentary"><a id="SP21" class="paragraph-anchor"></a><b>&#167;21. Empty Table. </b>Similarly: the default value for the "table" kind of value, a Table
<p class="commentary firstcommentary"><a id="SP19" class="paragraph-anchor"></a><b>&#167;19. Empty Table. </b>Similarly: the default value for the "table" kind of value, a Table
containing no rows and no columns.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">Array</span><span class="plain-syntax"> </span><span class="identifier-syntax">TheEmptyTable</span><span class="plain-syntax"> --&gt; </span><span class="constant-syntax">0</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
</pre>
<p class="commentary firstcommentary"><a id="SP22" class="paragraph-anchor"></a><b>&#167;22. Empty Set. </b>The falsity proposition describes the empty set of objects, and is the
<p class="commentary firstcommentary"><a id="SP20" class="paragraph-anchor"></a><b>&#167;20. Empty Set. </b>The falsity proposition describes the empty set of objects, and is the
zero value for the "description" kind of value.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">[ </span><span class="identifier-syntax">Prop_Falsity</span><span class="plain-syntax"> </span><span class="identifier-syntax">reason</span><span class="plain-syntax"> </span><span class="identifier-syntax">obj</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>
</pre>
<p class="commentary firstcommentary"><a id="SP23" class="paragraph-anchor"></a><b>&#167;23. Template Attributes. </b>An I6 attribute is equivalent to an I7 "either/or property", though the
<p class="commentary firstcommentary"><a id="SP21" class="paragraph-anchor"></a><b>&#167;21. Template Attributes. </b>An I6 attribute is equivalent to an I7 "either/or property", though the
latter are not always translated into I6 attributes because the Z-machine
has only a limited number of attributes to use. Here, we define attributes
used by the template.
@ -682,7 +646,7 @@ are not visible to I7 source text as storage.
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">workflag2</span><span class="plain-syntax">; </span><span class="comment-syntax">new in I7 and also temporary workspace</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">list_filter_permits</span><span class="plain-syntax"> = </span><span class="identifier-syntax">privately_named</span><span class="plain-syntax">; </span><span class="comment-syntax">another I7 listwriter convenience</span>
</pre>
<p class="commentary firstcommentary"><a id="SP24" class="paragraph-anchor"></a><b>&#167;24. Template Properties. </b>As remarked above, these more often correspond to value properties in I7.
<p class="commentary firstcommentary"><a id="SP22" class="paragraph-anchor"></a><b>&#167;22. Template Properties. </b>As remarked above, these more often correspond to value properties in I7.
To an experienced I6 user, though, the death toll of abolished I6
properties in I7 is breathtaking: in alphabetical order, <span class="extract"><span class="extract-syntax">after</span></span>,
<span class="extract"><span class="extract-syntax">cant_go</span></span>, <span class="extract"><span class="extract-syntax">daemon</span></span>, <span class="extract"><span class="extract-syntax">each_turn</span></span>, <span class="extract"><span class="extract-syntax">invent</span></span>, <span class="extract"><span class="extract-syntax">life</span></span>, <span class="extract"><span class="extract-syntax">number</span></span>, <span class="extract"><span class="extract-syntax">orders</span></span>,
@ -741,31 +705,7 @@ future use.
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">inside_description</span><span class="plain-syntax">; </span><span class="comment-syntax">not used by I7, but an interesting hook in the locale code</span>
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">short_name_indef</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">; </span><span class="comment-syntax">not used by I7, but an interesting hook in the listmaker</span>
</pre>
<p class="commentary firstcommentary"><a id="SP25" class="paragraph-anchor"></a><b>&#167;25. Fake Actions. </b>Though sometimes useful for I6 coding tricks, fake actions &mdash; action numbers
not corresponding to any action, but different from those of valid actions,
and useable with a number of action syntaxes &mdash; are not conceptually present
in I7 source text. They can only really exist at the I6 level because I6 is
typeless; in I7 terms, there is no convenient kind of value which could
represent both actions and fake actions while protecting each from confusion
with the other.
</p>
<p class="commentary">See the {\it Inform Designer's Manual}, 4th edition, for what these are
used for.
</p>
<p class="commentary">The following fake actions from the I6 library have been dropped here:
<span class="extract"><span class="extract-syntax">##LetGo</span></span>, <span class="extract"><span class="extract-syntax">##Receive</span></span>, <span class="extract"><span class="extract-syntax">##ThrownAt</span></span>, <span class="extract"><span class="extract-syntax">##Prompt</span></span>, <span class="extract"><span class="extract-syntax">##Places</span></span>, <span class="extract"><span class="extract-syntax">##Objects</span></span>,
<span class="extract"><span class="extract-syntax">##Order</span></span>, <span class="extract"><span class="extract-syntax">##NotUnderstood</span></span>.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">Fake_Action</span><span class="plain-syntax"> </span><span class="identifier-syntax">ListMiscellany</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">Fake_Action</span><span class="plain-syntax"> </span><span class="identifier-syntax">Miscellany</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">Fake_Action</span><span class="plain-syntax"> </span><span class="identifier-syntax">PluralFound</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">Fake_Action</span><span class="plain-syntax"> </span><span class="identifier-syntax">TheSame</span><span class="plain-syntax">;</span>
</pre>
<p class="commentary firstcommentary"><a id="SP26" class="paragraph-anchor"></a><b>&#167;26. Formal Parameters. </b>These are needed for efficient run-time ambiguity resolution.
<p class="commentary firstcommentary"><a id="SP23" class="paragraph-anchor"></a><b>&#167;23. Formal Parameters. </b>These are needed for efficient run-time ambiguity resolution.
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -780,7 +720,7 @@ used for.
<span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">formal_par7</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">unicode_temp</span><span class="plain-syntax">;</span>
</pre>
<p class="commentary firstcommentary"><a id="SP27" class="paragraph-anchor"></a><b>&#167;27. Template Configuration. </b>To minimise the need for conditional compilation in the template, the
<p class="commentary firstcommentary"><a id="SP24" class="paragraph-anchor"></a><b>&#167;24. Template Configuration. </b>To minimise the need for conditional compilation in the template, the
constant <span class="extract"><span class="extract-syntax">KIT_CONFIGURATION_BITMAP</span></span> must be generated by the user
(i.e., by I7). It's made up of these bits:
</p>

View file

@ -56,9 +56,40 @@ 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">CommandParserKit</a></li><li><b>Parser Template</b></li></ul></div>
<p class="purpose">The parser for turning the text of the typed command into a proposed action by the player.</p>
<ul class="toc"><li><a href="S-prs.html#SP1">&#167;1. Grammar Line Variables</a></li><li><a href="S-prs.html#SP2">&#167;2. Grammar Token Variables</a></li><li><a href="S-prs.html#SP3">&#167;3. Match List Variables</a></li><li><a href="S-prs.html#SP4">&#167;4. Words</a></li><li><a href="S-prs.html#SP5">&#167;5. Snippets</a></li><li><a href="S-prs.html#SP6">&#167;6. Unpacking Grammar Lines</a></li><li><a href="S-prs.html#SP7">&#167;7. Keyboard Primitive</a></li><li><a href="S-prs.html#SP8">&#167;8. Reading the Command</a></li><li><a href="S-prs.html#SP9">&#167;9. Parser Proper</a></li><li><a href="S-prs.html#SP10">&#167;10. Parser Letter A</a></li><li><a href="S-prs.html#SP11">&#167;11. Parser Letter B</a></li><li><a href="S-prs.html#SP12">&#167;12. Parser Letter C</a></li><li><a href="S-prs.html#SP13">&#167;13. Parser Letter D</a></li><li><a href="S-prs.html#SP14">&#167;14. Parser Letter E</a></li><li><a href="S-prs.html#SP15">&#167;15. Parser Letter F</a></li><li><a href="S-prs.html#SP16">&#167;16. Parser Letter G</a></li><li><a href="S-prs.html#SP17">&#167;17. Parser Letter H</a></li><li><a href="S-prs.html#SP18">&#167;18. Parser Letter I</a></li><li><a href="S-prs.html#SP19">&#167;19. Parser Letter J</a></li><li><a href="S-prs.html#SP20">&#167;20. Parser Letter K</a></li><li><a href="S-prs.html#SP21">&#167;21. End of Parser Proper</a></li><li><a href="S-prs.html#SP22">&#167;22. Internal Rule</a></li><li><a href="S-prs.html#SP23">&#167;23. Parse Token</a></li><li><a href="S-prs.html#SP24">&#167;24. Parse Token Letter A</a></li><li><a href="S-prs.html#SP25">&#167;25. Parse Token Letter B</a></li><li><a href="S-prs.html#SP26">&#167;26. Parse Token Letter C</a></li><li><a href="S-prs.html#SP27">&#167;27. Parse Token Letter D</a></li><li><a href="S-prs.html#SP28">&#167;28. Parse Token Letter E</a></li><li><a href="S-prs.html#SP29">&#167;29. Parse Token Letter F</a></li><li><a href="S-prs.html#SP30">&#167;30. Descriptors</a></li><li><a href="S-prs.html#SP31">&#167;31. Parsing Descriptors</a></li><li><a href="S-prs.html#SP32">&#167;32. Preposition Chain</a></li><li><a href="S-prs.html#SP33">&#167;33. Creature</a></li><li><a href="S-prs.html#SP34">&#167;34. Noun Domain</a></li><li><a href="S-prs.html#SP35">&#167;35. Adjudicate</a></li><li><a href="S-prs.html#SP36">&#167;36. ReviseMulti</a></li><li><a href="S-prs.html#SP37">&#167;37. Match List</a></li><li><a href="S-prs.html#SP38">&#167;38. ScoreMatchL</a></li><li><a href="S-prs.html#SP39">&#167;39. BestGuess</a></li><li><a href="S-prs.html#SP40">&#167;40. SingleBestGuess</a></li><li><a href="S-prs.html#SP41">&#167;41. Identical</a></li><li><a href="S-prs.html#SP42">&#167;42. Print Command</a></li><li><a href="S-prs.html#SP43">&#167;43. CantSee</a></li><li><a href="S-prs.html#SP44">&#167;44. Multiple Object List</a></li><li><a href="S-prs.html#SP45">&#167;45. Scope</a></li><li><a href="S-prs.html#SP46">&#167;46. Scope Level 0</a></li><li><a href="S-prs.html#SP47">&#167;47. SearchScope</a></li><li><a href="S-prs.html#SP48">&#167;48. ScopeWithin</a></li><li><a href="S-prs.html#SP49">&#167;49. DoScopeActionAndRecurse</a></li><li><a href="S-prs.html#SP50">&#167;50. DoScopeAction</a></li><li><a href="S-prs.html#SP51">&#167;51. Parsing Object Names</a></li><li><a href="S-prs.html#SP52">&#167;52. TryGivenObject</a></li><li><a href="S-prs.html#SP53">&#167;53. Refers</a></li><li><a href="S-prs.html#SP54">&#167;54. NounWord</a></li><li><a href="S-prs.html#SP55">&#167;55. TryNumber</a></li><li><a href="S-prs.html#SP56">&#167;56. Gender</a></li><li><a href="S-prs.html#SP57">&#167;57. Noticing Plurals</a></li><li><a href="S-prs.html#SP58">&#167;58. Pronoun Handling</a></li><li><a href="S-prs.html#SP59">&#167;59. Yes/No Questions</a></li><li><a href="S-prs.html#SP60">&#167;60. Number Words</a></li><li><a href="S-prs.html#SP61">&#167;61. Choose Objects</a></li><li><a href="S-prs.html#SP62">&#167;62. Default Topic</a></li><li><a href="S-prs.html#SP63">&#167;63. Recognition-only-GPR</a></li><li><a href="S-prs.html#SP64">&#167;64. RunRoutines</a></li><li><a href="S-prs.html#SP65">&#167;65. Setting the Player's Command</a></li><li><a href="S-prs.html#SP66">&#167;66. Multiple Object List</a></li></ul><hr class="tocbar">
<ul class="toc"><li><a href="S-prs.html#SP1">&#167;1. Parser Error Numbers</a></li><li><a href="S-prs.html#SP2">&#167;2. Grammar Line Variables</a></li><li><a href="S-prs.html#SP3">&#167;3. Grammar Token Variables</a></li><li><a href="S-prs.html#SP4">&#167;4. Match List Variables</a></li><li><a href="S-prs.html#SP5">&#167;5. Words</a></li><li><a href="S-prs.html#SP6">&#167;6. Snippets</a></li><li><a href="S-prs.html#SP7">&#167;7. Unpacking Grammar Lines</a></li><li><a href="S-prs.html#SP8">&#167;8. Keyboard Primitive</a></li><li><a href="S-prs.html#SP9">&#167;9. Reading the Command</a></li><li><a href="S-prs.html#SP10">&#167;10. Parser Proper</a></li><li><a href="S-prs.html#SP11">&#167;11. Parser Letter A</a></li><li><a href="S-prs.html#SP12">&#167;12. Parser Letter B</a></li><li><a href="S-prs.html#SP13">&#167;13. Parser Letter C</a></li><li><a href="S-prs.html#SP14">&#167;14. Parser Letter D</a></li><li><a href="S-prs.html#SP15">&#167;15. Parser Letter E</a></li><li><a href="S-prs.html#SP16">&#167;16. Parser Letter F</a></li><li><a href="S-prs.html#SP17">&#167;17. Parser Letter G</a></li><li><a href="S-prs.html#SP18">&#167;18. Parser Letter H</a></li><li><a href="S-prs.html#SP19">&#167;19. Parser Letter I</a></li><li><a href="S-prs.html#SP20">&#167;20. Parser Letter J</a></li><li><a href="S-prs.html#SP21">&#167;21. Parser Letter K</a></li><li><a href="S-prs.html#SP22">&#167;22. End of Parser Proper</a></li><li><a href="S-prs.html#SP23">&#167;23. Internal Rule</a></li><li><a href="S-prs.html#SP24">&#167;24. Parse Token</a></li><li><a href="S-prs.html#SP25">&#167;25. Parse Token Letter A</a></li><li><a href="S-prs.html#SP26">&#167;26. Parse Token Letter B</a></li><li><a href="S-prs.html#SP27">&#167;27. Parse Token Letter C</a></li><li><a href="S-prs.html#SP28">&#167;28. Parse Token Letter D</a></li><li><a href="S-prs.html#SP29">&#167;29. Parse Token Letter E</a></li><li><a href="S-prs.html#SP30">&#167;30. Parse Token Letter F</a></li><li><a href="S-prs.html#SP31">&#167;31. Descriptors</a></li><li><a href="S-prs.html#SP32">&#167;32. Parsing Descriptors</a></li><li><a href="S-prs.html#SP33">&#167;33. Preposition Chain</a></li><li><a href="S-prs.html#SP34">&#167;34. Creature</a></li><li><a href="S-prs.html#SP35">&#167;35. Noun Domain</a></li><li><a href="S-prs.html#SP36">&#167;36. Adjudicate</a></li><li><a href="S-prs.html#SP37">&#167;37. ReviseMulti</a></li><li><a href="S-prs.html#SP38">&#167;38. Match List</a></li><li><a href="S-prs.html#SP39">&#167;39. ScoreMatchL</a></li><li><a href="S-prs.html#SP40">&#167;40. BestGuess</a></li><li><a href="S-prs.html#SP41">&#167;41. SingleBestGuess</a></li><li><a href="S-prs.html#SP42">&#167;42. Identical</a></li><li><a href="S-prs.html#SP43">&#167;43. Print Command</a></li><li><a href="S-prs.html#SP44">&#167;44. CantSee</a></li><li><a href="S-prs.html#SP45">&#167;45. Multiple Object List</a></li><li><a href="S-prs.html#SP46">&#167;46. Scope</a></li><li><a href="S-prs.html#SP47">&#167;47. Scope Level 0</a></li><li><a href="S-prs.html#SP48">&#167;48. SearchScope</a></li><li><a href="S-prs.html#SP49">&#167;49. ScopeWithin</a></li><li><a href="S-prs.html#SP50">&#167;50. DoScopeActionAndRecurse</a></li><li><a href="S-prs.html#SP51">&#167;51. DoScopeAction</a></li><li><a href="S-prs.html#SP52">&#167;52. Parsing Object Names</a></li><li><a href="S-prs.html#SP53">&#167;53. TryGivenObject</a></li><li><a href="S-prs.html#SP54">&#167;54. Refers</a></li><li><a href="S-prs.html#SP55">&#167;55. NounWord</a></li><li><a href="S-prs.html#SP56">&#167;56. TryNumber</a></li><li><a href="S-prs.html#SP57">&#167;57. Gender</a></li><li><a href="S-prs.html#SP58">&#167;58. Noticing Plurals</a></li><li><a href="S-prs.html#SP59">&#167;59. Pronoun Handling</a></li><li><a href="S-prs.html#SP60">&#167;60. Yes/No Questions</a></li><li><a href="S-prs.html#SP61">&#167;61. Number Words</a></li><li><a href="S-prs.html#SP62">&#167;62. Choose Objects</a></li><li><a href="S-prs.html#SP63">&#167;63. Default Topic</a></li><li><a href="S-prs.html#SP64">&#167;64. Recognition-only-GPR</a></li><li><a href="S-prs.html#SP65">&#167;65. RunRoutines</a></li><li><a href="S-prs.html#SP66">&#167;66. Setting the Player's Command</a></li><li><a href="S-prs.html#SP67">&#167;67. Multiple Object List</a></li></ul><hr class="tocbar">
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. Grammar Line Variables. </b>This is the I6 library parser in mostly untouched form: reformatted for template
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. Parser Error Numbers. </b>The traditional ways in which the I6 library's parser, which we adopt here
more or less intact, can give up on a player's command.
</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">STUCK_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">UPTO_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">2</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">NUMBER_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">3</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ANIMA_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">4</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">CANTSEE_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">5</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">TOOLIT_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">6</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">NOTHELD_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">7</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">MULTI_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">8</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">MMULTI_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">9</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">VAGUE_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">10</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">EXCEPT_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">11</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">VERB_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">12</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">SCENERY_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">13</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ITGONE_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">14</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">JUNKAFTER_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">15</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">TOOFEW_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">16</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">NOTHING_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">17</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ASKSCOPE_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">18</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">NOTINCONTEXT_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">19</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">BLANKLINE_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">20</span><span class="plain-syntax">; </span><span class="comment-syntax">Not formally a parser error, but used by I7 as if</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ANIMAAGAIN_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">21</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">COMMABEGIN_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">22</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">MISSINGPERSON_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">23</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ANIMALISTEN_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">24</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">TOTALK_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">25</span><span class="plain-syntax">;</span>
</pre>
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. Grammar Line Variables. </b>This is the I6 library parser in mostly untouched form: reformatted for template
file use, and with paragraph divisions, but otherwise hardly changed at all.
It is a complex algorithm but one which is known to produce good results for
the most part, and it is well understood from (at time of writing) fifteen
@ -80,6 +111,7 @@ be read or written by the parser.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">etype</span><span class="plain-syntax">; </span><span class="comment-syntax">parser error number if command not recognised</span>
<span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">best_etype</span><span class="plain-syntax">; </span><span class="comment-syntax">Preferred error number so far</span>
<span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">nextbest_etype</span><span class="plain-syntax">; </span><span class="comment-syntax">Preferred one, if ASKSCOPE_PE disallowed</span>
@ -116,7 +148,7 @@ be read or written by the parser.
<span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">usual_grammar_after</span><span class="plain-syntax">; </span><span class="comment-syntax">Point from which usual grammar is parsed (it may vary from</span>
<span class="plain-syntax"> </span><span class="comment-syntax">the above if user's routines match multi-word verbs)</span>
</pre>
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. Grammar Token Variables. </b>More globals, but dealing at the level of individual tokens now.
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>&#167;3. Grammar Token Variables. </b>More globals, but dealing at the level of individual tokens now.
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -160,7 +192,7 @@ be read or written by the parser.
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">comma_word</span><span class="plain-syntax"> = </span><span class="character-syntax">'comma,'</span><span class="plain-syntax">; </span><span class="comment-syntax">An "untypeable word" used to substitute</span>
<span class="plain-syntax"> </span><span class="comment-syntax">for commas in parse buffers</span>
</pre>
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>&#167;3. Match List Variables. </b>The most difficult tokens to match are those which refer to objects, since
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>&#167;4. Match List Variables. </b>The most difficult tokens to match are those which refer to objects, since
there is such a variety of names which can be given to any individual object,
and we don't of course know which object or objects are meant. We store the
possibilities (up to <span class="extract"><span class="extract-syntax">MATCH_LIST_WORDS</span></span>, anyway) in a data structure called the match list.
@ -175,7 +207,7 @@ possibilities (up to <span class="extract"><span class="extract-syntax">MATCH_LI
<span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">match_length</span><span class="plain-syntax">; </span><span class="comment-syntax">How many words long are these matches?</span>
<span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">match_from</span><span class="plain-syntax">; </span><span class="comment-syntax">At what word of the input do they begin?</span>
</pre>
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>&#167;4. Words. </b>The player's command is broken down into a numbered sequence of words, which
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>&#167;5. Words. </b>The player's command is broken down into a numbered sequence of words, which
break at spaces or certain punctuation (see the DM4). The numbering runs
upwards from 1 to <span class="extract"><span class="extract-syntax">WordCount()</span></span>. The following utility routines provide
access to words in the current command; because buffers have different
@ -244,7 +276,7 @@ as two commands in succession),
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NextWord</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. Snippets. </b>Although the idea is arguably implicit in I6, the formal concept of
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>&#167;6. Snippets. </b>Although the idea is arguably implicit in I6, the formal concept of
"snippet" is new in I7. A snippet is a value which represents a word
range in the command most recently typed by the player. These words number
consecutively upwards from 1, as noted above. The correspondence between
@ -320,7 +352,7 @@ $$ C = 100 + N $$
<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="SP6" class="paragraph-anchor"></a><b>&#167;6. Unpacking Grammar Lines. </b>Grammar lines are sequences of tokens in an array built into the story file,
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>&#167;7. Unpacking Grammar Lines. </b>Grammar lines are sequences of tokens in an array built into the story file,
but in a format which differs depending on the virtual machine in use, so
the following code unpacks the data into more convenient if larger arrays
which are VM-independent.
@ -368,7 +400,7 @@ which are VM-independent.
<span class="plain-syntax"> </span><span class="identifier-syntax">found_tdata</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">token</span><span class="plain-syntax">+1)--&gt;0;</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>&#167;7. Keyboard Primitive. </b>This is the primitive routine to read from the keyboard: it usually delegates
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>&#167;8. Keyboard Primitive. </b>This is the primitive routine to read from the keyboard: it usually delegates
this to a routine specific to the virtual machine being used, but sometimes
uses a hacked version to allow TEST commands to work. (When a TEST is running,
the text in the walk-through provided is fed into the buffer as if it had
@ -383,7 +415,7 @@ been typed at the keyboard.)
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">VM_ReadKeyboard</span><span class="plain-syntax">(</span><span class="identifier-syntax">a_buffer</span><span class="plain-syntax">, </span><span class="identifier-syntax">a_table</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. Reading the Command. </b>The <span class="extract"><span class="extract-syntax">Keyboard</span></span> routine actually receives the player's words, putting the
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>&#167;9. Reading the Command. </b>The <span class="extract"><span class="extract-syntax">Keyboard</span></span> routine actually receives the player's words, putting the
words in <span class="extract"><span class="extract-syntax">a_buffer</span></span> and their dictionary addresses in <span class="extract"><span class="extract-syntax">a_table</span></span>. It is
assumed that the table is the same one on each (standard) call. Much
of the code handles the OOPS and UNDO commands, which are not actions and
@ -533,7 +565,7 @@ yes/no questions and the like, without invoking the rest of the parser.
<span class="plain-syntax"> </span><span class="identifier-syntax">IMMEDIATELY_UNDO_RM</span><span class="plain-syntax">(</span><span class="character-syntax">'E'</span><span class="plain-syntax">); </span><span class="reserved-syntax">new_line</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. Parser Proper. </b>The main parser routine is something of a leviathan, and it has traditionally
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>&#167;10. Parser Proper. </b>The main parser routine is something of a leviathan, and it has traditionally
been divided into 11 lettered parts:
</p>
@ -569,7 +601,7 @@ fairly thorough description of its output, which is written into the
<span class="plain-syntax"> </span><span class="identifier-syntax">parser_results</span><span class="plain-syntax">--&gt;</span><span class="identifier-syntax">INP2_PRES</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">meta</span><span class="plain-syntax"> = </span><span class="reserved-syntax">false</span><span class="plain-syntax">;</span>
</pre>
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>&#167;10. Parser Letter A. </b>Get the input, do OOPS and AGAIN.
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>&#167;11. Parser Letter A. </b>Get the input, do OOPS and AGAIN.
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -734,7 +766,7 @@ fairly thorough description of its output, which is written into the
<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">usual_grammar_after</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
</pre>
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>&#167;11. Parser Letter B. </b>Is the command a direction name, and so an implicit GO? If so, go to (K).
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>&#167;12. Parser Letter B. </b>Is the command a direction name, and so an implicit GO? If so, go to (K).
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -774,7 +806,7 @@ fairly thorough description of its output, which is written into the
<span class="plain-syntax"> } </span><span class="comment-syntax">end of first-word-not-a-verb</span>
</pre>
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>&#167;12. Parser Letter C. </b>Is anyone being addressed?
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>&#167;13. Parser Letter C. </b>Is anyone being addressed?
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -856,7 +888,7 @@ fairly thorough description of its output, which is written into the
<span class="plain-syntax"> #</span><span class="identifier-syntax">Endif</span><span class="plain-syntax">; </span><span class="comment-syntax">DEBUG</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">jump</span><span class="plain-syntax"> </span><span class="identifier-syntax">BeginCommand</span><span class="plain-syntax">;</span>
</pre>
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>&#167;13. Parser Letter D. </b>Get the verb: try all the syntax lines for that verb.
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>&#167;14. Parser Letter D. </b>Get the verb: try all the syntax lines for that verb.
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -921,7 +953,7 @@ fairly thorough description of its output, which is written into the
<span class="plain-syntax"> </span><span class="comment-syntax">multiflag is used here to prevent inappropriate MULTI_PE errors</span>
<span class="plain-syntax"> </span><span class="comment-syntax">in addition to its unrelated duties passing information to action routines</span>
</pre>
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>&#167;14. Parser Letter E. </b>Break down a syntax line into analysed tokens.
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>&#167;15. Parser Letter E. </b>Break down a syntax line into analysed tokens.
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -957,7 +989,7 @@ fairly thorough description of its output, which is written into the
<span class="plain-syntax"> </span><span class="identifier-syntax">wn</span><span class="plain-syntax"> = </span><span class="identifier-syntax">verb_wordnum</span><span class="plain-syntax">+1;</span>
</pre>
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>&#167;15. Parser Letter F. </b>Look ahead for advance warning for <span class="extract"><span class="extract-syntax">multiexcept</span></span>/<span class="extract"><span class="extract-syntax">multiinside</span></span>.
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>&#167;16. Parser Letter F. </b>Look ahead for advance warning for <span class="extract"><span class="extract-syntax">multiexcept</span></span>/<span class="extract"><span class="extract-syntax">multiinside</span></span>.
</p>
<p class="commentary">There are two special cases where parsing a token now has to be affected by
@ -1086,7 +1118,7 @@ and similarly for <span class="extract"><span class="extract-syntax">multiinside
<span class="plain-syntax"> </span><span class="identifier-syntax">etype</span><span class="plain-syntax"> = </span><span class="identifier-syntax">STUCK_PE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wn</span><span class="plain-syntax"> = </span><span class="identifier-syntax">verb_wordnum</span><span class="plain-syntax">+1;</span>
</pre>
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>&#167;16. Parser Letter G. </b>Parse each token in turn (calling <span class="extract"><span class="extract-syntax">ParseToken</span></span> to do most of the work).
<p class="commentary firstcommentary"><a id="SP17" class="paragraph-anchor"></a><b>&#167;17. Parser Letter G. </b>Parse each token in turn (calling <span class="extract"><span class="extract-syntax">ParseToken</span></span> to do most of the work).
</p>
<p class="commentary">The <span class="extract"><span class="extract-syntax">pattern</span></span> gradually accumulates what has been recognised so far,
@ -1294,7 +1326,7 @@ so that it may be reprinted by the parser later on.
<span class="plain-syntax"> </span><span class="comment-syntax">The grammar is exhausted: every line has failed to match.</span>
</pre>
<p class="commentary firstcommentary"><a id="SP17" class="paragraph-anchor"></a><b>&#167;17. Parser Letter H. </b>Cheaply parse otherwise unrecognised conversation and return.
<p class="commentary firstcommentary"><a id="SP18" class="paragraph-anchor"></a><b>&#167;18. Parser Letter H. </b>Cheaply parse otherwise unrecognised conversation and return.
</p>
<p class="commentary">(Errors are handled differently depending on who was talking. If the command
@ -1339,7 +1371,7 @@ fake action <span class="extract"><span class="extract-syntax">##NotUnderstood</
<span class="plain-syntax"> </span><span class="reserved-syntax">rtrue</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. Parser Letter I. </b>Print best possible error message.
<p class="commentary firstcommentary"><a id="SP19" class="paragraph-anchor"></a><b>&#167;19. Parser Letter I. </b>Print best possible error message.
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -1417,7 +1449,7 @@ fake action <span class="extract"><span class="extract-syntax">##NotUnderstood</
<span class="plain-syntax"> </span><span class="identifier-syntax">say__p</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">EndActivity</span><span class="plain-syntax">(</span><span class="identifier-syntax">PRINTING_A_PARSER_ERROR_ACT</span><span class="plain-syntax">);</span>
</pre>
<p class="commentary firstcommentary"><a id="SP19" class="paragraph-anchor"></a><b>&#167;19. Parser Letter J. </b>Retry the whole lot.
<p class="commentary firstcommentary"><a id="SP20" class="paragraph-anchor"></a><b>&#167;20. Parser Letter J. </b>Retry the whole lot.
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -1428,7 +1460,7 @@ fake action <span class="extract"><span class="extract-syntax">##NotUnderstood</
<span class="plain-syntax"> </span><span class="comment-syntax">...being careful not to go all the way back, to avoid infinite repetition</span>
<span class="plain-syntax"> </span><span class="comment-syntax">of a deferred command causing an error.</span>
</pre>
<p class="commentary firstcommentary"><a id="SP20" class="paragraph-anchor"></a><b>&#167;20. Parser Letter K. </b>Last thing: check for THEN and further instructions(s), return.
<p class="commentary firstcommentary"><a id="SP21" class="paragraph-anchor"></a><b>&#167;21. Parser Letter K. </b>Last thing: check for THEN and further instructions(s), return.
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -1452,12 +1484,12 @@ fake action <span class="extract"><span class="extract-syntax">##NotUnderstood</
<span class="plain-syntax"> </span><span class="identifier-syntax">best_etype</span><span class="plain-syntax"> = </span><span class="identifier-syntax">UPTO_PE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">jump</span><span class="plain-syntax"> </span><span class="identifier-syntax">GiveError</span><span class="plain-syntax">;</span>
</pre>
<p class="commentary firstcommentary"><a id="SP21" class="paragraph-anchor"></a><b>&#167;21. End of Parser Proper. </b></p>
<p class="commentary firstcommentary"><a id="SP22" class="paragraph-anchor"></a><b>&#167;22. End of Parser Proper. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">]; </span><span class="comment-syntax">end of Parser__parse</span>
</pre>
<p class="commentary firstcommentary"><a id="SP22" class="paragraph-anchor"></a><b>&#167;22. Internal Rule. </b>As a hook on which to hang responses.
<p class="commentary firstcommentary"><a id="SP23" class="paragraph-anchor"></a><b>&#167;23. Internal Rule. </b>As a hook on which to hang responses.
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -1465,7 +1497,7 @@ fake action <span class="extract"><span class="extract-syntax">##NotUnderstood</
<span class="plain-syntax">[ </span><span class="identifier-syntax">PARSER_N_ERROR_INTERNAL_R</span><span class="plain-syntax">; ];</span>
<span class="plain-syntax">[ </span><span class="identifier-syntax">PARSER_COMMAND_INTERNAL_R</span><span class="plain-syntax">; ];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP23" class="paragraph-anchor"></a><b>&#167;23. Parse Token. </b>The main parsing routine above tried a sequence of "grammar lines" in turn,
<p class="commentary firstcommentary"><a id="SP24" class="paragraph-anchor"></a><b>&#167;24. Parse Token. </b>The main parsing routine above tried a sequence of "grammar lines" in turn,
matching each against the text typed until one fitted. A grammar line is
itself a sequence of "grammar tokens". Here we have to parse the tokens.
</p>
@ -1547,7 +1579,7 @@ break down others into elementary tokens
<span class="plain-syntax"> </span><span class="identifier-syntax">l</span><span class="plain-syntax"> </span><span class="identifier-syntax">o</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> </span><span class="identifier-syntax">j</span><span class="plain-syntax"> </span><span class="identifier-syntax">k</span><span class="plain-syntax"> </span><span class="identifier-syntax">and_parity</span><span class="plain-syntax"> </span><span class="identifier-syntax">single_object</span><span class="plain-syntax"> </span><span class="identifier-syntax">desc_wn</span><span class="plain-syntax"> </span><span class="identifier-syntax">many_flag</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">token_allows_multiple</span><span class="plain-syntax"> </span><span class="identifier-syntax">prev_indef_wanted</span><span class="plain-syntax">;</span>
</pre>
<p class="commentary firstcommentary"><a id="SP24" class="paragraph-anchor"></a><b>&#167;24. Parse Token Letter A. </b>Analyse token; handle all not involving object lists, break down others.
<p class="commentary firstcommentary"><a id="SP25" class="paragraph-anchor"></a><b>&#167;25. Parse Token Letter A. </b>Analyse token; handle all not involving object lists, break down others.
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -1682,7 +1714,7 @@ break down others into elementary tokens
<span class="plain-syntax"> </span><span class="identifier-syntax">token</span><span class="plain-syntax"> = </span><span class="identifier-syntax">given_tdata</span><span class="plain-syntax">;</span>
</pre>
<p class="commentary firstcommentary"><a id="SP25" class="paragraph-anchor"></a><b>&#167;25. Parse Token Letter B. </b>Begin parsing an object list.
<p class="commentary firstcommentary"><a id="SP26" class="paragraph-anchor"></a><b>&#167;26. Parse Token Letter B. </b>Begin parsing an object list.
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -1702,7 +1734,7 @@ break down others into elementary tokens
<span class="plain-syntax"> </span><span class="identifier-syntax">many_flag</span><span class="plain-syntax"> = </span><span class="reserved-syntax">false</span><span class="plain-syntax">; </span><span class="identifier-syntax">and_parity</span><span class="plain-syntax"> = </span><span class="reserved-syntax">true</span><span class="plain-syntax">; </span><span class="identifier-syntax">dont_infer</span><span class="plain-syntax"> = </span><span class="reserved-syntax">false</span><span class="plain-syntax">;</span>
</pre>
<p class="commentary firstcommentary"><a id="SP26" class="paragraph-anchor"></a><b>&#167;26. Parse Token Letter C. </b>Parse descriptors (articles, pronouns, etc.) in the list.
<p class="commentary firstcommentary"><a id="SP27" class="paragraph-anchor"></a><b>&#167;27. Parse Token Letter C. </b>Parse descriptors (articles, pronouns, etc.) in the list.
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -1753,7 +1785,7 @@ break down others into elementary tokens
<span class="plain-syntax"> .</span><span class="identifier-syntax">TryAgain2</span><span class="plain-syntax">;</span>
</pre>
<p class="commentary firstcommentary"><a id="SP27" class="paragraph-anchor"></a><b>&#167;27. Parse Token Letter D. </b>Parse an object name.
<p class="commentary firstcommentary"><a id="SP28" class="paragraph-anchor"></a><b>&#167;28. Parse Token Letter D. </b>Parse an object name.
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -1899,7 +1931,7 @@ break down others into elementary tokens
<span class="comment-syntax"> wn = oops_from + match_length;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wn</span><span class="plain-syntax"> = </span><span class="identifier-syntax">match_from</span><span class="plain-syntax"> + </span><span class="identifier-syntax">match_length</span><span class="plain-syntax">;</span>
</pre>
<p class="commentary firstcommentary"><a id="SP28" class="paragraph-anchor"></a><b>&#167;28. Parse Token Letter E. </b>Parse connectives (AND, BUT, etc.) and go back to (C).
<p class="commentary firstcommentary"><a id="SP29" class="paragraph-anchor"></a><b>&#167;29. Parse Token Letter E. </b>Parse connectives (AND, BUT, etc.) and go back to (C).
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -1939,7 +1971,7 @@ break down others into elementary tokens
<span class="plain-syntax"> </span><span class="identifier-syntax">wn</span><span class="plain-syntax">--; </span><span class="comment-syntax">Word marker back to first not-understood word</span>
</pre>
<p class="commentary firstcommentary"><a id="SP29" class="paragraph-anchor"></a><b>&#167;29. Parse Token Letter F. </b>Return the conclusion of parsing an object list.
<p class="commentary firstcommentary"><a id="SP30" class="paragraph-anchor"></a><b>&#167;30. Parse Token Letter F. </b>Return the conclusion of parsing an object list.
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -1984,7 +2016,7 @@ break down others into elementary tokens
<span class="plain-syntax">]; </span><span class="comment-syntax">end of ParseToken__</span>
</pre>
<p class="commentary firstcommentary"><a id="SP30" class="paragraph-anchor"></a><b>&#167;30. Descriptors. </b>In grammatical terms, a descriptor appears at the front of an English noun
<p class="commentary firstcommentary"><a id="SP31" class="paragraph-anchor"></a><b>&#167;31. Descriptors. </b>In grammatical terms, a descriptor appears at the front of an English noun
phrase and clarifies the quantity or specific identity of what is referred
to: for instance, {\it my} mirror, {\it the} dwarf, {\it that} woman.
(Numbers, as in {\it four} duets, are also descriptors in linguistics:
@ -2034,7 +2066,7 @@ or indefinite article.
<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="SP31" class="paragraph-anchor"></a><b>&#167;31. Parsing Descriptors. </b>The <span class="extract"><span class="extract-syntax">Descriptors()</span></span> routine parses the descriptors at the head of a noun
<p class="commentary firstcommentary"><a id="SP32" class="paragraph-anchor"></a><b>&#167;32. Parsing Descriptors. </b>The <span class="extract"><span class="extract-syntax">Descriptors()</span></span> routine parses the descriptors at the head of a noun
phrase, leaving the current word marker <span class="extract"><span class="extract-syntax">wn</span></span> at the first word of the
noun phrase's body. It is allowed to set up for a plural only if <span class="extract"><span class="extract-syntax">allow_p</span></span>
is set; it returns a parser error number, or 0 if no error occurred.
@ -2109,7 +2141,7 @@ is set; it returns a parser error number, or 0 if no error occurred.
<span class="plain-syntax"> @</span><span class="identifier-syntax">pull</span><span class="plain-syntax"> </span><span class="identifier-syntax">indef_wanted</span><span class="plain-syntax">; @</span><span class="identifier-syntax">pull</span><span class="plain-syntax"> </span><span class="identifier-syntax">indef_type</span><span class="plain-syntax">; @</span><span class="identifier-syntax">pull</span><span class="plain-syntax"> </span><span class="identifier-syntax">indef_mode</span><span class="plain-syntax">;</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP32" class="paragraph-anchor"></a><b>&#167;32. Preposition Chain. </b>A small utility for runs of prepositions.
<p class="commentary firstcommentary"><a id="SP33" class="paragraph-anchor"></a><b>&#167;33. Preposition Chain. </b>A small utility for runs of prepositions.
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -2123,7 +2155,7 @@ is set; it returns a parser error number, or 0 if no error occurred.
<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="SP33" class="paragraph-anchor"></a><b>&#167;33. Creature. </b>Will this object do for an I6 <span class="extract"><span class="extract-syntax">creature</span></span> token? (In I7 terms, this affects
<p class="commentary firstcommentary"><a id="SP34" class="paragraph-anchor"></a><b>&#167;34. Creature. </b>Will this object do for an I6 <span class="extract"><span class="extract-syntax">creature</span></span> token? (In I7 terms, this affects
the tokens "[someone]", "[somebody]", "[anyone]" and "[anybody]".)
</p>
@ -2135,7 +2167,7 @@ the tokens "[someone]", "[somebody]", "[anyone]" and "[anybody]".)
<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="SP34" class="paragraph-anchor"></a><b>&#167;34. Noun Domain. </b><span class="extract"><span class="extract-syntax">NounDomain</span></span> does the most substantial part of parsing an object name.
<p class="commentary firstcommentary"><a id="SP35" class="paragraph-anchor"></a><b>&#167;35. Noun Domain. </b><span class="extract"><span class="extract-syntax">NounDomain</span></span> does the most substantial part of parsing an object name.
It is given two "domains" &mdash; usually a location and then the actor who is
looking &mdash; and a context (i.e. token type), and returns:
</p>
@ -2544,7 +2576,7 @@ because we want to allow duplicates).
<span class="plain-syntax">[ </span><span class="identifier-syntax">PARSER_CLARIF_INTERNAL_R</span><span class="plain-syntax">; ];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP35" class="paragraph-anchor"></a><b>&#167;35. Adjudicate. </b>The <span class="extract"><span class="extract-syntax">Adjudicate</span></span> routine tries to see if there is an obvious choice, when
<p class="commentary firstcommentary"><a id="SP36" class="paragraph-anchor"></a><b>&#167;36. Adjudicate. </b>The <span class="extract"><span class="extract-syntax">Adjudicate</span></span> routine tries to see if there is an obvious choice, when
faced with a list of objects (the <span class="extract"><span class="extract-syntax">match_list</span></span>) each of which matches the
player's specification equally well. To do this it makes use of the <span class="extract"><span class="extract-syntax">context</span></span>
(the token type being worked on).
@ -2787,7 +2819,7 @@ routines to clear up this mess, so we can't economise on working them out).
<span class="plain-syntax">]; </span><span class="comment-syntax">Adjudicate</span>
</pre>
<p class="commentary firstcommentary"><a id="SP36" class="paragraph-anchor"></a><b>&#167;36. ReviseMulti. </b><span class="extract"><span class="extract-syntax">ReviseMulti</span></span> revises the multiple object which already exists, in the
<p class="commentary firstcommentary"><a id="SP37" class="paragraph-anchor"></a><b>&#167;37. ReviseMulti. </b><span class="extract"><span class="extract-syntax">ReviseMulti</span></span> revises the multiple object which already exists, in the
light of information which has come along since then (i.e., the second
parameter). It returns a parser error number, or else 0 if all is well.
This only ever throws things out, never adds new ones.
@ -2835,7 +2867,7 @@ This only ever throws things out, never adds new ones.
<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="SP37" class="paragraph-anchor"></a><b>&#167;37. Match List. </b>The match list is an array, <span class="extract"><span class="extract-syntax">match_list--&gt;</span></span>, which holds the current best
<p class="commentary firstcommentary"><a id="SP38" class="paragraph-anchor"></a><b>&#167;38. Match List. </b>The match list is an array, <span class="extract"><span class="extract-syntax">match_list--&gt;</span></span>, which holds the current best
guesses at what object(s) a portion of the command refers to. The global
<span class="extract"><span class="extract-syntax">number_matched</span></span> is set to the current length of the <span class="extract"><span class="extract-syntax">match_list</span></span>.
</p>
@ -2896,7 +2928,7 @@ or "panic".
<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="SP38" class="paragraph-anchor"></a><b>&#167;38. ScoreMatchL. </b><span class="extract"><span class="extract-syntax">ScoreMatchL</span></span> scores the match list for quality in terms of what the player
<p class="commentary firstcommentary"><a id="SP39" class="paragraph-anchor"></a><b>&#167;39. ScoreMatchL. </b><span class="extract"><span class="extract-syntax">ScoreMatchL</span></span> scores the match list for quality in terms of what the player
has vaguely asked for. Points are awarded for conforming with requirements
like "my", and so on. Remove from the match list any entries which fail
the basic requirements of the descriptors. (The scoring system used to
@ -3002,7 +3034,7 @@ evaluate the possibilities is discussed in detail in the DM4.)
<span class="plain-syntax"> }</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP39" class="paragraph-anchor"></a><b>&#167;39. BestGuess. </b><span class="extract"><span class="extract-syntax">BestGuess</span></span> makes the best guess it can out of the match list, assuming that
<p class="commentary firstcommentary"><a id="SP40" class="paragraph-anchor"></a><b>&#167;40. BestGuess. </b><span class="extract"><span class="extract-syntax">BestGuess</span></span> makes the best guess it can out of the match list, assuming that
everything in the match list is textually as good as everything else;
however it ignores items marked as \(-1\), and so marks anything it chooses.
It returns \(-1\) if there are no possible choices.
@ -3028,7 +3060,7 @@ It returns \(-1\) if there are no possible choices.
<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">;</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP40" class="paragraph-anchor"></a><b>&#167;40. SingleBestGuess. </b><span class="extract"><span class="extract-syntax">SingleBestGuess</span></span> returns the highest-scoring object in the match list
<p class="commentary firstcommentary"><a id="SP41" class="paragraph-anchor"></a><b>&#167;41. SingleBestGuess. </b><span class="extract"><span class="extract-syntax">SingleBestGuess</span></span> returns the highest-scoring object in the match list
if it is the clear winner, or returns \(-1\) if there is no clear winner.
</p>
@ -3043,7 +3075,7 @@ if it is the clear winner, or returns \(-1\) if there is no clear winner.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">earliest</span><span class="plain-syntax">;</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP41" class="paragraph-anchor"></a><b>&#167;41. Identical. </b><span class="extract"><span class="extract-syntax">Identical</span></span> decides whether or not two objects can be distinguished from each
<p class="commentary firstcommentary"><a id="SP42" class="paragraph-anchor"></a><b>&#167;42. Identical. </b><span class="extract"><span class="extract-syntax">Identical</span></span> decides whether or not two objects can be distinguished from each
other by anything the player can type. If not, it returns <span class="extract"><span class="extract-syntax">true</span></span>. (This
routine is critical to the handling of plurals, and the list-writer
requires it to be an equivalence relation between objects: but it is,
@ -3105,7 +3137,7 @@ for some function \(f\).)
<span class="plain-syntax"> </span><span class="reserved-syntax">rtrue</span><span class="plain-syntax">;</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP42" class="paragraph-anchor"></a><b>&#167;42. Print Command. </b><span class="extract"><span class="extract-syntax">PrintCommand</span></span> reconstructs the command as it presently reads, from the
<p class="commentary firstcommentary"><a id="SP43" class="paragraph-anchor"></a><b>&#167;43. Print Command. </b><span class="extract"><span class="extract-syntax">PrintCommand</span></span> reconstructs the command as it presently reads, from the
pattern which has been built up.
</p>
@ -3170,7 +3202,7 @@ the preposition <span class="extract"><span class="extract-syntax">n</span></spa
<span class="plain-syntax"> }</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP43" class="paragraph-anchor"></a><b>&#167;43. CantSee. </b>The <span class="extract"><span class="extract-syntax">CantSee</span></span> routine returns a good error number for the situation where
<p class="commentary firstcommentary"><a id="SP44" class="paragraph-anchor"></a><b>&#167;44. CantSee. </b>The <span class="extract"><span class="extract-syntax">CantSee</span></span> routine returns a good error number for the situation where
the last word looked at didn't seem to refer to any object in context.
</p>
@ -3213,7 +3245,7 @@ Thus game objects always triumph over scenery.)
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">e</span><span class="plain-syntax">;</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP44" class="paragraph-anchor"></a><b>&#167;44. Multiple Object List. </b>The <span class="extract"><span class="extract-syntax">MultiAdd</span></span> routine adds object <span class="extract"><span class="extract-syntax">o</span></span> to the multiple-object-list. This is
<p class="commentary firstcommentary"><a id="SP45" class="paragraph-anchor"></a><b>&#167;45. Multiple Object List. </b>The <span class="extract"><span class="extract-syntax">MultiAdd</span></span> routine adds object <span class="extract"><span class="extract-syntax">o</span></span> to the multiple-object-list. This is
only allowed to hold <span class="extract"><span class="extract-syntax">MATCH_LIST_WORDS</span></span> minus one objects at most, at which
point it ignores any new entries (and sets a global flag so that a warning
may later be printed if need be).
@ -3259,7 +3291,7 @@ out anything without the given attribute <span class="extract"><span class="extr
<span class="plain-syntax"> }</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP45" class="paragraph-anchor"></a><b>&#167;45. Scope. </b>The scope of an actor is the set of objects which he can refer to in typed
<p class="commentary firstcommentary"><a id="SP46" class="paragraph-anchor"></a><b>&#167;46. Scope. </b>The scope of an actor is the set of objects which he can refer to in typed
commands, which is normally the same as the set of visible objects; but this
can be modified. This is how I7 handles tokens like "[any room]".
</p>
@ -3327,7 +3359,7 @@ scope. (In I6, room names were not normally parsed.)
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ats_flag</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) { </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">HasLightSource</span><span class="plain-syntax">(</span><span class="identifier-syntax">obj</span><span class="plain-syntax">)==1) </span><span class="identifier-syntax">ats_hls</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">; }</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP46" class="paragraph-anchor"></a><b>&#167;46. Scope Level 0. </b>The two ways of starting up the scope machinery other than via the parser
<p class="commentary firstcommentary"><a id="SP47" class="paragraph-anchor"></a><b>&#167;47. Scope Level 0. </b>The two ways of starting up the scope machinery other than via the parser
code above.
</p>
@ -3353,7 +3385,7 @@ code above.
<span class="plain-syntax"> </span><span class="identifier-syntax">parser_one</span><span class="plain-syntax"> = </span><span class="identifier-syntax">x</span><span class="plain-syntax">; </span><span class="identifier-syntax">scope_reason</span><span class="plain-syntax"> = </span><span class="identifier-syntax">y</span><span class="plain-syntax">; </span><span class="identifier-syntax">actor</span><span class="plain-syntax"> = </span><span class="identifier-syntax">a</span><span class="plain-syntax">; </span><span class="identifier-syntax">actors_location</span><span class="plain-syntax"> = </span><span class="identifier-syntax">al</span><span class="plain-syntax">;</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP47" class="paragraph-anchor"></a><b>&#167;47. SearchScope. </b>Level 1. The method is:
<p class="commentary firstcommentary"><a id="SP48" class="paragraph-anchor"></a><b>&#167;48. SearchScope. </b>Level 1. The method is:
</p>
<ul class="items"><li>(a) If the context is a <span class="extract"><span class="extract-syntax">scope=...</span></span> token, then the search is delegated
@ -3438,7 +3470,7 @@ OPEN BOX only to be told that he can't see any such thing.)
<span class="plain-syntax"> </span><span class="identifier-syntax">EndActivity</span><span class="plain-syntax">(</span><span class="identifier-syntax">DECIDING_SCOPE_ACT</span><span class="plain-syntax">, </span><span class="identifier-syntax">actor</span><span class="plain-syntax">);</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP48" class="paragraph-anchor"></a><b>&#167;48. ScopeWithin. </b>Level 2. <span class="extract"><span class="extract-syntax">ScopeWithin</span></span> puts objects visible from within the <span class="extract"><span class="extract-syntax">domain</span></span> into scope.
<p class="commentary firstcommentary"><a id="SP49" class="paragraph-anchor"></a><b>&#167;49. ScopeWithin. </b>Level 2. <span class="extract"><span class="extract-syntax">ScopeWithin</span></span> puts objects visible from within the <span class="extract"><span class="extract-syntax">domain</span></span> into scope.
An item belonging to the <span class="extract"><span class="extract-syntax">domain</span></span> is placed in scope unless it is being
concealed by the <span class="extract"><span class="extract-syntax">domain</span></span>: and even then, if the <span class="extract"><span class="extract-syntax">domain</span></span> is the current
actor. Suppose Zorro conceals a book beneath his cloak: then the book is
@ -3465,7 +3497,7 @@ code doing so.
<span class="plain-syntax"> }</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP49" class="paragraph-anchor"></a><b>&#167;49. DoScopeActionAndRecurse. </b>Level 3.
<p class="commentary firstcommentary"><a id="SP50" class="paragraph-anchor"></a><b>&#167;50. DoScopeActionAndRecurse. </b>Level 3.
In all cases, the <span class="extract"><span class="extract-syntax">domain</span></span> itself is visited. There are then three possible
forms of recursion:
</p>
@ -3525,7 +3557,7 @@ so it retains its old I6 library interpretation.)
<span class="plain-syntax"> }</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP50" class="paragraph-anchor"></a><b>&#167;50. DoScopeAction. </b>Level 4. This is where we take whatever action is to be performed as the
<p class="commentary firstcommentary"><a id="SP51" class="paragraph-anchor"></a><b>&#167;51. DoScopeAction. </b>Level 4. This is where we take whatever action is to be performed as the
"visit" to each scoped object, and it's the bottom at last of the scope
mechanism.
</p>
@ -3550,7 +3582,7 @@ mechanism.
<span class="plain-syntax"> @</span><span class="identifier-syntax">pull</span><span class="plain-syntax"> </span><span class="identifier-syntax">scope_reason</span><span class="plain-syntax">; @</span><span class="identifier-syntax">pull</span><span class="plain-syntax"> </span><span class="identifier-syntax">parser_one</span><span class="plain-syntax">;</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP51" class="paragraph-anchor"></a><b>&#167;51. Parsing Object Names. </b>We now reach the final major block of code in the parser: the part which tries
<p class="commentary firstcommentary"><a id="SP52" class="paragraph-anchor"></a><b>&#167;52. Parsing Object Names. </b>We now reach the final major block of code in the parser: the part which tries
to match a given object's name(s) against the text at word position <span class="extract"><span class="extract-syntax">match_from</span></span>
in the player's command, and calls <span class="extract"><span class="extract-syntax">MakeMatch</span></span> if it succeeds. There are
basically four possibilities: ME, a pronoun such as IT, a name which doesn't
@ -3595,7 +3627,7 @@ cases, we pass the job down to <span class="extract"><span class="extract-syntax
<span class="plain-syntax"> }</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP52" class="paragraph-anchor"></a><b>&#167;52. TryGivenObject. </b><span class="extract"><span class="extract-syntax">TryGivenObject</span></span> tries to match as many words as possible in what has been
<p class="commentary firstcommentary"><a id="SP53" class="paragraph-anchor"></a><b>&#167;53. TryGivenObject. </b><span class="extract"><span class="extract-syntax">TryGivenObject</span></span> tries to match as many words as possible in what has been
typed to the given object, <span class="extract"><span class="extract-syntax">obj</span></span>. If it manages any words matched at all,
it calls <span class="extract"><span class="extract-syntax">MakeMatch</span></span> to say so, then returns the number of words (or 1
if it was a match because of inadequate input).
@ -3690,7 +3722,7 @@ if it was a match because of inadequate input).
<span class="plain-syntax"> </span><span class="reserved-syntax">jump</span><span class="plain-syntax"> </span><span class="identifier-syntax">MMbyPN</span><span class="plain-syntax">;</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP53" class="paragraph-anchor"></a><b>&#167;53. Refers. </b><span class="extract"><span class="extract-syntax">Refers</span></span> works out whether the word at number wnum can refer to the object
<p class="commentary firstcommentary"><a id="SP54" class="paragraph-anchor"></a><b>&#167;54. Refers. </b><span class="extract"><span class="extract-syntax">Refers</span></span> works out whether the word at number wnum can refer to the object
<span class="extract"><span class="extract-syntax">obj</span></span>, returning true or false. The standard method is to see if the word
is listed under the <span class="extract"><span class="extract-syntax">name</span></span> property for the object, but this is more
complex in languages other than English.
@ -3727,7 +3759,7 @@ complex in languages other than English.
<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="SP54" class="paragraph-anchor"></a><b>&#167;54. NounWord. </b><span class="extract"><span class="extract-syntax">NounWord</span></span> (which takes no arguments) returns:
<p class="commentary firstcommentary"><a id="SP55" class="paragraph-anchor"></a><b>&#167;55. NounWord. </b><span class="extract"><span class="extract-syntax">NounWord</span></span> (which takes no arguments) returns:
</p>
<ul class="items"><li>(a) 0 if the next word is not in the dictionary or is but does not carry the
@ -3750,7 +3782,7 @@ if it is a pronoun,
<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">;</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP55" class="paragraph-anchor"></a><b>&#167;55. TryNumber. </b><span class="extract"><span class="extract-syntax">TryNumber</span></span> takes word number <span class="extract"><span class="extract-syntax">wordnum</span></span> and tries to parse it as an (unsigned)
<p class="commentary firstcommentary"><a id="SP56" class="paragraph-anchor"></a><b>&#167;56. TryNumber. </b><span class="extract"><span class="extract-syntax">TryNumber</span></span> takes word number <span class="extract"><span class="extract-syntax">wordnum</span></span> and tries to parse it as an (unsigned)
decimal number or the name of a small number, returning
</p>
@ -3804,7 +3836,7 @@ are parsed.)
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">tot</span><span class="plain-syntax">;</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP56" class="paragraph-anchor"></a><b>&#167;56. Gender. </b><span class="extract"><span class="extract-syntax">GetGender</span></span> returns 0 if the given animate object is female, and 1 if male,
<p class="commentary firstcommentary"><a id="SP57" class="paragraph-anchor"></a><b>&#167;57. Gender. </b><span class="extract"><span class="extract-syntax">GetGender</span></span> returns 0 if the given animate object is female, and 1 if male,
and is abstracted as a routine in case something more elaborate is ever
needed.
</p>
@ -3834,7 +3866,7 @@ Manual}, 4th edition.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">case</span><span class="plain-syntax">;</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP57" class="paragraph-anchor"></a><b>&#167;57. Noticing Plurals. </b></p>
<p class="commentary firstcommentary"><a id="SP58" class="paragraph-anchor"></a><b>&#167;58. Noticing Plurals. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">[ </span><span class="identifier-syntax">DetectPluralWord</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </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="identifier-syntax">w</span><span class="plain-syntax"> </span><span class="identifier-syntax">swn</span><span class="plain-syntax"> </span><span class="identifier-syntax">outcome</span><span class="plain-syntax">;</span>
@ -3851,7 +3883,7 @@ Manual}, 4th edition.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">outcome</span><span class="plain-syntax">;</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP58" class="paragraph-anchor"></a><b>&#167;58. Pronoun Handling. </b></p>
<p class="commentary firstcommentary"><a id="SP59" class="paragraph-anchor"></a><b>&#167;59. Pronoun Handling. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">[ </span><span class="identifier-syntax">SetPronoun</span><span class="plain-syntax"> </span><span class="identifier-syntax">dword</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>
@ -3898,7 +3930,7 @@ Manual}, 4th edition.
<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="SP59" class="paragraph-anchor"></a><b>&#167;59. Yes/No Questions. </b></p>
<p class="commentary firstcommentary"><a id="SP60" class="paragraph-anchor"></a><b>&#167;60. Yes/No Questions. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">[ </span><span class="identifier-syntax">YesOrNo</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> </span><span class="identifier-syntax">j</span><span class="plain-syntax">;</span>
@ -3923,7 +3955,7 @@ Manual}, 4th edition.
<span class="plain-syntax">[ </span><span class="identifier-syntax">YES_OR_NO_QUESTION_INTERNAL_R</span><span class="plain-syntax">; ];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP60" class="paragraph-anchor"></a><b>&#167;60. Number Words. </b>Not much of a parsing routine: we look through an array of pairs of number
<p class="commentary firstcommentary"><a id="SP61" class="paragraph-anchor"></a><b>&#167;61. Number Words. </b>Not much of a parsing routine: we look through an array of pairs of number
words (single words) and their numeric equivalents.
</p>
@ -3935,7 +3967,7 @@ words (single words) and their numeric equivalents.
<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="SP61" class="paragraph-anchor"></a><b>&#167;61. Choose Objects. </b>This material, the final body of code in the parser, is an I7 addition.
<p class="commentary firstcommentary"><a id="SP62" class="paragraph-anchor"></a><b>&#167;62. Choose Objects. </b>This material, the final body of code in the parser, is an I7 addition.
The I6 parser leaves it to the user to provide a <span class="extract"><span class="extract-syntax">ChooseObjects</span></span> routine
to decide between possibilities when the situation is ambiguous. For I7
use, we provide a <span class="extract"><span class="extract-syntax">ChooseObjects</span></span> which essentially runs the "does the
@ -4103,13 +4135,13 @@ is defined in the Standard Rules, not here.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">2</span><span class="plain-syntax">;</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP62" class="paragraph-anchor"></a><b>&#167;62. Default Topic. </b>A default value for the I7 sort-of-kind "topic", which never matches.
<p class="commentary firstcommentary"><a id="SP63" class="paragraph-anchor"></a><b>&#167;63. Default Topic. </b>A default value for the I7 sort-of-kind "topic", which never matches.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">[ </span><span class="identifier-syntax">DefaultTopic</span><span class="plain-syntax">; </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">GPR_FAIL</span><span class="plain-syntax">; ];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP63" class="paragraph-anchor"></a><b>&#167;63. Recognition-only-GPR. </b>An I6 general parsing routine to look at words from the position marker
<p class="commentary firstcommentary"><a id="SP64" class="paragraph-anchor"></a><b>&#167;64. Recognition-only-GPR. </b>An I6 general parsing routine to look at words from the position marker
<span class="extract"><span class="extract-syntax">wn</span></span> in the player's command to see if they match the contents of the
text <span class="extract"><span class="extract-syntax">txt</span></span>, returning either <span class="extract"><span class="extract-syntax">GPR_PREPOSITION</span></span> or <span class="extract"><span class="extract-syntax">GPR_FAIL</span></span>
according to whether a match could be made. This is used when the an
@ -4163,7 +4195,7 @@ recognises an existing value: it doesn't parse a new one.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">GPR_PREPOSITION</span><span class="plain-syntax">;</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP64" class="paragraph-anchor"></a><b>&#167;64. RunRoutines. </b>This function may not be very well-named, but the idea is to take a property
<p class="commentary firstcommentary"><a id="SP65" class="paragraph-anchor"></a><b>&#167;65. RunRoutines. </b>This function may not be very well-named, but the idea is to take a property
of a given object and either to print it (and return <span class="extract"><span class="extract-syntax">true</span></span>) if it's a string,
and call it (and pass along its return value) if it's a routine. If the
object does not provide the property, we act on the default value for the
@ -4189,7 +4221,7 @@ address, returned by the <span class="extract"><span class="extract-syntax">.&am
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">obj</span><span class="plain-syntax">.</span><span class="identifier-syntax">prop</span><span class="plain-syntax">();</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP65" class="paragraph-anchor"></a><b>&#167;65. Setting the Player's Command. </b>In effect, the text typed most recently by the player is a sort of
<p class="commentary firstcommentary"><a id="SP66" class="paragraph-anchor"></a><b>&#167;66. Setting the Player's Command. </b>In effect, the text typed most recently by the player is a sort of
text already, though it isn't in text format, and doesn't live on
the heap.
</p>
@ -4211,7 +4243,7 @@ the heap.
<span class="plain-syntax"> </span><span class="identifier-syntax">TEXT_TY_Untransmute</span><span class="plain-syntax">(</span><span class="identifier-syntax">from_txt</span><span class="plain-syntax">, </span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">cp</span><span class="plain-syntax">);</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP66" class="paragraph-anchor"></a><b>&#167;66. Multiple Object List. </b>The parser uses one data structure which is really a list: but which can't
<p class="commentary firstcommentary"><a id="SP67" class="paragraph-anchor"></a><b>&#167;67. Multiple Object List. </b>The parser uses one data structure which is really a list: but which can't
be represented as such because the heap might not exist. This is the multiple
object list, which is used to handle commands like TAKE ALL by firing off a
sequence of actions with one of the objects taken from entries in turn of

View file

@ -56,7 +56,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">WorldModelKit</a></li><li><b>Actions Template</b></li></ul></div>
<p class="purpose">To try actions by people in the model world, processing the necessary rulebooks.</p>
<ul class="toc"><li><a href="S-act.html#SP1">&#167;1. Summary</a></li><li><a href="S-act.html#SP2">&#167;2. Action Data</a></li><li><a href="S-act.html#SP3">&#167;3. Requirements Bitmap</a></li><li><a href="S-act.html#SP4">&#167;4. Try Action</a></li><li><a href="S-act.html#SP5">&#167;5. I6 Angle Brackets</a></li><li><a href="S-act.html#SP6">&#167;6. Conversion</a></li><li><a href="S-act.html#SP7">&#167;7. Implicit Take</a></li><li><a href="S-act.html#SP8">&#167;8. Look After Going</a></li><li><a href="S-act.html#SP9">&#167;9. Abbreviated Room Description</a></li><li><a href="S-act.html#SP10">&#167;10. Begin Action</a></li><li><a href="S-act.html#SP11">&#167;11. Action Primitive</a></li><li><a href="S-act.html#SP12">&#167;12. Internal Rule</a></li><li><a href="S-act.html#SP13">&#167;13. Type Safety</a></li><li><a href="S-act.html#SP14">&#167;14. Basic Visibility Rule</a></li><li><a href="S-act.html#SP15">&#167;15. Basic Accessibility Rule</a></li><li><a href="S-act.html#SP16">&#167;16. Carrying Requirements Rule</a></li><li><a href="S-act.html#SP17">&#167;17. Standard Implicit Taking Rule</a></li><li><a href="S-act.html#SP18">&#167;18. Requested Actions Require Persuasion Rule</a></li><li><a href="S-act.html#SP19">&#167;19. Carry Out Requested Actions Rule</a></li><li><a href="S-act.html#SP20">&#167;20. Generic Verb Subroutine</a></li><li><a href="S-act.html#SP21">&#167;21. Work Out Details Of Specific Action Rule</a></li><li><a href="S-act.html#SP22">&#167;22. Actions Bitmap</a></li><li><a href="S-act.html#SP23">&#167;23. Printing Actions</a></li></ul><hr class="tocbar">
<ul class="toc"><li><a href="S-act.html#SP1">&#167;1. Summary</a></li><li><a href="S-act.html#SP2">&#167;2. Fake Actions</a></li><li><a href="S-act.html#SP3">&#167;3. Action Data</a></li><li><a href="S-act.html#SP4">&#167;4. Requirements Bitmap</a></li><li><a href="S-act.html#SP5">&#167;5. Try Action</a></li><li><a href="S-act.html#SP6">&#167;6. I6 Angle Brackets</a></li><li><a href="S-act.html#SP7">&#167;7. Conversion</a></li><li><a href="S-act.html#SP8">&#167;8. Implicit Take</a></li><li><a href="S-act.html#SP9">&#167;9. Look After Going</a></li><li><a href="S-act.html#SP10">&#167;10. Abbreviated Room Description</a></li><li><a href="S-act.html#SP11">&#167;11. Begin Action</a></li><li><a href="S-act.html#SP12">&#167;12. Action Primitive</a></li><li><a href="S-act.html#SP13">&#167;13. Internal Rule</a></li><li><a href="S-act.html#SP14">&#167;14. Type Safety</a></li><li><a href="S-act.html#SP15">&#167;15. Basic Visibility Rule</a></li><li><a href="S-act.html#SP16">&#167;16. Basic Accessibility Rule</a></li><li><a href="S-act.html#SP17">&#167;17. Carrying Requirements Rule</a></li><li><a href="S-act.html#SP18">&#167;18. Standard Implicit Taking Rule</a></li><li><a href="S-act.html#SP19">&#167;19. Requested Actions Require Persuasion Rule</a></li><li><a href="S-act.html#SP20">&#167;20. Carry Out Requested Actions Rule</a></li><li><a href="S-act.html#SP21">&#167;21. Generic Verb Subroutine</a></li><li><a href="S-act.html#SP22">&#167;22. Work Out Details Of Specific Action Rule</a></li><li><a href="S-act.html#SP23">&#167;23. Actions Bitmap</a></li><li><a href="S-act.html#SP24">&#167;24. Printing Actions</a></li></ul><hr class="tocbar">
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. Summary. </b>To review: an action is an impulse to do something by a person in the model
world. Commands such as DROP POTATO are converted into actions ("dropping
@ -105,7 +105,27 @@ for (i) to (vii), the alternative ways for actions to begin; and secondly
the common machinery into which all actions eventually pass.
</p>
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. Action Data. </b>This is perhaps a good place to document the <span class="extract"><span class="extract-syntax">ActionData</span></span> array, a convenient
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. Fake Actions. </b>Though sometimes useful for I6 coding tricks, fake actions &mdash; action numbers
not corresponding to any action, but different from those of valid actions,
and useable with a number of action syntaxes &mdash; are not conceptually present
in I7 source text. They can only really exist at the I6 level because I6 is
typeless; in I7 terms, there is no convenient kind of value which could
represent both actions and fake actions while protecting each from confusion
with the other.
</p>
<p class="commentary">The following fake actions from the I6 library have been dropped here:
<span class="extract"><span class="extract-syntax">##LetGo</span></span>, <span class="extract"><span class="extract-syntax">##Receive</span></span>, <span class="extract"><span class="extract-syntax">##ThrownAt</span></span>, <span class="extract"><span class="extract-syntax">##Prompt</span></span>, <span class="extract"><span class="extract-syntax">##Places</span></span>, <span class="extract"><span class="extract-syntax">##Objects</span></span>,
<span class="extract"><span class="extract-syntax">##Order</span></span>, <span class="extract"><span class="extract-syntax">##NotUnderstood</span></span>.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">Fake_Action</span><span class="plain-syntax"> </span><span class="identifier-syntax">ListMiscellany</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">Fake_Action</span><span class="plain-syntax"> </span><span class="identifier-syntax">Miscellany</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">Fake_Action</span><span class="plain-syntax"> </span><span class="identifier-syntax">PluralFound</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">Fake_Action</span><span class="plain-syntax"> </span><span class="identifier-syntax">TheSame</span><span class="plain-syntax">;</span>
</pre>
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>&#167;3. Action Data. </b>This is perhaps a good place to document the <span class="extract"><span class="extract-syntax">ActionData</span></span> array, a convenient
table of metadata about the actions. Since this is compiled by Inform, the
following structure can't be modified here without making matching changes
in Inform. <span class="extract"><span class="extract-syntax">ActionData</span></span> is an I6 <span class="extract"><span class="extract-syntax">table</span></span> containing a series of fixed-length
@ -142,7 +162,7 @@ means "the current action".
<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="SP3" class="paragraph-anchor"></a><b>&#167;3. Requirements Bitmap. </b>As noted above, the <span class="extract"><span class="extract-syntax">AD_REQUIREMENTS</span></span> field is a bitmap of flags for
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>&#167;4. Requirements Bitmap. </b>As noted above, the <span class="extract"><span class="extract-syntax">AD_REQUIREMENTS</span></span> field is a bitmap of flags for
various possible action requirements:
</p>
@ -170,7 +190,7 @@ various possible action requirements:
<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="SP4" class="paragraph-anchor"></a><b>&#167;4. Try Action. </b>This is method (ii) in the summary above.
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>&#167;5. Try Action. </b>This is method (ii) in the summary above.
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -220,7 +240,7 @@ various possible action requirements:
<span class="plain-syntax"> </span><span class="identifier-syntax">TrackActions</span><span class="plain-syntax">(</span><span class="reserved-syntax">true</span><span class="plain-syntax">, </span><span class="identifier-syntax">smeta</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. I6 Angle Brackets. </b>This is method (iii) in the summary above. The routine here has slightly
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>&#167;6. I6 Angle Brackets. </b>This is method (iii) in the summary above. The routine here has slightly
odd conventions and a curious name which would take too long to explain:
neither can be changed without amending the veneer code within the I6
compiler.
@ -233,7 +253,7 @@ compiler.
<span class="plain-syntax"> @</span><span class="identifier-syntax">pull</span><span class="plain-syntax"> </span><span class="identifier-syntax">inp2</span><span class="plain-syntax">; @</span><span class="identifier-syntax">pull</span><span class="plain-syntax"> </span><span class="identifier-syntax">inp1</span><span class="plain-syntax">;</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>&#167;6. Conversion. </b>This is method (iv) in the summary above.
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>&#167;7. Conversion. </b>This is method (iv) in the summary above.
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -266,7 +286,7 @@ compiler.
<span class="plain-syntax"> </span><span class="reserved-syntax">rtrue</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. Implicit Take. </b>This is method (vi) in the summary above.
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>&#167;8. Implicit Take. </b>This is method (vi) in the summary above.
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -286,7 +306,7 @@ compiler.
<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="SP8" class="paragraph-anchor"></a><b>&#167;8. Look After Going. </b>This is method (vii) in the summary above.
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>&#167;9. Look After Going. </b>This is method (vii) in the summary above.
</p>
<p class="commentary">Fundamentally, room descriptions arise through looking actions, but they
@ -302,7 +322,7 @@ SUPERBRIEF mode set.
<span class="plain-syntax"> </span><span class="identifier-syntax">AbbreviatedRoomDescription</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. Abbreviated Room Description. </b>This is used when we want a room description with the same abbreviation
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>&#167;10. Abbreviated Room Description. </b>This is used when we want a room description with the same abbreviation
conventions as after a going action, and we don't quite want a looking
action fully to take place. We nevertheless want to be sure that the
action variables for looking exist, and in particular, we want to set the
@ -353,7 +373,7 @@ runs through the specific action processing stage.
<span class="plain-syntax"> </span><span class="identifier-syntax">action</span><span class="plain-syntax"> = </span><span class="identifier-syntax">prior_action</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. Begin Action. </b>We now begin the second half of the segment: the machinery which handles
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>&#167;11. Begin Action. </b>We now begin the second half of the segment: the machinery which handles
all actions.
</p>
@ -381,7 +401,7 @@ and then call <span class="extract"><span class="extract-syntax">ActionPrimitive
<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>
</pre>
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>&#167;11. Action Primitive. </b>This is somewhat different from the I6 library counterpart which gives it
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>&#167;12. Action Primitive. </b>This is somewhat different from the I6 library counterpart which gives it
its name, but the idea is the same. It has no arguments at all: everything
it needs to know is now stored in global variables. The routine looks long,
but really contains little: it's all just book-keeping, printing debugging
@ -464,13 +484,13 @@ more discussion of this.
<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="SP12" class="paragraph-anchor"></a><b>&#167;12. Internal Rule. </b>Provided only as a hook on which to hang responses.
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>&#167;13. Internal Rule. </b>Provided only as a hook on which to hang responses.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">[ </span><span class="identifier-syntax">ACTION_PROCESSING_INTERNAL_R</span><span class="plain-syntax">; ];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>&#167;13. Type Safety. </b>Some basic action requirements have to be met before we can go any further:
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>&#167;14. Type Safety. </b>Some basic action requirements have to be met before we can go any further:
if they aren't, then it isn't type-safe even to run the action processing
rulebook.
</p>
@ -575,7 +595,7 @@ or "supplying a missing second noun" activities to fill the void.
<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="SP14" class="paragraph-anchor"></a><b>&#167;14. Basic Visibility Rule. </b>This is one of the I6 primitive rules in the action processing rulebook:
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>&#167;15. Basic Visibility Rule. </b>This is one of the I6 primitive rules in the action processing rulebook:
see the account in the Standard Rules for details.
</p>
@ -603,7 +623,7 @@ so that it would be unfair to apply the rule to any other person.
<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="SP15" class="paragraph-anchor"></a><b>&#167;15. Basic Accessibility Rule. </b>This is one of the I6 primitive rules in the action processing rulebook:
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>&#167;16. Basic Accessibility Rule. </b>This is one of the I6 primitive rules in the action processing rulebook:
see the account in the Standard Rules for details.
</p>
@ -650,7 +670,7 @@ see the account in the Standard Rules for details.
<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. Carrying Requirements Rule. </b>This is one of the I6 primitive rules in the action processing rulebook:
<p class="commentary firstcommentary"><a id="SP17" class="paragraph-anchor"></a><b>&#167;17. Carrying Requirements Rule. </b>This is one of the I6 primitive rules in the action processing rulebook:
see the account in the Standard Rules for details.
</p>
@ -685,7 +705,7 @@ see the account in the Standard Rules for details.
<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. Standard Implicit Taking Rule. </b></p>
<p class="commentary firstcommentary"><a id="SP18" class="paragraph-anchor"></a><b>&#167;18. Standard Implicit Taking Rule. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">[ </span><span class="identifier-syntax">STANDARD_IMPLICIT_TAKING_R</span><span class="plain-syntax">;</span>
@ -693,7 +713,7 @@ see the account in the Standard Rules for details.
<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="SP18" class="paragraph-anchor"></a><b>&#167;18. Requested Actions Require Persuasion Rule. </b>This is one of the I6 primitive rules in the action processing rulebook:
<p class="commentary firstcommentary"><a id="SP19" class="paragraph-anchor"></a><b>&#167;19. Requested Actions Require Persuasion Rule. </b>This is one of the I6 primitive rules in the action processing rulebook:
see the account in the Standard Rules for details.
</p>
@ -715,7 +735,7 @@ see the account in the Standard Rules for details.
<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="SP19" class="paragraph-anchor"></a><b>&#167;19. Carry Out Requested Actions Rule. </b>This is one of the I6 primitive rules in the action processing rulebook:
<p class="commentary firstcommentary"><a id="SP20" class="paragraph-anchor"></a><b>&#167;20. Carry Out Requested Actions Rule. </b>This is one of the I6 primitive rules in the action processing rulebook:
see the account in the Standard Rules for details.
</p>
@ -737,7 +757,7 @@ see the account in the Standard Rules for details.
<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="SP20" class="paragraph-anchor"></a><b>&#167;20. Generic Verb Subroutine. </b>In I6, actions are carried out by routines with names like <span class="extract"><span class="extract-syntax">TakeSub</span></span>,
<p class="commentary firstcommentary"><a id="SP21" class="paragraph-anchor"></a><b>&#167;21. Generic Verb Subroutine. </b>In I6, actions are carried out by routines with names like <span class="extract"><span class="extract-syntax">TakeSub</span></span>,
consisting of <span class="extract"><span class="extract-syntax">-Sub</span></span> tacked on to the action name <span class="extract"><span class="extract-syntax">Take</span></span>. <span class="extract"><span class="extract-syntax">Sub</span></span> stands for
"subroutine": this is all a convention going back to Inform 1, which was
in 1993 practically an assembler. In the I6 code generated by I7, every
@ -767,7 +787,7 @@ carry out and report rulebooks.
<span class="plain-syntax"> </span><span class="reserved-syntax">rtrue</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. Work Out Details Of Specific Action Rule. </b>This is one of the I6 primitive rules in the specific action processing
<p class="commentary firstcommentary"><a id="SP22" class="paragraph-anchor"></a><b>&#167;22. Work Out Details Of Specific Action Rule. </b>This is one of the I6 primitive rules in the specific action processing
rulebook, and it's basically a trick to allow information known to the
<span class="extract"><span class="extract-syntax">GenericVerbSub</span></span> routine to be passed down as rulebook variables for the
specific action-processing rules &mdash; in effect allowing us to pass not
@ -785,7 +805,7 @@ flags, plus the three specific rulebooks needed to process the action.
<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="SP22" class="paragraph-anchor"></a><b>&#167;22. Actions Bitmap. </b>This is a fairly large bitmap recording which actions have succeeded thus
<p class="commentary firstcommentary"><a id="SP23" class="paragraph-anchor"></a><b>&#167;23. Actions Bitmap. </b>This is a fairly large bitmap recording which actions have succeeded thus
far on which nouns. It was to some extent an early attempt at implementing
a past-tense system; I'm not at all sure it was successful, since it is
hindered by certain restrictions &mdash; it only records action/noun combinations,
@ -833,7 +853,7 @@ to what the user might expect, which is unfortunate.
<span class="plain-syntax"> }</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP23" class="paragraph-anchor"></a><b>&#167;23. Printing Actions. </b>This is really for debugging purposes, but also provides us with a way to
<p class="commentary firstcommentary"><a id="SP24" class="paragraph-anchor"></a><b>&#167;24. Printing Actions. </b>This is really for debugging purposes, but also provides us with a way to
print a stored action, for instance, or to print an action name value.
(For instance, printing an action name might result in "taking"; printing
a whole action might produce "Henry taking the grapefruit".)

View file

@ -188,7 +188,6 @@ based on character cells.
<span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">noun</span><span class="plain-syntax">; </span><span class="comment-syntax">= I7 "noun"</span>
<span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">second</span><span class="plain-syntax">; </span><span class="comment-syntax">= I7 "second noun"</span>
<span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">keep_silent</span><span class="plain-syntax">; </span><span class="comment-syntax">true if current action is being tried silently</span>
<span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">etype</span><span class="plain-syntax">; </span><span class="comment-syntax">parser error number if command not recognised</span>
<span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">trace_actions</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">untouchable_object</span><span class="plain-syntax">;</span>

View file

@ -75,12 +75,16 @@ function togglePopup(material_id) {
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. </b></p>
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">SYNOPTIC_HIERARCHY_MADE_ITHBIT</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">KIT_HIERARCHY_MADE_ITHBIT</span><span class="plain-syntax"> </span><span class="constant-syntax">2</span>
</pre>
<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">inter_tree</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">inter_warehouse</span><span class="plain-syntax"> *</span><span class="identifier-syntax">housed</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">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">root_node</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">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">root_package</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">building_site</span><span class="plain-syntax"> </span><span class="identifier-syntax">site</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">history_bits</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">inter_tree</span><span class="plain-syntax">;</span>
</pre>
@ -102,6 +106,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">root_node</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">package</span><span class="plain-syntax"> = </span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">root_package</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-tw.html#SP3" class="function-link"><span class="function-syntax">Inter::Warehouse::attribute_resource</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">housed</span><span class="plain-syntax">, </span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">root_package</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Site::clear</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">I</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">history_bits</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>

View file

@ -204,7 +204,7 @@ and caches needed to index an Inter tree.
<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">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"no tree to index"</span><span class="plain-syntax">);</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="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">index_session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">session</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">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">session</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">inv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Synoptic::inv</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">session</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">inv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">MakeSynopticModuleStage::take_inventory</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">session</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">lexicon</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">session</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">set_of_instances</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">session</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">list_of_scenes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>

View file

@ -262,7 +262,7 @@ we may need to keep multiple sets of faux instances, one for each tree. So:
<span class="plain-syntax"> </span><span class="identifier-syntax">session</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">set_of_instances</span><span class="plain-syntax"> = </span><span class="identifier-syntax">faux_set</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP6" class="function-link"><span class="function-syntax">Indexing::get_inventory</span></a><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">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">instance_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">instance_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">MakeSynopticModuleStage::module_order</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">instance_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_object"</span><span class="plain-syntax">))</span>

View file

@ -115,7 +115,7 @@ which are inside <span class="extract"><span class="extract-syntax">_scene</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><a href="1-ia.html#SP6" class="function-link"><span class="function-syntax">Indexing::get_tree</span></a><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">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP6" class="function-link"><span class="function-syntax">Indexing::get_inventory</span></a><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">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">scene_nodes</span><span class="plain-syntax">, </span><a href="2-fs.html#SP3" class="function-link"><span class="function-syntax">FauxScenes::scene_order</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">rulebook_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">rulebook_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">MakeSynopticModuleStage::module_order</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">scene_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">scene_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">scene_nodes</span><span class="plain-syntax">)</span>

View file

@ -144,7 +144,7 @@ order, then sorted.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">verb_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">verb_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">MakeSynopticModuleStage::module_order</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">verb_nodes</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>

View file

@ -81,8 +81,8 @@ so we do little more than tabulate that data here.
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ArithmeticElement::render</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">ArithmeticElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</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">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP6" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><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">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP6" class="function-link"><span class="function-syntax">Indexing::get_inventory</span></a><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">TreeLists::sort</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="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">multiplication_rule_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</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="identifier-syntax">MakeSynopticModuleStage::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">multiplication_rule_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">MakeSynopticModuleStage::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_TAG</span><span class="plain-syntax">(</span><span class="string-syntax">"hr"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-ae2.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Index the rubric about quasinumerical kinds</span><span class="named-paragraph-number">1.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-ae2.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Index the table of quasinumerical kinds</span><span class="named-paragraph-number">1.2</span></a></span><span class="plain-syntax">;</span>

View file

@ -89,7 +89,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">Localisation::roman</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Index.Elements.Bh.None"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</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">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">named_action_pattern_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">named_action_pattern_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">MakeSynopticModuleStage::module_order</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">named_action_pattern_nodes</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">name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_optional_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>

View file

@ -83,8 +83,8 @@ and it is quite dense with information.
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ChartElement::render</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">ChartElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</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">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP6" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><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">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP6" class="function-link"><span class="function-syntax">Indexing::get_inventory</span></a><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">TreeLists::sort</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="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">instance_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</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="identifier-syntax">MakeSynopticModuleStage::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">instance_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">MakeSynopticModuleStage::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::begin_wide_html_table</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">pass</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-ce2.html#SP1_3" class="named-paragraph-link"><span class="named-paragraph">Add a dotty row to the chart of kinds</span><span class="named-paragraph-number">1.3</span></a></span><span class="plain-syntax">;</span>

View file

@ -81,8 +81,8 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP6" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><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_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP6" class="function-link"><span class="function-syntax">Indexing::get_tree</span></a><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">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP6" class="function-link"><span class="function-syntax">Indexing::get_inventory</span></a><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">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">extension_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::category_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">heading_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">extension_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">MakeSynopticModuleStage::category_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">heading_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">MakeSynopticModuleStage::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-ce4.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Write a sort of half-title page</span><span class="named-paragraph-number">1.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-ce4.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Index the headings</span><span class="named-paragraph-number">1.2</span></a></span><span class="plain-syntax">;</span>

View file

@ -80,7 +80,7 @@ function togglePopup(material_id) {
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EventsElement::render</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">EventsElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</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">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP6" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><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">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP6" class="function-link"><span class="function-syntax">Indexing::get_inventory</span></a><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">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">rule_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">rule_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">MakeSynopticModuleStage::module_order</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">when_count</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">tt_count</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-ee.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Index events with no specific time</span><span class="named-paragraph-number">1.1</span></a></span><span class="plain-syntax">;</span>

View file

@ -82,8 +82,8 @@ really, and most of the code here is just to arrange them in some logical order.
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP6" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><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_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP6" class="function-link"><span class="function-syntax">Indexing::get_tree</span></a><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">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP6" class="function-link"><span class="function-syntax">Indexing::get_inventory</span></a><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">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">rulebook_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">activity_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">rulebook_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">MakeSynopticModuleStage::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">activity_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">MakeSynopticModuleStage::module_order</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">E</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">E</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">module_nodes</span><span class="plain-syntax">)</span>
@ -101,7 +101,7 @@ really, and most of the code here is just to arrange them in some logical order.
<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">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rb_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">rb_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">rulebook_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">Synoptic::module_containing</span><span class="plain-syntax">(</span><span class="identifier-syntax">rb_pack</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">package_head</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">MakeSynopticModuleStage::module_containing</span><span class="plain-syntax">(</span><span class="identifier-syntax">rb_pack</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">package_head</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">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">rb_pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^automatically_generated"</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><span class="identifier-syntax">c</span><span class="plain-syntax">++ == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="3-ee2.html#SP1_1_1" class="named-paragraph-link"><span class="named-paragraph">Heading for these</span><span class="named-paragraph-number">1.1.1</span></a></span><span class="plain-syntax">;</span>
@ -111,7 +111,7 @@ really, and most of the code here is just to arrange them in some logical order.
<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">av_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">av_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">activity_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">Synoptic::module_containing</span><span class="plain-syntax">(</span><span class="identifier-syntax">av_pack</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">package_head</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">MakeSynopticModuleStage::module_containing</span><span class="plain-syntax">(</span><span class="identifier-syntax">av_pack</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">package_head</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">c</span><span class="plain-syntax">++ == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="3-ee2.html#SP1_1_1" class="named-paragraph-link"><span class="named-paragraph">Heading for these</span><span class="named-paragraph-number">1.1.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-ir.html#SP15" class="function-link"><span class="function-syntax">IndexRules::activity_box</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">av_pack</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>

View file

@ -83,9 +83,9 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP6" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><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_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP6" class="function-link"><span class="function-syntax">Indexing::get_tree</span></a><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">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP6" class="function-link"><span class="function-syntax">Indexing::get_inventory</span></a><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">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">figure_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">sound_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">file_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">figure_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">MakeSynopticModuleStage::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">sound_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">MakeSynopticModuleStage::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">file_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">MakeSynopticModuleStage::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-fe.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Index the figures</span><span class="named-paragraph-number">1.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-fe.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Index the sounds</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="3-fe.html#SP1_3" class="named-paragraph-link"><span class="named-paragraph">Index the files</span><span class="named-paragraph-number">1.3</span></a></span><span class="plain-syntax">;</span>

View file

@ -79,7 +79,7 @@ function togglePopup(material_id) {
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">GroupedElement::render</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">GroupedElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</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">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP6" class="function-link"><span class="function-syntax">Indexing::get_inventory</span></a><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">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">action_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">action_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">MakeSynopticModuleStage::module_order</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">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="identifier-syntax">current_area</span><span class="plain-syntax"> = </span><span class="identifier-syntax">I</span><span class="string-syntax">"___no_area___"</span><span class="plain-syntax">;</span>
@ -129,7 +129,7 @@ page for each action.
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP6" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><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_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP6" class="function-link"><span class="function-syntax">Indexing::get_tree</span></a><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">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP6" class="function-link"><span class="function-syntax">Indexing::get_inventory</span></a><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">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">action_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">action_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">MakeSynopticModuleStage::module_order</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">an_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">an_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">action_nodes</span><span class="plain-syntax">) {</span>

View file

@ -82,7 +82,7 @@ technical implementation rather than the content of a work.
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP6" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><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_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP6" class="function-link"><span class="function-syntax">Indexing::get_tree</span></a><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">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP6" class="function-link"><span class="function-syntax">Indexing::get_inventory</span></a><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">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">use_option_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">use_option_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">MakeSynopticModuleStage::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-ie.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Show the virtual machine compiled for</span><span class="named-paragraph-number">1.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-ie.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Show the use options</span><span class="named-paragraph-number">1.2</span></a></span><span class="plain-syntax">;</span>

View file

@ -80,7 +80,7 @@ function togglePopup(material_id) {
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RelationsElement::render</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">RelationsElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</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">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP6" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><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">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP6" class="function-link"><span class="function-syntax">Indexing::get_inventory</span></a><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">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">relation_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">relation_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">MakeSynopticModuleStage::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::begin_plain_html_table</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>

View file

@ -79,7 +79,7 @@ function togglePopup(material_id) {
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RulesForScenesElement::render</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">RulesForScenesElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</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">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP6" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><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">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP6" class="function-link"><span class="function-syntax">Indexing::get_inventory</span></a><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">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">rulebook_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">rulebook_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">MakeSynopticModuleStage::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Localisation::bold</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Index.Elements.RS.Machinery"</span><span class="plain-syntax">);</span>

View file

@ -81,8 +81,8 @@ their contents in logical order.
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">StandardsElement::render</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">StandardsElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</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">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP6" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><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">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP6" class="function-link"><span class="function-syntax">Indexing::get_inventory</span></a><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">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">rulebook_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">activity_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">rulebook_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">MakeSynopticModuleStage::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">activity_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">MakeSynopticModuleStage::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-se.html#SP1_4" class="named-paragraph-link"><span class="named-paragraph">Index the segment for the main action rulebooks</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="3-se.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Index the segment for the sequence of play rulebooks</span><span class="named-paragraph-number">1.2</span></a></span><span class="plain-syntax">;</span>

View file

@ -82,14 +82,14 @@ main source text, all the tables in the Standard Rules, and so on.
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TablesElement::render</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">TablesElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</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">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP6" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><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">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP6" class="function-link"><span class="function-syntax">Indexing::get_inventory</span></a><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">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">table_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::category_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">table_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">MakeSynopticModuleStage::category_order</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">current_mod</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">mc</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">first_ext</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">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">cat</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="identifier-syntax">open_cat</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">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">with_cat</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">; </span><span class="identifier-syntax">with_cat</span><span class="plain-syntax"> &lt;= </span><span class="constant-syntax">3</span><span class="plain-syntax">; </span><span class="identifier-syntax">with_cat</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">table_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">table_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">table_nodes</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">mod</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Synoptic::module_containing</span><span class="plain-syntax">(</span><span class="identifier-syntax">table_pack</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">package_head</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">mod</span><span class="plain-syntax"> = </span><span class="identifier-syntax">MakeSynopticModuleStage::module_containing</span><span class="plain-syntax">(</span><span class="identifier-syntax">table_pack</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">package_head</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">mod</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">cat</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">mod</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^category"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cat</span><span class="plain-syntax"> == </span><span class="identifier-syntax">with_cat</span><span class="plain-syntax">) {</span>

View file

@ -81,9 +81,9 @@ quite different.
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ValuesElement::render</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">ValuesElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</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">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP6" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><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">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP6" class="function-link"><span class="function-syntax">Indexing::get_inventory</span></a><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">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">variable_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">variable_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">MakeSynopticModuleStage::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-ve.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Index the variables</span><span class="named-paragraph-number">1.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">equation_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">equation_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">MakeSynopticModuleStage::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-ve.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Index the equations</span><span class="named-paragraph-number">1.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>

View file

@ -84,10 +84,10 @@ which take more than 1/1000th of the total running time.
<pre class="undisplayed-code all-displayed-code code-font">
<span class="plain-syntax">100.0% in inform7 run</span>
<span class="plain-syntax"> 55.6% in compilation to Inter</span>
<span class="plain-syntax"> 40.1% in </span><a href="../core-module/1-htc.html#SP9" class="internal">Sequence::undertake_queued_tasks</a>
<span class="plain-syntax"> 57.1% in compilation to Inter</span>
<span class="plain-syntax"> 41.5% in </span><a href="../core-module/1-htc.html#SP9" class="internal">Sequence::undertake_queued_tasks</a>
<span class="plain-syntax"> 3.5% in </span><a href="../assertions-module/2-ptmn.html#SP1" class="internal">MajorNodes::pre_pass</a>
<span class="plain-syntax"> 2.4% in </span><a href="../assertions-module/2-ptmn.html#SP1" class="internal">MajorNodes::pass_1</a>
<span class="plain-syntax"> 2.6% in </span><a href="../assertions-module/2-ptmn.html#SP1" class="internal">MajorNodes::pass_1</a>
<span class="plain-syntax"> 2.1% in </span><a href="../runtime-module/6-pi.html#SP1" class="internal">RTPhrasebook::compile_entries</a>
<span class="plain-syntax"> 1.3% in </span><a href="../assertions-module/5-id.html#SP4" class="internal">ImperativeDefinitions::assess_all</a>
<span class="plain-syntax"> 1.2% in </span><a href="../runtime-module/5-kc.html#SP10" class="internal">RTKindConstructors::compile</a>
@ -101,21 +101,18 @@ which take more than 1/1000th of the total running time.
<span class="plain-syntax"> 0.1% in </span><a href="../runtime-module/5-kc.html#SP10_7" class="internal">RTKindConstructors::compile_permissions</a>
<span class="plain-syntax"> 0.1% in </span><a href="../core-module/1-wtc.html#SP9" class="internal">Task::make_built_in_kind_constructors</a>
<span class="plain-syntax"> 2.0% not specifically accounted for</span>
<span class="plain-syntax"> 42.3% in running Inter pipeline</span>
<span class="plain-syntax"> 11.9% in step preparation</span>
<span class="plain-syntax"> 9.7% in inter step 7/16: consolidate-text</span>
<span class="plain-syntax"> 8.2% in inter step 6/16: load-binary-kits</span>
<span class="plain-syntax"> 6.9% in inter step 16/16: generate inform6 -&gt; auto.inf</span>
<span class="plain-syntax"> 1.5% in inter step 11/16: make-identifiers-unique</span>
<span class="plain-syntax"> 0.4% in inter step 12/16: reconcile-verbs</span>
<span class="plain-syntax"> 0.3% in inter step 14/16: eliminate-redundant-operations</span>
<span class="plain-syntax"> 0.3% in inter step 5/16: assimilate</span>
<span class="plain-syntax"> 0.3% in inter step 8/16: resolve-external-symbols</span>
<span class="plain-syntax"> 0.1% in inter step 10/16: detect-indirect-calls</span>
<span class="plain-syntax"> 0.1% in inter step 13/16: eliminate-redundant-labels</span>
<span class="plain-syntax"> 0.1% in inter step 3/16: parse-linked-matter</span>
<span class="plain-syntax"> 0.1% in inter step 4/16: resolve-conditional-compilation</span>
<span class="plain-syntax"> 0.1% in inter step 9/16: inspect-plugs</span>
<span class="plain-syntax"> 40.8% in running Inter pipeline</span>
<span class="plain-syntax"> 10.8% in step preparation</span>
<span class="plain-syntax"> 10.2% in inter step 6/14: make-synoptic-module</span>
<span class="plain-syntax"> 8.0% in inter step 5/14: load-binary-kits</span>
<span class="plain-syntax"> 7.1% in inter step 14/14: generate inform6 -&gt; auto.inf</span>
<span class="plain-syntax"> 1.5% in inter step 10/14: make-identifiers-unique</span>
<span class="plain-syntax"> 0.3% in inter step 13/14: eliminate-redundant-operations</span>
<span class="plain-syntax"> 0.3% in inter step 4/14: compile-splats</span>
<span class="plain-syntax"> 0.3% in inter step 7/14: shorten-wiring</span>
<span class="plain-syntax"> 0.1% in inter step 11/14: reconcile-verbs</span>
<span class="plain-syntax"> 0.1% in inter step 12/14: eliminate-redundant-labels</span>
<span class="plain-syntax"> 0.1% in inter step 9/14: detect-indirect-calls</span>
<span class="plain-syntax"> 1.7% not specifically accounted for</span>
<span class="plain-syntax"> 1.7% in supervisor</span>
<span class="plain-syntax"> 0.4% not specifically accounted for</span>
@ -127,16 +124,16 @@ represent less than 1/1000th of the total.
</p>
<pre class="undisplayed-code all-displayed-code code-font">
<span class="plain-syntax">Total memory consumption was 400127K = 391 MB</span>
<span class="plain-syntax">Total memory consumption was 404027K = 395 MB</span>
<span class="plain-syntax">60.9% was used for 2026653 objects, in 380059 frames in 305 x 800K = 244000K = 238 MB:</span>
<span class="plain-syntax">61.3% was used for 2026237 objects, in 380039 frames in 310 x 800K = 248000K = 242 MB:</span>
<span class="plain-syntax"> 10.2% inter_tree_node_array 58 x 8192 = 475136 objects, 41813824 bytes</span>
<span class="plain-syntax"> 7.2% text_stream_array 5302 x 100 = 530200 objects, 29860864 bytes</span>
<span class="plain-syntax"> 4.7% linked_list 34789 objects, 19481840 bytes</span>
<span class="plain-syntax"> 3.9% inter_symbol_array 140 x 1024 = 143360 objects, 16060800 bytes</span>
<span class="plain-syntax"> 10.1% inter_tree_node_array 58 x 8192 = 475136 objects, 41813824 bytes</span>
<span class="plain-syntax"> 7.2% text_stream_array 5298 x 100 = 529800 objects, 29838336 bytes</span>
<span class="plain-syntax"> 4.7% linked_list 34785 objects, 19479600 bytes</span>
<span class="plain-syntax"> 4.1% inter_symbol_array 140 x 1024 = 143360 objects, 17207680 bytes</span>
<span class="plain-syntax"> 2.5% parse_node 129462 objects, 10356960 bytes</span>
<span class="plain-syntax"> 1.8% verb_conjugation 160 objects, 7425280 bytes</span>
<span class="plain-syntax"> 1.7% verb_conjugation 160 objects, 7425280 bytes</span>
<span class="plain-syntax"> 1.3% parse_node_annotation_array 345 x 500 = 172500 objects, 5531040 bytes</span>
<span class="plain-syntax"> 0.8% pcalc_prop_array 25 x 1000 = 25000 objects, 3400800 bytes</span>
<span class="plain-syntax"> 0.8% inter_name_array 69 x 1000 = 69000 objects, 3314208 bytes</span>
@ -147,7 +144,7 @@ represent less than 1/1000th of the total.
<span class="plain-syntax"> 0.4% package_request 21139 objects, 1860232 bytes</span>
<span class="plain-syntax"> 0.4% vocabulary_entry_array 161 x 100 = 16100 objects, 1808352 bytes</span>
<span class="plain-syntax"> 0.4% inter_symbols_table 26570 objects, 1700480 bytes</span>
<span class="plain-syntax"> 0.3% dictionary 33308 objects, 1598784 bytes</span>
<span class="plain-syntax"> 0.3% dictionary 33310 objects, 1598880 bytes</span>
<span class="plain-syntax"> 0.3% match_trie_array 11 x 1000 = 11000 objects, 1496352 bytes</span>
<span class="plain-syntax"> 0.3% i6_schema_array 23 x 100 = 2300 objects, 1380736 bytes</span>
<span class="plain-syntax"> 0.3% dict_entry_array 423 x 100 = 42300 objects, 1367136 bytes</span>
@ -222,12 +219,12 @@ represent less than 1/1000th of the total.
<span class="plain-syntax"> ---- verb_sense 403 objects, 29016 bytes</span>
<span class="plain-syntax"> ---- action_pattern_array 7 x 100 = 700 objects, 28224 bytes</span>
<span class="plain-syntax"> ---- shared_variable_set_array 6 x 100 = 600 objects, 24192 bytes</span>
<span class="plain-syntax"> ---- pipeline_step 16 objects, 21632 bytes</span>
<span class="plain-syntax"> ---- backdrops_data 670 objects, 21440 bytes</span>
<span class="plain-syntax"> ---- action_name 90 objects, 20160 bytes</span>
<span class="plain-syntax"> ---- nonlocal_variable 93 objects, 20088 bytes</span>
<span class="plain-syntax"> ---- property 146 objects, 19856 bytes</span>
<span class="plain-syntax"> ---- timed_rules_rfd_data 400 objects, 19200 bytes</span>
<span class="plain-syntax"> ---- pipeline_step 14 objects, 18928 bytes</span>
<span class="plain-syntax"> ---- method 374 objects, 17952 bytes</span>
<span class="plain-syntax"> ---- pcalc_prop_deferral 86 objects, 17888 bytes</span>
<span class="plain-syntax"> ---- instance 167 objects, 17368 bytes</span>
@ -238,12 +235,12 @@ represent less than 1/1000th of the total.
<span class="plain-syntax"> ---- action_name_list_array 1 x 1000 objects, 16032 bytes</span>
<span class="plain-syntax"> ---- adjective 137 objects, 15344 bytes</span>
<span class="plain-syntax"> ---- generated_segment 14 objects, 14784 bytes</span>
<span class="plain-syntax"> ---- pathname 332 objects, 13280 bytes</span>
<span class="plain-syntax"> ---- booking_list 407 objects, 13024 bytes</span>
<span class="plain-syntax"> ---- pathname 324 objects, 12960 bytes</span>
<span class="plain-syntax"> ---- adjective_iname_holder 320 objects, 12800 bytes</span>
<span class="plain-syntax"> ---- uniqueness_count 451 objects, 10824 bytes</span>
<span class="plain-syntax"> ---- filename 246 objects, 9840 bytes</span>
<span class="plain-syntax"> ---- stopwatch_timer 113 objects, 9040 bytes</span>
<span class="plain-syntax"> ---- stopwatch_timer 111 objects, 8880 bytes</span>
<span class="plain-syntax"> ---- equation_node 68 objects, 7616 bytes</span>
<span class="plain-syntax"> ---- hierarchy_attachment_point 77 objects, 7392 bytes</span>
<span class="plain-syntax"> ---- understanding_item_array 3 x 100 = 300 objects, 7296 bytes</span>
@ -295,21 +292,21 @@ represent less than 1/1000th of the total.
<span class="plain-syntax"> ---- direction_inference_data 30 objects, 1200 bytes</span>
<span class="plain-syntax"> ---- target_vm 8 objects, 1152 bytes</span>
<span class="plain-syntax"> ---- tree_inventory_item 28 objects, 1120 bytes</span>
<span class="plain-syntax"> ---- pipeline_stage 22 objects, 1056 bytes</span>
<span class="plain-syntax"> ---- runtime_kind_structure 13 objects, 1040 bytes</span>
<span class="plain-syntax"> ---- quantifier 16 objects, 1024 bytes</span>
<span class="plain-syntax"> ---- inbuild_requirement 25 objects, 1000 bytes</span>
<span class="plain-syntax"> ---- submodule_identity 30 objects, 960 bytes</span>
<span class="plain-syntax"> ---- named_rulebook_outcome 15 objects, 960 bytes</span>
<span class="plain-syntax"> ---- submodule_identity 30 objects, 960 bytes</span>
<span class="plain-syntax"> ---- pipeline_stage 20 objects, 960 bytes</span>
<span class="plain-syntax"> ---- control_structure_phrase 12 objects, 864 bytes</span>
<span class="plain-syntax"> ---- cached_understanding 21 objects, 840 bytes</span>
<span class="plain-syntax"> ---- phrase_option_array 1 x 100 objects, 824 bytes</span>
<span class="plain-syntax"> ---- inter_data_type 14 objects, 784 bytes</span>
<span class="plain-syntax"> ---- inbuild_search_result 18 objects, 720 bytes</span>
<span class="plain-syntax"> ---- internal_test 15 objects, 720 bytes</span>
<span class="plain-syntax"> ---- inbuild_search_result 18 objects, 720 bytes</span>
<span class="plain-syntax"> ---- inform_language 6 objects, 672 bytes</span>
<span class="plain-syntax"> ---- relation_guard 5 objects, 640 bytes</span>
<span class="plain-syntax"> ---- inter_warehouse_room 10 objects, 640 bytes</span>
<span class="plain-syntax"> ---- relation_guard 5 objects, 640 bytes</span>
<span class="plain-syntax"> ---- code_generation 1 object, 576 bytes</span>
<span class="plain-syntax"> ---- rulebook_outcome 17 objects, 544 bytes</span>
<span class="plain-syntax"> ---- small_word_set 11 objects, 528 bytes</span>
@ -364,18 +361,18 @@ represent less than 1/1000th of the total.
<span class="plain-syntax"> ---- by_function_bp_data 1 object, 40 bytes</span>
<span class="plain-syntax"> ---- kind_template_definition 1 object, 40 bytes</span>
<span class="plain-syntax">39.0% was used for memory not allocated for objects:</span>
<span class="plain-syntax">38.6% was used for memory not allocated for objects:</span>
<span class="plain-syntax"> 20.4% text stream storage 83602988 bytes in 548180 claims</span>
<span class="plain-syntax"> 4.5% dictionary storage 18457088 bytes in 33308 claims</span>
<span class="plain-syntax"> 20.1% text stream storage 83531016 bytes in 547826 claims</span>
<span class="plain-syntax"> 4.4% dictionary storage 18458624 bytes in 33310 claims</span>
<span class="plain-syntax"> ---- sorting 736 bytes in 3 claims</span>
<span class="plain-syntax"> 1.7% source text 7200000 bytes in 3 claims</span>
<span class="plain-syntax"> 2.6% source text details 10800000 bytes in 2 claims</span>
<span class="plain-syntax"> ---- documentation fragments 262144 bytes in 1 claim</span>
<span class="plain-syntax"> ---- linguistic stock array 81920 bytes in 2 claims</span>
<span class="plain-syntax"> ---- small word set array 105600 bytes in 22 claims</span>
<span class="plain-syntax"> 1.0% inter symbols storage 4299216 bytes in 27676 claims</span>
<span class="plain-syntax"> 4.1% inter bytecode storage 16802748 bytes in 14 claims</span>
<span class="plain-syntax"> 1.0% inter symbols storage 4267472 bytes in 27675 claims</span>
<span class="plain-syntax"> 4.0% inter bytecode storage 16802748 bytes in 14 claims</span>
<span class="plain-syntax"> 3.9% inter links storage 16174208 bytes in 266 claims</span>
<span class="plain-syntax"> ---- inter tree location list storage 191232 bytes in 32 claims</span>
<span class="plain-syntax"> 0.4% instance-of-kind counting 1695204 bytes in 1 claim</span>
@ -384,7 +381,7 @@ represent less than 1/1000th of the total.
<span class="plain-syntax"> ---- code generation workspace for objects 1336 bytes in 4 claims</span>
<span class="plain-syntax"> ---- emitter array storage 161792 bytes in 2062 claims</span>
<span class="plain-syntax">18.5% was overhead - 76160600 bytes = 74375K = 72 MB</span>
<span class="plain-syntax">19.1% was overhead - 79137672 bytes = 77282K = 75 MB</span>
</pre>
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>&#167;4. Preform grammar. </b>The full annotated description of the Preform grammar (see <a href="../words-module/4-ap.html" class="internal">About Preform (in words)</a>),
with optimisation details and hit/miss statistics added, is also long: it's

View file

@ -154,7 +154,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PipelineErrors::error_with</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">PipelineErrors::error_with</span></span>:<br/>Running Pipelines - <a href="2-rp.html#SP3_1_1">&#167;3.1.1</a><br/>Read, Move, Wipe, Stop Stages - <a href="2-rmwss.html#SP3">&#167;3</a><br/>Shorten Wiring Stage - <a href="4-sws.html#SP2">&#167;2</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">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">erm</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">quoted</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PipelineErrors::error_with</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">PipelineErrors::error_with</span></span>:<br/>Running Pipelines - <a href="2-rp.html#SP3_1_1">&#167;3.1.1</a><br/>Read, Move, Wipe, Stop Stages - <a href="2-rmwss.html#SP3">&#167;3</a><br/>Shorten Wiring Stage - <a href="4-sws.html#SP2_1">&#167;2.1</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">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">erm</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">quoted</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="named-paragraph-container code-font"><a href="2-pe.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">Begin problem message using the module of the same name</span><span class="named-paragraph-number">2.1</span></a></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">full</span><span class="plain-syntax">)</span>

View file

@ -340,7 +340,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/>Parsing Stages - <a href="3-ps.html#SP2_3">&#167;2.3</a><br/>Compile Splats Stage - <a href="3-css.html#SP2">&#167;2</a>, <a href="3-css.html#SP3_1_3_1_1_1">&#167;3.1.3.1.1.1</a>, <a href="3-css.html#SP3_1_3_1_3">&#167;3.1.3.1.3</a>, <a href="3-css.html#SP3_1_3_1_4_1">&#167;3.1.3.1.4.1</a>, <a href="3-css.html#SP3_1_3_1_4_2">&#167;3.1.3.1.4.2</a>, <a href="3-css.html#SP3_1_3_1_4_3">&#167;3.1.3.1.4.3</a>, <a href="3-css.html#SP3_1_3_1_4_4">&#167;3.1.3.1.4.4</a>, <a href="3-css.html#SP3_1_3_1_4_5">&#167;3.1.3.1.4.5</a>, <a href="3-css.html#SP3_1_3_1_4_5_3_1_1">&#167;3.1.3.1.4.5.3.1.1</a>, <a href="3-css.html#SP3_1_3_1_4_5_3_1_2">&#167;3.1.3.1.4.5.3.1.2</a>, <a href="3-css.html#SP3_1_3_1_4_5_3_1_3">&#167;3.1.3.1.4.5.3.1.3</a>, <a href="3-css.html#SP3_2_3_1">&#167;3.2.3.1</a>, <a href="3-css.html#SP3_2_3_2">&#167;3.2.3.2</a>, <a href="3-css.html#SP3_2_3_2_1">&#167;3.2.3.2.1</a>, <a href="3-css.html#SP3_2_3_3">&#167;3.2.3.3</a>, <a href="3-css.html#SP6">&#167;6</a>, <a href="3-css.html#SP9">&#167;9</a>, <a href="3-css.html#SP10_1">&#167;10.1</a><br/>Detect Indirect Calls Stage - <a href="4-dics.html#SP2_1_2">&#167;2.1.2</a><br/>Synoptic Utilities - <a href="5-su.html#SP4">&#167;4</a>, <a href="5-su.html#SP5">&#167;5</a><br/>Kinds - <a href="5-knd.html#SP1_12">&#167;1.12</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/>Parsing Stages - <a href="3-ps.html#SP2_3">&#167;2.3</a><br/>Compile Splats Stage - <a href="3-css.html#SP2">&#167;2</a>, <a href="3-css.html#SP3_1_3_1_1_1">&#167;3.1.3.1.1.1</a>, <a href="3-css.html#SP3_1_3_1_3">&#167;3.1.3.1.3</a>, <a href="3-css.html#SP3_1_3_1_4_1">&#167;3.1.3.1.4.1</a>, <a href="3-css.html#SP3_1_3_1_4_2">&#167;3.1.3.1.4.2</a>, <a href="3-css.html#SP3_1_3_1_4_3">&#167;3.1.3.1.4.3</a>, <a href="3-css.html#SP3_1_3_1_4_4">&#167;3.1.3.1.4.4</a>, <a href="3-css.html#SP3_1_3_1_4_5">&#167;3.1.3.1.4.5</a>, <a href="3-css.html#SP3_1_3_1_4_5_3_1_1">&#167;3.1.3.1.4.5.3.1.1</a>, <a href="3-css.html#SP3_1_3_1_4_5_3_1_2">&#167;3.1.3.1.4.5.3.1.2</a>, <a href="3-css.html#SP3_1_3_1_4_5_3_1_3">&#167;3.1.3.1.4.5.3.1.3</a>, <a href="3-css.html#SP3_2_3_1">&#167;3.2.3.1</a>, <a href="3-css.html#SP3_2_3_2">&#167;3.2.3.2</a>, <a href="3-css.html#SP3_2_3_2_1">&#167;3.2.3.2.1</a>, <a href="3-css.html#SP3_2_3_3">&#167;3.2.3.3</a>, <a href="3-css.html#SP6">&#167;6</a>, <a href="3-css.html#SP9">&#167;9</a>, <a href="3-css.html#SP10_1">&#167;10.1</a><br/>Detect Indirect Calls Stage - <a href="4-dics.html#SP2_1_2">&#167;2.1.2</a><br/>Synoptic Utilities - <a href="5-su.html#SP4">&#167;4</a>, <a href="5-su.html#SP5">&#167;5</a>, <a href="5-su.html#SP7">&#167;7</a><br/>Kinds - <a href="5-knd.html#SP1_12">&#167;1.12</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">repository</span><span class="plain-syntax">;</span>

View file

@ -84,7 +84,7 @@ MathJax = {
<main role="main">
<!--Weave of 'Compile Splats Stage' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inter Modules</a></li><li><a href="index.html">pipeline</a></li><li><a href="index.html#3">Chapter 3: Assimilation Stages</a></li><li><b>Compile Splats Stage</b></li></ul></div>
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inter Modules</a></li><li><a href="index.html">pipeline</a></li><li><a href="index.html#3">Chapter 3: Assimilation</a></li><li><b>Compile Splats Stage</b></li></ul></div>
<p class="purpose">To replace each splat node with a sequence of pure Inter nodes having the same meaning, thus purging the tree of all raw I6 syntax entirely.</p>
<ul class="toc"><li><a href="3-css.html#SP1">&#167;1. Basic idea</a></li><li><a href="3-css.html#SP3_1">&#167;3.1. How definitions are assimilated</a></li><li><a href="3-css.html#SP3_2">&#167;3.2. How functions are assimilated</a></li><li><a href="3-css.html#SP4">&#167;4. Plumbing</a></li><li><a href="3-css.html#SP7">&#167;7. Inform 6 expressions in constant context</a></li><li><a href="3-css.html#SP12">&#167;12. Delegating the work of compiling function bodies</a></li></ul><hr class="tocbar">

View file

@ -70,7 +70,7 @@ function togglePopup(material_id) {
<main role="main">
<!--Weave of 'Parsing Stages' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inter Modules</a></li><li><a href="index.html">pipeline</a></li><li><a href="index.html#3">Chapter 3: Assimilation Stages</a></li><li><b>Parsing Stages</b></li></ul></div>
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inter Modules</a></li><li><a href="index.html">pipeline</a></li><li><a href="index.html#3">Chapter 3: Assimilation</a></li><li><b>Parsing Stages</b></li></ul></div>
<p class="purpose">Two stages which accept raw I6-syntax material in the parse tree, either from imsertions made using Inform 7's low-level features, or after reading the source code for a kit.</p>
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. </b>These stages have more in common than first appears. Both convert I6T-syntax

View file

@ -70,7 +70,7 @@ function togglePopup(material_id) {
<main role="main">
<!--Weave of 'Resolve Conditional Compilation Stage' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inter Modules</a></li><li><a href="index.html">pipeline</a></li><li><a href="index.html#3">Chapter 3: Assimilation Stages</a></li><li><b>Resolve Conditional Compilation Stage</b></li></ul></div>
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inter Modules</a></li><li><a href="index.html">pipeline</a></li><li><a href="index.html#3">Chapter 3: Assimilation</a></li><li><b>Resolve Conditional Compilation Stage</b></li></ul></div>
<p class="purpose">To generate the initial state of storage for variables.</p>
<ul class="toc"><li><a href="3-rccs.html#SP1">&#167;1. Pipeline stage</a></li><li><a href="3-rccs.html#SP2">&#167;2. Resolution</a></li></ul><hr class="tocbar">

View file

@ -70,7 +70,7 @@ function togglePopup(material_id) {
<main role="main">
<!--Weave of 'Detect Indirect Calls Stage' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inter Modules</a></li><li><a href="index.html">pipeline</a></li><li><a href="index.html#4">Chapter 4: Linking Stages</a></li><li><b>Detect Indirect Calls Stage</b></li></ul></div>
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inter Modules</a></li><li><a href="index.html">pipeline</a></li><li><a href="index.html#4">Chapter 4: Linking</a></li><li><b>Detect Indirect Calls Stage</b></li></ul></div>
<p class="purpose">To handle function calls made to functions identified by symbols which turn out, during linking, to be variables rather than constants.</p>
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. </b>Suppose kit A makes the function call <span class="extract"><span class="extract-syntax">Mystery(1, 2, 3)</span></span>, where <span class="extract"><span class="extract-syntax">Mystery</span></span> is a
@ -180,7 +180,7 @@ though as it happens this transformation would work just as well either way:
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-dics.html#SP2_1">&#167;2.1</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="4-sws.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="progresscurrentchapter">4</li><li class="progresssection"><a href="4-lbks.html">lbks</a></li><li class="progresssection"><a href="4-sws.html">sws</a></li><li class="progresscurrent">dics</li><li class="progresssection"><a href="4-mius.html">mius</a></li><li class="progresssection"><a href="4-rvs.html">rvs</a></li><li class="progresschapter"><a href="5-msms.html">5</a></li><li class="progresschapter"><a href="6-erms.html">6</a></li><li class="progressnext"><a href="4-mius.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="4-sws.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="progresscurrentchapter">4</li><li class="progresssection"><a href="4-lbks.html">lbks</a></li><li class="progresssection"><a href="4-sws.html">sws</a></li><li class="progresscurrent">dics</li><li class="progresssection"><a href="4-mius.html">mius</a></li><li class="progresssection"><a href="4-rvs.html">rvs</a></li><li class="progresssection"><a href="4-tsk.html">tsk</a></li><li class="progresschapter"><a href="5-msms.html">5</a></li><li class="progresschapter"><a href="6-erms.html">6</a></li><li class="progressnext"><a href="4-mius.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -75,7 +75,7 @@ function togglePopup(material_id) {
<main role="main">
<!--Weave of 'Load Binary Kits Stage' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inter Modules</a></li><li><a href="index.html">pipeline</a></li><li><a href="index.html#4">Chapter 4: Linking Stages</a></li><li><b>Load Binary Kits Stage</b></li></ul></div>
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inter Modules</a></li><li><a href="index.html">pipeline</a></li><li><a href="index.html#4">Chapter 4: Linking</a></li><li><b>Load Binary Kits Stage</b></li></ul></div>
<p class="purpose">Reading other Inter trees as binary files, and attaching them at given points in the main Inter tree.</p>
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. </b>Inform 7 compiles source text to a single "main" Inter tree. That tree must
@ -174,7 +174,7 @@ of the sidecar and put it into the main tree.
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-lbks.html#SP3">&#167;3</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="3-css.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="progresscurrentchapter">4</li><li class="progresscurrent">lbks</li><li class="progresssection"><a href="4-sws.html">sws</a></li><li class="progresssection"><a href="4-dics.html">dics</a></li><li class="progresssection"><a href="4-mius.html">mius</a></li><li class="progresssection"><a href="4-rvs.html">rvs</a></li><li class="progresschapter"><a href="5-msms.html">5</a></li><li class="progresschapter"><a href="6-erms.html">6</a></li><li class="progressnext"><a href="4-sws.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="3-css.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="progresscurrentchapter">4</li><li class="progresscurrent">lbks</li><li class="progresssection"><a href="4-sws.html">sws</a></li><li class="progresssection"><a href="4-dics.html">dics</a></li><li class="progresssection"><a href="4-mius.html">mius</a></li><li class="progresssection"><a href="4-rvs.html">rvs</a></li><li class="progresssection"><a href="4-tsk.html">tsk</a></li><li class="progresschapter"><a href="5-msms.html">5</a></li><li class="progresschapter"><a href="6-erms.html">6</a></li><li class="progressnext"><a href="4-sws.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -70,7 +70,7 @@ function togglePopup(material_id) {
<main role="main">
<!--Weave of 'Make Identifiers Unique Stage' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inter Modules</a></li><li><a href="index.html">pipeline</a></li><li><a href="index.html#4">Chapter 4: Linking Stages</a></li><li><b>Make Identifiers Unique Stage</b></li></ul></div>
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inter Modules</a></li><li><a href="index.html">pipeline</a></li><li><a href="index.html#4">Chapter 4: Linking</a></li><li><b>Make Identifiers Unique Stage</b></li></ul></div>
<p class="purpose">To make sure certain symbol names translate into globally unique target symbols.</p>
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. </b>Inter frequently contains multiple symbols with different meanings but the
@ -185,7 +185,7 @@ translation in that case.
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-mius.html#SP3">&#167;3</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="4-dics.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="progresscurrentchapter">4</li><li class="progresssection"><a href="4-lbks.html">lbks</a></li><li class="progresssection"><a href="4-sws.html">sws</a></li><li class="progresssection"><a href="4-dics.html">dics</a></li><li class="progresscurrent">mius</li><li class="progresssection"><a href="4-rvs.html">rvs</a></li><li class="progresschapter"><a href="5-msms.html">5</a></li><li class="progresschapter"><a href="6-erms.html">6</a></li><li class="progressnext"><a href="4-rvs.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="4-dics.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="progresscurrentchapter">4</li><li class="progresssection"><a href="4-lbks.html">lbks</a></li><li class="progresssection"><a href="4-sws.html">sws</a></li><li class="progresssection"><a href="4-dics.html">dics</a></li><li class="progresscurrent">mius</li><li class="progresssection"><a href="4-rvs.html">rvs</a></li><li class="progresssection"><a href="4-tsk.html">tsk</a></li><li class="progresschapter"><a href="5-msms.html">5</a></li><li class="progresschapter"><a href="6-erms.html">6</a></li><li class="progressnext"><a href="4-rvs.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -70,7 +70,7 @@ function togglePopup(material_id) {
<main role="main">
<!--Weave of 'Reconcile Verbs Stage' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inter Modules</a></li><li><a href="index.html">pipeline</a></li><li><a href="index.html#4">Chapter 4: Linking Stages</a></li><li><b>Reconcile Verbs Stage</b></li></ul></div>
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inter Modules</a></li><li><a href="index.html">pipeline</a></li><li><a href="index.html#4">Chapter 4: Linking</a></li><li><b>Reconcile Verbs Stage</b></li></ul></div>
<p class="purpose">To reconcile clashes between assimilated and originally generated verbs.</p>
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. </b>Suppose that the main source text creates a command verb PURLOIN: this
@ -146,7 +146,7 @@ affecting the world model) over testing commands.
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-rvs.html#SP1_1">&#167;1.1</a> (twice).</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="4-mius.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="progresscurrentchapter">4</li><li class="progresssection"><a href="4-lbks.html">lbks</a></li><li class="progresssection"><a href="4-sws.html">sws</a></li><li class="progresssection"><a href="4-dics.html">dics</a></li><li class="progresssection"><a href="4-mius.html">mius</a></li><li class="progresscurrent">rvs</li><li class="progresschapter"><a href="5-msms.html">5</a></li><li class="progresschapter"><a href="6-erms.html">6</a></li><li class="progressnext"><a href="5-msms.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="4-mius.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="progresscurrentchapter">4</li><li class="progresssection"><a href="4-lbks.html">lbks</a></li><li class="progresssection"><a href="4-sws.html">sws</a></li><li class="progresssection"><a href="4-dics.html">dics</a></li><li class="progresssection"><a href="4-mius.html">mius</a></li><li class="progresscurrent">rvs</li><li class="progresssection"><a href="4-tsk.html">tsk</a></li><li class="progresschapter"><a href="5-msms.html">5</a></li><li class="progresschapter"><a href="6-erms.html">6</a></li><li class="progressnext"><a href="4-tsk.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -70,7 +70,7 @@ function togglePopup(material_id) {
<main role="main">
<!--Weave of 'Shorten Wiring Stage' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inter Modules</a></li><li><a href="index.html">pipeline</a></li><li><a href="index.html#4">Chapter 4: Linking Stages</a></li><li><b>Shorten Wiring Stage</b></li></ul></div>
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inter Modules</a></li><li><a href="index.html">pipeline</a></li><li><a href="index.html#4">Chapter 4: Linking</a></li><li><b>Shorten Wiring Stage</b></li></ul></div>
<p class="purpose">To catch missing resources with suitable errors, to remove plugs and sockets as no longer necessary, and to shorten wiring as much as possible.</p>
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. </b></p>
@ -96,6 +96,17 @@ and report these errors efficiently, so we keep the bad names in both a dictiona
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">ShortenWiringStage::run</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">ShortenWiringStage::run</span></span>:<br/><a href="4-sws.html#SP1">&#167;1</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="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">repository</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-sws.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">Shorten the wiring and report loose plugs</span><span class="named-paragraph-number">2.1</span></a></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">connectors</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Site::connectors_package</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">connectors</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="4-sws.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Remove the now unnecessary plugs and sockets</span><span class="named-paragraph-number">2.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<ul class="endnotetexts"><li>The structure plug_inspection_state is private to this section.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_1" class="paragraph-anchor"></a><b>&#167;2.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Shorten the wiring and report loose plugs</span><span class="named-paragraph-number">2.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">plug_inspection_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">state</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">state</span><span class="plain-syntax">.</span><span class="identifier-syntax">bad_plugs</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Dictionaries::new</span><span class="plain-syntax">(16, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">state</span><span class="plain-syntax">.</span><span class="identifier-syntax">bad_plug_names</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax">);</span>
@ -112,33 +123,8 @@ and report these errors efficiently, so we keep the bad names in both a dictiona
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">NS</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="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">connectors</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Site::connectors_package</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">connectors</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ST</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::scope</span><span class="plain-syntax">(</span><span class="identifier-syntax">connectors</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;ST-&gt;</span><span class="identifier-syntax">size</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ST</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">symbol_array</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">Wiring::is_plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">)) &amp;&amp; (</span><span class="identifier-syntax">Wiring::has_no_incoming_connections</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">Inter::Symbols::remove_from_table</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</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="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;ST-&gt;</span><span class="identifier-syntax">size</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ST</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">symbol_array</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">Wiring::is_socket</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">)) &amp;&amp; (</span><span class="identifier-syntax">Wiring::has_no_incoming_connections</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">Inter::Symbols::remove_from_table</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">);</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">errors</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">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;ST-&gt;</span><span class="identifier-syntax">size</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ST</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">symbol_array</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">S</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">"Connector not deleted: %3\n"</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">errors</span><span class="plain-syntax">++;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">errors</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"plugs and sockets mismanaged"</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>
</pre>
<ul class="endnotetexts"><li>The structure plug_inspection_state is private to this section.</li></ul>
<ul class="endnotetexts"><li>This code is used in <a href="4-sws.html#SP2">&#167;2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>&#167;3. </b>Note that it is not necessarily an error to have a loose plug, that is, a plug
which does not connect to any socket. It is only an error if a symbol is trying
to connect to this plug. So we make a traverse of the tree to look for such symbols.
@ -150,7 +136,7 @@ we simplify just to <span class="extract"><span class="extract-syntax">S1 -&gt;
</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">ShortenWiringStage::visitor</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">ShortenWiringStage::visitor</span></span>:<br/><a href="4-sws.html#SP2">&#167;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="identifier-syntax">inter_tree_node</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="identifier-syntax">v_state</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ShortenWiringStage::visitor</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">ShortenWiringStage::visitor</span></span>:<br/><a href="4-sws.html#SP2_1">&#167;2.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_tree_node</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="identifier-syntax">v_state</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">plug_inspection_state</span><span class="plain-syntax"> *</span><span class="identifier-syntax">state</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">plug_inspection_state</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">v_state</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">Q</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ST</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::scope</span><span class="plain-syntax">(</span><span class="identifier-syntax">Q</span><span class="plain-syntax">);</span>
@ -176,8 +162,66 @@ we simplify just to <span class="extract"><span class="extract-syntax">S1 -&gt;
<span class="plain-syntax"> }</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-sws.html#SP3">&#167;3</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_2" class="paragraph-anchor"></a><b>&#167;2.2. </b>At this point there will be plugs with no incoming connections, but which
are each wired to sockets. Removing the plugs first then leaves the sockets
with no incoming connections either, and so the sockets can go too.
</p>
<p class="commentary">The result should be a completely empty <span class="extract"><span class="extract-syntax">connectors</span></span> module.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Remove the now unnecessary plugs and sockets</span><span class="named-paragraph-number">2.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">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ST</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::scope</span><span class="plain-syntax">(</span><span class="identifier-syntax">connectors</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-sws.html#SP2_2_1" class="named-paragraph-link"><span class="named-paragraph">Remove plugs with no incoming connections</span><span class="named-paragraph-number">2.2.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-sws.html#SP2_2_2" class="named-paragraph-link"><span class="named-paragraph">Remove sockets with no incoming connections</span><span class="named-paragraph-number">2.2.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-sws.html#SP2_2_3" class="named-paragraph-link"><span class="named-paragraph">Report any remaining symbols in this table as errors</span><span class="named-paragraph-number">2.2.3</span></a></span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-sws.html#SP2">&#167;2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_2_1" class="paragraph-anchor"></a><b>&#167;2.2.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Remove plugs with no incoming connections</span><span class="named-paragraph-number">2.2.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">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;ST-&gt;</span><span class="identifier-syntax">size</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ST</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">symbol_array</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">Wiring::is_plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">)) &amp;&amp; (</span><span class="identifier-syntax">Wiring::has_no_incoming_connections</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">Inter::Symbols::remove_from_table</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-sws.html#SP2_2">&#167;2.2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_2_2" class="paragraph-anchor"></a><b>&#167;2.2.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Remove sockets with no incoming connections</span><span class="named-paragraph-number">2.2.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="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;ST-&gt;</span><span class="identifier-syntax">size</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ST</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">symbol_array</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">Wiring::is_socket</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">)) &amp;&amp; (</span><span class="identifier-syntax">Wiring::has_no_incoming_connections</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">Inter::Symbols::remove_from_table</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-sws.html#SP2_2">&#167;2.2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_2_3" class="paragraph-anchor"></a><b>&#167;2.2.3. </b>This should never happen:
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Report any remaining symbols in this table as errors</span><span class="named-paragraph-number">2.2.3</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">errors</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">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;ST-&gt;</span><span class="identifier-syntax">size</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ST</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">symbol_array</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">S</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">"Connector not deleted: %3\n"</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">errors</span><span class="plain-syntax">++;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">errors</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"plugs and sockets mismanaged"</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-sws.html#SP2_2">&#167;2.2</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="4-lbks.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="progresscurrentchapter">4</li><li class="progresssection"><a href="4-lbks.html">lbks</a></li><li class="progresscurrent">sws</li><li class="progresssection"><a href="4-dics.html">dics</a></li><li class="progresssection"><a href="4-mius.html">mius</a></li><li class="progresssection"><a href="4-rvs.html">rvs</a></li><li class="progresschapter"><a href="5-msms.html">5</a></li><li class="progresschapter"><a href="6-erms.html">6</a></li><li class="progressnext"><a href="4-dics.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="4-lbks.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="progresscurrentchapter">4</li><li class="progresssection"><a href="4-lbks.html">lbks</a></li><li class="progresscurrent">sws</li><li class="progresssection"><a href="4-dics.html">dics</a></li><li class="progresssection"><a href="4-mius.html">mius</a></li><li class="progresssection"><a href="4-rvs.html">rvs</a></li><li class="progresssection"><a href="4-tsk.html">tsk</a></li><li class="progresschapter"><a href="5-msms.html">5</a></li><li class="progresschapter"><a href="6-erms.html">6</a></li><li class="progressnext"><a href="4-dics.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -0,0 +1,651 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>The Standard Kits</title>
<link href="../docs-assets/Breadcrumbs.css" rel="stylesheet" rev="stylesheet" type="text/css">
<meta name="viewport" content="width=device-width initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="en-gb">
<link href="../docs-assets/Contents.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Progress.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Navigation.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Fonts.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Base.css" rel="stylesheet" rev="stylesheet" type="text/css">
<script>
function togglePopup(material_id) {
var popup = document.getElementById(material_id);
popup.classList.toggle("show");
}
</script>
<link href="../docs-assets/Popups.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
</head>
<body class="commentary-font">
<nav role="navigation">
<h1><a href="../index.html">
<img src="../docs-assets/Inform.png" height=72">
</a></h1>
<ul><li><a href="../compiler.html">compiler tools</a></li>
<li><a href="../other.html">other tools</a></li>
<li><a href="../extensions.html">extensions and kits</a></li>
<li><a href="../units.html">unit test tools</a></li>
</ul><h2>Compiler Webs</h2><ul>
<li><a href="../inbuild/index.html">inbuild</a></li>
<li><a href="../inform7/index.html">inform7</a></li>
<li><a href="../inter/index.html">inter</a></li>
</ul><h2>Inbuild Modules</h2><ul>
<li><a href="../supervisor-module/index.html">supervisor</a></li>
</ul><h2>Inform7 Modules</h2><ul>
<li><a href="../core-module/index.html">core</a></li>
<li><a href="../assertions-module/index.html">assertions</a></li>
<li><a href="../values-module/index.html">values</a></li>
<li><a href="../knowledge-module/index.html">knowledge</a></li>
<li><a href="../imperative-module/index.html">imperative</a></li>
<li><a href="../runtime-module/index.html">runtime</a></li>
<li><a href="../if-module/index.html">if</a></li>
<li><a href="../multimedia-module/index.html">multimedia</a></li>
<li><a href="../index-module/index.html">index</a></li>
</ul><h2>Inter Modules</h2><ul>
<li><a href="../bytecode-module/index.html">bytecode</a></li>
<li><a href="../building-module/index.html">building</a></li>
<li><a href="index.html"><span class="selectedlink">pipeline</span></a></li>
<li><a href="../final-module/index.html">final</a></li>
</ul><h2>Services</h2><ul>
<li><a href="../arch-module/index.html">arch</a></li>
<li><a href="../calculus-module/index.html">calculus</a></li>
<li><a href="../html-module/index.html">html</a></li>
<li><a href="../inflections-module/index.html">inflections</a></li>
<li><a href="../kinds-module/index.html">kinds</a></li>
<li><a href="../linguistics-module/index.html">linguistics</a></li>
<li><a href="../problems-module/index.html">problems</a></li>
<li><a href="../syntax-module/index.html">syntax</a></li>
<li><a href="../words-module/index.html">words</a></li>
<li><a href="../../../inweb/docs/foundation-module/index.html">foundation</a></li>
</ul>
</nav>
<main role="main">
<!--Weave of 'The Standard Kits' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inter Modules</a></li><li><a href="index.html">pipeline</a></li><li><a href="index.html#4">Chapter 4: Linking</a></li><li><b>The Standard Kits</b></li></ul></div>
<p class="purpose">The layout and naming conventions for functions and other resources provided by the standard kits, and which are called or accessed from code generated by Inter or by the Inform 7 compiler.</p>
<ul class="toc"><li><a href="4-tsk.html#SP1_1_1">&#167;1.1.1. Offered by BasicInformKit</a></li><li><a href="4-tsk.html#SP1_1_3">&#167;1.1.3. Offered by CommandParserKit</a></li><li><a href="4-tsk.html#SP1_1_5">&#167;1.1.5. Offered by WorldModelKit</a></li></ul><hr class="tocbar">
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. </b>Suppose you are a tool like <a href="../inform7/index.html" class="internal">inform7</a> or <a href="../inter/index.html" class="internal">inter</a> and you are generating
a function, and in that function you want to access the variable <span class="extract"><span class="extract-syntax">location</span></span> &mdash;
which is defined in <a href="../WorldModelKit/index.html" class="internal">WorldModelKit</a> &mdash; or call the function <span class="extract"><span class="extract-syntax">BlkValueCreate</span></span> &mdash;
which is in <a href="../BasicInformKit/index.html" class="internal">BasicInformKit</a>. These have not yet been linked in to the Inter
tree you're trying to build: so how do you describe them?
</p>
<p class="commentary">The answer is that you call <span class="extract"><span class="extract-syntax">HierarchyLocations::find(I, BLKVALUECREATE_HL)</span></span>,
say, and it will return an <span class="extract"><span class="extract-syntax">inter_name</span></span> which is exactly what you need. This is
all done with plugs and sockets, but you don't care about that.
</p>
<p class="commentary">The one thing you do need to do is to ensure that the following initialisation
function has been called: if not, <span class="extract"><span class="extract-syntax">HierarchyLocations::find</span></span> won't find these
resources.
</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">KitHierarchy::establish</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">KitHierarchy::establish</span></span>:<br/>Make Synoptic Module Stage - <a href="5-msms.html#SP1">&#167;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="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">history_bits</span><span class="plain-syntax"> &amp; </span><span class="identifier-syntax">KIT_HIERARCHY_MADE_ITHBIT</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">I</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">history_bits</span><span class="plain-syntax"> |= </span><span class="identifier-syntax">KIT_HIERARCHY_MADE_ITHBIT</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-tsk.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Establish kit-defined resources</span><span class="named-paragraph-number">1.1</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>The following, then, is an itemised list of what symbol names in the kits
the <a href="../inform7/index.html" class="internal">inform7</a> and <a href="../inter/index.html" class="internal">inter</a> tools need to refer to. (It's not any kind of
comprehensive list of what is there.)
</p>
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">) </span><span class="identifier-syntax">HierarchyLocations::ctr</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">, </span><span class="identifier-syntax">Translation::same</span><span class="plain-syntax">(), </span><span class="identifier-syntax">req</span><span class="plain-syntax">);</span>
</pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish kit-defined resources</span><span class="named-paragraph-number">1.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">location_requirement</span><span class="plain-syntax"> </span><span class="identifier-syntax">req</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::plug</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-tsk.html#SP1_1_2" class="named-paragraph-link"><span class="named-paragraph">Establish resources offered by BasicInformKit</span><span class="named-paragraph-number">1.1.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-tsk.html#SP1_1_6" class="named-paragraph-link"><span class="named-paragraph">Establish resources offered by WorldModelKit</span><span class="named-paragraph-number">1.1.6</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-tsk.html#SP1_1_4" class="named-paragraph-link"><span class="named-paragraph">Establish resources offered by CommandParserKit</span><span class="named-paragraph-number">1.1.4</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-tsk.html#SP1_1_8" class="named-paragraph-link"><span class="named-paragraph">Establish resources offered by either WorldModelKit or BasicInformExtrasKit</span><span class="named-paragraph-number">1.1.8</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-tsk.html#SP1_1_10" class="named-paragraph-link"><span class="named-paragraph">Establish resources offered by either EnglishLanguageKit</span><span class="named-paragraph-number">1.1.10</span></a></span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-tsk.html#SP1">&#167;1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_1_1" class="paragraph-anchor"></a><b>&#167;1.1.1. Offered by BasicInformKit. </b></p>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">ADJUSTPARAGRAPHPOINT_HL</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="definition-keyword">enum</span> <span class="constant-syntax">ARGUMENTTYPEFAILED_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">AUXF_MAGIC_VALUE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">AUXF_STATUS_IS_CLOSED_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BLKVALUECOPY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BLKVALUECOPYAZ_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BLKVALUECREATE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BLKVALUECREATEONSTACK_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BLKVALUEERROR_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BLKVALUEFREE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BLKVALUEFREEONSTACK_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BLKVALUEWRITE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CHECKKINDRETURNED_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CLEARPARAGRAPHING_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CONSTANT_PACKED_TEXT_STORAGE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CONSTANT_PERISHABLE_TEXT_STORAGE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CUBEROOT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DB_RULE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DEBUG_RULES_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DEBUGPROPERTY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DECIMALNUMBER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DIGITTOVALUE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DIVIDEPARAGRAPHPOINT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DOUBLEHASHSETRELATIONHANDLER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">EMPTY_RULEBOOK_INAME_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">EMPTY_TABLE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">EMPTY_TEXT_PACKED_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">EMPTY_TEXT_VALUE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">EMPTYRELATIONHANDLER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">EXISTSTABLELOOKUPCORR_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">EXISTSTABLELOOKUPENTRY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">EXISTSTABLEROWCORR_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">FLOAT_NAN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">FLOATPARSE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">FOLLOWRULEBOOK_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">formal_par0_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">formal_par1_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">formal_par2_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">formal_par3_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">formal_par4_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">formal_par5_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">formal_par6_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">formal_par7_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">FORMAL_RV_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">GENERATERANDOMNUMBER_HL</span>
<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">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>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LATEST_RULE_RESULT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LIST_ITEM_BASE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LIST_ITEM_KOV_F_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LIST_OF_TY_DESC_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LIST_OF_TY_GETITEM_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LIST_OF_TY_GETLENGTH_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LIST_OF_TY_INSERTITEM_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LIST_OF_TY_SAY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LIST_OF_TY_SETLENGTH_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MSTACK_HL</span>
<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">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>
<span class="definition-keyword">enum</span> <span class="constant-syntax">OTOVRELROUTETO_HL</span>
<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">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">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>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REAL_NUMBER_TY_CUBE_ROOT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REAL_NUMBER_TY_DIVIDE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REAL_NUMBER_TY_MINUS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REAL_NUMBER_TY_NAN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REAL_NUMBER_TY_NEGATE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REAL_NUMBER_TY_PLUS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REAL_NUMBER_TY_POW_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REAL_NUMBER_TY_REMAINDER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REAL_NUMBER_TY_ROOT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REAL_NUMBER_TY_SAY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REAL_NUMBER_TY_TIMES_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REAL_NUMBER_TY_TO_NUMBER_TY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_EMPTYEQUIV_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_EMPTYOTOO_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_EMPTYVTOV_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_RSHOWOTOO_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_SHOWEQUIV_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_SHOWOTOO_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_SHOWVTOV_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_TY_EQUIVALENCEADJECTIVE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_TY_NAME_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_TY_OTOOADJECTIVE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_TY_OTOVADJECTIVE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_TY_SYMMETRICADJECTIVE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_TY_VTOOADJECTIVE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATIONTEST_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELFOLLOWVECTOR_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELS_EMPTY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RLANY_CAN_GET_X_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RLANY_CAN_GET_Y_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RLANY_GET_X_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RLIST_ALL_X_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RLIST_ALL_Y_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RLNGETF_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ROUNDOFFVALUE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RR_STORAGE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RTP_RELKINDVIOLATION_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RTP_RELMINIMAL_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULEBOOKFAILS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULEBOOKPARBREAK_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULEBOOKSUCCEEDS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RUNTIMEPROBLEM_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SAY__N_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SAY__P_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SAY__PC_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SIGNEDCOMPARE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SQUAREROOT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">STACKFRAMECREATE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SUPPRESS_TEXT_SUBSTITUTION_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TABLE_NOVALUE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TABLELOOKUPCORR_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TABLELOOKUPENTRY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TEXT_TY_COMPARE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TEXT_TY_EXPANDIFPERISHABLE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TEXT_TY_SAY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">THEEMPTYTABLE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">UNICODE_TEMP_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VTOORELROUTETO_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VTOVRELROUTETO_HL</span>
</pre>
<p class="commentary firstcommentary"><a id="SP1_1_2" class="paragraph-anchor"></a><b>&#167;1.1.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish resources offered by BasicInformKit</span><span class="named-paragraph-number">1.1.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">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">ADJUSTPARAGRAPHPOINT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"AdjustParagraphPoint"</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">ARGUMENTTYPEFAILED_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ArgumentTypeFailed"</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">AUXF_MAGIC_VALUE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"AUXF_MAGIC_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">AUXF_STATUS_IS_CLOSED_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"AUXF_STATUS_IS_CLOSED"</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">BLKVALUECOPY_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"BlkValueCopy"</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">BLKVALUECOPYAZ_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"BlkValueCopyAZ"</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">BLKVALUECREATE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"BlkValueCreate"</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">BLKVALUECREATEONSTACK_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"BlkValueCreateOnStack"</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">BLKVALUEERROR_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"BlkValueError"</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">BLKVALUEFREE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"BlkValueFree"</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">BLKVALUEFREEONSTACK_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"BlkValueFreeOnStack"</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">BLKVALUEWRITE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"BlkValueWrite"</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">CHECKKINDRETURNED_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"CheckKindReturned"</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">CLEARPARAGRAPHING_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ClearParagraphing"</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">CONSTANT_PACKED_TEXT_STORAGE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"CONSTANT_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">CONSTANT_PERISHABLE_TEXT_STORAGE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"CONSTANT_PERISHABLE_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">CUBEROOT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"CubeRoot"</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">DB_RULE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"DB_Rule"</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">DEBUG_RULES_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"debug_rules"</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">DEBUGPROPERTY_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"DebugProperty"</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">DECIMALNUMBER_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"DecimalNumber"</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">DIGITTOVALUE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"DigitToValue"</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">DIVIDEPARAGRAPHPOINT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"DivideParagraphPoint"</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">DOUBLEHASHSETRELATIONHANDLER_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"DoubleHashSetRelationHandler"</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">EMPTY_RULEBOOK_INAME_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"EMPTY_RULEBOOK"</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">EMPTY_TABLE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TheEmptyTable"</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">EMPTY_TEXT_PACKED_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"EMPTY_TEXT_PACKED"</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">EMPTY_TEXT_VALUE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"EMPTY_TEXT_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">EMPTYRELATIONHANDLER_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"EmptyRelationHandler"</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">EXISTSTABLELOOKUPCORR_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ExistsTableLookUpCorr"</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">EXISTSTABLELOOKUPENTRY_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ExistsTableLookUpEntry"</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">EXISTSTABLEROWCORR_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ExistsTableRowCorr"</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">FLOAT_NAN_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"FLOAT_NAN"</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">FLOATPARSE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"FloatParse"</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">FOLLOWRULEBOOK_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"FollowRulebook"</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">formal_par0_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"formal_par0"</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">formal_par1_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"formal_par1"</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">formal_par2_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"formal_par2"</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">formal_par3_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"formal_par3"</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">formal_par4_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"formal_par4"</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">formal_par5_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"formal_par5"</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">formal_par6_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"formal_par6"</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">formal_par7_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"formal_par7"</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">FORMAL_RV_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"formal_rv"</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">GENERATERANDOMNUMBER_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"GenerateRandomNumber"</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">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">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>
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">LATEST_RULE_RESULT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"latest_rule_result"</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">LIST_ITEM_BASE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"LIST_ITEM_BASE"</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">LIST_ITEM_KOV_F_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"LIST_ITEM_KOV_F"</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">LIST_OF_TY_DESC_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"LIST_OF_TY_Desc"</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">LIST_OF_TY_GETITEM_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"LIST_OF_TY_GetItem"</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">LIST_OF_TY_GETLENGTH_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"LIST_OF_TY_GetLength"</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">LIST_OF_TY_INSERTITEM_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"LIST_OF_TY_InsertItem"</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">LIST_OF_TY_SAY_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"LIST_OF_TY_Say"</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">LIST_OF_TY_SETLENGTH_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"LIST_OF_TY_SetLength"</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">MSTACK_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"MStack"</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">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">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>
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">OTOVRELROUTETO_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"OtoVRelRouteTo"</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">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">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">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>
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">REAL_NUMBER_TY_CUBE_ROOT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"REAL_NUMBER_TY_Cube_Root"</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_DIVIDE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"REAL_NUMBER_TY_Divide"</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_MINUS_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"REAL_NUMBER_TY_Minus"</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_NAN_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"REAL_NUMBER_TY_Nan"</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_NEGATE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"REAL_NUMBER_TY_Negate"</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_PLUS_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"REAL_NUMBER_TY_Plus"</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_POW_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"REAL_NUMBER_TY_Pow"</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_REMAINDER_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"REAL_NUMBER_TY_Remainder"</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_ROOT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"REAL_NUMBER_TY_Root"</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_SAY_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"REAL_NUMBER_TY_Say"</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_TIMES_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"REAL_NUMBER_TY_Times"</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_TO_NUMBER_TY_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"REAL_NUMBER_TY_to_NUMBER_TY"</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">RELATION_EMPTYEQUIV_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Relation_EmptyEquiv"</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">RELATION_EMPTYOTOO_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Relation_EmptyOtoO"</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">RELATION_EMPTYVTOV_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Relation_EmptyVtoV"</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">RELATION_RSHOWOTOO_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Relation_RShowOtoO"</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">RELATION_SHOWEQUIV_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Relation_ShowEquiv"</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">RELATION_SHOWOTOO_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Relation_ShowOtoO"</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">RELATION_SHOWVTOV_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Relation_ShowVtoV"</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">RELATION_TY_EQUIVALENCEADJECTIVE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RELATION_TY_EquivalenceAdjective"</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">RELATION_TY_NAME_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RELATION_TY_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">RELATION_TY_OTOOADJECTIVE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RELATION_TY_OToOAdjective"</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">RELATION_TY_OTOVADJECTIVE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RELATION_TY_OToVAdjective"</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">RELATION_TY_SYMMETRICADJECTIVE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RELATION_TY_SymmetricAdjective"</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">RELATION_TY_VTOOADJECTIVE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RELATION_TY_VToOAdjective"</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">RELATIONTEST_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RelationTest"</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">RELFOLLOWVECTOR_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RelFollowVector"</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">RELS_EMPTY_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RELS_EMPTY"</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">RLANY_CAN_GET_X_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RLANY_CAN_GET_X"</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">RLANY_CAN_GET_Y_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RLANY_CAN_GET_Y"</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">RLANY_GET_X_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RLANY_GET_X"</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">RLIST_ALL_X_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RLIST_ALL_X"</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">RLIST_ALL_Y_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RLIST_ALL_Y"</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">RLNGETF_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RlnGetF"</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">ROUNDOFFVALUE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RoundOffValue"</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">RR_STORAGE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RR_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">RTP_RELKINDVIOLATION_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RTP_RELKINDVIOLATION"</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">RTP_RELMINIMAL_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RTP_RELMINIMAL"</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">RULEBOOKFAILS_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RulebookFails"</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">RULEBOOKPARBREAK_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RulebookParBreak"</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">RULEBOOKSUCCEEDS_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RulebookSucceeds"</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">RUNTIMEPROBLEM_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RunTimeProblem"</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">SAY__N_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"say__n"</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">SAY__P_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"say__p"</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">SAY__PC_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"say__pc"</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">SIGNEDCOMPARE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"SignedCompare"</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">SQUAREROOT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"SquareRoot"</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">STACKFRAMECREATE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"StackFrameCreate"</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">SUPPRESS_TEXT_SUBSTITUTION_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"suppress_text_substitution"</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">TABLE_NOVALUE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TABLE_NOVALUE"</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">TABLELOOKUPCORR_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TableLookUpCorr"</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">TABLELOOKUPENTRY_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TableLookUpEntry"</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">TEXT_TY_COMPARE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TEXT_TY_Compare"</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">TEXT_TY_EXPANDIFPERISHABLE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TEXT_TY_ExpandIfPerishable"</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">TEXT_TY_SAY_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TEXT_TY_Say"</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">THEEMPTYTABLE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TheEmptyTable"</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">UNICODE_TEMP_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"unicode_temp"</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">VTOORELROUTETO_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"VtoORelRouteTo"</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">VTOVRELROUTETO_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"VtoVRelRouteTo"</span><span class="plain-syntax">)</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-tsk.html#SP1_1">&#167;1.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_1_3" class="paragraph-anchor"></a><b>&#167;1.1.3. Offered by CommandParserKit. </b></p>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">ARTICLEDESCRIPTORS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ETYPE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NEXTBEST_ETYPE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NEXTWORDSTOPPED_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NOTINCONTEXTPE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PARSETOKENSTOPPED_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TRYGIVENOBJECT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">WORDADDRESS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">WORDINPROPERTY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">WORDLENGTH_HL</span>
</pre>
<p class="commentary firstcommentary"><a id="SP1_1_4" class="paragraph-anchor"></a><b>&#167;1.1.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish resources offered by CommandParserKit</span><span class="named-paragraph-number">1.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">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">ARTICLEDESCRIPTORS_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ArticleDescriptors"</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">ETYPE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"etype"</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">NEXTBEST_ETYPE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"nextbest_etype"</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">NEXTWORDSTOPPED_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"NextWordStopped"</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">NOTINCONTEXTPE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"NOTINCONTEXT_PE"</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">PARSETOKENSTOPPED_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ParseTokenStopped"</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">TRYGIVENOBJECT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TryGivenObject"</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">WORDADDRESS_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"WordAddress"</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">WORDINPROPERTY_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"WordInProperty"</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">WORDLENGTH_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"WordLength"</span><span class="plain-syntax">)</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-tsk.html#SP1_1">&#167;1.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_1_5" class="paragraph-anchor"></a><b>&#167;1.1.5. Offered by WorldModelKit. </b></p>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">ACT_REQUESTER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTION_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTIONCURRENTLYHAPPENINGFLAG_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTOR_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTOR_LOCATION_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ALLOWINSHOWME_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ANIMATE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">C_STYLE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">COMPONENT_CHILD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">COMPONENT_PARENT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">COMPONENT_SIBLING_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CONSULT_FROM_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CONSULT_WORDS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CONTAINER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DA_NAME_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DEADFLAG_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DEBUG_SCENES_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DETECTPLURALWORD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DURINGSCENEMATCHING_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ELEMENTARY_TT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ENGLISH_BIT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">FOUND_EVERYWHERE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">GENERICVERBSUB_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">GETGNAOFOBJECT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">GPR_FAIL_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">GPR_NUMBER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">GPR_PREPOSITION_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">GPR_TT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INDENT_BIT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INP1_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INP2_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INVENTORY_STAGE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KEEP_SILENT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LOCATION_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LOCATIONOF_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LOOPOVERSCOPE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LOS_RV_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NEWLINE_BIT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NOARTICLE_BIT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NOUN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NUMBER_TY_TO_TIME_TY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PARSED_NUMBER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PARSER_ACTION_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PARSER_ONE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PARSER_TRACE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PARSER_TWO_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PARSERERROR_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PAST_CHRONOLOGICAL_RECORD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PLACEINSCOPE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PLAYER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PLURALFOUND_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PRESENT_CHRONOLOGICAL_RECORD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REAL_LOCATION_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REASON_THE_ACTION_FAILED_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RESPONSEVIAACTIVITY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ROUTINEFILTER_TT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SCENE_ENDED_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SCENE_ENDINGS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SCENE_LATEST_ENDING_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SCENE_STARTED_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SCENE_STATUS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SCOPE_STAGE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SCOPE_TT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SECOND_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SHORT_NAME_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SPECIAL_WORD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">STORED_ACTION_TY_CURRENT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">STORED_ACTION_TY_TRY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">STORY_TENSE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SUPPORTER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SUPPRESS_SCOPE_LOOPS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TESTACTIONBITMAP_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TESTACTIVITY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TESTREGIONALCONTAINMENT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TESTSCOPE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TESTSTART_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">THE_TIME_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">THEDARK_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">THESAME_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TIMESACTIONHASBEENHAPPENING_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TIMESACTIONHASHAPPENED_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TRYACTION_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TURNSACTIONHASBEENHAPPENING_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">UNDERSTAND_AS_MISTAKE_NUMBER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">WHEN_SCENE_BEGINS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">WHEN_SCENE_ENDS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">WN_HL</span>
</pre>
<p class="commentary firstcommentary"><a id="SP1_1_6" class="paragraph-anchor"></a><b>&#167;1.1.6. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish resources offered by WorldModelKit</span><span class="named-paragraph-number">1.1.6</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">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">ACT_REQUESTER_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"act_requester"</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">ACTION_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"action"</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">ACTIONCURRENTLYHAPPENINGFLAG_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ActionCurrentlyHappeningFlag"</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">ACTOR_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"actor"</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">ACTOR_LOCATION_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"actor_location"</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">ALLOWINSHOWME_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"AllowInShowme"</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">ANIMATE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"animate"</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">C_STYLE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"c_style"</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">COMPONENT_CHILD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"component_child"</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">COMPONENT_PARENT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"component_parent"</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">COMPONENT_SIBLING_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"component_sibling"</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">CONSULT_FROM_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"consult_from"</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">CONSULT_WORDS_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"consult_words"</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">CONTAINER_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"container"</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">DA_NAME_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"DA_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">DEADFLAG_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"deadflag"</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">DEBUG_SCENES_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"debug_scenes"</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">DETECTPLURALWORD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"DetectPluralWord"</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">DURINGSCENEMATCHING_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"DuringSceneMatching"</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">ELEMENTARY_TT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ELEMENTARY_TT"</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">ENGLISH_BIT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ENGLISH_BIT"</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">FOUND_EVERYWHERE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"FoundEverywhere"</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">GENERICVERBSUB_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"GenericVerbSub"</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">GETGNAOFOBJECT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"GetGNAOfObject"</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">GPR_FAIL_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"GPR_FAIL"</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">GPR_NUMBER_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"GPR_NUMBER"</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">GPR_PREPOSITION_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"GPR_PREPOSITION"</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">GPR_TT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"GPR_TT"</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">INDENT_BIT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"INDENT_BIT"</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">INP1_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"inp1"</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">INP2_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"inp2"</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">INVENTORY_STAGE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"inventory_stage"</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">KEEP_SILENT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"keep_silent"</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">LOCATION_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"location"</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">LOCATIONOF_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"LocationOf"</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">LOOPOVERSCOPE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"LoopOverScope"</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">LOS_RV_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"los_rv"</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">NEWLINE_BIT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"NEWLINE_BIT"</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">NOARTICLE_BIT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"NOARTICLE_BIT"</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">NOUN_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"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">NUMBER_TY_TO_TIME_TY_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"NUMBER_TY_to_TIME_TY"</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">PARSED_NUMBER_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"parsed_number"</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">PARSER_ACTION_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"parser_action"</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">PARSER_ONE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"parser_one"</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">PARSER_TRACE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"parser_trace"</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">PARSER_TWO_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"parser_two"</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">PARSERERROR_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ParserError"</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">PAST_CHRONOLOGICAL_RECORD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"past_chronological_record"</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">PLACEINSCOPE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"PlaceInScope"</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">PLAYER_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"player"</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">PLURALFOUND_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"##PluralFound"</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">PRESENT_CHRONOLOGICAL_RECORD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"present_chronological_record"</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_LOCATION_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"real_location"</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">REASON_THE_ACTION_FAILED_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"reason_the_action_failed"</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">RESPONSEVIAACTIVITY_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ResponseViaActivity"</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">ROUTINEFILTER_TT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ROUTINE_FILTER_TT"</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">SCENE_ENDED_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"scene_ended"</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">SCENE_ENDINGS_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"scene_endings"</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">SCENE_LATEST_ENDING_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"scene_latest_ending"</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">SCENE_STARTED_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"scene_started"</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">SCENE_STATUS_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"scene_status"</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">SCOPE_STAGE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"scope_stage"</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">SCOPE_TT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"SCOPE_TT"</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">SECOND_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"second"</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">SHORT_NAME_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"short_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">SPECIAL_WORD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"special_word"</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">STORED_ACTION_TY_CURRENT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"STORED_ACTION_TY_Current"</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">STORED_ACTION_TY_TRY_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"STORED_ACTION_TY_Try"</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">STORY_TENSE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"story_tense"</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">SUPPORTER_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"supporter"</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">SUPPRESS_SCOPE_LOOPS_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"suppress_scope_loops"</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">TESTACTIONBITMAP_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TestActionBitmap"</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">TESTACTIVITY_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TestActivity"</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">TESTREGIONALCONTAINMENT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TestRegionalContainment"</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">TESTSCOPE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TestScope"</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">TESTSTART_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TestStart"</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">THE_TIME_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"the_time"</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">THEDARK_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"thedark"</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">THESAME_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"##TheSame"</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">TIMESACTIONHASBEENHAPPENING_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TimesActionHasBeenHappening"</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">TIMESACTIONHASHAPPENED_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TimesActionHasHappened"</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">TRYACTION_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TryAction"</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">TURNSACTIONHASBEENHAPPENING_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TurnsActionHasBeenHappening"</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">UNDERSTAND_AS_MISTAKE_NUMBER_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"understand_as_mistake_number"</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">WHEN_SCENE_BEGINS_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"WHEN_SCENE_BEGINS_RB"</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">WHEN_SCENE_ENDS_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"WHEN_SCENE_ENDS_RB"</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">WN_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"wn"</span><span class="plain-syntax">)</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-tsk.html#SP1_1">&#167;1.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_1_7" class="paragraph-anchor"></a><b>&#167;1.1.7. </b></p>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">PNTOVP_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PRINTSHORTNAME_HL</span>
</pre>
<p class="commentary firstcommentary"><a id="SP1_1_8" class="paragraph-anchor"></a><b>&#167;1.1.8. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish resources offered by either WorldModelKit or BasicInformExtrasKit</span><span class="named-paragraph-number">1.1.8</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">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">PNTOVP_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"PNToVP"</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">PRINTSHORTNAME_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"PrintShortName"</span><span class="plain-syntax">)</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-tsk.html#SP1_1">&#167;1.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_1_9" class="paragraph-anchor"></a><b>&#167;1.1.9. </b></p>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">THEN1__WD_HL</span>
</pre>
<p class="commentary firstcommentary"><a id="SP1_1_10" class="paragraph-anchor"></a><b>&#167;1.1.10. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish resources offered by either EnglishLanguageKit</span><span class="named-paragraph-number">1.1.10</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">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">THEN1__WD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"THEN1__WD"</span><span class="plain-syntax">)</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-tsk.html#SP1_1">&#167;1.1</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="4-rvs.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="progresscurrentchapter">4</li><li class="progresssection"><a href="4-lbks.html">lbks</a></li><li class="progresssection"><a href="4-sws.html">sws</a></li><li class="progresssection"><a href="4-dics.html">dics</a></li><li class="progresssection"><a href="4-mius.html">mius</a></li><li class="progresssection"><a href="4-rvs.html">rvs</a></li><li class="progresscurrent">tsk</li><li class="progresschapter"><a href="5-msms.html">5</a></li><li class="progresschapter"><a href="6-erms.html">6</a></li><li class="progressnext"><a href="5-msms.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>
</body>
</html>

View file

@ -84,12 +84,12 @@ of packages of type <span class="extract"><span class="extract-syntax">_activity
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticActivities::compile</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">SynopticActivities::compile</span></span>:<br/>Make Synoptic Module Stage - <a href="5-msms.html#SP1">&#167;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="reserved-syntax">tree_inventory</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">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">activity_nodes</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">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">activity_nodes</span><span class="plain-syntax">, </span><a href="5-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">activity_nodes</span><span class="plain-syntax">, </span><a href="5-msms.html#SP6" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::module_order</span></a><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;TreeLists::len(inv-&gt;</span><span class="element-syntax">activity_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">activity_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_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><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">"activity_id"</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="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><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">"activity_id"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">+1] = (</span><span class="identifier-syntax">inter_ti</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">D</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::get_optional_definition</span></a><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">"var_id"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="5-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::get_optional_definition</span></a><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">"var_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">D</span><span class="plain-syntax">) </span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">+1] = (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) (10000 + </span><span class="identifier-syntax">i</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
@ -105,13 +105,13 @@ of packages of type <span class="extract"><span class="extract-syntax">_activity
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">ACTIVITY_AFTER_RULEBOOKS_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_array</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="plain-syntax"> </span><a href="5-su.html#SP7" class="function-link"><span class="function-syntax">Synoptic::begin_array</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="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;TreeLists::len(inv-&gt;</span><span class="element-syntax">activity_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">activity_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">vc_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_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">"^after_rulebook"</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::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax">);</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_array</span></a><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#SP7" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><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="5-act.html#SP1">&#167;1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_2" class="paragraph-anchor"></a><b>&#167;1.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define ACTIVITY_ATB_RULEBOOKS array</span><span class="named-paragraph-number">1.2</span></span><span class="comment-syntax"> =</span>
@ -120,13 +120,13 @@ of packages of type <span class="extract"><span class="extract-syntax">_activity
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">ACTIVITY_ATB_RULEBOOKS_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::annotate_iname_i</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">BYTEARRAY_IANN</span><span class="plain-syntax">, </span><span class="constant-syntax">1</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_array</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="plain-syntax"> </span><a href="5-su.html#SP7" class="function-link"><span class="function-syntax">Synoptic::begin_array</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="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;TreeLists::len(inv-&gt;</span><span class="element-syntax">activity_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">activity_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_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">ubf</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">"^used_by_future"</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::numeric_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ubf</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ubf</span><span class="plain-syntax">);</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_array</span></a><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#SP7" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><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="5-act.html#SP1">&#167;1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_3" class="paragraph-anchor"></a><b>&#167;1.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define ACTIVITY_BEFORE_RULEBOOKS array</span><span class="named-paragraph-number">1.3</span></span><span class="comment-syntax"> =</span>
@ -134,13 +134,13 @@ of packages of type <span class="extract"><span class="extract-syntax">_activity
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">ACTIVITY_BEFORE_RULEBOOKS_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_array</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="plain-syntax"> </span><a href="5-su.html#SP7" class="function-link"><span class="function-syntax">Synoptic::begin_array</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="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;TreeLists::len(inv-&gt;</span><span class="element-syntax">activity_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">activity_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">vc_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_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">"^before_rulebook"</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::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax">);</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_array</span></a><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#SP7" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><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="5-act.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">Define ACTIVITY_FOR_RULEBOOKS array</span><span class="named-paragraph-number">1.4</span></span><span class="comment-syntax"> =</span>
@ -148,13 +148,13 @@ of packages of type <span class="extract"><span class="extract-syntax">_activity
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">ACTIVITY_FOR_RULEBOOKS_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_array</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="plain-syntax"> </span><a href="5-su.html#SP7" class="function-link"><span class="function-syntax">Synoptic::begin_array</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="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;TreeLists::len(inv-&gt;</span><span class="element-syntax">activity_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">activity_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">vc_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_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">"^for_rulebook"</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::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax">);</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_array</span></a><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#SP7" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><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="5-act.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="named-paragraph-container code-font"><span class="named-paragraph-defn">Define ACTIVITY_VAR_CREATORS array</span><span class="named-paragraph-number">1.5</span></span><span class="comment-syntax"> =</span>
@ -162,14 +162,14 @@ of packages of type <span class="extract"><span class="extract-syntax">_activity
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">ACTIVITY_VAR_CREATORS_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_array</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="plain-syntax"> </span><a href="5-su.html#SP7" class="function-link"><span class="function-syntax">Synoptic::begin_array</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="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;TreeLists::len(inv-&gt;</span><span class="element-syntax">activity_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">activity_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">vc_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_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">"^var_creator"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax">) </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax">) </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</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_array</span></a><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#SP7" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><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="5-act.html#SP1">&#167;1</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">

View file

@ -92,12 +92,12 @@ of packages of type <span class="extract"><span class="extract-syntax">_action</
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticActions::compile</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">SynopticActions::compile</span></span>:<br/>Make Synoptic Module Stage - <a href="5-msms.html#SP1">&#167;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="reserved-syntax">tree_inventory</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">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">action_nodes</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">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">action_nodes</span><span class="plain-syntax">, </span><a href="5-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">action_nodes</span><span class="plain-syntax">, </span><a href="5-msms.html#SP6" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::module_order</span></a><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;TreeLists::len(inv-&gt;</span><span class="element-syntax">action_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">action_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_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><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">"action_id"</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="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><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">"action_id"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">+1] = (</span><span class="identifier-syntax">inter_ti</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">D</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::get_optional_definition</span></a><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">"var_id"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="5-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::get_optional_definition</span></a><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">"var_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">D</span><span class="plain-syntax">) </span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">+1] = (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) (20000 + </span><span class="identifier-syntax">i</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
@ -132,11 +132,11 @@ of packages of type <span class="extract"><span class="extract-syntax">_action</
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">ACTIONHAPPENED_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_array</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="plain-syntax"> </span><a href="5-su.html#SP7" class="function-link"><span class="function-syntax">Synoptic::begin_array</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="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;=(TreeLists::len(inv-&gt;</span><span class="element-syntax">action_nodes</span><span class="plain-syntax">)/16); </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::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><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#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP7" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><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="5-act2.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">Define ACTIONCODING array</span><span class="named-paragraph-number">2.4</span></span><span class="comment-syntax"> =</span>
@ -144,16 +144,16 @@ of packages of type <span class="extract"><span class="extract-syntax">_action</
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">ACTIONCODING_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_array</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="plain-syntax"> </span><a href="5-su.html#SP7" class="function-link"><span class="function-syntax">Synoptic::begin_array</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="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;TreeLists::len(inv-&gt;</span><span class="element-syntax">action_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">action_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">double_sharp_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_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">"^double_sharp"</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">no</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">"^no_coding"</span><span 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</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">double_sharp_s</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)) </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">double_sharp_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">no</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">double_sharp_s</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)) </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">double_sharp_s</span><span class="plain-syntax">);</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::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><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#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP7" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><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="5-act2.html#SP2">&#167;2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_5" class="paragraph-anchor"></a><b>&#167;2.5. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define ACTIONDATA array</span><span class="named-paragraph-number">2.5</span></span><span class="comment-syntax"> =</span>
@ -162,18 +162,18 @@ of packages of type <span class="extract"><span class="extract-syntax">_action</
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">ACTIONDATA_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::annotate_iname_i</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">TABLEARRAY_IANN</span><span class="plain-syntax">, </span><span class="constant-syntax">1</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_array</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="plain-syntax"> </span><a href="5-su.html#SP7" class="function-link"><span class="function-syntax">Synoptic::begin_array</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="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;TreeLists::len(inv-&gt;</span><span class="element-syntax">action_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">action_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">double_sharp_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_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">"^double_sharp"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">double_sharp_s</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</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="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">double_sharp_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">double_sharp_s</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">out_of_world</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">"^out_of_world"</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">requires_light</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">"^requires_light"</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">can_have_noun</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">"^can_have_noun"</span><span class="plain-syntax">);</span>
@ -192,17 +192,17 @@ of packages of type <span class="extract"><span class="extract-syntax">_action</
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">can_have_second</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">msp</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">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">bitmap</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) (</span><span class="identifier-syntax">mn</span><span class="plain-syntax"> + </span><span class="identifier-syntax">ms</span><span class="plain-syntax">*</span><span class="constant-syntax">0x02</span><span class="plain-syntax"> + </span><span class="identifier-syntax">ml</span><span class="plain-syntax">*</span><span class="constant-syntax">0x04</span><span class="plain-syntax"> + </span><span class="identifier-syntax">mnp</span><span class="plain-syntax">*</span><span class="constant-syntax">0x08</span><span class="plain-syntax"> +</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">msp</span><span class="plain-syntax">*</span><span class="constant-syntax">0x10</span><span class="plain-syntax"> + (</span><span class="identifier-syntax">out_of_world</span><span class="plain-syntax">?1:0)*</span><span class="constant-syntax">0x20</span><span class="plain-syntax"> + </span><span class="identifier-syntax">hn</span><span class="plain-syntax">*</span><span class="constant-syntax">0x40</span><span class="plain-syntax"> + </span><span class="identifier-syntax">hs</span><span class="plain-syntax">*</span><span class="constant-syntax">0x80</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::numeric_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">bitmap</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::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">noun_kind</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::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">second_kind</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">bitmap</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">noun_kind</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">second_kind</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">vc_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_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">"^var_creator"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax">) </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax">) </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</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::numeric_entry</span></a><span class="plain-syntax">((</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) (20000 + </span><span class="identifier-syntax">i</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">((</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) (20000 + </span><span class="identifier-syntax">i</span><span class="plain-syntax">));</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::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><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#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP7" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><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="5-act2.html#SP2">&#167;2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_6" class="paragraph-anchor"></a><b>&#167;2.6. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define DB_ACTION_DETAILS function</span><span class="named-paragraph-number">2.6</span></span><span class="comment-syntax"> =</span>
@ -211,10 +211,10 @@ of packages of type <span class="extract"><span class="extract-syntax">_action</
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">DB_ACTION_DETAILS_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">act_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" 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">"act"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">n_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" 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">"n"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">s_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" 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">"s"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">for_say_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" 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">"for_say"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">act_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">"act"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">n_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">"n"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">s_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">"s"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">for_say_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">"for_say"</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">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">SWITCH_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">act_s</span><span class="plain-syntax">);</span>

View file

@ -84,18 +84,18 @@ over the Inter tree. Each needs its own set of unique IDs.
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticChronology::compile</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">SynopticChronology::compile</span></span>:<br/>Make Synoptic Module Stage - <a href="5-msms.html#SP1">&#167;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="reserved-syntax">tree_inventory</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">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">action_history_condition_nodes</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">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">action_history_condition_nodes</span><span class="plain-syntax">, </span><a href="5-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">action_history_condition_nodes</span><span class="plain-syntax">, </span><a href="5-msms.html#SP6" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::module_order</span></a><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;TreeLists::len(inv-&gt;</span><span class="element-syntax">action_history_condition_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">action_history_condition_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_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><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">"ahc_id"</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="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><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">"ahc_id"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">+1] = (</span><span class="identifier-syntax">inter_ti</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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">past_tense_condition_nodes</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">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">past_tense_condition_nodes</span><span class="plain-syntax">, </span><a href="5-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">past_tense_condition_nodes</span><span class="plain-syntax">, </span><a href="5-msms.html#SP6" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::module_order</span></a><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;TreeLists::len(inv-&gt;</span><span class="element-syntax">past_tense_condition_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">past_tense_condition_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_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><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">"ptc_id"</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="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><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">"ptc_id"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">+1] = (</span><span class="identifier-syntax">inter_ti</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>
@ -132,22 +132,22 @@ over the Inter tree. Each needs its own set of unique IDs.
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">TIMEDEVENTSTABLE_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::annotate_iname_i</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">TABLEARRAY_IANN</span><span class="plain-syntax">, </span><span class="constant-syntax">1</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_array</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="plain-syntax"> </span><a href="5-su.html#SP7" class="function-link"><span class="function-syntax">Synoptic::begin_array</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="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">when_count</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">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;TreeLists::len(inv-&gt;</span><span class="element-syntax">rule_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">rule_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::exists</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">"^timed"</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">rule_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_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">"^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">Metadata::exists</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">"^timed_for"</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::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">rule_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">rule_s</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">when_count</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">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">when_count</span><span class="plain-syntax">+1; </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::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</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_array</span></a><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#SP7" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><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="5-chr.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">Define TIMEDEVENTTIMESTABLE</span><span class="named-paragraph-number">1.4</span></span><span class="comment-syntax"> =</span>
@ -156,22 +156,22 @@ over the Inter tree. Each needs its own set of unique IDs.
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">TIMEDEVENTTIMESTABLE_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::annotate_iname_i</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">TABLEARRAY_IANN</span><span class="plain-syntax">, </span><span class="constant-syntax">1</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_array</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="plain-syntax"> </span><a href="5-su.html#SP7" class="function-link"><span class="function-syntax">Synoptic::begin_array</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="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">when_count</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">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;TreeLists::len(inv-&gt;</span><span class="element-syntax">rule_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">rule_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::exists</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">"^timed"</span><span 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::exists</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">"^timed_for"</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">t</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">"^timed_for"</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::numeric_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><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">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">when_count</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">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">when_count</span><span class="plain-syntax">+1; </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::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</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_array</span></a><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#SP7" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><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="5-chr.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="named-paragraph-container code-font"><span class="named-paragraph-defn">Define PASTACTIONSI6ROUTINES</span><span class="named-paragraph-number">1.5</span></span><span class="comment-syntax"> =</span>
@ -179,16 +179,16 @@ over the Inter tree. Each needs its own set of unique IDs.
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">PASTACTIONSI6ROUTINES_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_array</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="plain-syntax"> </span><a href="5-su.html#SP7" class="function-link"><span class="function-syntax">Synoptic::begin_array</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="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;TreeLists::len(inv-&gt;</span><span class="element-syntax">action_history_condition_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">action_history_condition_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">fn_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_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">"^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">fn_s</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 pap_fn"</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::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">fn_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">fn_s</span><span class="plain-syntax">);</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::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><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#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP7" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><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="5-chr.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="named-paragraph-container code-font"><span class="named-paragraph-defn">Define TESTSINGLEPASTSTATE</span><span class="named-paragraph-number">1.6</span></span><span class="comment-syntax"> =</span>
@ -197,14 +197,14 @@ over the Inter tree. Each needs its own set of unique IDs.
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">TESTSINGLEPASTSTATE_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">past_flag_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" 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">"past_flag"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pt_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" 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">"pt"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">turn_end_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" 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">"turn_end"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wanted_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" 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">"wanted"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">old_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" 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">"old"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">new_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" 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">"new"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">trips_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" 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">"trips"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">consecutives_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" 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">"consecutives"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">past_flag_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">"past_flag"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pt_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">"pt"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">turn_end_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">"turn_end"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wanted_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">"wanted"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">old_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">"old"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">new_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">"new"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">trips_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">"trips"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">consecutives_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">"consecutives"</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">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">past_tense_condition_nodes</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prcr_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">PRESENT_CHRONOLOGICAL_RECORD_HL</span><span class="plain-syntax">));</span>

View file

@ -77,28 +77,37 @@ function togglePopup(material_id) {
contain the material compiled from extensions. We must allocate each one a unique ID.
</p>
<p class="commentary">As this is called, <a href="5-su.html" class="internal">Synoptic Utilities</a> has already formed a list <span class="extract"><span class="extract-syntax">extension_nodes</span></span>
of packages of type <span class="extract"><span class="extract-syntax">_module</span></span> which derive from extensions.
<p class="commentary">Our inventory <span class="extract"><span class="extract-syntax">inv</span></span> already contains a list <span class="extract"><span class="extract-syntax">inv-&gt;extension_nodes</span></span> of packages
with the type <span class="extract"><span class="extract-syntax">_module</span></span> which derive from extensions.
</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">SynopticExtensions::compile</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">SynopticExtensions::compile</span></span>:<br/>Make Synoptic Module Stage - <a href="5-msms.html#SP1">&#167;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="reserved-syntax">tree_inventory</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">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">extension_nodes</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">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">extension_nodes</span><span class="plain-syntax">, </span><a href="5-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::category_order</span></a><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;TreeLists::len(inv-&gt;</span><span class="element-syntax">extension_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">extension_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_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><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">"extension_id"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">+1] = (</span><span class="identifier-syntax">inter_ti</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="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-ext.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Define SHOWEXTENSIONVERSIONS function</span><span class="named-paragraph-number">1.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-ext.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Define SHOWFULLEXTENSIONVERSIONS function</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-ext.html#SP1_3" class="named-paragraph-link"><span class="named-paragraph">Define SHOWONEEXTENSION function</span><span class="named-paragraph-number">1.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">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">extension_nodes</span><span class="plain-syntax">) &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="5-ext.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Assign unique extension ID numbers</span><span class="named-paragraph-number">1.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-ext.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Define SHOWEXTENSIONVERSIONS function</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-ext.html#SP1_3" class="named-paragraph-link"><span class="named-paragraph">Define SHOWFULLEXTENSIONVERSIONS 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-ext.html#SP1_4" class="named-paragraph-link"><span class="named-paragraph">Define SHOWONEEXTENSION function</span><span class="named-paragraph-number">1.4</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>Extensions have an obvious effect at runtime &mdash; they include extra material.
But there are also just three functions which deal with extensions as if
they were values; all of them simply print credits out.
<p class="commentary firstcommentary"><a id="SP1_1" class="paragraph-anchor"></a><b>&#167;1.1. </b>Each extension module contains a numeric constant with the symbol name <span class="extract"><span class="extract-syntax">extension_id</span></span>.
We want to ensure that these ID numbers are contiguous from 1 and never duplicated,
so we change the values of these constants accordingly.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Assign unique extension ID numbers</span><span class="named-paragraph-number">1.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">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">extension_nodes</span><span class="plain-syntax">, </span><a href="5-msms.html#SP6" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::category_order</span></a><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;TreeLists::len(inv-&gt;</span><span class="element-syntax">extension_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">extension_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_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><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">"extension_id"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">+1] = (</span><span class="identifier-syntax">inter_ti</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>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-ext.html#SP1">&#167;1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_2" class="paragraph-anchor"></a><b>&#167;1.2. </b>Now we compile three functions, each of which simply prints credits out.
</p>
<p class="commentary">This is more important than it may sound because many extensions are published
@ -119,14 +128,15 @@ of a different author writing an extension which did not ask for modesty. That
would violate the CC license.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define SHOWEXTENSIONVERSIONS function</span><span class="named-paragraph-number">1.1</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define SHOWEXTENSIONVERSIONS function</span><span class="named-paragraph-number">1.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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">SHOWEXTENSIONVERSIONS_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="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;TreeLists::len(inv-&gt;</span><span class="element-syntax">extension_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">extension_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_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">extension_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_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">modesty</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">"^modesty"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">modesty</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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">credit</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::duplicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">Metadata::read_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">"^credit"</span><span class="plain-syntax">));</span>
@ -140,10 +150,10 @@ would violate the CC license.
<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-ext.html#SP1">&#167;1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_2" class="paragraph-anchor"></a><b>&#167;1.2. </b>This fuller version does not allow the exemptions.
<p class="commentary firstcommentary"><a id="SP1_3" class="paragraph-anchor"></a><b>&#167;1.3. </b>This fuller version does not allow the exemptions.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define SHOWFULLEXTENSIONVERSIONS function</span><span class="named-paragraph-number">1.2</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define SHOWFULLEXTENSIONVERSIONS function</span><span class="named-paragraph-number">1.3</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -161,17 +171,18 @@ would violate the CC license.
<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-ext.html#SP1">&#167;1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_3" class="paragraph-anchor"></a><b>&#167;1.3. </b>This prints the name of a single extension, identified by a value which
is its extension ID.
<p class="commentary firstcommentary"><a id="SP1_4" class="paragraph-anchor"></a><b>&#167;1.4. </b>This prints the name of a single extension, identified by a value which
is its extension ID. Speed of execution here is quite unimportant, so it's
just a run of <span class="extract"><span class="extract-syntax">if (id == 1) ...</span></span>, then <span class="extract"><span class="extract-syntax">if (id == 2) ...</span></span>, and so on.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define SHOWONEEXTENSION function</span><span class="named-paragraph-number">1.3</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define SHOWONEEXTENSION 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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">SHOWONEEXTENSION_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">id_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" 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">"id"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">id_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">"id"</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;TreeLists::len(inv-&gt;</span><span class="element-syntax">extension_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">extension_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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">credit</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_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">"^credit"</span><span class="plain-syntax">);</span>

View file

@ -86,7 +86,7 @@ of packages of type <span class="extract"><span class="extract-syntax">_instance
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticInstances::compile</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">SynopticInstances::compile</span></span>:<br/>Make Synoptic Module Stage - <a href="5-msms.html#SP1">&#167;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="reserved-syntax">tree_inventory</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">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">instance_nodes</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">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">instance_nodes</span><span class="plain-syntax">, </span><a href="5-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">instance_nodes</span><span class="plain-syntax">, </span><a href="5-msms.html#SP6" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::module_order</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-ins.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Define SHOWMEINSTANCEDETAILS function</span><span class="named-paragraph-number">1.1</span></a></span>
<span class="plain-syntax">}</span>
@ -97,9 +97,9 @@ of packages of type <span class="extract"><span class="extract-syntax">_instance
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">SHOWMEINSTANCEDETAILS_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">which_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" 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">"which"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">na_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" 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">"na"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" 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">"t_0"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">which_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">"which"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">na_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">"na"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t_0_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">"t_0"</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;TreeLists::len(inv-&gt;</span><span class="element-syntax">instance_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">instance_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">showme_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_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">"^showme_fn"</span><span class="plain-syntax">);</span>

View file

@ -98,7 +98,7 @@ of packages of type <span class="extract"><span class="extract-syntax">_kind</sp
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticKinds::compile</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">SynopticKinds::compile</span></span>:<br/>Make Synoptic Module Stage - <a href="5-msms.html#SP1">&#167;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="reserved-syntax">tree_inventory</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">TreeLists::len</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="constant-syntax">0</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</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">, </span><a href="5-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</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">, </span><a href="5-msms.html#SP6" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::module_order</span></a><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;TreeLists::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">Inter::Package::defined_by_frame</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">id_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_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">"^strong_id"</span><span class="plain-syntax">);</span>
@ -106,7 +106,7 @@ of packages of type <span class="extract"><span class="extract-syntax">_kind</sp
<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">TreeLists::len</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">) &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::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-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::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#SP6" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::module_order</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-knd.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Define BASE_KIND_HWM</span><span class="named-paragraph-number">1.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-knd.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Define DEFAULTVALUEFINDER function</span><span class="named-paragraph-number">1.2</span></a></span><span class="plain-syntax">;</span>
@ -136,12 +136,12 @@ of packages of type <span class="extract"><span class="extract-syntax">_kind</sp
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">DEFAULTVALUEFINDER_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#SP5" 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="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;TreeLists::len(inv-&gt;</span><span class="element-syntax">derived_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">Inter::Package::defined_by_frame</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">-&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_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">"^default_value_needed"</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">rks_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP3" class="function-link"><span class="function-syntax">Synoptic::get_symbol</span></a><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">dv_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP3" class="function-link"><span class="function-syntax">Synoptic::get_symbol</span></a><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">"default_value"</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">rks_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::get_symbol</span></a><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">dv_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::get_symbol</span></a><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">"default_value"</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>
@ -174,8 +174,8 @@ which have to be given some type-safe value to start out at.
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">DEFAULTVALUEOFKOV_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">sk_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" 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">"sk"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">k_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" 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="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sk_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">"sk"</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_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="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">STORE_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::ref_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>
@ -225,8 +225,8 @@ which have to be given some type-safe value to start out at.
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">PRINTKINDVALUEPAIR_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#SP5" 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="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">v_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" 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">"v"</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_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="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">v_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">"v"</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">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">STORE_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::ref_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>
@ -290,7 +290,7 @@ unless the two values are genuinely equal.
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">KOVCOMPARISONFUNCTION_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#SP5" 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="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="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">STORE_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::ref_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>
@ -334,7 +334,7 @@ unless the two values are genuinely equal.
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">KOVDOMAINSIZE_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#SP5" 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="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="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">STORE_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::ref_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>
@ -382,7 +382,7 @@ a kind storing pointers to blocks of data.
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">KOVISBLOCKVALUE_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#SP5" 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="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="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">STORE_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>
@ -424,7 +424,7 @@ a kind storing pointers to blocks of data.
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">I7_KIND_NAME_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#SP5" 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="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;TreeLists::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">Inter::Package::defined_by_frame</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">class_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_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">"^object_class"</span><span class="plain-syntax">);</span>
@ -461,8 +461,8 @@ such a function does, see "BlockValues.i6t".
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">KOVSUPPORTFUNCTION_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#SP5" 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="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">fail_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" 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">"fail"</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_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="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">fail_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">"fail"</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">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">STORE_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>
@ -521,9 +521,9 @@ such a function does, see "BlockValues.i6t".
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">SHOWMEKINDDETAILS_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">which_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" 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">"which"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">na_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" 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">"na"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" 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">"t_0"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">which_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">"which"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">na_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">"na"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t_0_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">"t_0"</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;TreeLists::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">Inter::Package::defined_by_frame</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_object"</span><span class="plain-syntax">)) {</span>
@ -607,25 +607,25 @@ a kind of thing.
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Symbols::annotate_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><span class="identifier-syntax">inter_ti</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_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">KINDHIERARCHY_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_array</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="plain-syntax"> </span><a href="5-su.html#SP7" class="function-link"><span class="function-syntax">Synoptic::begin_array</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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">LinkedLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</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="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><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="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><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="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</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="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax">, </span><span class="identifier-syntax">ordered_L</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::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kind_name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kind_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">super_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Kind::super</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">super_name</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">super_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="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(</span><a href="5-knd.html#SP2" class="function-link"><span class="function-syntax">SynopticKinds::kind_of_object_count</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="identifier-syntax">super_name</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(</span><a href="5-knd.html#SP2" class="function-link"><span class="function-syntax">SynopticKinds::kind_of_object_count</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="identifier-syntax">super_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="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</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="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</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_array</span></a><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#SP7" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><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="5-knd.html#SP1">&#167;1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. </b></p>

View file

@ -136,7 +136,7 @@ this will be executed on the first <span class="extract"><span class="extract-sy
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">A</span><span class="plain-syntax">, </span><span class="string-syntax">"alphabetised_text_%d"</span><span class="plain-syntax">, </span><span class="identifier-syntax">j</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">alpha_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP3" class="function-link"><span class="function-syntax">Synoptic::new_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">texts_pack</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">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">A</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP4" class="function-link"><span class="function-syntax">Synoptic::def_textual_constant</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">alpha_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP4" class="function-link"><span class="function-syntax">Synoptic::textual_constant</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">alpha_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">latest_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">alpha_s</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">latest_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">S</span><span class="plain-syntax">;</span>
</pre>

View file

@ -84,13 +84,13 @@ of instances having the kind <span class="extract"><span class="extract-syntax">
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticMultimedia::compile</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">SynopticMultimedia::compile</span></span>:<br/>Make Synoptic Module Stage - <a href="5-msms.html#SP1">&#167;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="reserved-syntax">tree_inventory</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">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">figure_nodes</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">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">figure_nodes</span><span class="plain-syntax">, </span><a href="5-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">figure_nodes</span><span class="plain-syntax">, </span><a href="5-msms.html#SP6" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::module_order</span></a><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">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">sound_nodes</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">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">sound_nodes</span><span class="plain-syntax">, </span><a href="5-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">sound_nodes</span><span class="plain-syntax">, </span><a href="5-msms.html#SP6" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::module_order</span></a><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">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">file_nodes</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">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">file_nodes</span><span class="plain-syntax">, </span><a href="5-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">file_nodes</span><span class="plain-syntax">, </span><a href="5-msms.html#SP6" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::module_order</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-mlt.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Define RESOURCEIDSOFFIGURES array</span><span class="named-paragraph-number">1.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-mlt.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Define RESOURCEIDSOFSOUNDS array</span><span class="named-paragraph-number">1.2</span></a></span><span class="plain-syntax">;</span>
@ -103,15 +103,15 @@ of instances having the kind <span class="extract"><span class="extract-syntax">
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">RESOURCEIDSOFFIGURES_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_array</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="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP7" class="function-link"><span class="function-syntax">Synoptic::begin_array</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="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</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;TreeLists::len(inv-&gt;</span><span class="element-syntax">figure_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">figure_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_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</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">"^resource_id"</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::numeric_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">);</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::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><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#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP7" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><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="5-mlt.html#SP1">&#167;1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_2" class="paragraph-anchor"></a><b>&#167;1.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define RESOURCEIDSOFSOUNDS array</span><span class="named-paragraph-number">1.2</span></span><span class="comment-syntax"> =</span>
@ -119,15 +119,15 @@ of instances having the kind <span class="extract"><span class="extract-syntax">
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">RESOURCEIDSOFSOUNDS_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_array</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="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP7" class="function-link"><span class="function-syntax">Synoptic::begin_array</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="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</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;TreeLists::len(inv-&gt;</span><span class="element-syntax">sound_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">sound_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_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</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">"^resource_id"</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::numeric_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">);</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::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><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#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP7" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><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="5-mlt.html#SP1">&#167;1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_3" class="paragraph-anchor"></a><b>&#167;1.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define NO_EXTERNAL_FILES</span><span class="named-paragraph-number">1.3</span></span><span class="comment-syntax"> =</span>
@ -143,15 +143,15 @@ of instances having the kind <span class="extract"><span class="extract-syntax">
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">TABLEOFEXTERNALFILES_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_array</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="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP7" class="function-link"><span class="function-syntax">Synoptic::begin_array</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="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</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;TreeLists::len(inv-&gt;</span><span class="element-syntax">file_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">file_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">vc_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_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">"^file_value"</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::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax">);</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::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><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#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP7" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><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="5-mlt.html#SP1">&#167;1</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">

View file

@ -73,7 +73,14 @@ function togglePopup(material_id) {
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.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>Make Synoptic Module Stage</b></li></ul></div>
<p class="purpose">Creating a top-level module of synoptic resources.</p>
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. </b></p>
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. </b>At this point the tree contains one module for each compilation unit included
in the link: which is a fancy way of saying, it contains one module for the
main source text, ohe for each extension, and one each for each kit included.
</p>
<p class="commentary">We now add one final module, <span class="extract"><span class="extract-syntax">/main/synoptic</span></span>, which contains resources compiled
together from all of the others.
</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">MakeSynopticModuleStage::create_pipeline_stage</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">MakeSynopticModuleStage::create_pipeline_stage</span></span>:<br/>Parsing Pipelines - <a href="2-pp.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
@ -83,7 +90,10 @@ function togglePopup(material_id) {
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">MakeSynopticModuleStage::run</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="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">repository</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::inv</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="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="5-msms.html#SP5" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::take_inventory_cached</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-sh.html#SP1" class="function-link"><span class="function-syntax">SynopticHierarchy::establish</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">); </span><span class="comment-syntax"> in case this has not already been done</span>
<span class="plain-syntax"> </span><a href="4-tsk.html#SP1" class="function-link"><span class="function-syntax">KitHierarchy::establish</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">); </span><span class="comment-syntax"> likewise</span>
<span class="plain-syntax"> </span><a href="5-lt.html#SP1" class="function-link"><span class="function-syntax">SynopticText::compile</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">inv</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-act2.html#SP2" class="function-link"><span class="function-syntax">SynopticActions::compile</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">inv</span><span class="plain-syntax">);</span>
@ -107,8 +117,231 @@ function togglePopup(material_id) {
<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>
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. </b>The inventory for an Inter tree is an itemisation of packages with particular
types: for example, we can ask it to hold a list of <span class="extract"><span class="extract-syntax">_activity</span></span> packages.
</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">tree_inventory</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">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">of_tree</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">items</span><span class="plain-syntax">; </span><span class="comment-syntax"> of </span><span class="extract"><span class="extract-syntax">tree_inventory_item</span></span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">module_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">response_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rulebook_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rule_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">activity_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">action_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">property_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">extension_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">relation_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">table_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">table_column_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">table_column_usage_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">action_history_condition_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">past_tense_condition_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">instance_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">scene_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">file_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">figure_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sound_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">use_option_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">verb_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">modal_verb_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">verb_form_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">preposition_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">adjective_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">derived_kind_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kind_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">test_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">named_action_pattern_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">variable_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">equation_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">heading_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">multiplication_rule_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax">;</span>
<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">tree_inventory_item</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">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">node_list</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">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">required_ptype</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">tree_inventory_item</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure tree_inventory is accessed in 5/ext, 5/lt, 5/rsp, 5/rls, 5/act, 5/act2, 5/ins, 5/knd, 5/prp, 5/rlt, 5/tbl, 5/chr, 5/scn, 5/mlt, 5/uo, 5/vrb, 5/tst and here.</li><li>The structure tree_inventory_item is private to this section.</li></ul>
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>&#167;3. </b>Creating one of these is quick enough: when created, it's just a list of
requirements.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="function-syntax">MakeSynopticModuleStage::new_inventory</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">MakeSynopticModuleStage::new_inventory</span></span>:<br/><a href="5-msms.html#SP4">&#167;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="plain-syntax"> </span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">of_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">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">items</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">tree_inventory_item</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">text_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">response_nodes</span><span class="plain-syntax"> = </span><a href="5-msms.html#SP3" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::needs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_response"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">rulebook_nodes</span><span class="plain-syntax"> = </span><a href="5-msms.html#SP3" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::needs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_rulebook"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">rule_nodes</span><span class="plain-syntax"> = </span><a href="5-msms.html#SP3" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::needs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_rule"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">activity_nodes</span><span class="plain-syntax"> = </span><a href="5-msms.html#SP3" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::needs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_activity"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">action_nodes</span><span class="plain-syntax"> = </span><a href="5-msms.html#SP3" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::needs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_action"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">property_nodes</span><span class="plain-syntax"> = </span><a href="5-msms.html#SP3" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::needs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_property"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">relation_nodes</span><span class="plain-syntax"> = </span><a href="5-msms.html#SP3" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::needs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_relation"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">table_nodes</span><span class="plain-syntax"> = </span><a href="5-msms.html#SP3" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::needs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_table"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">table_column_nodes</span><span class="plain-syntax"> = </span><a href="5-msms.html#SP3" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::needs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_table_column"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">table_column_usage_nodes</span><span class="plain-syntax"> = </span><a href="5-msms.html#SP3" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::needs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_table_column_usage"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">action_history_condition_nodes</span><span class="plain-syntax"> = </span><a href="5-msms.html#SP3" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::needs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_action_history_condition"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">past_tense_condition_nodes</span><span class="plain-syntax"> = </span><a href="5-msms.html#SP3" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::needs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_past_condition"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">use_option_nodes</span><span class="plain-syntax"> = </span><a href="5-msms.html#SP3" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::needs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_use_option"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">verb_nodes</span><span class="plain-syntax"> = </span><a href="5-msms.html#SP3" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::needs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_verb"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">modal_verb_nodes</span><span class="plain-syntax"> = </span><a href="5-msms.html#SP3" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::needs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_modal_verb"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">verb_form_nodes</span><span class="plain-syntax"> = </span><a href="5-msms.html#SP3" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::needs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_verb_form"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">preposition_nodes</span><span class="plain-syntax"> = </span><a href="5-msms.html#SP3" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::needs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_preposition"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">adjective_nodes</span><span class="plain-syntax"> = </span><a href="5-msms.html#SP3" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::needs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_adjective"</span><span class="plain-syntax">);</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#SP3" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::needs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_derived_kind"</span><span class="plain-syntax">);</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"> = </span><a href="5-msms.html#SP3" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::needs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_kind"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">module_nodes</span><span class="plain-syntax"> = </span><a href="5-msms.html#SP3" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::needs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_module"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">instance_nodes</span><span class="plain-syntax"> = </span><a href="5-msms.html#SP3" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::needs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_instance"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">test_nodes</span><span class="plain-syntax"> = </span><a href="5-msms.html#SP3" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::needs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_test"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">named_action_pattern_nodes</span><span class="plain-syntax"> = </span><a href="5-msms.html#SP3" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::needs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_named_action_pattern"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">variable_nodes</span><span class="plain-syntax"> = </span><a href="5-msms.html#SP3" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::needs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_variable"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">equation_nodes</span><span class="plain-syntax"> = </span><a href="5-msms.html#SP3" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::needs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_equation"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">heading_nodes</span><span class="plain-syntax"> = </span><a href="5-msms.html#SP3" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::needs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_heading"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">multiplication_rule_nodes</span><span class="plain-syntax"> = </span><a href="5-msms.html#SP3" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::needs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_multiplication_rule"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">extension_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">scene_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">file_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">figure_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">sound_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</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">inv</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="function-syntax">MakeSynopticModuleStage::needs</span><span class="plain-syntax">(</span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pt</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">tree_inventory_item</span><span class="plain-syntax"> *</span><span class="identifier-syntax">item</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">tree_inventory_item</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">item</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">node_list</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">item</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">required_ptype</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PackageTypes::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">of_tree</span><span class="plain-syntax">, </span><span class="identifier-syntax">pt</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">item</span><span class="plain-syntax">, </span><span class="reserved-syntax">tree_inventory_item</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">items</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">item</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">node_list</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>&#167;4. </b>The expensive part comes later, when we traverse the Inter tree and add
interesting packages to one of the lists.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="function-syntax">MakeSynopticModuleStage::take_inventory</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">MakeSynopticModuleStage::take_inventory</span></span>:<br/><a href="5-msms.html#SP5">&#167;5</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="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="5-msms.html#SP3" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::new_inventory</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">InterTree::traverse</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><a href="5-msms.html#SP4" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::visitor</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</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">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;TreeLists::len(inv-&gt;</span><span class="element-syntax">module_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">module_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">InterSymbolsTables::symbol_from_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Packages::scope</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">"extension_id"</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">extension_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">module_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="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;TreeLists::len(inv-&gt;</span><span class="element-syntax">instance_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">instance_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::exists</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_scene"</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">scene_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">instance_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::exists</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_file"</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">file_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">instance_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::exists</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_figure"</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">figure_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">instance_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::exists</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_sound"</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">sound_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">instance_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="plain-syntax"> </span><span class="reserved-syntax">return</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">void</span><span class="plain-syntax"> </span><span class="function-syntax">MakeSynopticModuleStage::visitor</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">inter_tree_node</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="identifier-syntax">state</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">state</span><span 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">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">ID_IFLD</span><span class="plain-syntax">] == </span><span class="identifier-syntax">CONSTANT_IST</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="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTables::symbol_from_frame_data</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">DEFN_CONST_IFLD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Inter::Symbols::read_annotation</span><span class="plain-syntax">(</span><span class="identifier-syntax">con_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">TEXT_LITERAL_IANN</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">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">text_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">ID_IFLD</span><span class="plain-syntax">] == </span><span class="identifier-syntax">PACKAGE_IST</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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ptype</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::type</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ptype</span><span class="plain-syntax"> == </span><span class="identifier-syntax">PackageTypes::get</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="string-syntax">"_kind"</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">"Inside $6:\n"</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">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ST</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::scope</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</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;ST-&gt;</span><span class="identifier-syntax">size</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ST</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">symbol_array</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">S</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">S</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">wiring</span><span class="plain-syntax">.</span><span class="identifier-syntax">no_connections</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">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"I observe $3 (%d)\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">wiring</span><span class="plain-syntax">.</span><span class="identifier-syntax">no_connections</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">tree_inventory_item</span><span class="plain-syntax"> *</span><span class="identifier-syntax">item</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">item</span><span class="plain-syntax">, </span><span class="reserved-syntax">tree_inventory_item</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">items</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ptype</span><span class="plain-syntax"> == </span><span class="identifier-syntax">item</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">required_ptype</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">item</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">node_list</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">break</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="SP5" class="paragraph-anchor"></a><b>&#167;5. </b>Calling <a href="5-msms.html#SP4" class="internal">MakeSynopticModuleStage::take_inventory</a> is potentially slow, so
we also offer a version which caches the results:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cached_inventory</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cache_is_for</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="function-syntax">MakeSynopticModuleStage::take_inventory_cached</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">MakeSynopticModuleStage::take_inventory_cached</span></span>:<br/><a href="5-msms.html#SP1">&#167;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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cache_is_for</span><span class="plain-syntax"> == </span><span class="identifier-syntax">I</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">cached_inventory</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">cache_is_for</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">cached_inventory</span><span class="plain-syntax"> = </span><a href="5-msms.html#SP4" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::take_inventory</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="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">cached_inventory</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>&#167;6. </b>The following are used for sorting.
</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">MakeSynopticModuleStage::module_order</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">MakeSynopticModuleStage::module_order</span></span>:<br/>Rules - <a href="5-rls.html#SP1">&#167;1</a><br/>Activities - <a href="5-act.html#SP1">&#167;1</a><br/>Actions - <a href="5-act2.html#SP2">&#167;2</a><br/>Instances - <a href="5-ins.html#SP1">&#167;1</a><br/>Kinds - <a href="5-knd.html#SP1">&#167;1</a><br/>Properties - <a href="5-prp.html#SP1">&#167;1</a><br/>Relations - <a href="5-rlt.html#SP1">&#167;1</a><br/>Tables - <a href="5-tbl.html#SP1">&#167;1</a><br/>Chronology - <a href="5-chr.html#SP1">&#167;1</a><br/>Scenes - <a href="5-scn.html#SP1">&#167;1</a><br/>Multimedia - <a href="5-mlt.html#SP1">&#167;1</a><br/>Use Options - <a href="5-uo.html#SP1">&#167;1</a><br/>Tests - <a href="5-tst.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ent1</span><span class="plain-syntax">, </span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ent2</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">itl_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E1</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">itl_entry</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">ent1</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">itl_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E2</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">itl_entry</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">ent2</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E1</span><span class="plain-syntax"> == </span><span class="identifier-syntax">E2</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">E1</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">node</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="identifier-syntax">P2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">E2</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">node</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">mod1</span><span class="plain-syntax"> = </span><a href="5-msms.html#SP6" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::module_containing</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P1</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">mod2</span><span class="plain-syntax"> = </span><a href="5-msms.html#SP6" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::module_containing</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P2</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">C1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">mod1</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^category"</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">C2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">mod2</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^category"</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">d</span><span class="plain-syntax"> = ((</span><span class="reserved-syntax">int</span><span class="plain-syntax">) </span><span class="identifier-syntax">C2</span><span class="plain-syntax">) - ((</span><span class="reserved-syntax">int</span><span class="plain-syntax">) </span><span class="identifier-syntax">C1</span><span class="plain-syntax">); </span><span class="comment-syntax"> larger values sort earlier</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">d</span><span class="plain-syntax"> != </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">E1</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">sort_key</span><span class="plain-syntax"> - </span><span class="identifier-syntax">E2</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">sort_key</span><span class="plain-syntax">; </span><span class="comment-syntax"> smaller values sort earlier</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">MakeSynopticModuleStage::category_order</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">MakeSynopticModuleStage::category_order</span></span>:<br/>Extensions - <a href="5-ext.html#SP1_1">&#167;1.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ent1</span><span class="plain-syntax">, </span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ent2</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">itl_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E1</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">itl_entry</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">ent1</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">itl_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E2</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">itl_entry</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">ent2</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E1</span><span class="plain-syntax"> == </span><span class="identifier-syntax">E2</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">E1</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">node</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="identifier-syntax">P2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">E2</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">node</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">mod1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::container</span><span class="plain-syntax">(</span><span class="identifier-syntax">P1</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">mod2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::container</span><span class="plain-syntax">(</span><span class="identifier-syntax">P2</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">C1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">mod1</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^category"</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">C2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">mod2</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^category"</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">d</span><span class="plain-syntax"> = ((</span><span class="reserved-syntax">int</span><span class="plain-syntax">) </span><span class="identifier-syntax">C2</span><span class="plain-syntax">) - ((</span><span class="reserved-syntax">int</span><span class="plain-syntax">) </span><span class="identifier-syntax">C1</span><span class="plain-syntax">); </span><span class="comment-syntax"> larger values sort earlier</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">d</span><span class="plain-syntax"> != </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">E1</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">sort_key</span><span class="plain-syntax"> - </span><span class="identifier-syntax">E2</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">sort_key</span><span class="plain-syntax">; </span><span class="comment-syntax"> smaller values sort earlier</span>
<span class="plain-syntax">}</span>
<span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="function-syntax">MakeSynopticModuleStage::module_containing</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">MakeSynopticModuleStage::module_containing</span></span>:<br/>Verbs - <a href="5-vrb.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::container</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::tree</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</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">pack</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">ptype</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::type</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ptype</span><span class="plain-syntax"> == </span><span class="identifier-syntax">PackageTypes::get</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="string-syntax">"_module"</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><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::parent</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</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">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="4-rvs.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="progresscurrent">msms</li><li class="progresssection"><a href="5-sh.html">sh</a></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-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-sh.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="4-tsk.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="progresscurrent">msms</li><li class="progresssection"><a href="5-sh.html">sh</a></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-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-sh.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -84,10 +84,10 @@ of packages of type <span class="extract"><span class="extract-syntax">_activity
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticProperties::compile</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">SynopticProperties::compile</span></span>:<br/>Make Synoptic Module Stage - <a href="5-msms.html#SP1">&#167;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="reserved-syntax">tree_inventory</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">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">property_nodes</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">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">property_nodes</span><span class="plain-syntax">, </span><a href="5-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">property_nodes</span><span class="plain-syntax">, </span><a href="5-msms.html#SP6" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::module_order</span></a><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;TreeLists::len(inv-&gt;</span><span class="element-syntax">property_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">property_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_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><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">"property_id"</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="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><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">"property_id"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">+1] = (</span><span class="identifier-syntax">inter_ti</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>

View file

@ -84,10 +84,10 @@ of packages of type <span class="extract"><span class="extract-syntax">_rulebook
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticRules::compile</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">SynopticRules::compile</span></span>:<br/>Make Synoptic Module Stage - <a href="5-msms.html#SP1">&#167;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="reserved-syntax">tree_inventory</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">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">rulebook_nodes</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">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">rulebook_nodes</span><span class="plain-syntax">, </span><a href="5-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">rulebook_nodes</span><span class="plain-syntax">, </span><a href="5-msms.html#SP6" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::module_order</span></a><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;TreeLists::len(inv-&gt;</span><span class="element-syntax">rulebook_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">rulebook_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_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><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">"rulebook_id"</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="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><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">"rulebook_id"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">+1] = (</span><span class="identifier-syntax">inter_ti</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>
@ -117,18 +117,18 @@ of packages of type <span class="extract"><span class="extract-syntax">_rulebook
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">RULEBOOKNAMES_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_array</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="plain-syntax"> </span><a href="5-su.html#SP7" class="function-link"><span class="function-syntax">Synoptic::begin_array</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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">economy</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::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</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><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;TreeLists::len(inv-&gt;</span><span class="element-syntax">rulebook_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">rulebook_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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_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">"^printed_name"</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::textual_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::textual_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</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_array</span></a><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#SP7" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><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="5-rls.html#SP1">&#167;1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_3" class="paragraph-anchor"></a><b>&#167;1.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define rulebook_var_creators array</span><span class="named-paragraph-number">1.3</span></span><span class="comment-syntax"> =</span>
@ -136,14 +136,14 @@ of packages of type <span class="extract"><span class="extract-syntax">_rulebook
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">RULEBOOK_VAR_CREATORS_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_array</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="plain-syntax"> </span><a href="5-su.html#SP7" class="function-link"><span class="function-syntax">Synoptic::begin_array</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="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;TreeLists::len(inv-&gt;</span><span class="element-syntax">rulebook_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">rulebook_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">vc_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_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">"^var_creator"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax">) </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax">) </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</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_array</span></a><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#SP7" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><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="5-rls.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">Define rulebooks_array array</span><span class="named-paragraph-number">1.4</span></span><span class="comment-syntax"> =</span>
@ -151,14 +151,14 @@ of packages of type <span class="extract"><span class="extract-syntax">_rulebook
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">RULEBOOKS_ARRAY_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_array</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="plain-syntax"> </span><a href="5-su.html#SP7" class="function-link"><span class="function-syntax">Synoptic::begin_array</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="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;TreeLists::len(inv-&gt;</span><span class="element-syntax">rulebook_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">rulebook_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">fn_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_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">"^run_fn"</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::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">fn_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">fn_s</span><span class="plain-syntax">);</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::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><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#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP7" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><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="5-rls.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="named-paragraph-container code-font"><span class="named-paragraph-defn">Define SlowLookup function</span><span class="named-paragraph-number">1.5</span></span><span class="comment-syntax"> =</span>
@ -167,7 +167,7 @@ of packages of type <span class="extract"><span class="extract-syntax">_rulebook
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">SLOW_LOOKUP_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">rb_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" 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">"rb"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rb_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">"rb"</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">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">SWITCH_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>
@ -206,7 +206,7 @@ of packages of type <span class="extract"><span class="extract-syntax">_rulebook
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">RULEPRINTINGRULE_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">R_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" 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">"R"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R_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">"R"</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">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">IFELSE_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>

View file

@ -84,10 +84,10 @@ of packages of type <span class="extract"><span class="extract-syntax">_relation
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticRelations::compile</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">SynopticRelations::compile</span></span>:<br/>Make Synoptic Module Stage - <a href="5-msms.html#SP1">&#167;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="reserved-syntax">tree_inventory</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">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">relation_nodes</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">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">relation_nodes</span><span class="plain-syntax">, </span><a href="5-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">relation_nodes</span><span class="plain-syntax">, </span><a href="5-msms.html#SP6" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::module_order</span></a><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;TreeLists::len(inv-&gt;</span><span class="element-syntax">relation_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">relation_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_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><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">"relation_id"</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="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><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">"relation_id"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">+1] = (</span><span class="identifier-syntax">inter_ti</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>
@ -125,7 +125,7 @@ of packages of type <span class="extract"><span class="extract-syntax">_relation
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">ITERATERELATIONS_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">callback_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" 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">"callback"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">callback_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">"callback"</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;TreeLists::len(inv-&gt;</span><span class="element-syntax">relation_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">relation_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">rel_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_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">"^value"</span><span class="plain-syntax">);</span>
@ -146,9 +146,9 @@ of packages of type <span class="extract"><span class="extract-syntax">_relation
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">RPROPERTY_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">obj_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" 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">"obj"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cl_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" 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">"cl"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pr_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" 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">"pr"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">obj_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">"obj"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cl_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">"cl"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pr_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">"pr"</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">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">OFCLASS_BIP</span><span class="plain-syntax">);</span>

View file

@ -97,7 +97,7 @@ correct ID.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">response_nodes</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">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;TreeLists::len(inv-&gt;</span><span class="element-syntax">response_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">response_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_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><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">"response_id"</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="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><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">"response_id"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">+1] = (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">i</span><span class="plain-syntax">+1;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
@ -124,15 +124,15 @@ of the text of that response.
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">RESPONSETEXTS_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_array</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="plain-syntax"> </span><a href="5-su.html#SP7" class="function-link"><span class="function-syntax">Synoptic::begin_array</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="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;TreeLists::len(inv-&gt;</span><span class="element-syntax">response_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">response_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">value_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_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">"^value"</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::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">value_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">value_s</span><span class="plain-syntax">);</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::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><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#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP7" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><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="5-rsp.html#SP1">&#167;1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_3" class="paragraph-anchor"></a><b>&#167;1.3. </b>The following array is used only by the testing command RESPONSES, and
@ -153,30 +153,30 @@ The triple <span class="extract"><span class="extract-syntax">(0, 0, 0)</span></
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">RESPONSEDIVISIONS_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_array</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="plain-syntax"> </span><a href="5-su.html#SP7" class="function-link"><span class="function-syntax">Synoptic::begin_array</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="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">current_group</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">start_pos</span><span class="plain-syntax"> = -1;</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;TreeLists::len(inv-&gt;</span><span class="element-syntax">response_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">response_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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">group</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_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">"^group"</span><span 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::ne</span><span class="plain-syntax">(</span><span class="identifier-syntax">group</span><span class="plain-syntax">, </span><span class="identifier-syntax">current_group</span><span 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_pos</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="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::textual_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">current_group</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::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">start_pos</span><span class="plain-syntax"> + </span><span class="constant-syntax">1</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::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>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::textual_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">current_group</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::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">start_pos</span><span class="plain-syntax"> + </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::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>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">current_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">start_pos</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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">start_pos</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="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::textual_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">current_group</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::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">start_pos</span><span class="plain-syntax"> + </span><span class="constant-syntax">1</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::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">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">response_nodes</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::textual_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">current_group</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::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">start_pos</span><span class="plain-syntax"> + </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::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">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">response_nodes</span><span class="plain-syntax">));</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::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><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#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP7" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><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="5-rsp.html#SP1">&#167;1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_4" class="paragraph-anchor"></a><b>&#167;1.4. </b>Finally, a function used when printing values of the <span class="extract"><span class="extract-syntax">K_response</span></span> kind;
@ -201,7 +201,7 @@ code is less limited.
<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::find</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><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">R_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" 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">"R"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R_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">"R"</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;TreeLists::len(inv-&gt;</span><span class="element-syntax">response_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">response_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>

View file

@ -83,7 +83,7 @@ of instances having the kind <span class="extract"><span class="extract-syntax">
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticScenes::compile</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">SynopticScenes::compile</span></span>:<br/>Make Synoptic Module Stage - <a href="5-msms.html#SP1">&#167;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="reserved-syntax">tree_inventory</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">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">scene_nodes</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">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">scene_nodes</span><span class="plain-syntax">, </span><a href="5-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">scene_nodes</span><span class="plain-syntax">, </span><a href="5-msms.html#SP6" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::module_order</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-scn.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Define SHOWSCENESTATUS function</span><span class="named-paragraph-number">1.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-scn.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Define DETECTSCENECHANGE function</span><span class="named-paragraph-number">1.2</span></a></span><span class="plain-syntax">;</span>
@ -119,7 +119,7 @@ whether any change in status has or has not occurred.
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">DETECTSCENECHANGE_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">chs_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" 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">"chs"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">chs_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">"chs"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Again_l</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Produce::reserve_label</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="string-syntax">".Again"</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">CScene_l</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Produce::reserve_label</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="string-syntax">".CScene"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::place_label</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">Again_l</span><span class="plain-syntax">);</span>

View file

@ -12,6 +12,14 @@
<link href="../docs-assets/Navigation.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Fonts.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Base.css" rel="stylesheet" rev="stylesheet" type="text/css">
<script>
function togglePopup(material_id) {
var popup = document.getElementById(material_id);
popup.classList.toggle("show");
}
</script>
<link href="../docs-assets/Popups.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
</head>
@ -65,63 +73,71 @@
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.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. Extensions</a></li><li><a href="5-sh.html#SP1_11">&#167;1.11. Instances</a></li><li><a href="5-sh.html#SP1_13">&#167;1.13. Kinds</a></li><li><a href="5-sh.html#SP1_15">&#167;1.15. Multimedia</a></li><li><a href="5-sh.html#SP1_17">&#167;1.17. Properties</a></li><li><a href="5-sh.html#SP1_19">&#167;1.19. Relations</a></li><li><a href="5-sh.html#SP1_21">&#167;1.21. Rulebooks</a></li><li><a href="5-sh.html#SP1_23">&#167;1.23. Rules</a></li><li><a href="5-sh.html#SP1_25">&#167;1.25. Scenes</a></li><li><a href="5-sh.html#SP1_27">&#167;1.27. Tables</a></li><li><a href="5-sh.html#SP1_29">&#167;1.29. Tests</a></li><li><a href="5-sh.html#SP1_31">&#167;1.31. Use options</a></li><li><a href="5-sh.html#SP1_33">&#167;1.33. Kit-defined symbols</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. Extensions</a></li><li><a href="5-sh.html#SP1_11">&#167;1.11. Instances</a></li><li><a href="5-sh.html#SP1_13">&#167;1.13. Kinds</a></li><li><a href="5-sh.html#SP1_15">&#167;1.15. Multimedia</a></li><li><a href="5-sh.html#SP1_17">&#167;1.17. Properties</a></li><li><a href="5-sh.html#SP1_19">&#167;1.19. Relations</a></li><li><a href="5-sh.html#SP1_21">&#167;1.21. Rulebooks</a></li><li><a href="5-sh.html#SP1_23">&#167;1.23. Rules</a></li><li><a href="5-sh.html#SP1_25">&#167;1.25. Scenes</a></li><li><a href="5-sh.html#SP1_27">&#167;1.27. Tables</a></li><li><a href="5-sh.html#SP1_29">&#167;1.29. Tests</a></li><li><a href="5-sh.html#SP1_31">&#167;1.31. Use options</a></li></ul><hr class="tocbar">
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. </b></p>
<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>
to call functions or use constants defined in the synoptic module, and also
allow them to be referred to from kits linked in.
</p>
<p class="commentary">Because the synoptic module exists only to provide resources, this section is
in effect a specification for it.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">SynopticHierarchy_established</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticHierarchy::establish</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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">SynopticHierarchy_established</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">SynopticHierarchy_established</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticHierarchy::establish</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">SynopticHierarchy::establish</span></span>:<br/>Make Synoptic Module Stage - <a href="5-msms.html#SP1">&#167;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="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">history_bits</span><span class="plain-syntax"> &amp; </span><span class="identifier-syntax">SYNOPTIC_HIERARCHY_MADE_ITHBIT</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">I</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">history_bits</span><span class="plain-syntax"> |= </span><span class="identifier-syntax">SYNOPTIC_HIERARCHY_MADE_ITHBIT</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">location_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="named-paragraph-container code-font"><a href="5-sh.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Establish actions</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-sh.html#SP1_4" class="named-paragraph-link"><span class="named-paragraph">Establish activities</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-sh.html#SP1_6" class="named-paragraph-link"><span class="named-paragraph">Establish chronology</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-sh.html#SP1_8" class="named-paragraph-link"><span class="named-paragraph">Establish conjugations</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-sh.html#SP1_10" class="named-paragraph-link"><span class="named-paragraph">Establish extensions</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-sh.html#SP1_12" class="named-paragraph-link"><span class="named-paragraph">Establish instances</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-sh.html#SP1_14" class="named-paragraph-link"><span class="named-paragraph">Establish kinds</span><span class="named-paragraph-number">1.14</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-sh.html#SP1_16" class="named-paragraph-link"><span class="named-paragraph">Establish multimedia</span><span class="named-paragraph-number">1.16</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-sh.html#SP1_18" class="named-paragraph-link"><span class="named-paragraph">Establish properties</span><span class="named-paragraph-number">1.18</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-sh.html#SP1_20" class="named-paragraph-link"><span class="named-paragraph">Establish relations</span><span class="named-paragraph-number">1.20</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-sh.html#SP1_22" class="named-paragraph-link"><span class="named-paragraph">Establish rulebooks</span><span class="named-paragraph-number">1.22</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-sh.html#SP1_24" class="named-paragraph-link"><span class="named-paragraph">Establish rules</span><span class="named-paragraph-number">1.24</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-sh.html#SP1_26" class="named-paragraph-link"><span class="named-paragraph">Establish scenes</span><span class="named-paragraph-number">1.26</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-sh.html#SP1_28" class="named-paragraph-link"><span class="named-paragraph">Establish tables</span><span class="named-paragraph-number">1.28</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-sh.html#SP1_30" class="named-paragraph-link"><span class="named-paragraph">Establish tests</span><span class="named-paragraph-number">1.30</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-sh.html#SP1_32" class="named-paragraph-link"><span class="named-paragraph">Establish use options</span><span class="named-paragraph-number">1.32</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-sh.html#SP1_34" class="named-paragraph-link"><span class="named-paragraph">Establish kit-defined resources</span><span class="named-paragraph-number">1.34</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-sh.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Resources for actions</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-sh.html#SP1_4" class="named-paragraph-link"><span class="named-paragraph">Resources for activities</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-sh.html#SP1_6" class="named-paragraph-link"><span class="named-paragraph">Resources for chronology</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-sh.html#SP1_8" class="named-paragraph-link"><span class="named-paragraph">Resources for conjugations</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-sh.html#SP1_10" class="named-paragraph-link"><span class="named-paragraph">Resources for extensions</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-sh.html#SP1_12" class="named-paragraph-link"><span class="named-paragraph">Resources for instances</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-sh.html#SP1_14" class="named-paragraph-link"><span class="named-paragraph">Resources for kinds</span><span class="named-paragraph-number">1.14</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-sh.html#SP1_16" class="named-paragraph-link"><span class="named-paragraph">Resources for multimedia</span><span class="named-paragraph-number">1.16</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-sh.html#SP1_18" class="named-paragraph-link"><span class="named-paragraph">Resources for properties</span><span class="named-paragraph-number">1.18</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-sh.html#SP1_20" class="named-paragraph-link"><span class="named-paragraph">Resources for relations</span><span class="named-paragraph-number">1.20</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-sh.html#SP1_22" class="named-paragraph-link"><span class="named-paragraph">Resources for rulebooks</span><span class="named-paragraph-number">1.22</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-sh.html#SP1_24" class="named-paragraph-link"><span class="named-paragraph">Resources for rules</span><span class="named-paragraph-number">1.24</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-sh.html#SP1_26" class="named-paragraph-link"><span class="named-paragraph">Resources for scenes</span><span class="named-paragraph-number">1.26</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-sh.html#SP1_28" class="named-paragraph-link"><span class="named-paragraph">Resources for tables</span><span class="named-paragraph-number">1.28</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-sh.html#SP1_30" class="named-paragraph-link"><span class="named-paragraph">Resources for tests</span><span class="named-paragraph-number">1.30</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-sh.html#SP1_32" class="named-paragraph-link"><span class="named-paragraph">Resources for use options</span><span class="named-paragraph-number">1.32</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></p>
<p class="commentary firstcommentary"><a id="SP1_1" class="paragraph-anchor"></a><b>&#167;1.1. </b>The notation here is a little cryptic, but see <a href="../runtime-module/2-hrr.html" class="internal">Hierarchy (in runtime)</a> for a
fuller explanation.
</p>
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="identifier-syntax">SYN_SUBMD</span><span class="plain-syntax">(</span><span class="identifier-syntax">r</span><span class="plain-syntax">) </span><span class="identifier-syntax">req</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::synoptic_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">Packaging::register_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">r</span><span class="plain-syntax">));</span>
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="identifier-syntax">SYN_SUBMD</span><span class="plain-syntax">(</span><span class="identifier-syntax">r</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">req</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::synoptic_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">Packaging::register_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">r</span><span class="plain-syntax">));</span>
<span class="definition-keyword">define</span> <span class="identifier-syntax">SYN_CONST</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</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">HierarchyLocations::ctr</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">, </span><span class="identifier-syntax">Translation::same</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">HierarchyLocations::ctr</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">, </span><span class="identifier-syntax">Translation::same</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</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">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</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>
<span class="plain-syntax"> </span><span class="identifier-syntax">Wiring::socket</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">InterNames::to_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">), </span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="definition-keyword">define</span> <span class="identifier-syntax">SYN_FUNCT</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">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="identifier-syntax">HierarchyLocations::fun</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">, </span><span class="identifier-syntax">Translation::to</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</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">HierarchyLocations::fun</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">, </span><span class="identifier-syntax">Translation::to</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</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">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</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>
<span class="plain-syntax"> </span><span class="identifier-syntax">Wiring::socket</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">Produce::get_translation</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">), </span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="definition-keyword">define</span> <span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</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">HierarchyLocations::ctr</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">, </span><span class="identifier-syntax">Translation::same</span><span class="plain-syntax">(), </span><span class="identifier-syntax">req</span><span class="plain-syntax">);</span>
</pre>
<p class="commentary firstcommentary"><a id="SP1_2" class="paragraph-anchor"></a><b>&#167;1.2. Actions. </b></p>
<p class="commentary firstcommentary"><a id="SP1_2" class="paragraph-anchor"></a><b>&#167;1.2. Actions. </b>The <span class="extract"><span class="extract-syntax">/main/synoptic/actions</span></span> submodule.
</p>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">ACTIONCODING_HL</span><span class="plain-syntax"> </span><span class="identifier-syntax">from</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">ACTIONCODING_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTIONDATA_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTIONHAPPENED_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">AD_RECORDS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CCOUNT_ACTION_NAME_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DB_ACTION_DETAILS_HL</span>
</pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish actions</span><span class="named-paragraph-number">1.2</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Resources for actions</span><span class="named-paragraph-number">1.2</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -134,7 +150,8 @@
<span class="plain-syntax"> </span><span class="identifier-syntax">SYN_FUNCT</span><span class="plain-syntax">(</span><span class="constant-syntax">DB_ACTION_DETAILS_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"DB_Action_Details_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"DB_Action_Details"</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="SP1_3" class="paragraph-anchor"></a><b>&#167;1.3. Activities. </b></p>
<p class="commentary firstcommentary"><a id="SP1_3" class="paragraph-anchor"></a><b>&#167;1.3. Activities. </b>The <span class="extract"><span class="extract-syntax">/main/synoptic/activities</span></span> submodule.
</p>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">ACTIVITY_AFTER_RULEBOOKS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTIVITY_ATB_RULEBOOKS_HL</span>
@ -142,7 +159,7 @@
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTIVITY_FOR_RULEBOOKS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTIVITY_VAR_CREATORS_HL</span>
</pre>
<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">Establish activities</span><span class="named-paragraph-number">1.4</span></span><span class="comment-syntax"> =</span>
<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">Resources for activities</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">
@ -154,7 +171,8 @@
<span class="plain-syntax"> </span><span class="identifier-syntax">SYN_CONST</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTIVITY_VAR_CREATORS_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"activity_var_creators"</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="SP1_5" class="paragraph-anchor"></a><b>&#167;1.5. Chronology. </b></p>
<p class="commentary firstcommentary"><a id="SP1_5" class="paragraph-anchor"></a><b>&#167;1.5. Chronology. </b>The <span class="extract"><span class="extract-syntax">/main/synoptic/chronology</span></span> submodule.
</p>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">TIMEDEVENTSTABLE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TIMEDEVENTTIMESTABLE_HL</span>
@ -163,7 +181,7 @@
<span class="definition-keyword">enum</span> <span class="constant-syntax">NO_PAST_TENSE_ACTIONS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TESTSINGLEPASTSTATE_HL</span>
</pre>
<p class="commentary firstcommentary"><a id="SP1_6" class="paragraph-anchor"></a><b>&#167;1.6. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish chronology</span><span class="named-paragraph-number">1.6</span></span><span class="comment-syntax"> =</span>
<p class="commentary firstcommentary"><a id="SP1_6" class="paragraph-anchor"></a><b>&#167;1.6. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Resources for chronology</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">
@ -176,11 +194,12 @@
<span class="plain-syntax"> </span><span class="identifier-syntax">SYN_FUNCT</span><span class="plain-syntax">(</span><span class="constant-syntax">TESTSINGLEPASTSTATE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"test_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TestSinglePastState"</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="SP1_7" class="paragraph-anchor"></a><b>&#167;1.7. Conjugations. </b></p>
<p class="commentary firstcommentary"><a id="SP1_7" class="paragraph-anchor"></a><b>&#167;1.7. Conjugations. </b>The <span class="extract"><span class="extract-syntax">/main/synoptic/conjugations</span></span> submodule.
</p>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">TABLEOFVERBS_HL</span>
</pre>
<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">Establish conjugations</span><span class="named-paragraph-number">1.8</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">Resources for conjugations</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">
@ -188,13 +207,14 @@
<span class="plain-syntax"> </span><span class="identifier-syntax">SYN_CONST</span><span class="plain-syntax">(</span><span class="constant-syntax">TABLEOFVERBS_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TableOfVerbs"</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="SP1_9" class="paragraph-anchor"></a><b>&#167;1.9. Extensions. </b></p>
<p class="commentary firstcommentary"><a id="SP1_9" class="paragraph-anchor"></a><b>&#167;1.9. Extensions. </b>The <span class="extract"><span class="extract-syntax">/main/synoptic/extensions</span></span> submodule.
</p>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">SHOWEXTENSIONVERSIONS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SHOWFULLEXTENSIONVERSIONS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SHOWONEEXTENSION_HL</span>
</pre>
<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">Establish extensions</span><span class="named-paragraph-number">1.10</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">Resources for extensions</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">
@ -204,11 +224,12 @@
<span class="plain-syntax"> </span><span class="identifier-syntax">SYN_FUNCT</span><span class="plain-syntax">(</span><span class="constant-syntax">SHOWONEEXTENSION_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"showoneextension_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ShowOneExtension"</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="SP1_11" class="paragraph-anchor"></a><b>&#167;1.11. Instances. </b></p>
<p class="commentary firstcommentary"><a id="SP1_11" class="paragraph-anchor"></a><b>&#167;1.11. Instances. </b>The <span class="extract"><span class="extract-syntax">/main/synoptic/instances</span></span> submodule.
</p>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">SHOWMEINSTANCEDETAILS_HL</span>
</pre>
<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">Establish instances</span><span class="named-paragraph-number">1.12</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">Resources for instances</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">
@ -216,7 +237,8 @@
<span class="plain-syntax"> </span><span class="identifier-syntax">SYN_FUNCT</span><span class="plain-syntax">(</span><span class="constant-syntax">SHOWMEINSTANCEDETAILS_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"showmeinstancedetails_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ShowMeInstanceDetails"</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="SP1_13" class="paragraph-anchor"></a><b>&#167;1.13. Kinds. </b></p>
<p class="commentary firstcommentary"><a id="SP1_13" class="paragraph-anchor"></a><b>&#167;1.13. Kinds. </b>The <span class="extract"><span class="extract-syntax">/main/synoptic/kinds</span></span> submodule.
</p>
<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>
@ -231,7 +253,7 @@
<span class="definition-keyword">enum</span> <span class="constant-syntax">RUCKSACK_CLASS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KINDHIERARCHY_HL</span>
</pre>
<p class="commentary firstcommentary"><a id="SP1_14" class="paragraph-anchor"></a><b>&#167;1.14. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish kinds</span><span class="named-paragraph-number">1.14</span></span><span class="comment-syntax"> =</span>
<p class="commentary firstcommentary"><a id="SP1_14" class="paragraph-anchor"></a><b>&#167;1.14. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Resources for kinds</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">
@ -250,14 +272,15 @@
<span class="plain-syntax"> </span><span class="identifier-syntax">SYN_CONST</span><span class="plain-syntax">(</span><span class="constant-syntax">KINDHIERARCHY_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"KindHierarchy"</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="SP1_15" class="paragraph-anchor"></a><b>&#167;1.15. Multimedia. </b></p>
<p class="commentary firstcommentary"><a id="SP1_15" class="paragraph-anchor"></a><b>&#167;1.15. Multimedia. </b>The <span class="extract"><span class="extract-syntax">/main/synoptic/multimedia</span></span> submodule.
</p>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">RESOURCEIDSOFFIGURES_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RESOURCEIDSOFSOUNDS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NO_EXTERNAL_FILES_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TABLEOFEXTERNALFILES_HL</span>
</pre>
<p class="commentary firstcommentary"><a id="SP1_16" class="paragraph-anchor"></a><b>&#167;1.16. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish multimedia</span><span class="named-paragraph-number">1.16</span></span><span class="comment-syntax"> =</span>
<p class="commentary firstcommentary"><a id="SP1_16" class="paragraph-anchor"></a><b>&#167;1.16. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Resources for multimedia</span><span class="named-paragraph-number">1.16</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -268,11 +291,12 @@
<span class="plain-syntax"> </span><span class="identifier-syntax">SYN_CONST</span><span class="plain-syntax">(</span><span class="constant-syntax">TABLEOFEXTERNALFILES_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TableOfExternalFiles"</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="SP1_17" class="paragraph-anchor"></a><b>&#167;1.17. Properties. </b></p>
<p class="commentary firstcommentary"><a id="SP1_17" class="paragraph-anchor"></a><b>&#167;1.17. Properties. </b>The <span class="extract"><span class="extract-syntax">/main/synoptic/properties</span></span> submodule.
</p>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">CCOUNT_PROPERTY_HL</span>
</pre>
<p class="commentary firstcommentary"><a id="SP1_18" class="paragraph-anchor"></a><b>&#167;1.18. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish properties</span><span class="named-paragraph-number">1.18</span></span><span class="comment-syntax"> =</span>
<p class="commentary firstcommentary"><a id="SP1_18" class="paragraph-anchor"></a><b>&#167;1.18. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Resources for properties</span><span class="named-paragraph-number">1.18</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -280,14 +304,15 @@
<span class="plain-syntax"> </span><span class="identifier-syntax">SYN_CONST</span><span class="plain-syntax">(</span><span class="constant-syntax">CCOUNT_PROPERTY_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"CCOUNT_PROPERTY"</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="SP1_19" class="paragraph-anchor"></a><b>&#167;1.19. Relations. </b></p>
<p class="commentary firstcommentary"><a id="SP1_19" class="paragraph-anchor"></a><b>&#167;1.19. Relations. </b>The <span class="extract"><span class="extract-syntax">/main/synoptic/relations</span></span> submodule.
</p>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">CREATEDYNAMICRELATIONS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CCOUNT_BINARY_PREDICATE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ITERATERELATIONS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RPROPERTY_HL</span>
</pre>
<p class="commentary firstcommentary"><a id="SP1_20" class="paragraph-anchor"></a><b>&#167;1.20. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish relations</span><span class="named-paragraph-number">1.20</span></span><span class="comment-syntax"> =</span>
<p class="commentary firstcommentary"><a id="SP1_20" class="paragraph-anchor"></a><b>&#167;1.20. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Resources for relations</span><span class="named-paragraph-number">1.20</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -298,7 +323,8 @@
<span class="plain-syntax"> </span><span class="identifier-syntax">SYN_FUNCT</span><span class="plain-syntax">(</span><span class="constant-syntax">RPROPERTY_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"property_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RProperty"</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="SP1_21" class="paragraph-anchor"></a><b>&#167;1.21. Rulebooks. </b></p>
<p class="commentary firstcommentary"><a id="SP1_21" class="paragraph-anchor"></a><b>&#167;1.21. Rulebooks. </b>The <span class="extract"><span class="extract-syntax">/main/synoptic/rulebooks</span></span> submodule.
</p>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">NUMBER_RULEBOOKS_CREATED_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULEBOOK_VAR_CREATORS_HL</span>
@ -306,7 +332,7 @@
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULEBOOKS_ARRAY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULEBOOKNAMES_HL</span>
</pre>
<p class="commentary firstcommentary"><a id="SP1_22" class="paragraph-anchor"></a><b>&#167;1.22. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish rulebooks</span><span class="named-paragraph-number">1.22</span></span><span class="comment-syntax"> =</span>
<p class="commentary firstcommentary"><a id="SP1_22" class="paragraph-anchor"></a><b>&#167;1.22. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Resources for rulebooks</span><span class="named-paragraph-number">1.22</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -318,7 +344,8 @@
<span class="plain-syntax"> </span><span class="identifier-syntax">SYN_CONST</span><span class="plain-syntax">(</span><span class="constant-syntax">RULEBOOKNAMES_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RulebookNames"</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="SP1_23" class="paragraph-anchor"></a><b>&#167;1.23. Rules. </b></p>
<p class="commentary firstcommentary"><a id="SP1_23" class="paragraph-anchor"></a><b>&#167;1.23. Rules. </b>The <span class="extract"><span class="extract-syntax">/main/synoptic/rules</span></span> and <span class="extract"><span class="extract-syntax">/main/synoptic/responses</span></span> submodule.
</p>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">RULEPRINTINGRULE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RESPONSETEXTS_HL</span>
@ -326,7 +353,7 @@
<span class="definition-keyword">enum</span> <span class="constant-syntax">RESPONSEDIVISIONS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PRINT_RESPONSE_HL</span>
</pre>
<p class="commentary firstcommentary"><a id="SP1_24" class="paragraph-anchor"></a><b>&#167;1.24. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish rules</span><span class="named-paragraph-number">1.24</span></span><span class="comment-syntax"> =</span>
<p class="commentary firstcommentary"><a id="SP1_24" class="paragraph-anchor"></a><b>&#167;1.24. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Resources for rules</span><span class="named-paragraph-number">1.24</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -340,12 +367,13 @@
<span class="plain-syntax"> </span><span class="identifier-syntax">SYN_FUNCT</span><span class="plain-syntax">(</span><span class="constant-syntax">PRINT_RESPONSE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"print_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"PrintResponse"</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="SP1_25" class="paragraph-anchor"></a><b>&#167;1.25. Scenes. </b></p>
<p class="commentary firstcommentary"><a id="SP1_25" class="paragraph-anchor"></a><b>&#167;1.25. Scenes. </b>The <span class="extract"><span class="extract-syntax">/main/synoptic/scenes</span></span> submodule.
</p>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">SHOWSCENESTATUS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DETECTSCENECHANGE_HL</span>
</pre>
<p class="commentary firstcommentary"><a id="SP1_26" class="paragraph-anchor"></a><b>&#167;1.26. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish scenes</span><span class="named-paragraph-number">1.26</span></span><span class="comment-syntax"> =</span>
<p class="commentary firstcommentary"><a id="SP1_26" class="paragraph-anchor"></a><b>&#167;1.26. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Resources for scenes</span><span class="named-paragraph-number">1.26</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -354,7 +382,8 @@
<span class="plain-syntax"> </span><span class="identifier-syntax">SYN_FUNCT</span><span class="plain-syntax">(</span><span class="constant-syntax">DETECTSCENECHANGE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"detect_scene_change_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"DetectSceneChange"</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="SP1_27" class="paragraph-anchor"></a><b>&#167;1.27. Tables. </b></p>
<p class="commentary firstcommentary"><a id="SP1_27" class="paragraph-anchor"></a><b>&#167;1.27. Tables. </b>The <span class="extract"><span class="extract-syntax">/main/synoptic/tables</span></span> submodule.
</p>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">PRINT_TABLE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TABLEOFTABLES_HL</span>
@ -362,7 +391,7 @@
<span class="definition-keyword">enum</span> <span class="constant-syntax">RANKING_TABLE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TC_KOV_HL</span>
</pre>
<p class="commentary firstcommentary"><a id="SP1_28" class="paragraph-anchor"></a><b>&#167;1.28. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish tables</span><span class="named-paragraph-number">1.28</span></span><span class="comment-syntax"> =</span>
<p class="commentary firstcommentary"><a id="SP1_28" class="paragraph-anchor"></a><b>&#167;1.28. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Resources for tables</span><span class="named-paragraph-number">1.28</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -376,11 +405,12 @@
<span class="plain-syntax"> </span><span class="identifier-syntax">SYN_FUNCT</span><span class="plain-syntax">(</span><span class="constant-syntax">TC_KOV_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"weak_kind_ID_of_column_entry_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TC_KOV"</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="SP1_29" class="paragraph-anchor"></a><b>&#167;1.29. Tests. </b></p>
<p class="commentary firstcommentary"><a id="SP1_29" class="paragraph-anchor"></a><b>&#167;1.29. Tests. </b>The <span class="extract"><span class="extract-syntax">/main/synoptic/tests</span></span> submodule.
</p>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">TESTSCRIPTSUB_HL</span>
</pre>
<p class="commentary firstcommentary"><a id="SP1_30" class="paragraph-anchor"></a><b>&#167;1.30. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish tests</span><span class="named-paragraph-number">1.30</span></span><span class="comment-syntax"> =</span>
<p class="commentary firstcommentary"><a id="SP1_30" class="paragraph-anchor"></a><b>&#167;1.30. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Resources for tests</span><span class="named-paragraph-number">1.30</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -388,13 +418,14 @@
<span class="plain-syntax"> </span><span class="identifier-syntax">SYN_FUNCT</span><span class="plain-syntax">(</span><span class="constant-syntax">TESTSCRIPTSUB_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TestScriptSub_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TestScriptSub"</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="SP1_31" class="paragraph-anchor"></a><b>&#167;1.31. Use options. </b></p>
<p class="commentary firstcommentary"><a id="SP1_31" class="paragraph-anchor"></a><b>&#167;1.31. Use options. </b>The <span class="extract"><span class="extract-syntax">/main/synoptic/use_options</span></span> submodule.
</p>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">NO_USE_OPTIONS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TESTUSEOPTION_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PRINT_USE_OPTION_HL</span>
</pre>
<p class="commentary firstcommentary"><a id="SP1_32" class="paragraph-anchor"></a><b>&#167;1.32. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish use options</span><span class="named-paragraph-number">1.32</span></span><span class="comment-syntax"> =</span>
<p class="commentary firstcommentary"><a id="SP1_32" class="paragraph-anchor"></a><b>&#167;1.32. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Resources for use options</span><span class="named-paragraph-number">1.32</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -404,499 +435,6 @@
<span class="plain-syntax"> </span><span class="identifier-syntax">SYN_FUNCT</span><span class="plain-syntax">(</span><span class="constant-syntax">PRINT_USE_OPTION_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"print_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"PrintUseOption"</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="SP1_33" class="paragraph-anchor"></a><b>&#167;1.33. Kit-defined symbols. </b>The Inform 7 compiler creates none of the constants below. (Note that some are
the addresses of functions, but they are constants for our purposes here.)
Instead, they are defined using Inform 6 notation in one of the kits. We don't
need to know which kit; we simply leaves them as "plugs" to be connected to
"sockets" in the linking stage &mdash; see <a href="../bytecode-module/2-cnn.html" class="internal">Connectors (in bytecode)</a>.
</p>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">THESAME_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PLURALFOUND_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">THEDARK_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACT_REQUESTER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTION_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTIONCURRENTLYHAPPENINGFLAG_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTOR_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTOR_LOCATION_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ADJUSTPARAGRAPHPOINT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ALLOWINSHOWME_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ANIMATE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ARGUMENTTYPEFAILED_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ARTICLEDESCRIPTORS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">AUXF_MAGIC_VALUE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">AUXF_STATUS_IS_CLOSED_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BLKVALUECOPY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BLKVALUECOPYAZ_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BLKVALUECREATE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BLKVALUECREATEONSTACK_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BLKVALUEERROR_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BLKVALUEFREE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BLKVALUEFREEONSTACK_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BLKVALUEWRITE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">C_STYLE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CHECKKINDRETURNED_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CLEARPARAGRAPHING_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">COMPONENT_CHILD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">COMPONENT_PARENT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">COMPONENT_SIBLING_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CONSTANT_PACKED_TEXT_STORAGE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CONSTANT_PERISHABLE_TEXT_STORAGE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CONSULT_FROM_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CONSULT_WORDS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CONTAINER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CUBEROOT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DA_NAME_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DB_RULE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DEADFLAG_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DEBUGPROPERTY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DEBUG_RULES_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DEBUG_SCENES_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DECIMALNUMBER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DETECTPLURALWORD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DIGITTOVALUE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DIVIDEPARAGRAPHPOINT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DOUBLEHASHSETRELATIONHANDLER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DURINGSCENEMATCHING_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ELEMENTARY_TT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">EMPTY_RULEBOOK_INAME_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">EMPTY_TABLE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">EMPTY_TEXT_PACKED_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">EMPTY_TEXT_VALUE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">EMPTYRELATIONHANDLER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ENGLISH_BIT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ETYPE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">EXISTSTABLELOOKUPCORR_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">EXISTSTABLELOOKUPENTRY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">EXISTSTABLEROWCORR_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">FLOAT_NAN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">FLOATPARSE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">FOLLOWRULEBOOK_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">formal_par0_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">formal_par1_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">formal_par2_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">formal_par3_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">formal_par4_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">formal_par5_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">formal_par6_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">formal_par7_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">FORMAL_RV_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">FOUND_EVERYWHERE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">GENERATERANDOMNUMBER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">GENERICVERBSUB_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">GETGNAOFOBJECT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">GPR_FAIL_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">GPR_NUMBER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">GPR_PREPOSITION_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">GPR_TT_HL</span>
<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">INDENT_BIT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INP1_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INP2_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">INVENTORY_STAGE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KEEP_SILENT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KINDATOMIC_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LATEST_RULE_RESULT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LIST_ITEM_BASE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LIST_ITEM_KOV_F_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LIST_OF_TY_DESC_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LIST_OF_TY_GETITEM_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LIST_OF_TY_GETLENGTH_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LIST_OF_TY_INSERTITEM_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LIST_OF_TY_SAY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LIST_OF_TY_SETLENGTH_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LOCATION_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LOCATIONOF_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LOOPOVERSCOPE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LOS_RV_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MSTACK_HL</span>
<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">NEWLINE_BIT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NEXTBEST_ETYPE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NEXTWORDSTOPPED_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NOARTICLE_BIT_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">NOTINCONTEXTPE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NOUN_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>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NUMBER_TY_TO_TIME_TY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">OTOVRELROUTETO_HL</span>
<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">PARSED_NUMBER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PARSER_ACTION_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PARSER_ONE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PARSER_TRACE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PARSER_TWO_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PARSERERROR_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PARSETOKENSTOPPED_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PAST_CHRONOLOGICAL_RECORD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PLACEINSCOPE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PLAYER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PNTOVP_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PRESENT_CHRONOLOGICAL_RECORD_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">PRINTSHORTNAME_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_LIST_GENDER_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">REAL_LOCATION_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>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REAL_NUMBER_TY_CUBE_ROOT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REAL_NUMBER_TY_DIVIDE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REAL_NUMBER_TY_MINUS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REAL_NUMBER_TY_NAN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REAL_NUMBER_TY_NEGATE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REAL_NUMBER_TY_PLUS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REAL_NUMBER_TY_POW_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REAL_NUMBER_TY_REMAINDER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REAL_NUMBER_TY_ROOT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REAL_NUMBER_TY_SAY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REAL_NUMBER_TY_TIMES_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REAL_NUMBER_TY_TO_NUMBER_TY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REASON_THE_ACTION_FAILED_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_EMPTYEQUIV_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_EMPTYOTOO_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_EMPTYVTOV_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_RSHOWOTOO_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_SHOWEQUIV_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_SHOWOTOO_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_SHOWVTOV_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_TY_EQUIVALENCEADJECTIVE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_TY_NAME_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_TY_OTOOADJECTIVE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_TY_OTOVADJECTIVE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_TY_SYMMETRICADJECTIVE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_TY_VTOOADJECTIVE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATIONTEST_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELFOLLOWVECTOR_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELS_EMPTY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RESPONSEVIAACTIVITY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RLANY_CAN_GET_X_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RLANY_CAN_GET_Y_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RLANY_GET_X_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RLIST_ALL_X_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RLIST_ALL_Y_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RLNGETF_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ROUNDOFFVALUE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ROUTINEFILTER_TT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RR_STORAGE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RTP_RELKINDVIOLATION_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RTP_RELMINIMAL_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULEBOOKFAILS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULEBOOKPARBREAK_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULEBOOKSUCCEEDS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RUNTIMEPROBLEM_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SAY__N_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SAY__P_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SAY__PC_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SCENE_ENDED_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SCENE_ENDINGS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SCENE_LATEST_ENDING_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SCENE_STARTED_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SCENE_STATUS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SCOPE_STAGE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SCOPE_TT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SECOND_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SHORT_NAME_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SIGNEDCOMPARE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SPECIAL_WORD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SQUAREROOT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">STACKFRAMECREATE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">STORED_ACTION_TY_CURRENT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">STORED_ACTION_TY_TRY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">STORY_TENSE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SUPPORTER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SUPPRESS_SCOPE_LOOPS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SUPPRESS_TEXT_SUBSTITUTION_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TABLE_NOVALUE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TABLELOOKUPCORR_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TABLELOOKUPENTRY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TESTACTIONBITMAP_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TESTACTIVITY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TESTREGIONALCONTAINMENT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TESTSCOPE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TESTSTART_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TEXT_TY_COMPARE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TEXT_TY_EXPANDIFPERISHABLE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TEXT_TY_SAY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">THE_TIME_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">THEEMPTYTABLE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">THEN1__WD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TIMESACTIONHASBEENHAPPENING_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TIMESACTIONHASHAPPENED_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TRYACTION_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TRYGIVENOBJECT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TURNSACTIONHASBEENHAPPENING_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">UNDERSTAND_AS_MISTAKE_NUMBER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">UNICODE_TEMP_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VTOORELROUTETO_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VTOVRELROUTETO_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">WHEN_SCENE_BEGINS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">WHEN_SCENE_ENDS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">WN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">WORDADDRESS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">WORDINPROPERTY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">WORDLENGTH_HL</span>
</pre>
<p class="commentary firstcommentary"><a id="SP1_34" class="paragraph-anchor"></a><b>&#167;1.34. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish kit-defined resources</span><span class="named-paragraph-number">1.34</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">req</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::plug</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">THESAME_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"##TheSame"</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">PLURALFOUND_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"##PluralFound"</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">THEDARK_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"thedark"</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">ACT_REQUESTER_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"act_requester"</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">ACTION_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"action"</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">ACTIONCURRENTLYHAPPENINGFLAG_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ActionCurrentlyHappeningFlag"</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">ACTOR_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"actor"</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">ACTOR_LOCATION_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"actor_location"</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">ADJUSTPARAGRAPHPOINT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"AdjustParagraphPoint"</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">ALLOWINSHOWME_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"AllowInShowme"</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">ANIMATE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"animate"</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">ARGUMENTTYPEFAILED_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ArgumentTypeFailed"</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">ARTICLEDESCRIPTORS_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ArticleDescriptors"</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">AUXF_MAGIC_VALUE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"AUXF_MAGIC_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">AUXF_STATUS_IS_CLOSED_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"AUXF_STATUS_IS_CLOSED"</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">BLKVALUECOPY_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"BlkValueCopy"</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">BLKVALUECOPYAZ_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"BlkValueCopyAZ"</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">BLKVALUECREATE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"BlkValueCreate"</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">BLKVALUECREATEONSTACK_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"BlkValueCreateOnStack"</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">BLKVALUEERROR_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"BlkValueError"</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">BLKVALUEFREE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"BlkValueFree"</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">BLKVALUEFREEONSTACK_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"BlkValueFreeOnStack"</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">BLKVALUEWRITE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"BlkValueWrite"</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">C_STYLE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"c_style"</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">CHECKKINDRETURNED_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"CheckKindReturned"</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">CLEARPARAGRAPHING_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ClearParagraphing"</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">COMPONENT_CHILD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"component_child"</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">COMPONENT_PARENT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"component_parent"</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">COMPONENT_SIBLING_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"component_sibling"</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">CONSTANT_PACKED_TEXT_STORAGE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"CONSTANT_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">CONSTANT_PERISHABLE_TEXT_STORAGE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"CONSTANT_PERISHABLE_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">CONSULT_FROM_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"consult_from"</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">CONSULT_WORDS_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"consult_words"</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">CONTAINER_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"container"</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">CUBEROOT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"CubeRoot"</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">DA_NAME_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"DA_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">DB_RULE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"DB_Rule"</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">DEADFLAG_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"deadflag"</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">DEBUGPROPERTY_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"DebugProperty"</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">DEBUG_RULES_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"debug_rules"</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">DEBUG_SCENES_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"debug_scenes"</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">DECIMALNUMBER_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"DecimalNumber"</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">DETECTPLURALWORD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"DetectPluralWord"</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">DIGITTOVALUE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"DigitToValue"</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">DIVIDEPARAGRAPHPOINT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"DivideParagraphPoint"</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">DOUBLEHASHSETRELATIONHANDLER_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"DoubleHashSetRelationHandler"</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">DURINGSCENEMATCHING_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"DuringSceneMatching"</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">ELEMENTARY_TT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ELEMENTARY_TT"</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">EMPTY_RULEBOOK_INAME_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"EMPTY_RULEBOOK"</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">EMPTY_TABLE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TheEmptyTable"</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">EMPTY_TEXT_PACKED_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"EMPTY_TEXT_PACKED"</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">EMPTY_TEXT_VALUE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"EMPTY_TEXT_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">EMPTYRELATIONHANDLER_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"EmptyRelationHandler"</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">ENGLISH_BIT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ENGLISH_BIT"</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">ETYPE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"etype"</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">EXISTSTABLELOOKUPCORR_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ExistsTableLookUpCorr"</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">EXISTSTABLELOOKUPENTRY_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ExistsTableLookUpEntry"</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">EXISTSTABLEROWCORR_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ExistsTableRowCorr"</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">FLOAT_NAN_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"FLOAT_NAN"</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">FLOATPARSE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"FloatParse"</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">FOLLOWRULEBOOK_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"FollowRulebook"</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">formal_par0_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"formal_par0"</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">formal_par1_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"formal_par1"</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">formal_par2_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"formal_par2"</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">formal_par3_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"formal_par3"</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">formal_par4_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"formal_par4"</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">formal_par5_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"formal_par5"</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">formal_par6_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"formal_par6"</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">formal_par7_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"formal_par7"</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">FORMAL_RV_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"formal_rv"</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">FOUND_EVERYWHERE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"FoundEverywhere"</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">GENERATERANDOMNUMBER_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"GenerateRandomNumber"</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">GENERICVERBSUB_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"GenericVerbSub"</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">GETGNAOFOBJECT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"GetGNAOfObject"</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">GPR_FAIL_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"GPR_FAIL"</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">GPR_NUMBER_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"GPR_NUMBER"</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">GPR_PREPOSITION_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"GPR_PREPOSITION"</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">GPR_TT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"GPR_TT"</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">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">INDENT_BIT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"INDENT_BIT"</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">INP1_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"inp1"</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">INP2_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"inp2"</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">INVENTORY_STAGE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"inventory_stage"</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">KEEP_SILENT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"keep_silent"</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>
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">LATEST_RULE_RESULT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"latest_rule_result"</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">LIST_ITEM_BASE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"LIST_ITEM_BASE"</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">LIST_ITEM_KOV_F_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"LIST_ITEM_KOV_F"</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">LIST_OF_TY_DESC_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"LIST_OF_TY_Desc"</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">LIST_OF_TY_GETITEM_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"LIST_OF_TY_GetItem"</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">LIST_OF_TY_GETLENGTH_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"LIST_OF_TY_GetLength"</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">LIST_OF_TY_INSERTITEM_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"LIST_OF_TY_InsertItem"</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">LIST_OF_TY_SAY_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"LIST_OF_TY_Say"</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">LIST_OF_TY_SETLENGTH_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"LIST_OF_TY_SetLength"</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">LOCATION_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"location"</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">LOCATIONOF_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"LocationOf"</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">LOOPOVERSCOPE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"LoopOverScope"</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">LOS_RV_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"los_rv"</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">MSTACK_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"MStack"</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">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">NEWLINE_BIT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"NEWLINE_BIT"</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">NEXTBEST_ETYPE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"nextbest_etype"</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">NEXTWORDSTOPPED_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"NextWordStopped"</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">NOARTICLE_BIT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"NOARTICLE_BIT"</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">NOTINCONTEXTPE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"NOTINCONTEXT_PE"</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">NOUN_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"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">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>
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">NUMBER_TY_TO_TIME_TY_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"NUMBER_TY_to_TIME_TY"</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">OTOVRELROUTETO_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"OtoVRelRouteTo"</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">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">PARSED_NUMBER_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"parsed_number"</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">PARSER_ACTION_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"parser_action"</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">PARSER_ONE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"parser_one"</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">PARSER_TRACE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"parser_trace"</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">PARSER_TWO_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"parser_two"</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">PARSERERROR_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ParserError"</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">PARSETOKENSTOPPED_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ParseTokenStopped"</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">PAST_CHRONOLOGICAL_RECORD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"past_chronological_record"</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">PLACEINSCOPE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"PlaceInScope"</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">PLAYER_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"player"</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">PNTOVP_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"PNToVP"</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">PRESENT_CHRONOLOGICAL_RECORD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"present_chronological_record"</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">PRINTSHORTNAME_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"PrintShortName"</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_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_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">REAL_LOCATION_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"real_location"</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>
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">REAL_NUMBER_TY_CUBE_ROOT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"REAL_NUMBER_TY_Cube_Root"</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_DIVIDE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"REAL_NUMBER_TY_Divide"</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_MINUS_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"REAL_NUMBER_TY_Minus"</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_NAN_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"REAL_NUMBER_TY_Nan"</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_NEGATE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"REAL_NUMBER_TY_Negate"</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_PLUS_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"REAL_NUMBER_TY_Plus"</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_POW_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"REAL_NUMBER_TY_Pow"</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_REMAINDER_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"REAL_NUMBER_TY_Remainder"</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_ROOT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"REAL_NUMBER_TY_Root"</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_SAY_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"REAL_NUMBER_TY_Say"</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_TIMES_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"REAL_NUMBER_TY_Times"</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_TO_NUMBER_TY_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"REAL_NUMBER_TY_to_NUMBER_TY"</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">REASON_THE_ACTION_FAILED_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"reason_the_action_failed"</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">RELATION_EMPTYEQUIV_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Relation_EmptyEquiv"</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">RELATION_EMPTYOTOO_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Relation_EmptyOtoO"</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">RELATION_EMPTYVTOV_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Relation_EmptyVtoV"</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">RELATION_RSHOWOTOO_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Relation_RShowOtoO"</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">RELATION_SHOWEQUIV_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Relation_ShowEquiv"</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">RELATION_SHOWOTOO_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Relation_ShowOtoO"</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">RELATION_SHOWVTOV_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Relation_ShowVtoV"</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">RELATION_TY_EQUIVALENCEADJECTIVE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RELATION_TY_EquivalenceAdjective"</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">RELATION_TY_NAME_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RELATION_TY_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">RELATION_TY_OTOOADJECTIVE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RELATION_TY_OToOAdjective"</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">RELATION_TY_OTOVADJECTIVE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RELATION_TY_OToVAdjective"</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">RELATION_TY_SYMMETRICADJECTIVE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RELATION_TY_SymmetricAdjective"</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">RELATION_TY_VTOOADJECTIVE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RELATION_TY_VToOAdjective"</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">RELATIONTEST_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RelationTest"</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">RELFOLLOWVECTOR_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RelFollowVector"</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">RELS_EMPTY_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RELS_EMPTY"</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">RESPONSEVIAACTIVITY_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ResponseViaActivity"</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">RLANY_CAN_GET_X_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RLANY_CAN_GET_X"</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">RLANY_CAN_GET_Y_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RLANY_CAN_GET_Y"</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">RLANY_GET_X_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RLANY_GET_X"</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">RLIST_ALL_X_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RLIST_ALL_X"</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">RLIST_ALL_Y_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RLIST_ALL_Y"</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">RLNGETF_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RlnGetF"</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">ROUNDOFFVALUE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RoundOffValue"</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">ROUTINEFILTER_TT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ROUTINE_FILTER_TT"</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">RR_STORAGE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RR_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">RTP_RELKINDVIOLATION_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RTP_RELKINDVIOLATION"</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">RTP_RELMINIMAL_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RTP_RELMINIMAL"</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">RULEBOOKFAILS_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RulebookFails"</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">RULEBOOKPARBREAK_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RulebookParBreak"</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">RULEBOOKSUCCEEDS_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RulebookSucceeds"</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">RUNTIMEPROBLEM_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RunTimeProblem"</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">SAY__N_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"say__n"</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">SAY__P_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"say__p"</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">SAY__PC_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"say__pc"</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">SCENE_ENDED_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"scene_ended"</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">SCENE_ENDINGS_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"scene_endings"</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">SCENE_LATEST_ENDING_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"scene_latest_ending"</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">SCENE_STARTED_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"scene_started"</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">SCENE_STATUS_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"scene_status"</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">SCOPE_STAGE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"scope_stage"</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">SCOPE_TT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"SCOPE_TT"</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">SECOND_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"second"</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">SHORT_NAME_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"short_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">SIGNEDCOMPARE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"SignedCompare"</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">SPECIAL_WORD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"special_word"</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">SQUAREROOT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"SquareRoot"</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">STACKFRAMECREATE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"StackFrameCreate"</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">STORED_ACTION_TY_CURRENT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"STORED_ACTION_TY_Current"</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">STORED_ACTION_TY_TRY_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"STORED_ACTION_TY_Try"</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">STORY_TENSE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"story_tense"</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">SUPPORTER_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"supporter"</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">SUPPRESS_SCOPE_LOOPS_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"suppress_scope_loops"</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">SUPPRESS_TEXT_SUBSTITUTION_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"suppress_text_substitution"</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">TABLE_NOVALUE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TABLE_NOVALUE"</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">TABLELOOKUPCORR_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TableLookUpCorr"</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">TABLELOOKUPENTRY_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TableLookUpEntry"</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">TESTACTIONBITMAP_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TestActionBitmap"</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">TESTACTIVITY_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TestActivity"</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">TESTREGIONALCONTAINMENT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TestRegionalContainment"</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">TESTSCOPE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TestScope"</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">TESTSTART_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TestStart"</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">TEXT_TY_COMPARE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TEXT_TY_Compare"</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">TEXT_TY_EXPANDIFPERISHABLE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TEXT_TY_ExpandIfPerishable"</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">TEXT_TY_SAY_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TEXT_TY_Say"</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">THE_TIME_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"the_time"</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">THEEMPTYTABLE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TheEmptyTable"</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">THEN1__WD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"THEN1__WD"</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">TIMESACTIONHASBEENHAPPENING_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TimesActionHasBeenHappening"</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">TIMESACTIONHASHAPPENED_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TimesActionHasHappened"</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">TRYACTION_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TryAction"</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">TRYGIVENOBJECT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TryGivenObject"</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">TURNSACTIONHASBEENHAPPENING_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TurnsActionHasBeenHappening"</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">UNDERSTAND_AS_MISTAKE_NUMBER_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"understand_as_mistake_number"</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">UNICODE_TEMP_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"unicode_temp"</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">VTOORELROUTETO_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"VtoORelRouteTo"</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">VTOVRELROUTETO_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"VtoVRelRouteTo"</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">WHEN_SCENE_BEGINS_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"WHEN_SCENE_BEGINS_RB"</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">WHEN_SCENE_ENDS_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"WHEN_SCENE_ENDS_RB"</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">WN_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"wn"</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">WORDADDRESS_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"WordAddress"</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">WORDINPROPERTY_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"WordInProperty"</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">WORDLENGTH_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"WordLength"</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>
<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-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

@ -71,309 +71,22 @@ function togglePopup(material_id) {
<!--Weave of 'Synoptic Utilities' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.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 Utilities</b></li></ul></div>
<p class="purpose">Managing the generation of code and arrays in the synoptic module, which is put together from resources all over the Inter tree.</p>
<p class="purpose">Utility functions for generating the code in the synoptic module.</p>
<ul class="toc"><li><a href="5-su.html#SP1">&#167;1. Pipeline stage</a></li><li><a href="5-su.html#SP3">&#167;3. Redefinition</a></li></ul><hr class="tocbar">
<ul class="toc"><li><a href="5-su.html#SP1">&#167;1. Dealing with symbols</a></li><li><a href="5-su.html#SP4">&#167;4. Making textual constants</a></li><li><a href="5-su.html#SP5">&#167;5. Making functions</a></li><li><a href="5-su.html#SP7">&#167;7. Making arrays</a></li></ul><hr class="tocbar">
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. Pipeline stage. </b>This stage...
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. Dealing with symbols. </b>We are going to need to read and write these: for reading &mdash;
</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">tree_inventory</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">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">of_tree</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">items</span><span class="plain-syntax">; </span><span class="comment-syntax"> of </span><span class="extract"><span class="extract-syntax">tree_inventory_item</span></span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">module_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">response_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rulebook_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rule_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">activity_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">action_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">property_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">extension_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">relation_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">table_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">table_column_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">table_column_usage_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">action_history_condition_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">past_tense_condition_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">instance_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">scene_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">file_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">figure_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sound_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">use_option_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">verb_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">modal_verb_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">verb_form_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">preposition_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">adjective_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">derived_kind_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kind_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">test_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">named_action_pattern_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">variable_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">equation_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">heading_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">multiplication_rule_nodes</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="function-syntax">Synoptic::new_inventory</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="plain-syntax"> </span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">of_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">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">items</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">tree_inventory_item</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">text_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">response_nodes</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_response"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">rulebook_nodes</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_rulebook"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">rule_nodes</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_rule"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">activity_nodes</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_activity"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">action_nodes</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_action"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">property_nodes</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_property"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">relation_nodes</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_relation"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">table_nodes</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_table"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">table_column_nodes</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_table_column"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">table_column_usage_nodes</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_table_column_usage"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">action_history_condition_nodes</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_action_history_condition"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">past_tense_condition_nodes</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_past_condition"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">use_option_nodes</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_use_option"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">verb_nodes</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_verb"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">modal_verb_nodes</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_modal_verb"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">verb_form_nodes</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_verb_form"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">preposition_nodes</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_preposition"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">adjective_nodes</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_adjective"</span><span class="plain-syntax">);</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-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_derived_kind"</span><span class="plain-syntax">);</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"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_kind"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">module_nodes</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_module"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">instance_nodes</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_instance"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">test_nodes</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_test"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">named_action_pattern_nodes</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_named_action_pattern"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">variable_nodes</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_variable"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">equation_nodes</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_equation"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">heading_nodes</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_heading"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">multiplication_rule_nodes</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_multiplication_rule"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">extension_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">scene_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">file_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">figure_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">sound_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</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">inv</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<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">tree_inventory_item</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">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">node_list</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">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">required_ptype</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">tree_inventory_item</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="function-syntax">Synoptic::add_inventory_need</span><span class="plain-syntax">(</span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pt</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">tree_inventory_item</span><span class="plain-syntax"> *</span><span class="identifier-syntax">item</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">tree_inventory_item</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">item</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">node_list</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">item</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">required_ptype</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PackageTypes::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">of_tree</span><span class="plain-syntax">, </span><span class="identifier-syntax">pt</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">item</span><span class="plain-syntax">, </span><span class="reserved-syntax">tree_inventory_item</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">items</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">item</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">node_list</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::perform_inventory</span><span class="plain-syntax">(</span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</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">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">of_tree</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterTree::traverse</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::visitor</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</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">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;TreeLists::len(inv-&gt;</span><span class="element-syntax">module_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">module_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">InterSymbolsTables::symbol_from_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Packages::scope</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">"extension_id"</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">extension_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">module_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="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;TreeLists::len(inv-&gt;</span><span class="element-syntax">instance_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">instance_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::exists</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_scene"</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">scene_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">instance_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::exists</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_file"</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">file_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">instance_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::exists</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_figure"</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">figure_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">instance_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::exists</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_sound"</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">sound_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">instance_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="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Synoptic::visitor</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">inter_tree_node</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="identifier-syntax">state</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">state</span><span 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">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">ID_IFLD</span><span class="plain-syntax">] == </span><span class="identifier-syntax">CONSTANT_IST</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="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTables::symbol_from_frame_data</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">DEFN_CONST_IFLD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Inter::Symbols::read_annotation</span><span class="plain-syntax">(</span><span class="identifier-syntax">con_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">TEXT_LITERAL_IANN</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">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">text_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">ID_IFLD</span><span class="plain-syntax">] == </span><span class="identifier-syntax">PACKAGE_IST</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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ptype</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::type</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ptype</span><span class="plain-syntax"> == </span><span class="identifier-syntax">PackageTypes::get</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="string-syntax">"_kind"</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">"Inside $6:\n"</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">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ST</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::scope</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</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;ST-&gt;</span><span class="identifier-syntax">size</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ST</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">symbol_array</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">S</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">S</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">wiring</span><span class="plain-syntax">.</span><span class="identifier-syntax">no_connections</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">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"I observe $3 (%d)\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">wiring</span><span class="plain-syntax">.</span><span class="identifier-syntax">no_connections</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">tree_inventory_item</span><span class="plain-syntax"> *</span><span class="identifier-syntax">item</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">item</span><span class="plain-syntax">, </span><span class="reserved-syntax">tree_inventory_item</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">items</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ptype</span><span class="plain-syntax"> == </span><span class="identifier-syntax">item</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">required_ptype</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">item</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">node_list</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">break</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">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cached_inventory</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cache_is_for</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="function-syntax">Synoptic::inv</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">Synoptic::inv</span></span>:<br/>Make Synoptic Module Stage - <a href="5-msms.html#SP1">&#167;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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cache_is_for</span><span class="plain-syntax"> == </span><span class="identifier-syntax">I</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">cached_inventory</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">cache_is_for</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">cached_inventory</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::new_inventory</span></a><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#SP1" class="function-link"><span class="function-syntax">Synoptic::perform_inventory</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cached_inventory</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">cached_inventory</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<ul class="endnotetexts"><li>The structure tree_inventory is accessed in 5/ext, 5/lt, 5/rsp, 5/rls, 5/act, 5/act2, 5/ins, 5/knd, 5/prp, 5/rlt, 5/tbl, 5/chr, 5/scn, 5/mlt, 5/uo, 5/vrb, 5/tst and here.</li><li>The structure tree_inventory_item is private to this section.</li></ul>
<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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Synoptic::module_order</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">Synoptic::module_order</span></span>:<br/>Rules - <a href="5-rls.html#SP1">&#167;1</a><br/>Activities - <a href="5-act.html#SP1">&#167;1</a><br/>Actions - <a href="5-act2.html#SP2">&#167;2</a><br/>Instances - <a href="5-ins.html#SP1">&#167;1</a><br/>Kinds - <a href="5-knd.html#SP1">&#167;1</a><br/>Properties - <a href="5-prp.html#SP1">&#167;1</a><br/>Relations - <a href="5-rlt.html#SP1">&#167;1</a><br/>Tables - <a href="5-tbl.html#SP1">&#167;1</a><br/>Chronology - <a href="5-chr.html#SP1">&#167;1</a><br/>Scenes - <a href="5-scn.html#SP1">&#167;1</a><br/>Multimedia - <a href="5-mlt.html#SP1">&#167;1</a><br/>Use Options - <a href="5-uo.html#SP1">&#167;1</a><br/>Tests - <a href="5-tst.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ent1</span><span class="plain-syntax">, </span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ent2</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">itl_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E1</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">itl_entry</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">ent1</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">itl_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E2</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">itl_entry</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">ent2</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E1</span><span class="plain-syntax"> == </span><span class="identifier-syntax">E2</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">E1</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">node</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="identifier-syntax">P2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">E2</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">node</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">mod1</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::module_containing</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P1</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">mod2</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::module_containing</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P2</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">C1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">mod1</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^category"</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">C2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">mod2</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^category"</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">d</span><span class="plain-syntax"> = ((</span><span class="reserved-syntax">int</span><span class="plain-syntax">) </span><span class="identifier-syntax">C2</span><span class="plain-syntax">) - ((</span><span class="reserved-syntax">int</span><span class="plain-syntax">) </span><span class="identifier-syntax">C1</span><span class="plain-syntax">); </span><span class="comment-syntax"> larger values sort earlier</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">d</span><span class="plain-syntax"> != </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">E1</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">sort_key</span><span class="plain-syntax"> - </span><span class="identifier-syntax">E2</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">sort_key</span><span class="plain-syntax">; </span><span class="comment-syntax"> smaller values sort earlier</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Synoptic::category_order</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::category_order</span></span>:<br/>Extensions - <a href="5-ext.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ent1</span><span class="plain-syntax">, </span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ent2</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">itl_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E1</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">itl_entry</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">ent1</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">itl_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E2</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">itl_entry</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">ent2</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E1</span><span class="plain-syntax"> == </span><span class="identifier-syntax">E2</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">E1</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">node</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="identifier-syntax">P2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">E2</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">node</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">mod1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::container</span><span class="plain-syntax">(</span><span class="identifier-syntax">P1</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">mod2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::container</span><span class="plain-syntax">(</span><span class="identifier-syntax">P2</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">C1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">mod1</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^category"</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">C2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">mod2</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^category"</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">d</span><span class="plain-syntax"> = ((</span><span class="reserved-syntax">int</span><span class="plain-syntax">) </span><span class="identifier-syntax">C2</span><span class="plain-syntax">) - ((</span><span class="reserved-syntax">int</span><span class="plain-syntax">) </span><span class="identifier-syntax">C1</span><span class="plain-syntax">); </span><span class="comment-syntax"> larger values sort earlier</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">d</span><span class="plain-syntax"> != </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">E1</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">sort_key</span><span class="plain-syntax"> - </span><span class="identifier-syntax">E2</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">sort_key</span><span class="plain-syntax">; </span><span class="comment-syntax"> smaller values sort earlier</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>&#167;3. Redefinition. </b></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::new_symbol</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">Synoptic::new_symbol</span></span>:<br/>Literal Text - <a href="5-lt.html#SP1_1">&#167;1.1</a>, <a href="5-lt.html#SP1_2">&#167;1.2</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="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTables::create_with_unique_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Packages::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_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">Synoptic::get_symbol</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">Synoptic::get_symbol</span></span>:<br/>Kinds - <a href="5-knd.html#SP1_2">&#167;1.2</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_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">loc_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterSymbolsTables::symbol_from_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Packages::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="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">Synoptic::get_symbol</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">Synoptic::get_symbol</span></span>:<br/>Kinds - <a href="5-knd.html#SP1_2">&#167;1.2</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_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">loc_s</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTables::symbol_from_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Packages::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">loc_s</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">Metadata::err</span><span class="plain-syntax">(</span><span class="string-syntax">"package symbol not found"</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">loc_s</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>&#167;4. </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">Synoptic::def_textual_constant</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::def_textual_constant</span></span>:<br/>Literal Text - <a href="5-lt.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="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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Symbols::annotate_i</span><span class="plain-syntax">(</span><span class="identifier-syntax">con_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">TEXT_LITERAL_IANN</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">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">ID</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Warehouse::create_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">InterTree::warehouse</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::Bookmarks::package</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Str::copy</span><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Warehouse::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">InterTree::warehouse</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">ID</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">Produce::guard</span><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Constant::new_textual</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTables::id_from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">Inter::Bookmarks::package</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">), </span><span class="identifier-syntax">con_s</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTables::id_from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">Inter::Bookmarks::package</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">),</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">unchecked_kind_RPSYM</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">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">Inter::Bookmarks::baseline</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">) + </span><span class="constant-syntax">1</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="SP5" class="paragraph-anchor"></a><b>&#167;5. </b></p>
<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('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Synoptic::begin_function</span></span>:<br/>Extensions - <a href="5-ext.html#SP1_1">&#167;1.1</a>, <a href="5-ext.html#SP1_2">&#167;1.2</a>, <a href="5-ext.html#SP1_3">&#167;1.3</a><br/>Responses - <a href="5-rsp.html#SP1_4">&#167;1.4</a><br/>Rules - <a href="5-rls.html#SP1_5">&#167;1.5</a>, <a href="5-rls.html#SP1_6">&#167;1.6</a><br/>Actions - <a href="5-act2.html#SP2_6">&#167;2.6</a><br/>Instances - <a href="5-ins.html#SP1_1">&#167;1.1</a><br/>Kinds - <a href="5-knd.html#SP1_2">&#167;1.2</a>, <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><br/>Relations - <a href="5-rlt.html#SP1_2">&#167;1.2</a>, <a href="5-rlt.html#SP1_3">&#167;1.3</a>, <a href="5-rlt.html#SP1_4">&#167;1.4</a><br/>Tables - <a href="5-tbl.html#SP1_2">&#167;1.2</a>, <a href="5-tbl.html#SP1_3">&#167;1.3</a><br/>Chronology - <a href="5-chr.html#SP1_6">&#167;1.6</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_2">&#167;1.2</a>, <a href="5-uo.html#SP1_3">&#167;1.3</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::block</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('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Synoptic::end_function</span></span>:<br/>Extensions - <a href="5-ext.html#SP1_1">&#167;1.1</a>, <a href="5-ext.html#SP1_2">&#167;1.2</a>, <a href="5-ext.html#SP1_3">&#167;1.3</a><br/>Responses - <a href="5-rsp.html#SP1_4">&#167;1.4</a><br/>Rules - <a href="5-rls.html#SP1_5">&#167;1.5</a>, <a href="5-rls.html#SP1_6">&#167;1.6</a><br/>Actions - <a href="5-act2.html#SP2_6">&#167;2.6</a><br/>Instances - <a href="5-ins.html#SP1_1">&#167;1.1</a><br/>Kinds - <a href="5-knd.html#SP1_2">&#167;1.2</a>, <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><br/>Relations - <a href="5-rlt.html#SP1_2">&#167;1.2</a>, <a href="5-rlt.html#SP1_3">&#167;1.3</a>, <a href="5-rlt.html#SP1_4">&#167;1.4</a><br/>Tables - <a href="5-tbl.html#SP1_2">&#167;1.2</a>, <a href="5-tbl.html#SP1_3">&#167;1.3</a><br/>Chronology - <a href="5-chr.html#SP1_6">&#167;1.6</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_2">&#167;1.2</a>, <a href="5-uo.html#SP1_3">&#167;1.3</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_block</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::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><span class="identifier-syntax">synoptic_fn_package</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::end_main_block</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>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Synoptic::function</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="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">fn_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">block</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">fn_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Produce::define_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">fn_iname</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">Inter::Constant::new_function</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="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTables::id_from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">Inter::Bookmarks::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">fn_s</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTables::id_from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">Inter::Bookmarks::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><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">unchecked_kind_RPSYM</span><span class="plain-syntax">)),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">block</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::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="identifier-syntax">NULL</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="function-syntax">Synoptic::local</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::local</span></span>:<br/>Extensions - <a href="5-ext.html#SP1_3">&#167;1.3</a><br/>Responses - <a href="5-rsp.html#SP1_4">&#167;1.4</a><br/>Rules - <a href="5-rls.html#SP1_5">&#167;1.5</a>, <a href="5-rls.html#SP1_6">&#167;1.6</a><br/>Actions - <a href="5-act2.html#SP2_6">&#167;2.6</a><br/>Instances - <a href="5-ins.html#SP1_1">&#167;1.1</a><br/>Kinds - <a href="5-knd.html#SP1_2">&#167;1.2</a>, <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><br/>Relations - <a href="5-rlt.html#SP1_3">&#167;1.3</a>, <a href="5-rlt.html#SP1_4">&#167;1.4</a><br/>Tables - <a href="5-tbl.html#SP1_2">&#167;1.2</a>, <a href="5-tbl.html#SP1_3">&#167;1.3</a><br/>Chronology - <a href="5-chr.html#SP1_6">&#167;1.6</a><br/>Scenes - <a href="5-scn.html#SP1_2">&#167;1.2</a><br/>Use Options - <a href="5-uo.html#SP1_2">&#167;1.2</a>, <a href="5-uo.html#SP1_3">&#167;1.3</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="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="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">comment</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="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('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Synoptic::begin_array</span></span>:<br/>Responses - <a href="5-rsp.html#SP1_2">&#167;1.2</a>, <a href="5-rsp.html#SP1_3">&#167;1.3</a><br/>Rules - <a href="5-rls.html#SP1_2">&#167;1.2</a>, <a href="5-rls.html#SP1_3">&#167;1.3</a>, <a href="5-rls.html#SP1_4">&#167;1.4</a><br/>Activities - <a href="5-act.html#SP1_1">&#167;1.1</a>, <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#SP2_3">&#167;2.3</a>, <a href="5-act2.html#SP2_4">&#167;2.4</a>, <a href="5-act2.html#SP2_5">&#167;2.5</a><br/>Kinds - <a href="5-knd.html#SP1_12">&#167;1.12</a><br/>Tables - <a href="5-tbl.html#SP1_1">&#167;1.1</a>, <a href="5-tbl.html#SP1_4">&#167;1.4</a><br/>Chronology - <a href="5-chr.html#SP1_3">&#167;1.3</a>, <a href="5-chr.html#SP1_4">&#167;1.4</a>, <a href="5-chr.html#SP1_5">&#167;1.5</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><br/>Verbs - <a href="5-vrb.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">synoptic_array_ps</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Packaging::enter_home_of</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">con_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Produce::define_symbol</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_array_node</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inode::fill_3</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">CONSTANT_IST</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTables::id_from_IRS_and_symbol</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">con_s</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTables::id_from_IRS_and_symbol</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><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">list_of_unchecked_kind_RPSYM</span><span class="plain-syntax">)),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CONSTANT_INDIRECT_LIST</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">Inter::Bookmarks::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('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">Synoptic::end_array</span></span>:<br/>Responses - <a href="5-rsp.html#SP1_2">&#167;1.2</a>, <a href="5-rsp.html#SP1_3">&#167;1.3</a><br/>Rules - <a href="5-rls.html#SP1_2">&#167;1.2</a>, <a href="5-rls.html#SP1_3">&#167;1.3</a>, <a href="5-rls.html#SP1_4">&#167;1.4</a><br/>Activities - <a href="5-act.html#SP1_1">&#167;1.1</a>, <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#SP2_3">&#167;2.3</a>, <a href="5-act2.html#SP2_4">&#167;2.4</a>, <a href="5-act2.html#SP2_5">&#167;2.5</a><br/>Kinds - <a href="5-knd.html#SP1_12">&#167;1.12</a><br/>Tables - <a href="5-tbl.html#SP1_1">&#167;1.1</a>, <a href="5-tbl.html#SP1_4">&#167;1.4</a><br/>Chronology - <a href="5-chr.html#SP1_3">&#167;1.3</a>, <a href="5-chr.html#SP1_4">&#167;1.4</a>, <a href="5-chr.html#SP1_5">&#167;1.5</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><br/>Verbs - <a href="5-vrb.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="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="plain-syntax"> </span><span class="identifier-syntax">Inter::Defn::verify_construct</span><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Bookmarks::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>
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Errors::issue</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">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"synoptic array failed verification"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Bookmarks::insert</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="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_array_ps</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::numeric_entry</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::numeric_entry</span></span>:<br/>Responses - <a href="5-rsp.html#SP1_2">&#167;1.2</a>, <a href="5-rsp.html#SP1_3">&#167;1.3</a><br/>Rules - <a href="5-rls.html#SP1_2">&#167;1.2</a>, <a href="5-rls.html#SP1_3">&#167;1.3</a>, <a href="5-rls.html#SP1_4">&#167;1.4</a><br/>Activities - <a href="5-act.html#SP1_2">&#167;1.2</a>, <a href="5-act.html#SP1_5">&#167;1.5</a><br/>Actions - <a href="5-act2.html#SP2_3">&#167;2.3</a>, <a href="5-act2.html#SP2_4">&#167;2.4</a>, <a href="5-act2.html#SP2_5">&#167;2.5</a><br/>Kinds - <a href="5-knd.html#SP1_12">&#167;1.12</a><br/>Tables - <a href="5-tbl.html#SP1_1">&#167;1.1</a>, <a href="5-tbl.html#SP1_4">&#167;1.4</a><br/>Chronology - <a href="5-chr.html#SP1_3">&#167;1.3</a>, <a href="5-chr.html#SP1_4">&#167;1.4</a>, <a href="5-chr.html#SP1_5">&#167;1.5</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><br/>Verbs - <a href="5-vrb.html#SP1_1">&#167;1.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">val2</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Inode::extend</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="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">"cannot extend"</span><span class="plain-syntax">);</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">data</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="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">;</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">data</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">-1] = </span><span class="identifier-syntax">val2</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('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Synoptic::symbol_entry</span></span>:<br/>Responses - <a href="5-rsp.html#SP1_2">&#167;1.2</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><br/>Activities - <a href="5-act.html#SP1_1">&#167;1.1</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#SP2_4">&#167;2.4</a>, <a href="5-act2.html#SP2_5">&#167;2.5</a><br/>Kinds - <a href="5-knd.html#SP1_12">&#167;1.12</a><br/>Tables - <a href="5-tbl.html#SP1_1">&#167;1.1</a><br/>Chronology - <a href="5-chr.html#SP1_3">&#167;1.3</a>, <a href="5-chr.html#SP1_5">&#167;1.5</a><br/>Multimedia - <a href="5-mlt.html#SP1_4">&#167;1.4</a><br/>Verbs - <a href="5-vrb.html#SP1_1">&#167;1.1</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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Inode::extend</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="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">"cannot extend"</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">Inter::Packages::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">InterSymbolsTables::create_with_unique_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Packages::scope</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">), </span><span class="identifier-syntax">S</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">symbol_name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Wiring::wire_to</span><span class="plain-syntax">(</span><span class="identifier-syntax">local_S</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">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val1</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</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">Inter::Symbols::to_data</span><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Packages::tree</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">), </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">local_S</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">val2</span><span class="plain-syntax">);</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">data</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="identifier-syntax">ALIAS_IVAL</span><span class="plain-syntax">;</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">data</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">-1] = </span><span class="identifier-syntax">val2</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::textual_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::textual_entry</span></span>:<br/>Responses - <a href="5-rsp.html#SP1_3">&#167;1.3</a><br/>Rules - <a href="5-rls.html#SP1_2">&#167;1.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Inode::extend</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="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">"cannot extend"</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">Inter::Packages::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_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::tree</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">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Warehouse::create_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">InterTree::warehouse</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>
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">glob_storage</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Warehouse::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">InterTree::warehouse</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">val2</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Str::copy</span><span class="plain-syntax">(</span><span class="identifier-syntax">glob_storage</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">);</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">data</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="identifier-syntax">LITERAL_TEXT_IVAL</span><span class="plain-syntax">;</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">data</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">-1] = </span><span class="identifier-syntax">val2</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_definition</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">Synoptic::get_definition</span></span>:<br/>Extensions - <a href="5-ext.html#SP1">&#167;1</a><br/>Responses - <a href="5-rsp.html#SP1">&#167;1</a><br/>Rules - <a href="5-rls.html#SP1">&#167;1</a><br/>Activities - <a href="5-act.html#SP1">&#167;1</a><br/>Actions - <a href="5-act2.html#SP2">&#167;2</a><br/>Properties - <a href="5-prp.html#SP1">&#167;1</a><br/>Relations - <a href="5-rlt.html#SP1">&#167;1</a><br/>Tables - <a href="5-tbl.html#SP1">&#167;1</a>, <a href="5-tbl.html#SP1_4">&#167;1.4</a><br/>Chronology - <a href="5-chr.html#SP1">&#167;1</a><br/>Use Options - <a href="5-uo.html#SP1">&#167;1</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="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Synoptic::get_definition</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">Synoptic::get_definition</span></span>:<br/>Extensions - <a href="5-ext.html#SP1_1">&#167;1.1</a><br/>Responses - <a href="5-rsp.html#SP1">&#167;1</a><br/>Rules - <a href="5-rls.html#SP1">&#167;1</a><br/>Activities - <a href="5-act.html#SP1">&#167;1</a><br/>Actions - <a href="5-act2.html#SP2">&#167;2</a><br/>Properties - <a href="5-prp.html#SP1">&#167;1</a><br/>Relations - <a href="5-rlt.html#SP1">&#167;1</a><br/>Tables - <a href="5-tbl.html#SP1">&#167;1</a>, <a href="5-tbl.html#SP1_4">&#167;1.4</a><br/>Chronology - <a href="5-chr.html#SP1">&#167;1</a><br/>Use Options - <a href="5-uo.html#SP1">&#167;1</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">InterSymbolsTables::symbol_from_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Packages::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="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"Unable to find symbol %S in $6\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">);</span>
@ -386,24 +99,129 @@ function togglePopup(material_id) {
<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">D</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>To clarify: here, the symbol is optional, that is, need not exist; but if it
does exist, it must have a definition, and we return that.
</p>
<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('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">Synoptic::get_optional_definition</span></span>:<br/>Activities - <a href="5-act.html#SP1">&#167;1</a><br/>Actions - <a href="5-act2.html#SP2">&#167;2</a><br/>Tables - <a href="5-tbl.html#SP1_4">&#167;1.4</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>
<pre class="displayed-code all-displayed-code code-font">
<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">&#167;1</a><br/>Actions - <a href="5-act2.html#SP2">&#167;2</a><br/>Tables - <a href="5-tbl.html#SP1_4">&#167;1.4</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">InterSymbolsTables::symbol_from_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Packages::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>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><span class="identifier-syntax">def_s</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">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">D</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">"undefined symbol"</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">D</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>And this creates a new symbol:
</p>
<span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="function-syntax">Synoptic::module_containing</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">Synoptic::module_containing</span></span>:<br/><a href="5-su.html#SP2">&#167;2</a><br/>Verbs - <a href="5-vrb.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::container</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::tree</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</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">pack</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">ptype</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::type</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ptype</span><span class="plain-syntax"> == </span><span class="identifier-syntax">PackageTypes::get</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="string-syntax">"_module"</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><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::parent</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">);</span>
<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::new_symbol</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">Synoptic::new_symbol</span></span>:<br/>Literal Text - <a href="5-lt.html#SP1_1">&#167;1.1</a>, <a href="5-lt.html#SP1_2">&#167;1.2</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="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTables::create_with_unique_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Packages::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>
</pre>
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>&#167;4. Making textual constants. </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">Synoptic::textual_constant</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">Synoptic::textual_constant</span></span>:<br/>Literal Text - <a href="5-lt.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="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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Symbols::annotate_i</span><span class="plain-syntax">(</span><span class="identifier-syntax">con_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">TEXT_LITERAL_IANN</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">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">ID</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Warehouse::create_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">InterTree::warehouse</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::Bookmarks::package</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Str::copy</span><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Warehouse::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">InterTree::warehouse</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">ID</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">Produce::guard</span><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Constant::new_textual</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTables::id_from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">Inter::Bookmarks::package</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">), </span><span class="identifier-syntax">con_s</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTables::id_from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">Inter::Bookmarks::package</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">),</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">unchecked_kind_RPSYM</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">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">Inter::Bookmarks::baseline</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">) + </span><span class="constant-syntax">1</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="SP5" class="paragraph-anchor"></a><b>&#167;5. Making functions. </b></p>
<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_4">&#167;1.4</a><br/>Rules - <a href="5-rls.html#SP1_5">&#167;1.5</a>, <a href="5-rls.html#SP1_6">&#167;1.6</a><br/>Actions - <a href="5-act2.html#SP2_6">&#167;2.6</a><br/>Instances - <a href="5-ins.html#SP1_1">&#167;1.1</a><br/>Kinds - <a href="5-knd.html#SP1_2">&#167;1.2</a>, <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><br/>Relations - <a href="5-rlt.html#SP1_2">&#167;1.2</a>, <a href="5-rlt.html#SP1_3">&#167;1.3</a>, <a href="5-rlt.html#SP1_4">&#167;1.4</a><br/>Tables - <a href="5-tbl.html#SP1_2">&#167;1.2</a>, <a href="5-tbl.html#SP1_3">&#167;1.3</a><br/>Chronology - <a href="5-chr.html#SP1_6">&#167;1.6</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_2">&#167;1.2</a>, <a href="5-uo.html#SP1_3">&#167;1.3</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::block</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_4">&#167;1.4</a><br/>Rules - <a href="5-rls.html#SP1_5">&#167;1.5</a>, <a href="5-rls.html#SP1_6">&#167;1.6</a><br/>Actions - <a href="5-act2.html#SP2_6">&#167;2.6</a><br/>Instances - <a href="5-ins.html#SP1_1">&#167;1.1</a><br/>Kinds - <a href="5-knd.html#SP1_2">&#167;1.2</a>, <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><br/>Relations - <a href="5-rlt.html#SP1_2">&#167;1.2</a>, <a href="5-rlt.html#SP1_3">&#167;1.3</a>, <a href="5-rlt.html#SP1_4">&#167;1.4</a><br/>Tables - <a href="5-tbl.html#SP1_2">&#167;1.2</a>, <a href="5-tbl.html#SP1_3">&#167;1.3</a><br/>Chronology - <a href="5-chr.html#SP1_6">&#167;1.6</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_2">&#167;1.2</a>, <a href="5-uo.html#SP1_3">&#167;1.3</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_block</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">fn_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Produce::define_symbol</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::guard</span><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Constant::new_function</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="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTables::id_from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">Inter::Bookmarks::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">fn_s</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTables::id_from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">Inter::Bookmarks::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="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">unchecked_kind_RPSYM</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="plain-syntax"> </span><span class="identifier-syntax">Produce::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="identifier-syntax">NULL</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::end_main_block</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>
</pre>
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>&#167;6. </b>To give such a function a local:
</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_4">&#167;1.4</a><br/>Rules - <a href="5-rls.html#SP1_5">&#167;1.5</a>, <a href="5-rls.html#SP1_6">&#167;1.6</a><br/>Actions - <a href="5-act2.html#SP2_6">&#167;2.6</a><br/>Instances - <a href="5-ins.html#SP1_1">&#167;1.1</a><br/>Kinds - <a href="5-knd.html#SP1_2">&#167;1.2</a>, <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><br/>Relations - <a href="5-rlt.html#SP1_3">&#167;1.3</a>, <a href="5-rlt.html#SP1_4">&#167;1.4</a><br/>Tables - <a href="5-tbl.html#SP1_2">&#167;1.2</a>, <a href="5-tbl.html#SP1_3">&#167;1.3</a><br/>Chronology - <a href="5-chr.html#SP1_6">&#167;1.6</a><br/>Scenes - <a href="5-scn.html#SP1_2">&#167;1.2</a><br/>Use Options - <a href="5-uo.html#SP1_2">&#167;1.2</a>, <a href="5-uo.html#SP1_3">&#167;1.3</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="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">comment</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. Making arrays. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<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_2">&#167;1.2</a>, <a href="5-rsp.html#SP1_3">&#167;1.3</a><br/>Rules - <a href="5-rls.html#SP1_2">&#167;1.2</a>, <a href="5-rls.html#SP1_3">&#167;1.3</a>, <a href="5-rls.html#SP1_4">&#167;1.4</a><br/>Activities - <a href="5-act.html#SP1_1">&#167;1.1</a>, <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#SP2_3">&#167;2.3</a>, <a href="5-act2.html#SP2_4">&#167;2.4</a>, <a href="5-act2.html#SP2_5">&#167;2.5</a><br/>Kinds - <a href="5-knd.html#SP1_12">&#167;1.12</a><br/>Tables - <a href="5-tbl.html#SP1_1">&#167;1.1</a>, <a href="5-tbl.html#SP1_4">&#167;1.4</a><br/>Chronology - <a href="5-chr.html#SP1_3">&#167;1.3</a>, <a href="5-chr.html#SP1_4">&#167;1.4</a>, <a href="5-chr.html#SP1_5">&#167;1.5</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><br/>Verbs - <a href="5-vrb.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">synoptic_array_ps</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Packaging::enter_home_of</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">con_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Produce::define_symbol</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_array_node</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inode::fill_3</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">CONSTANT_IST</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTables::id_from_IRS_and_symbol</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">con_s</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTables::id_from_IRS_and_symbol</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="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">list_of_unchecked_kind_RPSYM</span><span class="plain-syntax">)),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CONSTANT_INDIRECT_LIST</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_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">Inter::Bookmarks::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('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Synoptic::end_array</span></span>:<br/>Responses - <a href="5-rsp.html#SP1_2">&#167;1.2</a>, <a href="5-rsp.html#SP1_3">&#167;1.3</a><br/>Rules - <a href="5-rls.html#SP1_2">&#167;1.2</a>, <a href="5-rls.html#SP1_3">&#167;1.3</a>, <a href="5-rls.html#SP1_4">&#167;1.4</a><br/>Activities - <a href="5-act.html#SP1_1">&#167;1.1</a>, <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#SP2_3">&#167;2.3</a>, <a href="5-act2.html#SP2_4">&#167;2.4</a>, <a href="5-act2.html#SP2_5">&#167;2.5</a><br/>Kinds - <a href="5-knd.html#SP1_12">&#167;1.12</a><br/>Tables - <a href="5-tbl.html#SP1_1">&#167;1.1</a>, <a href="5-tbl.html#SP1_4">&#167;1.4</a><br/>Chronology - <a href="5-chr.html#SP1_3">&#167;1.3</a>, <a href="5-chr.html#SP1_4">&#167;1.4</a>, <a href="5-chr.html#SP1_5">&#167;1.5</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><br/>Verbs - <a href="5-vrb.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="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">Inter::Defn::verify_construct</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Bookmarks::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>
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Errors::issue</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">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"synoptic array failed verification"</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">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Bookmarks::insert</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="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_array_ps</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>Three ways to define an entry:
</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('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">Synoptic::numeric_entry</span></span>:<br/>Responses - <a href="5-rsp.html#SP1_2">&#167;1.2</a>, <a href="5-rsp.html#SP1_3">&#167;1.3</a><br/>Rules - <a href="5-rls.html#SP1_2">&#167;1.2</a>, <a href="5-rls.html#SP1_3">&#167;1.3</a>, <a href="5-rls.html#SP1_4">&#167;1.4</a><br/>Activities - <a href="5-act.html#SP1_2">&#167;1.2</a>, <a href="5-act.html#SP1_5">&#167;1.5</a><br/>Actions - <a href="5-act2.html#SP2_3">&#167;2.3</a>, <a href="5-act2.html#SP2_4">&#167;2.4</a>, <a href="5-act2.html#SP2_5">&#167;2.5</a><br/>Kinds - <a href="5-knd.html#SP1_12">&#167;1.12</a><br/>Tables - <a href="5-tbl.html#SP1_1">&#167;1.1</a>, <a href="5-tbl.html#SP1_4">&#167;1.4</a><br/>Chronology - <a href="5-chr.html#SP1_3">&#167;1.3</a>, <a href="5-chr.html#SP1_4">&#167;1.4</a>, <a href="5-chr.html#SP1_5">&#167;1.5</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><br/>Verbs - <a href="5-vrb.html#SP1_1">&#167;1.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">val2</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Inode::extend</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="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">"cannot extend"</span><span class="plain-syntax">);</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">data</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="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">;</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">data</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">-1] = </span><span class="identifier-syntax">val2</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('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Synoptic::symbol_entry</span></span>:<br/>Responses - <a href="5-rsp.html#SP1_2">&#167;1.2</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><br/>Activities - <a href="5-act.html#SP1_1">&#167;1.1</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#SP2_4">&#167;2.4</a>, <a href="5-act2.html#SP2_5">&#167;2.5</a><br/>Kinds - <a href="5-knd.html#SP1_12">&#167;1.12</a><br/>Tables - <a href="5-tbl.html#SP1_1">&#167;1.1</a><br/>Chronology - <a href="5-chr.html#SP1_3">&#167;1.3</a>, <a href="5-chr.html#SP1_5">&#167;1.5</a><br/>Multimedia - <a href="5-mlt.html#SP1_4">&#167;1.4</a><br/>Verbs - <a href="5-vrb.html#SP1_1">&#167;1.1</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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Inode::extend</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="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">"cannot extend"</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">Inter::Packages::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="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTables::create_with_unique_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Packages::scope</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">), </span><span class="identifier-syntax">S</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">symbol_name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Wiring::wire_to</span><span class="plain-syntax">(</span><span class="identifier-syntax">local_S</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">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val1</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</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">Inter::Symbols::to_data</span><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Packages::tree</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">), </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">local_S</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">val2</span><span class="plain-syntax">);</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">data</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="identifier-syntax">ALIAS_IVAL</span><span class="plain-syntax">;</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">data</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">-1] = </span><span class="identifier-syntax">val2</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::textual_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::textual_entry</span></span>:<br/>Responses - <a href="5-rsp.html#SP1_3">&#167;1.3</a><br/>Rules - <a href="5-rls.html#SP1_2">&#167;1.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Inode::extend</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="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">"cannot extend"</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">Inter::Packages::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_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::tree</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">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Warehouse::create_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">InterTree::warehouse</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>
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">glob_storage</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Warehouse::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">InterTree::warehouse</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">val2</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Str::copy</span><span class="plain-syntax">(</span><span class="identifier-syntax">glob_storage</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">);</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">data</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="identifier-syntax">LITERAL_TEXT_IVAL</span><span class="plain-syntax">;</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">data</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">-1] = </span><span class="identifier-syntax">val2</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">

View file

@ -91,32 +91,32 @@ by index within the current table: see <a href="../assertions-module/7-tbl.html"
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticTables::compile</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">SynopticTables::compile</span></span>:<br/>Make Synoptic Module Stage - <a href="5-msms.html#SP1">&#167;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="reserved-syntax">tree_inventory</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">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">table_nodes</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">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">table_nodes</span><span class="plain-syntax">, </span><a href="5-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">table_nodes</span><span class="plain-syntax">, </span><a href="5-msms.html#SP6" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::module_order</span></a><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;TreeLists::len(inv-&gt;</span><span class="element-syntax">table_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">table_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_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><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">"table_id"</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="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><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">"table_id"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">+1] = (</span><span class="identifier-syntax">inter_ti</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="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">table_column_nodes</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">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">table_column_nodes</span><span class="plain-syntax">, </span><a href="5-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">table_column_nodes</span><span class="plain-syntax">, </span><a href="5-msms.html#SP6" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::module_order</span></a><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;TreeLists::len(inv-&gt;</span><span class="element-syntax">table_column_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">table_column_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_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><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">"table_column_id"</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="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><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">"table_column_id"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">+1] = (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) (</span><span class="identifier-syntax">i</span><span class="plain-syntax"> + </span><span class="constant-syntax">100</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">table_column_usage_nodes</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">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">table_column_usage_nodes</span><span class="plain-syntax">, </span><a href="5-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">table_column_usage_nodes</span><span class="plain-syntax">, </span><a href="5-msms.html#SP6" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::module_order</span></a><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;TreeLists::len(inv-&gt;</span><span class="element-syntax">table_column_usage_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">table_column_usage_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_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ID</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><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">"column_identity"</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="identifier-syntax">ID</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><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">"column_identity"</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">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">ID</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">] == </span><span class="identifier-syntax">ALIAS_IVAL</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">id_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterSymbolsTables::symbol_from_id</span><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Packages::scope</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">), </span><span class="identifier-syntax">ID</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</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">id_s</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">"column_identity not an ALIAS_IVAL"</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">Inter::Symbols::definition</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">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><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">"column_bits"</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="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><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">"column_bits"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">+1] += </span><span class="identifier-syntax">ID</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">+1];</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
@ -132,16 +132,16 @@ by index within the current table: see <a href="../assertions-module/7-tbl.html"
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">TABLEOFTABLES_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_array</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="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">THEEMPTYTABLE_HL</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</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="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">THEEMPTYTABLE_HL</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;TreeLists::len(inv-&gt;</span><span class="element-syntax">table_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">table_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">value_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_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">"^value"</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::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">value_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">value_s</span><span class="plain-syntax">);</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::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><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#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP7" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><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="5-tbl.html#SP1">&#167;1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_2" class="paragraph-anchor"></a><b>&#167;1.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define PRINT_TABLE function</span><span class="named-paragraph-number">1.2</span></span><span class="comment-syntax"> =</span>
@ -150,7 +150,7 @@ by index within the current table: see <a href="../assertions-module/7-tbl.html"
<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::find</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><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">T_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" 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">"T"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T_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">"T"</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">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">SWITCH_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">T_s</span><span class="plain-syntax">);</span>
@ -209,8 +209,8 @@ by index within the current table: see <a href="../assertions-module/7-tbl.html"
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">TC_KOV_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">tc_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" 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">"tc"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">unk_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" 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">"unk"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tc_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">"tc"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">unk_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">"unk"</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">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">SWITCH_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">tc_s</span><span class="plain-syntax">);</span>
@ -248,23 +248,23 @@ by index within the current table: see <a href="../assertions-module/7-tbl.html"
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">TB_BLANKS_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::annotate_iname_i</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">BYTEARRAY_IANN</span><span class="plain-syntax">, </span><span class="constant-syntax">1</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_array</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="plain-syntax"> </span><a href="5-su.html#SP7" class="function-link"><span class="function-syntax">Synoptic::begin_array</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="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">hwm</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">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;TreeLists::len(inv-&gt;</span><span class="element-syntax">table_column_usage_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">table_column_usage_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_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::get_optional_definition</span></a><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">"column_blanks"</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="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="5-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::get_optional_definition</span></a><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">"column_blanks"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">D</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">+1] = </span><span class="identifier-syntax">hwm</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="identifier-syntax">B</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><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">"^column_blank_data"</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="identifier-syntax">B</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><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">"^column_blank_data"</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">=</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;B-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">extent</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">+2) {</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">B</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">+1]);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">B</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">+1]);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">hwm</span><span class="plain-syntax">++;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><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#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP7" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><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="5-tbl.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="named-paragraph-container code-font"><span class="named-paragraph-defn">Define RANKING_TABLE constant</span><span class="named-paragraph-number">1.5</span></span><span class="comment-syntax"> =</span>

View file

@ -80,7 +80,7 @@ of type <span class="extract"><span class="extract-syntax">_test</span></span>.
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticTests::compile</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">SynopticTests::compile</span></span>:<br/>Make Synoptic Module Stage - <a href="5-msms.html#SP1">&#167;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="reserved-syntax">tree_inventory</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">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">test_nodes</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">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">test_nodes</span><span class="plain-syntax">, </span><a href="5-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">test_nodes</span><span class="plain-syntax">, </span><a href="5-msms.html#SP6" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::module_order</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-tst.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Define TESTSCRIPTSUB function</span><span class="named-paragraph-number">1.1</span></a></span><span class="plain-syntax">;</span>
@ -107,8 +107,8 @@ of type <span class="extract"><span class="extract-syntax">_test</span></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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">test_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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_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="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">len</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">"^length"</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">text_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP3" class="function-link"><span class="function-syntax">Synoptic::get_symbol</span></a><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">"script"</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">req_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP3" class="function-link"><span class="function-syntax">Synoptic::get_symbol</span></a><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">"requirements"</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">text_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::get_symbol</span></a><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">"script"</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">req_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::get_symbol</span></a><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">"requirements"</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">CASE_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_dword</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>

View file

@ -80,10 +80,10 @@ of packages of type <span class="extract"><span class="extract-syntax">_use_opti
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticUseOptions::compile</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">SynopticUseOptions::compile</span></span>:<br/>Make Synoptic Module Stage - <a href="5-msms.html#SP1">&#167;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="reserved-syntax">tree_inventory</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">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">use_option_nodes</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">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">use_option_nodes</span><span class="plain-syntax">, </span><a href="5-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">use_option_nodes</span><span class="plain-syntax">, </span><a href="5-msms.html#SP6" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::module_order</span></a><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;TreeLists::len(inv-&gt;</span><span class="element-syntax">use_option_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">use_option_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_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><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">"use_option_id"</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="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="5-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><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">"use_option_id"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">+1] = (</span><span class="identifier-syntax">inter_ti</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>
@ -113,7 +113,7 @@ name of a given use option.
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">TESTUSEOPTION_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">UO_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" 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">"UO"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">UO_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">"UO"</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;TreeLists::len(inv-&gt;</span><span class="element-syntax">use_option_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">use_option_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_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">set</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">"^active"</span><span class="plain-syntax">);</span>
@ -142,7 +142,7 @@ name of a given use option.
<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::find</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><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">UO_s</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" 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">"UO"</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">UO_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">"UO"</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">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">SWITCH_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">UO_s</span><span class="plain-syntax">);</span>

View file

@ -95,8 +95,8 @@ of instances having the kind <span class="extract"><span class="extract-syntax">
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E1</span><span class="plain-syntax"> == </span><span class="identifier-syntax">E2</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">E1</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">node</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="identifier-syntax">P2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">E2</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">node</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">mod1</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::module_containing</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P1</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">mod2</span><span class="plain-syntax"> = </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::module_containing</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P2</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">mod1</span><span class="plain-syntax"> = </span><a href="5-msms.html#SP6" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::module_containing</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P1</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">mod2</span><span class="plain-syntax"> = </span><a href="5-msms.html#SP6" class="function-link"><span class="function-syntax">MakeSynopticModuleStage::module_containing</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P2</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">C1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">mod1</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^category"</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">C2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">mod2</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^category"</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">d</span><span class="plain-syntax"> = ((</span><span class="reserved-syntax">int</span><span class="plain-syntax">) </span><span class="identifier-syntax">C2</span><span class="plain-syntax">) - ((</span><span class="reserved-syntax">int</span><span class="plain-syntax">) </span><span class="identifier-syntax">C1</span><span class="plain-syntax">); </span><span class="comment-syntax"> larger values sort earlier</span>
@ -115,14 +115,14 @@ of instances having the kind <span class="extract"><span class="extract-syntax">
<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::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">TABLEOFVERBS_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_array</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="plain-syntax"> </span><a href="5-su.html#SP7" class="function-link"><span class="function-syntax">Synoptic::begin_array</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="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;TreeLists::len(inv-&gt;</span><span class="element-syntax">verb_form_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">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">verb_form_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">vc_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_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">"^verb_value"</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::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP8" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax">);</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::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><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#SP8" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><a href="5-su.html#SP7" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><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="5-vrb.html#SP1">&#167;1</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">

View file

@ -70,7 +70,7 @@ function togglePopup(material_id) {
<main role="main">
<!--Weave of 'Eliminate Redundant Labels Stage' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inter Modules</a></li><li><a href="index.html">pipeline</a></li><li><a href="index.html#6">Chapter 6: Optimisation Stages</a></li><li><b>Eliminate Redundant Labels Stage</b></li></ul></div>
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inter Modules</a></li><li><a href="index.html">pipeline</a></li><li><a href="index.html#6">Chapter 6: Optimisation</a></li><li><b>Eliminate Redundant Labels Stage</b></li></ul></div>
<p class="purpose">To remove labels which are defined but never jumped to.</p>
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. </b><a href="../inform7/index.html" class="internal">inform7</a> tends to produce a lot of labels when compiling complicated text

View file

@ -70,7 +70,7 @@ function togglePopup(material_id) {
<main role="main">
<!--Weave of 'Eliminate Redundant Matter Stage' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inter Modules</a></li><li><a href="index.html">pipeline</a></li><li><a href="index.html#6">Chapter 6: Optimisation Stages</a></li><li><b>Eliminate Redundant Matter Stage</b></li></ul></div>
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inter Modules</a></li><li><a href="index.html">pipeline</a></li><li><a href="index.html#6">Chapter 6: Optimisation</a></li><li><b>Eliminate Redundant Matter Stage</b></li></ul></div>
<p class="purpose">To remove definitions which are never used: for example, functions which are never called or referred to.</p>
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. </b>Experience shows that around 20 per cent of the code generated by <a href="../inform7/index.html" class="internal">inform7</a>

View file

@ -70,7 +70,7 @@ function togglePopup(material_id) {
<main role="main">
<!--Weave of 'Eliminate Redundant Operations Stage' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inter Modules</a></li><li><a href="index.html">pipeline</a></li><li><a href="index.html#6">Chapter 6: Optimisation Stages</a></li><li><b>Eliminate Redundant Operations Stage</b></li></ul></div>
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inter Modules</a></li><li><a href="index.html">pipeline</a></li><li><a href="index.html#6">Chapter 6: Optimisation</a></li><li><b>Eliminate Redundant Operations Stage</b></li></ul></div>
<p class="purpose">To remove logical or arithmetic operations which neither do anything, nor have side-effects.</p>
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. </b>This stage removes redundant operations, replacing each of the following

View file

@ -118,7 +118,7 @@
</li>
<li>
<p class="chapterentry"><a name="3"></a>
<span class="chaptertitle">Chapter 3: Assimilation Stages</span></p>
<span class="chaptertitle">Chapter 3: Assimilation</span></p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="3-ps.html">
@ -139,7 +139,7 @@
</li>
<li>
<p class="chapterentry"><a name="4"></a>
<span class="chaptertitle">Chapter 4: Linking Stages</span></p>
<span class="chaptertitle">Chapter 4: Linking</span></p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="4-lbks.html">
@ -166,6 +166,11 @@
<spon class="sectiontitle">Reconcile Verbs Stage</span></a> -
<span class="sectionpurpose">To reconcile clashes between assimilated and originally generated verbs.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-tsk.html">
<spon class="sectiontitle">The Standard Kits</span></a> -
<span class="sectionpurpose">The layout and naming conventions for functions and other resources provided by the standard kits, and which are called or accessed from code generated by Inter or by the Inform 7 compiler.</span></p>
</li>
</ul>
</li>
<li>
@ -185,7 +190,7 @@
<li>
<p class="sectionentry"><a href="5-su.html">
<spon class="sectiontitle">Synoptic Utilities</span></a> -
<span class="sectionpurpose">Managing the generation of code and arrays in the synoptic module, which is put together from resources all over the Inter tree.</span></p>
<span class="sectionpurpose">Utility functions for generating the code in the synoptic module.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-ext.html">
@ -276,7 +281,7 @@
</li>
<li>
<p class="chapterentry"><a name="6"></a>
<span class="chaptertitle">Chapter 6: Optimisation Stages</span></p>
<span class="chaptertitle">Chapter 6: Optimisation</span></p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="6-erms.html">

View file

@ -247,16 +247,14 @@ definitions, and also
</li><li>(2) material added later in linking, for example from kits like <a href="../WorldModelKit/index.html" class="internal">WorldModelKit</a>.
</li></ul>
<p class="commentary">The following catalogue contains location and naming conventions for everything
in category (1), and for some of the names in category (2) which the main
compiler needs to refer to. For example, the Inform compiler generates calls
to an Inter function called <span class="extract"><span class="extract-syntax">BlkValueCopy</span></span>. This is a function in the kit
<a href="../BasicInformKit/index.html" class="internal">BasicInformKit</a>, but it has a hierarchy location ID, <span class="extract"><span class="extract-syntax">BLKVALUECOPY_HL</span></span>, so
that the compiler can refer to it.
in category (1). Names in category (2) are set up in <a href="../pipeline-module/5-sh.html" class="internal">Synoptic Hierarchy (in pipeline)</a>
and <a href="../pipeline-module/4-tsk.html" class="internal">The Standard Kits (in pipeline)</a>, but by very similar methods.
</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">Hierarchy::establish</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">SynopticHierarchy::establish</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="plain-syntax"> </span><span class="identifier-syntax">KitHierarchy::establish</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="plain-syntax"> </span><span class="constant-syntax">H_BEGIN_DECLARATIONS</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-hrr.html#SP8_1" class="named-paragraph-link"><span class="named-paragraph">Establish locations for material created by the compiler</span><span class="named-paragraph-number">8.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-hrr.html#SP8_2" class="named-paragraph-link"><span class="named-paragraph">Establish locations for material expected to be added by linking</span><span class="named-paragraph-number">8.2</span></a></span><span class="plain-syntax">;</span>

View file

@ -1,9 +1,9 @@
Total memory consumption was 403231K = 394 MB
Total memory consumption was 404027K = 395 MB
61.3% was used for 2026336 objects, in 380039 frames in 309 x 800K = 247200K = 241 MB:
61.3% was used for 2026237 objects, in 380039 frames in 310 x 800K = 248000K = 242 MB:
10.1% inter_tree_node_array 58 x 8192 = 475136 objects, 41813824 bytes
7.2% text_stream_array 5299 x 100 = 529900 objects, 29843968 bytes
7.2% text_stream_array 5298 x 100 = 529800 objects, 29838336 bytes
4.7% linked_list 34785 objects, 19479600 bytes
4.1% inter_symbol_array 140 x 1024 = 143360 objects, 17207680 bytes
2.5% parse_node 129462 objects, 10356960 bytes
@ -18,7 +18,7 @@ Total memory consumption was 403231K = 394 MB
0.4% package_request 21139 objects, 1860232 bytes
0.4% vocabulary_entry_array 161 x 100 = 16100 objects, 1808352 bytes
0.4% inter_symbols_table 26570 objects, 1700480 bytes
0.3% dictionary 33309 objects, 1598832 bytes
0.3% dictionary 33310 objects, 1598880 bytes
0.3% match_trie_array 11 x 1000 = 11000 objects, 1496352 bytes
0.3% i6_schema_array 23 x 100 = 2300 objects, 1380736 bytes
0.3% dict_entry_array 423 x 100 = 42300 objects, 1367136 bytes
@ -237,8 +237,8 @@ Total memory consumption was 403231K = 394 MB
38.6% was used for memory not allocated for objects:
20.2% text stream storage 83536636 bytes in 547918 claims
4.4% dictionary storage 18457600 bytes in 33309 claims
20.1% text stream storage 83531016 bytes in 547826 claims
4.4% dictionary storage 18458624 bytes in 33310 claims
---- sorting 736 bytes in 3 claims
1.7% source text 7200000 bytes in 3 claims
2.6% source text details 10800000 bytes in 2 claims
@ -255,5 +255,5 @@ Total memory consumption was 403231K = 394 MB
---- code generation workspace for objects 1336 bytes in 4 claims
---- emitter array storage 161792 bytes in 2062 claims
18.9% was overhead - 78312888 bytes = 76477K = 74 MB
19.1% was overhead - 79137672 bytes = 77282K = 75 MB

View file

@ -1,11 +1,11 @@
100.0% in inform7 run
56.8% in compilation to Inter
41.1% in //Sequence::undertake_queued_tasks//
3.6% in //MajorNodes::pre_pass//
57.1% in compilation to Inter
41.5% in //Sequence::undertake_queued_tasks//
3.5% in //MajorNodes::pre_pass//
2.6% in //MajorNodes::pass_1//
2.2% in //RTPhrasebook::compile_entries//
1.4% in //ImperativeDefinitions::assess_all//
1.1% in //RTKindConstructors::compile//
2.1% in //RTPhrasebook::compile_entries//
1.3% in //ImperativeDefinitions::assess_all//
1.2% in //RTKindConstructors::compile//
0.4% in //MajorNodes::pass_2//
0.4% in //Sequence::undertake_queued_tasks//
0.4% in //World::stage_V//
@ -16,11 +16,11 @@
0.1% in //RTKindConstructors::compile_permissions//
0.1% in //Task::make_built_in_kind_constructors//
2.0% not specifically accounted for
41.1% in running Inter pipeline
11.0% in step preparation
10.3% in inter step 6/14: make-synoptic-module
8.1% in inter step 5/14: load-binary-kits
7.0% in inter step 14/14: generate inform6 -> auto.inf
40.8% in running Inter pipeline
10.8% in step preparation
10.2% in inter step 6/14: make-synoptic-module
8.0% in inter step 5/14: load-binary-kits
7.1% in inter step 14/14: generate inform6 -> auto.inf
1.5% in inter step 10/14: make-identifiers-unique
0.3% in inter step 13/14: eliminate-redundant-operations
0.3% in inter step 4/14: compile-splats
@ -28,6 +28,6 @@
0.1% in inter step 11/14: reconcile-verbs
0.1% in inter step 12/14: eliminate-redundant-labels
0.1% in inter step 9/14: detect-indirect-calls
1.5% not specifically accounted for
1.7% not specifically accounted for
1.7% in supervisor
0.4% not specifically accounted for

View file

@ -391,42 +391,6 @@ Constant REPORT_RB = 33;
Constant DOES_THE_PLAYER_MEAN_RB = 34;
Constant MULTIPLE_ACTION_PROCESSING_RB = 35;
@h Kind IDs.
These are filled in automatically by Inform, and have the same names as are used
in the Inform source (and in the Load-.i6t sections): for instance |NUMBER_TY|.
@h Parser Error Numbers.
The traditional ways in which the I6 library's parser, which we adopt here
more or less intact, can give up on a player's command. See the {\it Inform
Designer's Manual}, 4th edition, for details.
=
Constant STUCK_PE = 1;
Constant UPTO_PE = 2;
Constant NUMBER_PE = 3;
Constant ANIMA_PE = 4;
Constant CANTSEE_PE = 5;
Constant TOOLIT_PE = 6;
Constant NOTHELD_PE = 7;
Constant MULTI_PE = 8;
Constant MMULTI_PE = 9;
Constant VAGUE_PE = 10;
Constant EXCEPT_PE = 11;
Constant VERB_PE = 12;
Constant SCENERY_PE = 13;
Constant ITGONE_PE = 14;
Constant JUNKAFTER_PE = 15;
Constant TOOFEW_PE = 16;
Constant NOTHING_PE = 17;
Constant ASKSCOPE_PE = 18;
Constant NOTINCONTEXT_PE = 19;
Constant BLANKLINE_PE = 20; ! Not formally a parser error, but used by I7 as if
Constant ANIMAAGAIN_PE = 21;
Constant COMMABEGIN_PE = 22;
Constant MISSINGPERSON_PE = 23;
Constant ANIMALISTEN_PE = 24;
Constant TOTALK_PE = 25;
@h Scope Searching Reasons.
The parser makes use of a mechanism for searching through the objects currently
"in scope", which basically means visible to the actor who would perform the
@ -683,28 +647,6 @@ Property grammar; ! not used by I7, but an interesting hook in the parser
Property inside_description; ! not used by I7, but an interesting hook in the locale code
Property short_name_indef 0; ! not used by I7, but an interesting hook in the listmaker
@h Fake Actions.
Though sometimes useful for I6 coding tricks, fake actions -- action numbers
not corresponding to any action, but different from those of valid actions,
and useable with a number of action syntaxes -- are not conceptually present
in I7 source text. They can only really exist at the I6 level because I6 is
typeless; in I7 terms, there is no convenient kind of value which could
represent both actions and fake actions while protecting each from confusion
with the other.
See the {\it Inform Designer's Manual}, 4th edition, for what these are
used for.
The following fake actions from the I6 library have been dropped here:
|##LetGo|, |##Receive|, |##ThrownAt|, |##Prompt|, |##Places|, |##Objects|,
|##Order|, |##NotUnderstood|.
=
Fake_Action ListMiscellany;
Fake_Action Miscellany;
Fake_Action PluralFound;
Fake_Action TheSame;
@h Formal Parameters.
These are needed for efficient run-time ambiguity resolution.

View file

@ -3,6 +3,37 @@ Parser Template.
The parser for turning the text of the typed command into a proposed
action by the player.
@h Parser Error Numbers.
The traditional ways in which the I6 library's parser, which we adopt here
more or less intact, can give up on a player's command.
=
Constant STUCK_PE = 1;
Constant UPTO_PE = 2;
Constant NUMBER_PE = 3;
Constant ANIMA_PE = 4;
Constant CANTSEE_PE = 5;
Constant TOOLIT_PE = 6;
Constant NOTHELD_PE = 7;
Constant MULTI_PE = 8;
Constant MMULTI_PE = 9;
Constant VAGUE_PE = 10;
Constant EXCEPT_PE = 11;
Constant VERB_PE = 12;
Constant SCENERY_PE = 13;
Constant ITGONE_PE = 14;
Constant JUNKAFTER_PE = 15;
Constant TOOFEW_PE = 16;
Constant NOTHING_PE = 17;
Constant ASKSCOPE_PE = 18;
Constant NOTINCONTEXT_PE = 19;
Constant BLANKLINE_PE = 20; ! Not formally a parser error, but used by I7 as if
Constant ANIMAAGAIN_PE = 21;
Constant COMMABEGIN_PE = 22;
Constant MISSINGPERSON_PE = 23;
Constant ANIMALISTEN_PE = 24;
Constant TOTALK_PE = 25;
@h Grammar Line Variables.
This is the I6 library parser in mostly untouched form: reformatted for template
file use, and with paragraph divisions, but otherwise hardly changed at all.
@ -24,6 +55,7 @@ in "Output.i6t" are for general access, while the ones below should only
be read or written by the parser.
=
Global etype; ! parser error number if command not recognised
Global best_etype; ! Preferred error number so far
Global nextbest_etype; ! Preferred one, if ASKSCOPE_PE disallowed

View file

@ -46,6 +46,25 @@ This segment of the template is divided into two: first, the I6 code needed
for (i) to (vii), the alternative ways for actions to begin; and secondly
the common machinery into which all actions eventually pass.
@h Fake Actions.
Though sometimes useful for I6 coding tricks, fake actions -- action numbers
not corresponding to any action, but different from those of valid actions,
and useable with a number of action syntaxes -- are not conceptually present
in I7 source text. They can only really exist at the I6 level because I6 is
typeless; in I7 terms, there is no convenient kind of value which could
represent both actions and fake actions while protecting each from confusion
with the other.
The following fake actions from the I6 library have been dropped here:
|##LetGo|, |##Receive|, |##ThrownAt|, |##Prompt|, |##Places|, |##Objects|,
|##Order|, |##NotUnderstood|.
=
Fake_Action ListMiscellany;
Fake_Action Miscellany;
Fake_Action PluralFound;
Fake_Action TheSame;
@h Action Data.
This is perhaps a good place to document the |ActionData| array, a convenient
table of metadata about the actions. Since this is compiled by Inform, the

View file

@ -145,7 +145,6 @@ Global multiple_object_item; ! item currently being processed in multiple-object
Global noun; ! = I7 "noun"
Global second; ! = I7 "second noun"
Global keep_silent; ! true if current action is being tried silently
Global etype; ! parser error number if command not recognised
Global trace_actions = 0;
Global untouchable_object;

View file

@ -155,15 +155,13 @@ definitions, and also
(2) material added later in linking, for example from kits like //WorldModelKit//.
The following catalogue contains location and naming conventions for everything
in category (1), and for some of the names in category (2) which the main
compiler needs to refer to. For example, the Inform compiler generates calls
to an Inter function called |BlkValueCopy|. This is a function in the kit
//BasicInformKit//, but it has a hierarchy location ID, |BLKVALUECOPY_HL|, so
that the compiler can refer to it.
in category (1). Names in category (2) are set up in //pipeline: Synoptic Hierarchy//
and //pipeline: The Standard Kits//, but by very similar methods.
=
void Hierarchy::establish(void) {
SynopticHierarchy::establish(Emit::tree());
KitHierarchy::establish(Emit::tree());
H_BEGIN_DECLARATIONS
@<Establish locations for material created by the compiler@>;
@<Establish locations for material expected to be added by linking@>;

View file

@ -5,12 +5,16 @@ within these trees.
@
@d SYNOPTIC_HIERARCHY_MADE_ITHBIT 1
@d KIT_HIERARCHY_MADE_ITHBIT 2
=
typedef struct inter_tree {
struct inter_warehouse *housed;
struct inter_tree_node *root_node;
struct inter_package *root_package;
struct building_site site;
int history_bits;
CLASS_DEFINITION
} inter_tree;
@ -29,6 +33,7 @@ inter_tree *InterTree::new(void) {
I->root_node->package = I->root_package;
Inter::Warehouse::attribute_resource(I->housed, N, I->root_package);
Site::clear(I);
I->history_bits = 0;
return I;
}

View file

@ -118,7 +118,7 @@ index_session *Indexing::new_session(inter_tree *I) {
if (I == NULL) internal_error("no tree to index");
index_session *session = CREATE(index_session);
session->tree = I;
session->inv = Synoptic::inv(I);
session->inv = MakeSynopticModuleStage::take_inventory(I);
session->lexicon = NULL;
session->set_of_instances = NULL;
session->list_of_scenes = NULL;

View file

@ -181,7 +181,7 @@ void FauxInstances::make_faux(index_session *session) {
session->set_of_instances = faux_set;
tree_inventory *inv = Indexing::get_inventory(session);
TreeLists::sort(inv->instance_nodes, Synoptic::module_order);
TreeLists::sort(inv->instance_nodes, MakeSynopticModuleStage::module_order);
inter_package *pack;
LOOP_OVER_INVENTORY_PACKAGES(pack, i, inv->instance_nodes)
if (Metadata::read_optional_numeric(pack, I"^is_object"))

View file

@ -41,7 +41,7 @@ void FauxScenes::list_of_faux_scenes(index_session *session) {
inter_tree *I = Indexing::get_tree(session);
tree_inventory *inv = Indexing::get_inventory(session);
TreeLists::sort(inv->scene_nodes, FauxScenes::scene_order);
TreeLists::sort(inv->rulebook_nodes, Synoptic::module_order);
TreeLists::sort(inv->rulebook_nodes, MakeSynopticModuleStage::module_order);
inter_package *scene_pack;
LOOP_OVER_INVENTORY_PACKAGES(scene_pack, i, inv->scene_nodes)

View file

@ -59,7 +59,7 @@ inter_lexicon *IndexLexicon::stock(inter_tree *I, tree_inventory *inv) {
}
@<Add verb entries@> =
TreeLists::sort(inv->verb_nodes, Synoptic::module_order);
TreeLists::sort(inv->verb_nodes, MakeSynopticModuleStage::module_order);
inter_package *pack;
LOOP_OVER_INVENTORY_PACKAGES(pack, i, inv->verb_nodes) {
index_lexicon_entry *lex;

View file

@ -9,8 +9,8 @@ so we do little more than tabulate that data here.
void ArithmeticElement::render(OUTPUT_STREAM, index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
tree_inventory *inv = Indexing::get_inventory(session);
TreeLists::sort(inv->kind_nodes, Synoptic::module_order);
TreeLists::sort(inv->multiplication_rule_nodes, Synoptic::module_order);
TreeLists::sort(inv->kind_nodes, MakeSynopticModuleStage::module_order);
TreeLists::sort(inv->multiplication_rule_nodes, MakeSynopticModuleStage::module_order);
HTML_TAG("hr");
@<Index the rubric about quasinumerical kinds@>;
@<Index the table of quasinumerical kinds@>;

View file

@ -17,7 +17,7 @@ void BehaviourElement::render(OUTPUT_STREAM, index_session *session) {
Localisation::roman(OUT, LD, I"Index.Elements.Bh.None");
HTML_CLOSE("p");
} else {
TreeLists::sort(inv->named_action_pattern_nodes, Synoptic::module_order);
TreeLists::sort(inv->named_action_pattern_nodes, MakeSynopticModuleStage::module_order);
inter_package *pack;
LOOP_OVER_INVENTORY_PACKAGES(pack, i, inv->named_action_pattern_nodes) {
text_stream *name = Metadata::read_optional_textual(pack, I"^name");

View file

@ -9,8 +9,8 @@ and it is quite dense with information.
void ChartElement::render(OUTPUT_STREAM, index_session *session) {
localisation_dictionary *D = Indexing::get_localisation(session);
tree_inventory *inv = Indexing::get_inventory(session);
TreeLists::sort(inv->kind_nodes, Synoptic::module_order);
TreeLists::sort(inv->instance_nodes, Synoptic::module_order);
TreeLists::sort(inv->kind_nodes, MakeSynopticModuleStage::module_order);
TreeLists::sort(inv->instance_nodes, MakeSynopticModuleStage::module_order);
HTML::begin_wide_html_table(OUT);
int pass = 1;
@<Add a dotty row to the chart of kinds@>;

View file

@ -9,8 +9,8 @@ void ContentsElement::render(OUTPUT_STREAM, index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
inter_tree *I = Indexing::get_tree(session);
tree_inventory *inv = Indexing::get_inventory(session);
TreeLists::sort(inv->extension_nodes, Synoptic::category_order);
TreeLists::sort(inv->heading_nodes, Synoptic::module_order);
TreeLists::sort(inv->extension_nodes, MakeSynopticModuleStage::category_order);
TreeLists::sort(inv->heading_nodes, MakeSynopticModuleStage::module_order);
@<Write a sort of half-title page@>;
@<Index the headings@>;

View file

@ -8,7 +8,7 @@ To write the Events element (Ev) in the index.
void EventsElement::render(OUTPUT_STREAM, index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
tree_inventory *inv = Indexing::get_inventory(session);
TreeLists::sort(inv->rule_nodes, Synoptic::module_order);
TreeLists::sort(inv->rule_nodes, MakeSynopticModuleStage::module_order);
int when_count = 0, tt_count = 0;
@<Index events with no specific time@>;

View file

@ -10,8 +10,8 @@ void ExtrasElement::render(OUTPUT_STREAM, index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
inter_tree *I = Indexing::get_tree(session);
tree_inventory *inv = Indexing::get_inventory(session);
TreeLists::sort(inv->rulebook_nodes, Synoptic::module_order);
TreeLists::sort(inv->activity_nodes, Synoptic::module_order);
TreeLists::sort(inv->rulebook_nodes, MakeSynopticModuleStage::module_order);
TreeLists::sort(inv->activity_nodes, MakeSynopticModuleStage::module_order);
inter_package *E;
LOOP_OVER_INVENTORY_PACKAGES(E, i, inv->module_nodes)
@ -26,7 +26,7 @@ void ExtrasElement::render(OUTPUT_STREAM, index_session *session) {
int c = 0;
inter_package *rb_pack;
LOOP_OVER_INVENTORY_PACKAGES(rb_pack, i, inv->rulebook_nodes)
if (Synoptic::module_containing(rb_pack->package_head) == E) {
if (MakeSynopticModuleStage::module_containing(rb_pack->package_head) == E) {
if (Metadata::read_optional_numeric(rb_pack, I"^automatically_generated"))
continue;
if (c++ == 0) @<Heading for these@>;
@ -36,7 +36,7 @@ void ExtrasElement::render(OUTPUT_STREAM, index_session *session) {
}
inter_package *av_pack;
LOOP_OVER_INVENTORY_PACKAGES(av_pack, i, inv->activity_nodes)
if (Synoptic::module_containing(av_pack->package_head) == E) {
if (MakeSynopticModuleStage::module_containing(av_pack->package_head) == E) {
if (c++ == 0) @<Heading for these@>;
IndexRules::activity_box(OUT, I, av_pack, 1, session);
}

View file

@ -9,9 +9,9 @@ void FiguresElement::render(OUTPUT_STREAM, index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
inter_tree *I = Indexing::get_tree(session);
tree_inventory *inv = Indexing::get_inventory(session);
TreeLists::sort(inv->figure_nodes, Synoptic::module_order);
TreeLists::sort(inv->sound_nodes, Synoptic::module_order);
TreeLists::sort(inv->file_nodes, Synoptic::module_order);
TreeLists::sort(inv->figure_nodes, MakeSynopticModuleStage::module_order);
TreeLists::sort(inv->sound_nodes, MakeSynopticModuleStage::module_order);
TreeLists::sort(inv->file_nodes, MakeSynopticModuleStage::module_order);
@<Index the figures@>;
@<Index the sounds@>;
@<Index the files@>;

View file

@ -8,7 +8,7 @@ per-action pages linked from it.
=
void GroupedElement::render(OUTPUT_STREAM, index_session *session) {
tree_inventory *inv = Indexing::get_inventory(session);
TreeLists::sort(inv->action_nodes, Synoptic::module_order);
TreeLists::sort(inv->action_nodes, MakeSynopticModuleStage::module_order);
int f = FALSE;
text_stream *current_area = I"___no_area___";
@ -57,7 +57,7 @@ void GroupedElement::detail_pages(index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
inter_tree *I = Indexing::get_tree(session);
tree_inventory *inv = Indexing::get_inventory(session);
TreeLists::sort(inv->action_nodes, Synoptic::module_order);
TreeLists::sort(inv->action_nodes, MakeSynopticModuleStage::module_order);
inter_package *an_pack;
LOOP_OVER_INVENTORY_PACKAGES(an_pack, i, inv->action_nodes) {

View file

@ -10,7 +10,7 @@ void InnardsElement::render(OUTPUT_STREAM, index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
inter_tree *I = Indexing::get_tree(session);
tree_inventory *inv = Indexing::get_inventory(session);
TreeLists::sort(inv->use_option_nodes, Synoptic::module_order);
TreeLists::sort(inv->use_option_nodes, MakeSynopticModuleStage::module_order);
@<Show the virtual machine compiled for@>;
@<Show the use options@>;

View file

@ -8,7 +8,7 @@ To write the Relations element (Rl) in the index.
void RelationsElement::render(OUTPUT_STREAM, index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
tree_inventory *inv = Indexing::get_inventory(session);
TreeLists::sort(inv->relation_nodes, Synoptic::module_order);
TreeLists::sort(inv->relation_nodes, MakeSynopticModuleStage::module_order);
HTML_OPEN("p");
HTML::begin_plain_html_table(OUT);

View file

@ -8,7 +8,7 @@ To write the Rules for Scenes element (RS) in the index.
void RulesForScenesElement::render(OUTPUT_STREAM, index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
tree_inventory *inv = Indexing::get_inventory(session);
TreeLists::sort(inv->rulebook_nodes, Synoptic::module_order);
TreeLists::sort(inv->rulebook_nodes, MakeSynopticModuleStage::module_order);
HTML_OPEN("p");
Localisation::bold(OUT, LD, I"Index.Elements.RS.Machinery");

View file

@ -9,8 +9,8 @@ their contents in logical order.
void StandardsElement::render(OUTPUT_STREAM, index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
tree_inventory *inv = Indexing::get_inventory(session);
TreeLists::sort(inv->rulebook_nodes, Synoptic::module_order);
TreeLists::sort(inv->activity_nodes, Synoptic::module_order);
TreeLists::sort(inv->rulebook_nodes, MakeSynopticModuleStage::module_order);
TreeLists::sort(inv->activity_nodes, MakeSynopticModuleStage::module_order);
@<Index the segment for the main action rulebooks@>;
@<Index the segment for the sequence of play rulebooks@>;

View file

@ -10,14 +10,14 @@ main source text, all the tables in the Standard Rules, and so on.
void TablesElement::render(OUTPUT_STREAM, index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
tree_inventory *inv = Indexing::get_inventory(session);
TreeLists::sort(inv->table_nodes, Synoptic::category_order);
TreeLists::sort(inv->table_nodes, MakeSynopticModuleStage::category_order);
inter_package *current_mod = NULL; int mc = 0, first_ext = TRUE;
inter_ti cat = 1, open_cat = 0;
for (inter_ti with_cat = 1; with_cat <= 3; with_cat++) {
inter_package *table_pack;
LOOP_OVER_INVENTORY_PACKAGES(table_pack, i, inv->table_nodes) {
inter_package *mod = Synoptic::module_containing(table_pack->package_head);
inter_package *mod = MakeSynopticModuleStage::module_containing(table_pack->package_head);
if (mod) {
cat = Metadata::read_optional_numeric(mod, I"^category");
if (cat == with_cat) {

View file

@ -9,9 +9,9 @@ quite different.
void ValuesElement::render(OUTPUT_STREAM, index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
tree_inventory *inv = Indexing::get_inventory(session);
TreeLists::sort(inv->variable_nodes, Synoptic::module_order);
TreeLists::sort(inv->variable_nodes, MakeSynopticModuleStage::module_order);
@<Index the variables@>;
TreeLists::sort(inv->equation_nodes, Synoptic::module_order);
TreeLists::sort(inv->equation_nodes, MakeSynopticModuleStage::module_order);
@<Index the equations@>;
}

View file

@ -23,6 +23,13 @@ typedef struct plug_inspection_state {
int ShortenWiringStage::run(pipeline_step *step) {
inter_tree *I = step->ephemera.repository;
@<Shorten the wiring and report loose plugs@>;
inter_package *connectors = Site::connectors_package(I);
if (connectors) @<Remove the now unnecessary plugs and sockets@>;
return TRUE;
}
@<Shorten the wiring and report loose plugs@> =
plug_inspection_state state;
state.bad_plugs = Dictionaries::new(16, FALSE);
state.bad_plug_names = NEW_LINKED_LIST(text_stream);
@ -39,31 +46,6 @@ int ShortenWiringStage::run(pipeline_step *step) {
DISCARD_TEXT(NS)
return FALSE;
}
inter_package *connectors = Site::connectors_package(I);
if (connectors) {
inter_symbols_table *ST = Inter::Packages::scope(connectors);
for (int i=0; i<ST->size; i++) {
inter_symbol *S = ST->symbol_array[i];
if ((Wiring::is_plug(S)) && (Wiring::has_no_incoming_connections(S)))
Inter::Symbols::remove_from_table(S);
}
for (int i=0; i<ST->size; i++) {
inter_symbol *S = ST->symbol_array[i];
if ((Wiring::is_socket(S)) && (Wiring::has_no_incoming_connections(S)))
Inter::Symbols::remove_from_table(S);
}
int errors = 0;
for (int i=0; i<ST->size; i++) {
inter_symbol *S = ST->symbol_array[i];
if (S) {
LOG("Connector not deleted: %3\n", S);
errors++;
}
}
if (errors > 0) internal_error("plugs and sockets mismanaged");
}
return TRUE;
}
@ Note that it is not necessarily an error to have a loose plug, that is, a plug
which does not connect to any socket. It is only an error if a symbol is trying
@ -95,3 +77,42 @@ void ShortenWiringStage::visitor(inter_tree *I, inter_tree_node *P, void *v_stat
Dictionaries::create(state->bad_plugs, N);
ADD_TO_LINKED_LIST(N, text_stream, state->bad_plug_names);
}
@ At this point there will be plugs with no incoming connections, but which
are each wired to sockets. Removing the plugs first then leaves the sockets
with no incoming connections either, and so the sockets can go too.
The result should be a completely empty |connectors| module.
@<Remove the now unnecessary plugs and sockets@> =
inter_symbols_table *ST = Inter::Packages::scope(connectors);
@<Remove plugs with no incoming connections@>;
@<Remove sockets with no incoming connections@>;
@<Report any remaining symbols in this table as errors@>;
@<Remove plugs with no incoming connections@> =
for (int i=0; i<ST->size; i++) {
inter_symbol *S = ST->symbol_array[i];
if ((Wiring::is_plug(S)) && (Wiring::has_no_incoming_connections(S)))
Inter::Symbols::remove_from_table(S);
}
@<Remove sockets with no incoming connections@> =
for (int i=0; i<ST->size; i++) {
inter_symbol *S = ST->symbol_array[i];
if ((Wiring::is_socket(S)) && (Wiring::has_no_incoming_connections(S)))
Inter::Symbols::remove_from_table(S);
}
@ This should never happen:
@<Report any remaining symbols in this table as errors@> =
int errors = 0;
for (int i=0; i<ST->size; i++) {
inter_symbol *S = ST->symbol_array[i];
if (S) {
LOG("Connector not deleted: %3\n", S);
errors++;
}
}
if (errors > 0) internal_error("plugs and sockets mismanaged");

View file

@ -0,0 +1,543 @@
[KitHierarchy::] The Standard Kits.
The layout and naming conventions for functions and other resources provided
by the standard kits, and which are called or accessed from code generated
by Inter or by the Inform 7 compiler.
@ Suppose you are a tool like //inform7// or //inter// and you are generating
a function, and in that function you want to access the variable |location| --
which is defined in //WorldModelKit// -- or call the function |BlkValueCreate| --
which is in //BasicInformKit//. These have not yet been linked in to the Inter
tree you're trying to build: so how do you describe them?
The answer is that you call |HierarchyLocations::find(I, BLKVALUECREATE_HL)|,
say, and it will return an |inter_name| which is exactly what you need. This is
all done with plugs and sockets, but you don't care about that.
The one thing you do need to do is to ensure that the following initialisation
function has been called: if not, |HierarchyLocations::find| won't find these
resources.
=
void KitHierarchy::establish(inter_tree *I) {
if (I->history_bits & KIT_HIERARCHY_MADE_ITHBIT) return;
I->history_bits |= KIT_HIERARCHY_MADE_ITHBIT;
@<Establish kit-defined resources@>;
}
@ The following, then, is an itemised list of what symbol names in the kits
the //inform7// and //inter// tools need to refer to. (It's not any kind of
comprehensive list of what is there.)
@d KIT_PROVIDED(id, n) HierarchyLocations::ctr(I, id, n, Translation::same(), req);
@<Establish kit-defined resources@> =
location_requirement req = HierarchyLocations::plug();
@<Establish resources offered by BasicInformKit@>;
@<Establish resources offered by WorldModelKit@>;
@<Establish resources offered by CommandParserKit@>;
@<Establish resources offered by either WorldModelKit or BasicInformExtrasKit@>;
@<Establish resources offered by either EnglishLanguageKit@>;
@h Offered by BasicInformKit.
@e ADJUSTPARAGRAPHPOINT_HL from 0
@e ARGUMENTTYPEFAILED_HL
@e AUXF_MAGIC_VALUE_HL
@e AUXF_STATUS_IS_CLOSED_HL
@e BLKVALUECOPY_HL
@e BLKVALUECOPYAZ_HL
@e BLKVALUECREATE_HL
@e BLKVALUECREATEONSTACK_HL
@e BLKVALUEERROR_HL
@e BLKVALUEFREE_HL
@e BLKVALUEFREEONSTACK_HL
@e BLKVALUEWRITE_HL
@e CHECKKINDRETURNED_HL
@e CLEARPARAGRAPHING_HL
@e CONSTANT_PACKED_TEXT_STORAGE_HL
@e CONSTANT_PERISHABLE_TEXT_STORAGE_HL
@e CUBEROOT_HL
@e DB_RULE_HL
@e DEBUG_RULES_HL
@e DEBUGPROPERTY_HL
@e DECIMALNUMBER_HL
@e DIGITTOVALUE_HL
@e DIVIDEPARAGRAPHPOINT_HL
@e DOUBLEHASHSETRELATIONHANDLER_HL
@e EMPTY_RULEBOOK_INAME_HL
@e EMPTY_TABLE_HL
@e EMPTY_TEXT_PACKED_HL
@e EMPTY_TEXT_VALUE_HL
@e EMPTYRELATIONHANDLER_HL
@e EXISTSTABLELOOKUPCORR_HL
@e EXISTSTABLELOOKUPENTRY_HL
@e EXISTSTABLEROWCORR_HL
@e FLOAT_NAN_HL
@e FLOATPARSE_HL
@e FOLLOWRULEBOOK_HL
@e formal_par0_HL
@e formal_par1_HL
@e formal_par2_HL
@e formal_par3_HL
@e formal_par4_HL
@e formal_par5_HL
@e formal_par6_HL
@e formal_par7_HL
@e FORMAL_RV_HL
@e GENERATERANDOMNUMBER_HL
@e GPROPERTY_HL
@e HASHLISTRELATIONHANDLER_HL
@e I7SFRAME_HL
@e INTEGERDIVIDE_HL
@e INTEGERREMAINDER_HL
@e KINDATOMIC_HL
@e LATEST_RULE_RESULT_HL
@e LIST_ITEM_BASE_HL
@e LIST_ITEM_KOV_F_HL
@e LIST_OF_TY_DESC_HL
@e LIST_OF_TY_GETITEM_HL
@e LIST_OF_TY_GETLENGTH_HL
@e LIST_OF_TY_INSERTITEM_HL
@e LIST_OF_TY_SAY_HL
@e LIST_OF_TY_SETLENGTH_HL
@e MSTACK_HL
@e MSTVO_HL
@e MSTVON_HL
@e NAME_HL
@e NOTHING_HL
@e NUMBER_TY_ABS_HL
@e NUMBER_TY_TO_REAL_NUMBER_TY_HL
@e OTOVRELROUTETO_HL
@e PACKED_TEXT_STORAGE_HL
@e PARACONTENT_HL
@e PARAMETER_VALUE_HL
@e PRINTORRUN_HL
@e PRIOR_NAMED_LIST_GENDER_HL
@e PRIOR_NAMED_LIST_HL
@e PRIOR_NAMED_NOUN_HL
@e PROPERTY_LOOP_SIGN_HL
@e PROPERTY_TO_BE_TOTALLED_HL
@e REAL_NUMBER_TY_ABS_HL
@e REAL_NUMBER_TY_APPROXIMATE_HL
@e REAL_NUMBER_TY_COMPARE_HL
@e REAL_NUMBER_TY_CUBE_ROOT_HL
@e REAL_NUMBER_TY_DIVIDE_HL
@e REAL_NUMBER_TY_MINUS_HL
@e REAL_NUMBER_TY_NAN_HL
@e REAL_NUMBER_TY_NEGATE_HL
@e REAL_NUMBER_TY_PLUS_HL
@e REAL_NUMBER_TY_POW_HL
@e REAL_NUMBER_TY_REMAINDER_HL
@e REAL_NUMBER_TY_ROOT_HL
@e REAL_NUMBER_TY_SAY_HL
@e REAL_NUMBER_TY_TIMES_HL
@e REAL_NUMBER_TY_TO_NUMBER_TY_HL
@e RELATION_EMPTYEQUIV_HL
@e RELATION_EMPTYOTOO_HL
@e RELATION_EMPTYVTOV_HL
@e RELATION_RSHOWOTOO_HL
@e RELATION_SHOWEQUIV_HL
@e RELATION_SHOWOTOO_HL
@e RELATION_SHOWVTOV_HL
@e RELATION_TY_EQUIVALENCEADJECTIVE_HL
@e RELATION_TY_NAME_HL
@e RELATION_TY_OTOOADJECTIVE_HL
@e RELATION_TY_OTOVADJECTIVE_HL
@e RELATION_TY_SYMMETRICADJECTIVE_HL
@e RELATION_TY_VTOOADJECTIVE_HL
@e RELATIONTEST_HL
@e RELFOLLOWVECTOR_HL
@e RELS_EMPTY_HL
@e RLANY_CAN_GET_X_HL
@e RLANY_CAN_GET_Y_HL
@e RLANY_GET_X_HL
@e RLIST_ALL_X_HL
@e RLIST_ALL_Y_HL
@e RLNGETF_HL
@e ROUNDOFFVALUE_HL
@e RR_STORAGE_HL
@e RTP_RELKINDVIOLATION_HL
@e RTP_RELMINIMAL_HL
@e RULEBOOKFAILS_HL
@e RULEBOOKPARBREAK_HL
@e RULEBOOKSUCCEEDS_HL
@e RUNTIMEPROBLEM_HL
@e SAY__N_HL
@e SAY__P_HL
@e SAY__PC_HL
@e SIGNEDCOMPARE_HL
@e SQUAREROOT_HL
@e STACKFRAMECREATE_HL
@e SUPPRESS_TEXT_SUBSTITUTION_HL
@e TABLE_NOVALUE_HL
@e TABLELOOKUPCORR_HL
@e TABLELOOKUPENTRY_HL
@e TEXT_TY_COMPARE_HL
@e TEXT_TY_EXPANDIFPERISHABLE_HL
@e TEXT_TY_SAY_HL
@e THEEMPTYTABLE_HL
@e UNICODE_TEMP_HL
@e VTOORELROUTETO_HL
@e VTOVRELROUTETO_HL
@<Establish resources offered by BasicInformKit@> =
KIT_PROVIDED(ADJUSTPARAGRAPHPOINT_HL, I"AdjustParagraphPoint")
KIT_PROVIDED(ARGUMENTTYPEFAILED_HL, I"ArgumentTypeFailed")
KIT_PROVIDED(AUXF_MAGIC_VALUE_HL, I"AUXF_MAGIC_VALUE")
KIT_PROVIDED(AUXF_STATUS_IS_CLOSED_HL, I"AUXF_STATUS_IS_CLOSED")
KIT_PROVIDED(BLKVALUECOPY_HL, I"BlkValueCopy")
KIT_PROVIDED(BLKVALUECOPYAZ_HL, I"BlkValueCopyAZ")
KIT_PROVIDED(BLKVALUECREATE_HL, I"BlkValueCreate")
KIT_PROVIDED(BLKVALUECREATEONSTACK_HL, I"BlkValueCreateOnStack")
KIT_PROVIDED(BLKVALUEERROR_HL, I"BlkValueError")
KIT_PROVIDED(BLKVALUEFREE_HL, I"BlkValueFree")
KIT_PROVIDED(BLKVALUEFREEONSTACK_HL, I"BlkValueFreeOnStack")
KIT_PROVIDED(BLKVALUEWRITE_HL, I"BlkValueWrite")
KIT_PROVIDED(CHECKKINDRETURNED_HL, I"CheckKindReturned")
KIT_PROVIDED(CLEARPARAGRAPHING_HL, I"ClearParagraphing")
KIT_PROVIDED(CONSTANT_PACKED_TEXT_STORAGE_HL, I"CONSTANT_PACKED_TEXT_STORAGE")
KIT_PROVIDED(CONSTANT_PERISHABLE_TEXT_STORAGE_HL, I"CONSTANT_PERISHABLE_TEXT_STORAGE")
KIT_PROVIDED(CUBEROOT_HL, I"CubeRoot")
KIT_PROVIDED(DB_RULE_HL, I"DB_Rule")
KIT_PROVIDED(DEBUG_RULES_HL, I"debug_rules")
KIT_PROVIDED(DEBUGPROPERTY_HL, I"DebugProperty")
KIT_PROVIDED(DECIMALNUMBER_HL, I"DecimalNumber")
KIT_PROVIDED(DIGITTOVALUE_HL, I"DigitToValue")
KIT_PROVIDED(DIVIDEPARAGRAPHPOINT_HL, I"DivideParagraphPoint")
KIT_PROVIDED(DOUBLEHASHSETRELATIONHANDLER_HL, I"DoubleHashSetRelationHandler")
KIT_PROVIDED(EMPTY_RULEBOOK_INAME_HL, I"EMPTY_RULEBOOK")
KIT_PROVIDED(EMPTY_TABLE_HL, I"TheEmptyTable")
KIT_PROVIDED(EMPTY_TEXT_PACKED_HL, I"EMPTY_TEXT_PACKED")
KIT_PROVIDED(EMPTY_TEXT_VALUE_HL, I"EMPTY_TEXT_VALUE")
KIT_PROVIDED(EMPTYRELATIONHANDLER_HL, I"EmptyRelationHandler")
KIT_PROVIDED(EXISTSTABLELOOKUPCORR_HL, I"ExistsTableLookUpCorr")
KIT_PROVIDED(EXISTSTABLELOOKUPENTRY_HL, I"ExistsTableLookUpEntry")
KIT_PROVIDED(EXISTSTABLEROWCORR_HL, I"ExistsTableRowCorr")
KIT_PROVIDED(FLOAT_NAN_HL, I"FLOAT_NAN")
KIT_PROVIDED(FLOATPARSE_HL, I"FloatParse")
KIT_PROVIDED(FOLLOWRULEBOOK_HL, I"FollowRulebook")
KIT_PROVIDED(formal_par0_HL, I"formal_par0")
KIT_PROVIDED(formal_par1_HL, I"formal_par1")
KIT_PROVIDED(formal_par2_HL, I"formal_par2")
KIT_PROVIDED(formal_par3_HL, I"formal_par3")
KIT_PROVIDED(formal_par4_HL, I"formal_par4")
KIT_PROVIDED(formal_par5_HL, I"formal_par5")
KIT_PROVIDED(formal_par6_HL, I"formal_par6")
KIT_PROVIDED(formal_par7_HL, I"formal_par7")
KIT_PROVIDED(FORMAL_RV_HL, I"formal_rv")
KIT_PROVIDED(GENERATERANDOMNUMBER_HL, I"GenerateRandomNumber")
KIT_PROVIDED(GPROPERTY_HL, I"GProperty")
KIT_PROVIDED(HASHLISTRELATIONHANDLER_HL, I"HashListRelationHandler")
KIT_PROVIDED(I7SFRAME_HL, I"I7SFRAME")
KIT_PROVIDED(INTEGERDIVIDE_HL, I"IntegerDivide")
KIT_PROVIDED(INTEGERREMAINDER_HL, I"IntegerRemainder")
KIT_PROVIDED(KINDATOMIC_HL, I"KindAtomic")
KIT_PROVIDED(LATEST_RULE_RESULT_HL, I"latest_rule_result")
KIT_PROVIDED(LIST_ITEM_BASE_HL, I"LIST_ITEM_BASE")
KIT_PROVIDED(LIST_ITEM_KOV_F_HL, I"LIST_ITEM_KOV_F")
KIT_PROVIDED(LIST_OF_TY_DESC_HL, I"LIST_OF_TY_Desc")
KIT_PROVIDED(LIST_OF_TY_GETITEM_HL, I"LIST_OF_TY_GetItem")
KIT_PROVIDED(LIST_OF_TY_GETLENGTH_HL, I"LIST_OF_TY_GetLength")
KIT_PROVIDED(LIST_OF_TY_INSERTITEM_HL, I"LIST_OF_TY_InsertItem")
KIT_PROVIDED(LIST_OF_TY_SAY_HL, I"LIST_OF_TY_Say")
KIT_PROVIDED(LIST_OF_TY_SETLENGTH_HL, I"LIST_OF_TY_SetLength")
KIT_PROVIDED(MSTACK_HL, I"MStack")
KIT_PROVIDED(MSTVO_HL, I"MstVO")
KIT_PROVIDED(MSTVON_HL, I"MstVON")
KIT_PROVIDED(NAME_HL, I"name")
KIT_PROVIDED(NOTHING_HL, I"nothing")
KIT_PROVIDED(NUMBER_TY_ABS_HL, I"NUMBER_TY_Abs")
KIT_PROVIDED(NUMBER_TY_TO_REAL_NUMBER_TY_HL, I"NUMBER_TY_to_REAL_NUMBER_TY")
KIT_PROVIDED(OTOVRELROUTETO_HL, I"OtoVRelRouteTo")
KIT_PROVIDED(PACKED_TEXT_STORAGE_HL, I"PACKED_TEXT_STORAGE")
KIT_PROVIDED(PARACONTENT_HL, I"ParaContent")
KIT_PROVIDED(PARAMETER_VALUE_HL, I"parameter_value")
KIT_PROVIDED(PRINTORRUN_HL, I"PrintOrRun")
KIT_PROVIDED(PRIOR_NAMED_LIST_GENDER_HL, I"prior_named_list_gender")
KIT_PROVIDED(PRIOR_NAMED_LIST_HL, I"prior_named_list")
KIT_PROVIDED(PRIOR_NAMED_NOUN_HL, I"prior_named_noun")
KIT_PROVIDED(PROPERTY_LOOP_SIGN_HL, I"property_loop_sign")
KIT_PROVIDED(PROPERTY_TO_BE_TOTALLED_HL, I"property_to_be_totalled")
KIT_PROVIDED(REAL_NUMBER_TY_ABS_HL, I"REAL_NUMBER_TY_Abs")
KIT_PROVIDED(REAL_NUMBER_TY_APPROXIMATE_HL, I"REAL_NUMBER_TY_Approximate")
KIT_PROVIDED(REAL_NUMBER_TY_COMPARE_HL, I"REAL_NUMBER_TY_Compare")
KIT_PROVIDED(REAL_NUMBER_TY_CUBE_ROOT_HL, I"REAL_NUMBER_TY_Cube_Root")
KIT_PROVIDED(REAL_NUMBER_TY_DIVIDE_HL, I"REAL_NUMBER_TY_Divide")
KIT_PROVIDED(REAL_NUMBER_TY_MINUS_HL, I"REAL_NUMBER_TY_Minus")
KIT_PROVIDED(REAL_NUMBER_TY_NAN_HL, I"REAL_NUMBER_TY_Nan")
KIT_PROVIDED(REAL_NUMBER_TY_NEGATE_HL, I"REAL_NUMBER_TY_Negate")
KIT_PROVIDED(REAL_NUMBER_TY_PLUS_HL, I"REAL_NUMBER_TY_Plus")
KIT_PROVIDED(REAL_NUMBER_TY_POW_HL, I"REAL_NUMBER_TY_Pow")
KIT_PROVIDED(REAL_NUMBER_TY_REMAINDER_HL, I"REAL_NUMBER_TY_Remainder")
KIT_PROVIDED(REAL_NUMBER_TY_ROOT_HL, I"REAL_NUMBER_TY_Root")
KIT_PROVIDED(REAL_NUMBER_TY_SAY_HL, I"REAL_NUMBER_TY_Say")
KIT_PROVIDED(REAL_NUMBER_TY_TIMES_HL, I"REAL_NUMBER_TY_Times")
KIT_PROVIDED(REAL_NUMBER_TY_TO_NUMBER_TY_HL, I"REAL_NUMBER_TY_to_NUMBER_TY")
KIT_PROVIDED(RELATION_EMPTYEQUIV_HL, I"Relation_EmptyEquiv")
KIT_PROVIDED(RELATION_EMPTYOTOO_HL, I"Relation_EmptyOtoO")
KIT_PROVIDED(RELATION_EMPTYVTOV_HL, I"Relation_EmptyVtoV")
KIT_PROVIDED(RELATION_RSHOWOTOO_HL, I"Relation_RShowOtoO")
KIT_PROVIDED(RELATION_SHOWEQUIV_HL, I"Relation_ShowEquiv")
KIT_PROVIDED(RELATION_SHOWOTOO_HL, I"Relation_ShowOtoO")
KIT_PROVIDED(RELATION_SHOWVTOV_HL, I"Relation_ShowVtoV")
KIT_PROVIDED(RELATION_TY_EQUIVALENCEADJECTIVE_HL, I"RELATION_TY_EquivalenceAdjective")
KIT_PROVIDED(RELATION_TY_NAME_HL, I"RELATION_TY_Name")
KIT_PROVIDED(RELATION_TY_OTOOADJECTIVE_HL, I"RELATION_TY_OToOAdjective")
KIT_PROVIDED(RELATION_TY_OTOVADJECTIVE_HL, I"RELATION_TY_OToVAdjective")
KIT_PROVIDED(RELATION_TY_SYMMETRICADJECTIVE_HL, I"RELATION_TY_SymmetricAdjective")
KIT_PROVIDED(RELATION_TY_VTOOADJECTIVE_HL, I"RELATION_TY_VToOAdjective")
KIT_PROVIDED(RELATIONTEST_HL, I"RelationTest")
KIT_PROVIDED(RELFOLLOWVECTOR_HL, I"RelFollowVector")
KIT_PROVIDED(RELS_EMPTY_HL, I"RELS_EMPTY")
KIT_PROVIDED(RLANY_CAN_GET_X_HL, I"RLANY_CAN_GET_X")
KIT_PROVIDED(RLANY_CAN_GET_Y_HL, I"RLANY_CAN_GET_Y")
KIT_PROVIDED(RLANY_GET_X_HL, I"RLANY_GET_X")
KIT_PROVIDED(RLIST_ALL_X_HL, I"RLIST_ALL_X")
KIT_PROVIDED(RLIST_ALL_Y_HL, I"RLIST_ALL_Y")
KIT_PROVIDED(RLNGETF_HL, I"RlnGetF")
KIT_PROVIDED(ROUNDOFFVALUE_HL, I"RoundOffValue")
KIT_PROVIDED(RR_STORAGE_HL, I"RR_STORAGE")
KIT_PROVIDED(RTP_RELKINDVIOLATION_HL, I"RTP_RELKINDVIOLATION")
KIT_PROVIDED(RTP_RELMINIMAL_HL, I"RTP_RELMINIMAL")
KIT_PROVIDED(RULEBOOKFAILS_HL, I"RulebookFails")
KIT_PROVIDED(RULEBOOKPARBREAK_HL, I"RulebookParBreak")
KIT_PROVIDED(RULEBOOKSUCCEEDS_HL, I"RulebookSucceeds")
KIT_PROVIDED(RUNTIMEPROBLEM_HL, I"RunTimeProblem")
KIT_PROVIDED(SAY__N_HL, I"say__n")
KIT_PROVIDED(SAY__P_HL, I"say__p")
KIT_PROVIDED(SAY__PC_HL, I"say__pc")
KIT_PROVIDED(SIGNEDCOMPARE_HL, I"SignedCompare")
KIT_PROVIDED(SQUAREROOT_HL, I"SquareRoot")
KIT_PROVIDED(STACKFRAMECREATE_HL, I"StackFrameCreate")
KIT_PROVIDED(SUPPRESS_TEXT_SUBSTITUTION_HL, I"suppress_text_substitution")
KIT_PROVIDED(TABLE_NOVALUE_HL, I"TABLE_NOVALUE")
KIT_PROVIDED(TABLELOOKUPCORR_HL, I"TableLookUpCorr")
KIT_PROVIDED(TABLELOOKUPENTRY_HL, I"TableLookUpEntry")
KIT_PROVIDED(TEXT_TY_COMPARE_HL, I"TEXT_TY_Compare")
KIT_PROVIDED(TEXT_TY_EXPANDIFPERISHABLE_HL, I"TEXT_TY_ExpandIfPerishable")
KIT_PROVIDED(TEXT_TY_SAY_HL, I"TEXT_TY_Say")
KIT_PROVIDED(THEEMPTYTABLE_HL, I"TheEmptyTable")
KIT_PROVIDED(UNICODE_TEMP_HL, I"unicode_temp")
KIT_PROVIDED(VTOORELROUTETO_HL, I"VtoORelRouteTo")
KIT_PROVIDED(VTOVRELROUTETO_HL, I"VtoVRelRouteTo")
@h Offered by CommandParserKit.
@e ARTICLEDESCRIPTORS_HL
@e ETYPE_HL
@e NEXTBEST_ETYPE_HL
@e NEXTWORDSTOPPED_HL
@e NOTINCONTEXTPE_HL
@e PARSETOKENSTOPPED_HL
@e TRYGIVENOBJECT_HL
@e WORDADDRESS_HL
@e WORDINPROPERTY_HL
@e WORDLENGTH_HL
@<Establish resources offered by CommandParserKit@> =
KIT_PROVIDED(ARTICLEDESCRIPTORS_HL, I"ArticleDescriptors")
KIT_PROVIDED(ETYPE_HL, I"etype")
KIT_PROVIDED(NEXTBEST_ETYPE_HL, I"nextbest_etype")
KIT_PROVIDED(NEXTWORDSTOPPED_HL, I"NextWordStopped")
KIT_PROVIDED(NOTINCONTEXTPE_HL, I"NOTINCONTEXT_PE")
KIT_PROVIDED(PARSETOKENSTOPPED_HL, I"ParseTokenStopped")
KIT_PROVIDED(TRYGIVENOBJECT_HL, I"TryGivenObject")
KIT_PROVIDED(WORDADDRESS_HL, I"WordAddress")
KIT_PROVIDED(WORDINPROPERTY_HL, I"WordInProperty")
KIT_PROVIDED(WORDLENGTH_HL, I"WordLength")
@h Offered by WorldModelKit.
@e ACT_REQUESTER_HL
@e ACTION_HL
@e ACTIONCURRENTLYHAPPENINGFLAG_HL
@e ACTOR_HL
@e ACTOR_LOCATION_HL
@e ALLOWINSHOWME_HL
@e ANIMATE_HL
@e C_STYLE_HL
@e COMPONENT_CHILD_HL
@e COMPONENT_PARENT_HL
@e COMPONENT_SIBLING_HL
@e CONSULT_FROM_HL
@e CONSULT_WORDS_HL
@e CONTAINER_HL
@e DA_NAME_HL
@e DEADFLAG_HL
@e DEBUG_SCENES_HL
@e DETECTPLURALWORD_HL
@e DURINGSCENEMATCHING_HL
@e ELEMENTARY_TT_HL
@e ENGLISH_BIT_HL
@e FOUND_EVERYWHERE_HL
@e GENERICVERBSUB_HL
@e GETGNAOFOBJECT_HL
@e GPR_FAIL_HL
@e GPR_NUMBER_HL
@e GPR_PREPOSITION_HL
@e GPR_TT_HL
@e INDENT_BIT_HL
@e INP1_HL
@e INP2_HL
@e INVENTORY_STAGE_HL
@e KEEP_SILENT_HL
@e LOCATION_HL
@e LOCATIONOF_HL
@e LOOPOVERSCOPE_HL
@e LOS_RV_HL
@e NEWLINE_BIT_HL
@e NOARTICLE_BIT_HL
@e NOUN_HL
@e NUMBER_TY_TO_TIME_TY_HL
@e PARSED_NUMBER_HL
@e PARSER_ACTION_HL
@e PARSER_ONE_HL
@e PARSER_TRACE_HL
@e PARSER_TWO_HL
@e PARSERERROR_HL
@e PAST_CHRONOLOGICAL_RECORD_HL
@e PLACEINSCOPE_HL
@e PLAYER_HL
@e PLURALFOUND_HL
@e PRESENT_CHRONOLOGICAL_RECORD_HL
@e REAL_LOCATION_HL
@e REASON_THE_ACTION_FAILED_HL
@e RESPONSEVIAACTIVITY_HL
@e ROUTINEFILTER_TT_HL
@e SCENE_ENDED_HL
@e SCENE_ENDINGS_HL
@e SCENE_LATEST_ENDING_HL
@e SCENE_STARTED_HL
@e SCENE_STATUS_HL
@e SCOPE_STAGE_HL
@e SCOPE_TT_HL
@e SECOND_HL
@e SHORT_NAME_HL
@e SPECIAL_WORD_HL
@e STORED_ACTION_TY_CURRENT_HL
@e STORED_ACTION_TY_TRY_HL
@e STORY_TENSE_HL
@e SUPPORTER_HL
@e SUPPRESS_SCOPE_LOOPS_HL
@e TESTACTIONBITMAP_HL
@e TESTACTIVITY_HL
@e TESTREGIONALCONTAINMENT_HL
@e TESTSCOPE_HL
@e TESTSTART_HL
@e THE_TIME_HL
@e THEDARK_HL
@e THESAME_HL
@e TIMESACTIONHASBEENHAPPENING_HL
@e TIMESACTIONHASHAPPENED_HL
@e TRYACTION_HL
@e TURNSACTIONHASBEENHAPPENING_HL
@e UNDERSTAND_AS_MISTAKE_NUMBER_HL
@e WHEN_SCENE_BEGINS_HL
@e WHEN_SCENE_ENDS_HL
@e WN_HL
@<Establish resources offered by WorldModelKit@> =
KIT_PROVIDED(ACT_REQUESTER_HL, I"act_requester")
KIT_PROVIDED(ACTION_HL, I"action")
KIT_PROVIDED(ACTIONCURRENTLYHAPPENINGFLAG_HL, I"ActionCurrentlyHappeningFlag")
KIT_PROVIDED(ACTOR_HL, I"actor")
KIT_PROVIDED(ACTOR_LOCATION_HL, I"actor_location")
KIT_PROVIDED(ALLOWINSHOWME_HL, I"AllowInShowme")
KIT_PROVIDED(ANIMATE_HL, I"animate")
KIT_PROVIDED(C_STYLE_HL, I"c_style")
KIT_PROVIDED(COMPONENT_CHILD_HL, I"component_child")
KIT_PROVIDED(COMPONENT_PARENT_HL, I"component_parent")
KIT_PROVIDED(COMPONENT_SIBLING_HL, I"component_sibling")
KIT_PROVIDED(CONSULT_FROM_HL, I"consult_from")
KIT_PROVIDED(CONSULT_WORDS_HL, I"consult_words")
KIT_PROVIDED(CONTAINER_HL, I"container")
KIT_PROVIDED(DA_NAME_HL, I"DA_Name")
KIT_PROVIDED(DEADFLAG_HL, I"deadflag")
KIT_PROVIDED(DEBUG_SCENES_HL, I"debug_scenes")
KIT_PROVIDED(DETECTPLURALWORD_HL, I"DetectPluralWord")
KIT_PROVIDED(DURINGSCENEMATCHING_HL, I"DuringSceneMatching")
KIT_PROVIDED(ELEMENTARY_TT_HL, I"ELEMENTARY_TT")
KIT_PROVIDED(ENGLISH_BIT_HL, I"ENGLISH_BIT")
KIT_PROVIDED(FOUND_EVERYWHERE_HL, I"FoundEverywhere")
KIT_PROVIDED(GENERICVERBSUB_HL, I"GenericVerbSub")
KIT_PROVIDED(GETGNAOFOBJECT_HL, I"GetGNAOfObject")
KIT_PROVIDED(GPR_FAIL_HL, I"GPR_FAIL")
KIT_PROVIDED(GPR_NUMBER_HL, I"GPR_NUMBER")
KIT_PROVIDED(GPR_PREPOSITION_HL, I"GPR_PREPOSITION")
KIT_PROVIDED(GPR_TT_HL, I"GPR_TT")
KIT_PROVIDED(INDENT_BIT_HL, I"INDENT_BIT")
KIT_PROVIDED(INP1_HL, I"inp1")
KIT_PROVIDED(INP2_HL, I"inp2")
KIT_PROVIDED(INVENTORY_STAGE_HL, I"inventory_stage")
KIT_PROVIDED(KEEP_SILENT_HL, I"keep_silent")
KIT_PROVIDED(LOCATION_HL, I"location")
KIT_PROVIDED(LOCATIONOF_HL, I"LocationOf")
KIT_PROVIDED(LOOPOVERSCOPE_HL, I"LoopOverScope")
KIT_PROVIDED(LOS_RV_HL, I"los_rv")
KIT_PROVIDED(NEWLINE_BIT_HL, I"NEWLINE_BIT")
KIT_PROVIDED(NOARTICLE_BIT_HL, I"NOARTICLE_BIT")
KIT_PROVIDED(NOUN_HL, I"noun")
KIT_PROVIDED(NUMBER_TY_TO_TIME_TY_HL, I"NUMBER_TY_to_TIME_TY")
KIT_PROVIDED(PARSED_NUMBER_HL, I"parsed_number")
KIT_PROVIDED(PARSER_ACTION_HL, I"parser_action")
KIT_PROVIDED(PARSER_ONE_HL, I"parser_one")
KIT_PROVIDED(PARSER_TRACE_HL, I"parser_trace")
KIT_PROVIDED(PARSER_TWO_HL, I"parser_two")
KIT_PROVIDED(PARSERERROR_HL, I"ParserError")
KIT_PROVIDED(PAST_CHRONOLOGICAL_RECORD_HL, I"past_chronological_record")
KIT_PROVIDED(PLACEINSCOPE_HL, I"PlaceInScope")
KIT_PROVIDED(PLAYER_HL, I"player")
KIT_PROVIDED(PLURALFOUND_HL, I"##PluralFound")
KIT_PROVIDED(PRESENT_CHRONOLOGICAL_RECORD_HL, I"present_chronological_record")
KIT_PROVIDED(REAL_LOCATION_HL, I"real_location")
KIT_PROVIDED(REASON_THE_ACTION_FAILED_HL, I"reason_the_action_failed")
KIT_PROVIDED(RESPONSEVIAACTIVITY_HL, I"ResponseViaActivity")
KIT_PROVIDED(ROUTINEFILTER_TT_HL, I"ROUTINE_FILTER_TT")
KIT_PROVIDED(SCENE_ENDED_HL, I"scene_ended")
KIT_PROVIDED(SCENE_ENDINGS_HL, I"scene_endings")
KIT_PROVIDED(SCENE_LATEST_ENDING_HL, I"scene_latest_ending")
KIT_PROVIDED(SCENE_STARTED_HL, I"scene_started")
KIT_PROVIDED(SCENE_STATUS_HL, I"scene_status")
KIT_PROVIDED(SCOPE_STAGE_HL, I"scope_stage")
KIT_PROVIDED(SCOPE_TT_HL, I"SCOPE_TT")
KIT_PROVIDED(SECOND_HL, I"second")
KIT_PROVIDED(SHORT_NAME_HL, I"short_name")
KIT_PROVIDED(SPECIAL_WORD_HL, I"special_word")
KIT_PROVIDED(STORED_ACTION_TY_CURRENT_HL, I"STORED_ACTION_TY_Current")
KIT_PROVIDED(STORED_ACTION_TY_TRY_HL, I"STORED_ACTION_TY_Try")
KIT_PROVIDED(STORY_TENSE_HL, I"story_tense")
KIT_PROVIDED(SUPPORTER_HL, I"supporter")
KIT_PROVIDED(SUPPRESS_SCOPE_LOOPS_HL, I"suppress_scope_loops")
KIT_PROVIDED(TESTACTIONBITMAP_HL, I"TestActionBitmap")
KIT_PROVIDED(TESTACTIVITY_HL, I"TestActivity")
KIT_PROVIDED(TESTREGIONALCONTAINMENT_HL, I"TestRegionalContainment")
KIT_PROVIDED(TESTSCOPE_HL, I"TestScope")
KIT_PROVIDED(TESTSTART_HL, I"TestStart")
KIT_PROVIDED(THE_TIME_HL, I"the_time")
KIT_PROVIDED(THEDARK_HL, I"thedark")
KIT_PROVIDED(THESAME_HL, I"##TheSame")
KIT_PROVIDED(TIMESACTIONHASBEENHAPPENING_HL, I"TimesActionHasBeenHappening")
KIT_PROVIDED(TIMESACTIONHASHAPPENED_HL, I"TimesActionHasHappened")
KIT_PROVIDED(TRYACTION_HL, I"TryAction")
KIT_PROVIDED(TURNSACTIONHASBEENHAPPENING_HL, I"TurnsActionHasBeenHappening")
KIT_PROVIDED(UNDERSTAND_AS_MISTAKE_NUMBER_HL, I"understand_as_mistake_number")
KIT_PROVIDED(WHEN_SCENE_BEGINS_HL, I"WHEN_SCENE_BEGINS_RB")
KIT_PROVIDED(WHEN_SCENE_ENDS_HL, I"WHEN_SCENE_ENDS_RB")
KIT_PROVIDED(WN_HL, I"wn")
@
@e PNTOVP_HL
@e PRINTSHORTNAME_HL
@<Establish resources offered by either WorldModelKit or BasicInformExtrasKit@> =
KIT_PROVIDED(PNTOVP_HL, I"PNToVP")
KIT_PROVIDED(PRINTSHORTNAME_HL, I"PrintShortName")
@
@e THEN1__WD_HL
@<Establish resources offered by either EnglishLanguageKit@> =
KIT_PROVIDED(THEN1__WD_HL, I"THEN1__WD")

View file

@ -18,7 +18,7 @@ of packages of type |_action|.
=
void SynopticActions::compile(inter_tree *I, pipeline_step *step, tree_inventory *inv) {
if (TreeLists::len(inv->action_nodes) > 0) {
TreeLists::sort(inv->action_nodes, Synoptic::module_order);
TreeLists::sort(inv->action_nodes, MakeSynopticModuleStage::module_order);
for (int i=0; i<TreeLists::len(inv->action_nodes); i++) {
inter_package *pack = Inter::Package::defined_by_frame(inv->action_nodes->list[i].node);
inter_tree_node *D = Synoptic::get_definition(pack, I"action_id");

View file

@ -11,7 +11,7 @@ of packages of type |_activity|.
=
void SynopticActivities::compile(inter_tree *I, pipeline_step *step, tree_inventory *inv) {
if (TreeLists::len(inv->activity_nodes) > 0) {
TreeLists::sort(inv->activity_nodes, Synoptic::module_order);
TreeLists::sort(inv->activity_nodes, MakeSynopticModuleStage::module_order);
for (int i=0; i<TreeLists::len(inv->activity_nodes); i++) {
inter_package *pack = Inter::Package::defined_by_frame(inv->activity_nodes->list[i].node);
inter_tree_node *D = Synoptic::get_definition(pack, I"activity_id");

View file

@ -11,7 +11,7 @@ over the Inter tree. Each needs its own set of unique IDs.
=
void SynopticChronology::compile(inter_tree *I, pipeline_step *step, tree_inventory *inv) {
if (TreeLists::len(inv->action_history_condition_nodes) > 0) {
TreeLists::sort(inv->action_history_condition_nodes, Synoptic::module_order);
TreeLists::sort(inv->action_history_condition_nodes, MakeSynopticModuleStage::module_order);
for (int i=0; i<TreeLists::len(inv->action_history_condition_nodes); i++) {
inter_package *pack = Inter::Package::defined_by_frame(inv->action_history_condition_nodes->list[i].node);
inter_tree_node *D = Synoptic::get_definition(pack, I"ahc_id");
@ -19,7 +19,7 @@ void SynopticChronology::compile(inter_tree *I, pipeline_step *step, tree_invent
}
}
if (TreeLists::len(inv->past_tense_condition_nodes) > 0) {
TreeLists::sort(inv->past_tense_condition_nodes, Synoptic::module_order);
TreeLists::sort(inv->past_tense_condition_nodes, MakeSynopticModuleStage::module_order);
for (int i=0; i<TreeLists::len(inv->past_tense_condition_nodes); i++) {
inter_package *pack = Inter::Package::defined_by_frame(inv->past_tense_condition_nodes->list[i].node);
inter_tree_node *D = Synoptic::get_definition(pack, I"ptc_id");

View file

@ -5,27 +5,31 @@ To renumber the extensions and construct suitable functions and arrays.
@ Before this runs, there are one or more modules in the Inter tree which
contain the material compiled from extensions. We must allocate each one a unique ID.
As this is called, //Synoptic Utilities// has already formed a list |extension_nodes|
of packages of type |_module| which derive from extensions.
Our inventory |inv| already contains a list |inv->extension_nodes| of packages
with the type |_module| which derive from extensions.
=
void SynopticExtensions::compile(inter_tree *I, pipeline_step *step, tree_inventory *inv) {
if (TreeLists::len(inv->extension_nodes) > 0) {
TreeLists::sort(inv->extension_nodes, Synoptic::category_order);
for (int i=0; i<TreeLists::len(inv->extension_nodes); i++) {
inter_package *pack = Inter::Package::defined_by_frame(inv->extension_nodes->list[i].node);
inter_tree_node *D = Synoptic::get_definition(pack, I"extension_id");
D->W.data[DATA_CONST_IFLD+1] = (inter_ti) (i + 1);
}
}
if (TreeLists::len(inv->extension_nodes) > 0) @<Assign unique extension ID numbers@>;
@<Define SHOWEXTENSIONVERSIONS function@>;
@<Define SHOWFULLEXTENSIONVERSIONS function@>;
@<Define SHOWONEEXTENSION function@>;
}
@ Extensions have an obvious effect at runtime -- they include extra material.
But there are also just three functions which deal with extensions as if
they were values; all of them simply print credits out.
@ Each extension module contains a numeric constant with the symbol name |extension_id|.
We want to ensure that these ID numbers are contiguous from 1 and never duplicated,
so we change the values of these constants accordingly.
@<Assign unique extension ID numbers@> =
TreeLists::sort(inv->extension_nodes, MakeSynopticModuleStage::category_order);
for (int i=0; i<TreeLists::len(inv->extension_nodes); i++) {
inter_package *pack =
Inter::Package::defined_by_frame(inv->extension_nodes->list[i].node);
inter_tree_node *D = Synoptic::get_definition(pack, I"extension_id");
D->W.data[DATA_CONST_IFLD+1] = (inter_ti) (i + 1);
}
@ Now we compile three functions, each of which simply prints credits out.
This is more important than it may sound because many extensions are published
under a Creative Commons attribution license which requires users to give credit
@ -45,7 +49,8 @@ would violate the CC license.
inter_name *iname = HierarchyLocations::find(I, SHOWEXTENSIONVERSIONS_HL);
Synoptic::begin_function(I, iname);
for (int i=0; i<TreeLists::len(inv->extension_nodes); i++) {
inter_package *pack = Inter::Package::defined_by_frame(inv->extension_nodes->list[i].node);
inter_package *pack =
Inter::Package::defined_by_frame(inv->extension_nodes->list[i].node);
inter_ti modesty = Metadata::read_numeric(pack, I"^modesty");
if (modesty == 0) {
text_stream *credit = Str::duplicate(Metadata::read_textual(pack, I"^credit"));
@ -75,7 +80,8 @@ would violate the CC license.
Synoptic::end_function(I, step, iname);
@ This prints the name of a single extension, identified by a value which
is its extension ID.
is its extension ID. Speed of execution here is quite unimportant, so it's
just a run of |if (id == 1) ...|, then |if (id == 2) ...|, and so on.
@<Define SHOWONEEXTENSION function@> =
inter_name *iname = HierarchyLocations::find(I, SHOWONEEXTENSION_HL);

View file

@ -12,7 +12,7 @@ This section is a placeholder for now.
=
void SynopticInstances::compile(inter_tree *I, pipeline_step *step, tree_inventory *inv) {
if (TreeLists::len(inv->instance_nodes) > 0) {
TreeLists::sort(inv->instance_nodes, Synoptic::module_order);
TreeLists::sort(inv->instance_nodes, MakeSynopticModuleStage::module_order);
}
@<Define SHOWMEINSTANCEDETAILS function@>
}

View file

@ -11,7 +11,7 @@ of packages of type |_kind|, and similarly for |derived_kind_nodes|.
=
void SynopticKinds::compile(inter_tree *I, pipeline_step *step, tree_inventory *inv) {
if (TreeLists::len(inv->kind_nodes) > 0) {
TreeLists::sort(inv->kind_nodes, Synoptic::module_order);
TreeLists::sort(inv->kind_nodes, MakeSynopticModuleStage::module_order);
for (int i=0; i<TreeLists::len(inv->kind_nodes); i++) {
inter_package *pack = Inter::Package::defined_by_frame(inv->kind_nodes->list[i].node);
inter_symbol *id_s = Metadata::read_optional_symbol(pack, I"^strong_id");
@ -19,7 +19,7 @@ void SynopticKinds::compile(inter_tree *I, pipeline_step *step, tree_inventory *
}
}
if (TreeLists::len(inv->derived_kind_nodes) > 0) {
TreeLists::sort(inv->derived_kind_nodes, Synoptic::module_order);
TreeLists::sort(inv->derived_kind_nodes, MakeSynopticModuleStage::module_order);
}
@<Define BASE_KIND_HWM@>;
@<Define DEFAULTVALUEFINDER function@>;

View file

@ -57,7 +57,7 @@ this will be executed on the first |"apple"|, on |"banana"| and the first
WRITE_TO(A, "alphabetised_text_%d", j++);
inter_symbol *alpha_s = Synoptic::new_symbol(texts_pack, A);
DISCARD_TEXT(A)
Synoptic::def_textual_constant(I, step, alpha_s, S, &IBM);
Synoptic::textual_constant(I, step, alpha_s, S, &IBM);
latest_s = alpha_s;
latest_text = S;

View file

@ -2,7 +2,12 @@
Creating a top-level module of synoptic resources.
@
@ At this point the tree contains one module for each compilation unit included
in the link: which is a fancy way of saying, it contains one module for the
main source text, ohe for each extension, and one each for each kit included.
We now add one final module, |/main/synoptic|, which contains resources compiled
together from all of the others.
=
void MakeSynopticModuleStage::create_pipeline_stage(void) {
@ -12,7 +17,10 @@ void MakeSynopticModuleStage::create_pipeline_stage(void) {
int MakeSynopticModuleStage::run(pipeline_step *step) {
inter_tree *I = step->ephemera.repository;
tree_inventory *inv = Synoptic::inv(I);
tree_inventory *inv = MakeSynopticModuleStage::take_inventory_cached(I);
SynopticHierarchy::establish(I); /* in case this has not already been done */
KitHierarchy::establish(I); /* likewise */
SynopticText::compile(I, step, inv);
SynopticActions::compile(I, step, inv);
@ -35,3 +43,220 @@ int MakeSynopticModuleStage::run(pipeline_step *step) {
Wiring::connect_plugs_to_sockets(I);
return TRUE;
}
@ The inventory for an Inter tree is an itemisation of packages with particular
types: for example, we can ask it to hold a list of |_activity| packages.
=
typedef struct tree_inventory {
struct inter_tree *of_tree;
struct linked_list *items; /* of |tree_inventory_item| */
inter_tree_location_list *text_nodes;
inter_tree_location_list *module_nodes;
inter_tree_location_list *response_nodes;
inter_tree_location_list *rulebook_nodes;
inter_tree_location_list *rule_nodes;
inter_tree_location_list *activity_nodes;
inter_tree_location_list *action_nodes;
inter_tree_location_list *property_nodes;
inter_tree_location_list *extension_nodes;
inter_tree_location_list *relation_nodes;
inter_tree_location_list *table_nodes;
inter_tree_location_list *table_column_nodes;
inter_tree_location_list *table_column_usage_nodes;
inter_tree_location_list *action_history_condition_nodes;
inter_tree_location_list *past_tense_condition_nodes;
inter_tree_location_list *instance_nodes;
inter_tree_location_list *scene_nodes;
inter_tree_location_list *file_nodes;
inter_tree_location_list *figure_nodes;
inter_tree_location_list *sound_nodes;
inter_tree_location_list *use_option_nodes;
inter_tree_location_list *verb_nodes;
inter_tree_location_list *modal_verb_nodes;
inter_tree_location_list *verb_form_nodes;
inter_tree_location_list *preposition_nodes;
inter_tree_location_list *adjective_nodes;
inter_tree_location_list *derived_kind_nodes;
inter_tree_location_list *kind_nodes;
inter_tree_location_list *test_nodes;
inter_tree_location_list *named_action_pattern_nodes;
inter_tree_location_list *variable_nodes;
inter_tree_location_list *equation_nodes;
inter_tree_location_list *heading_nodes;
inter_tree_location_list *multiplication_rule_nodes;
CLASS_DEFINITION
} tree_inventory;
typedef struct tree_inventory_item {
struct inter_tree_location_list *node_list;
struct inter_symbol *required_ptype;
CLASS_DEFINITION
} tree_inventory_item;
@ Creating one of these is quick enough: when created, it's just a list of
requirements.
=
tree_inventory *MakeSynopticModuleStage::new_inventory(inter_tree *I) {
tree_inventory *inv = CREATE(tree_inventory);
inv->of_tree = I;
inv->items = NEW_LINKED_LIST(tree_inventory_item);
inv->text_nodes = TreeLists::new();
inv->response_nodes = MakeSynopticModuleStage::needs(inv, I"_response");
inv->rulebook_nodes = MakeSynopticModuleStage::needs(inv, I"_rulebook");
inv->rule_nodes = MakeSynopticModuleStage::needs(inv, I"_rule");
inv->activity_nodes = MakeSynopticModuleStage::needs(inv, I"_activity");
inv->action_nodes = MakeSynopticModuleStage::needs(inv, I"_action");
inv->property_nodes = MakeSynopticModuleStage::needs(inv, I"_property");
inv->relation_nodes = MakeSynopticModuleStage::needs(inv, I"_relation");
inv->table_nodes = MakeSynopticModuleStage::needs(inv, I"_table");
inv->table_column_nodes = MakeSynopticModuleStage::needs(inv, I"_table_column");
inv->table_column_usage_nodes = MakeSynopticModuleStage::needs(inv, I"_table_column_usage");
inv->action_history_condition_nodes = MakeSynopticModuleStage::needs(inv, I"_action_history_condition");
inv->past_tense_condition_nodes = MakeSynopticModuleStage::needs(inv, I"_past_condition");
inv->use_option_nodes = MakeSynopticModuleStage::needs(inv, I"_use_option");
inv->verb_nodes = MakeSynopticModuleStage::needs(inv, I"_verb");
inv->modal_verb_nodes = MakeSynopticModuleStage::needs(inv, I"_modal_verb");
inv->verb_form_nodes = MakeSynopticModuleStage::needs(inv, I"_verb_form");
inv->preposition_nodes = MakeSynopticModuleStage::needs(inv, I"_preposition");
inv->adjective_nodes = MakeSynopticModuleStage::needs(inv, I"_adjective");
inv->derived_kind_nodes = MakeSynopticModuleStage::needs(inv, I"_derived_kind");
inv->kind_nodes = MakeSynopticModuleStage::needs(inv, I"_kind");
inv->module_nodes = MakeSynopticModuleStage::needs(inv, I"_module");
inv->instance_nodes = MakeSynopticModuleStage::needs(inv, I"_instance");
inv->test_nodes = MakeSynopticModuleStage::needs(inv, I"_test");
inv->named_action_pattern_nodes = MakeSynopticModuleStage::needs(inv, I"_named_action_pattern");
inv->variable_nodes = MakeSynopticModuleStage::needs(inv, I"_variable");
inv->equation_nodes = MakeSynopticModuleStage::needs(inv, I"_equation");
inv->heading_nodes = MakeSynopticModuleStage::needs(inv, I"_heading");
inv->multiplication_rule_nodes = MakeSynopticModuleStage::needs(inv, I"_multiplication_rule");
inv->extension_nodes = TreeLists::new();
inv->scene_nodes = TreeLists::new();
inv->file_nodes = TreeLists::new();
inv->figure_nodes = TreeLists::new();
inv->sound_nodes = TreeLists::new();
return inv;
}
inter_tree_location_list *MakeSynopticModuleStage::needs(tree_inventory *inv, text_stream *pt) {
tree_inventory_item *item = CREATE(tree_inventory_item);
item->node_list = TreeLists::new();
item->required_ptype = PackageTypes::get(inv->of_tree, pt);
ADD_TO_LINKED_LIST(item, tree_inventory_item, inv->items);
return item->node_list;
}
@ The expensive part comes later, when we traverse the Inter tree and add
interesting packages to one of the lists.
=
tree_inventory *MakeSynopticModuleStage::take_inventory(inter_tree *I) {
tree_inventory *inv = MakeSynopticModuleStage::new_inventory(I);
InterTree::traverse(I, MakeSynopticModuleStage::visitor, inv, NULL, 0);
for (int i=0; i<TreeLists::len(inv->module_nodes); i++) {
inter_package *pack = Inter::Package::defined_by_frame(inv->module_nodes->list[i].node);
if (InterSymbolsTables::symbol_from_name(Inter::Packages::scope(pack), I"extension_id"))
TreeLists::add(inv->extension_nodes, inv->module_nodes->list[i].node);
}
for (int i=0; i<TreeLists::len(inv->instance_nodes); i++) {
inter_package *pack = Inter::Package::defined_by_frame(inv->instance_nodes->list[i].node);
if (Metadata::exists(pack, I"^is_scene"))
TreeLists::add(inv->scene_nodes, inv->instance_nodes->list[i].node);
if (Metadata::exists(pack, I"^is_file"))
TreeLists::add(inv->file_nodes, inv->instance_nodes->list[i].node);
if (Metadata::exists(pack, I"^is_figure"))
TreeLists::add(inv->figure_nodes, inv->instance_nodes->list[i].node);
if (Metadata::exists(pack, I"^is_sound"))
TreeLists::add(inv->sound_nodes, inv->instance_nodes->list[i].node);
}
return inv;
}
void MakeSynopticModuleStage::visitor(inter_tree *I, inter_tree_node *P, void *state) {
tree_inventory *inv = (tree_inventory *) state;
if (P->W.data[ID_IFLD] == CONSTANT_IST) {
inter_symbol *con_s =
InterSymbolsTables::symbol_from_frame_data(P, DEFN_CONST_IFLD);
if (Inter::Symbols::read_annotation(con_s, TEXT_LITERAL_IANN) == 1)
TreeLists::add(inv->text_nodes, P);
}
if (P->W.data[ID_IFLD] == PACKAGE_IST) {
inter_package *pack = Inter::Package::defined_by_frame(P);
inter_symbol *ptype = Inter::Packages::type(pack);
if (ptype == PackageTypes::get(I, I"_kind")) {
LOG("Inside $6:\n", pack);
inter_symbols_table *ST = Inter::Packages::scope(pack);
for (int i=0; i<ST->size; i++) {
inter_symbol *S = ST->symbol_array[i];
if ((S) && (S->wiring.no_connections > 0))
LOG("I observe $3 (%d)\n", S, S->wiring.no_connections);
}
}
tree_inventory_item *item;
LOOP_OVER_LINKED_LIST(item, tree_inventory_item, inv->items)
if (ptype == item->required_ptype) {
TreeLists::add(item->node_list, P);
break;
}
}
}
@ Calling //MakeSynopticModuleStage::take_inventory// is potentially slow, so
we also offer a version which caches the results:
=
tree_inventory *cached_inventory = NULL;
inter_tree *cache_is_for = NULL;
tree_inventory *MakeSynopticModuleStage::take_inventory_cached(inter_tree *I) {
if (cache_is_for == I) return cached_inventory;
cache_is_for = I;
cached_inventory = MakeSynopticModuleStage::take_inventory(I);
return cached_inventory;
}
@ The following are used for sorting.
=
int MakeSynopticModuleStage::module_order(const void *ent1, const void *ent2) {
itl_entry *E1 = (itl_entry *) ent1;
itl_entry *E2 = (itl_entry *) ent2;
if (E1 == E2) return 0;
inter_tree_node *P1 = E1->node;
inter_tree_node *P2 = E2->node;
inter_package *mod1 = MakeSynopticModuleStage::module_containing(P1);
inter_package *mod2 = MakeSynopticModuleStage::module_containing(P2);
inter_ti C1 = Metadata::read_optional_numeric(mod1, I"^category");
inter_ti C2 = Metadata::read_optional_numeric(mod2, I"^category");
int d = ((int) C2) - ((int) C1); /* larger values sort earlier */
if (d != 0) return d;
return E1->sort_key - E2->sort_key; /* smaller values sort earlier */
}
int MakeSynopticModuleStage::category_order(const void *ent1, const void *ent2) {
itl_entry *E1 = (itl_entry *) ent1;
itl_entry *E2 = (itl_entry *) ent2;
if (E1 == E2) return 0;
inter_tree_node *P1 = E1->node;
inter_tree_node *P2 = E2->node;
inter_package *mod1 = Inter::Packages::container(P1);
inter_package *mod2 = Inter::Packages::container(P2);
inter_ti C1 = Metadata::read_optional_numeric(mod1, I"^category");
inter_ti C2 = Metadata::read_optional_numeric(mod2, I"^category");
int d = ((int) C2) - ((int) C1); /* larger values sort earlier */
if (d != 0) return d;
return E1->sort_key - E2->sort_key; /* smaller values sort earlier */
}
inter_package *MakeSynopticModuleStage::module_containing(inter_tree_node *P) {
inter_package *pack = Inter::Packages::container(P);
inter_tree *I = Inter::Packages::tree(pack);
while (pack) {
inter_symbol *ptype = Inter::Packages::type(pack);
if (ptype == PackageTypes::get(I, I"_module")) return pack;
pack = Inter::Packages::parent(pack);
}
return NULL;
}

View file

@ -11,13 +11,13 @@ of instances having the kind |K_sound_name|, and so on.
=
void SynopticMultimedia::compile(inter_tree *I, pipeline_step *step, tree_inventory *inv) {
if (TreeLists::len(inv->figure_nodes) > 0) {
TreeLists::sort(inv->figure_nodes, Synoptic::module_order);
TreeLists::sort(inv->figure_nodes, MakeSynopticModuleStage::module_order);
}
if (TreeLists::len(inv->sound_nodes) > 0) {
TreeLists::sort(inv->sound_nodes, Synoptic::module_order);
TreeLists::sort(inv->sound_nodes, MakeSynopticModuleStage::module_order);
}
if (TreeLists::len(inv->file_nodes) > 0) {
TreeLists::sort(inv->file_nodes, Synoptic::module_order);
TreeLists::sort(inv->file_nodes, MakeSynopticModuleStage::module_order);
}
@<Define RESOURCEIDSOFFIGURES array@>;
@<Define RESOURCEIDSOFSOUNDS array@>;

View file

@ -11,7 +11,7 @@ of packages of type |_activity|.
=
void SynopticProperties::compile(inter_tree *I, pipeline_step *step, tree_inventory *inv) {
if (TreeLists::len(inv->property_nodes) > 0) {
TreeLists::sort(inv->property_nodes, Synoptic::module_order);
TreeLists::sort(inv->property_nodes, MakeSynopticModuleStage::module_order);
for (int i=0; i<TreeLists::len(inv->property_nodes); i++) {
inter_package *pack = Inter::Package::defined_by_frame(inv->property_nodes->list[i].node);
inter_tree_node *D = Synoptic::get_definition(pack, I"property_id");

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