1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-07-02 23:14:57 +03:00

Improved test script for GenerateDiagnostics-G

This commit is contained in:
Graham Nelson 2022-04-10 22:28:24 +01:00
parent 6728e52c63
commit f9232cb45a
55 changed files with 433 additions and 212 deletions

View file

@ -188,7 +188,7 @@ simple routine, but some are run by calling the three subroutines independently.
<span class="plain-syntax"> </span><span class="identifier-syntax">MStack_DestroyAVVars</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">MStack_DestroyAVVars</span><span class="plain-syntax">(</span><span class="identifier-syntax">A</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">RunTimeProblem</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTP_CANTABANDON</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">RunTimeProblem</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTP_CANTEND</span><span class="plain-syntax">);</span>
<span class="plain-syntax">];</span> <span class="plain-syntax">];</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>&#167;10. Abandon. </b>For (very) rare cases where an activity must be abandoned midway; such an <p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>&#167;10. Abandon. </b>For (very) rare cases where an activity must be abandoned midway; such an
@ -203,7 +203,7 @@ activity must be being run by calling the three stages individually, and
<span class="plain-syntax"> </span><span class="identifier-syntax">MStack_DestroyAVVars</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">MStack_DestroyAVVars</span><span class="plain-syntax">(</span><span class="identifier-syntax">A</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">RunTimeProblem</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTP_CANTEND</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">RunTimeProblem</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTP_CANTABANDON</span><span class="plain-syntax">);</span>
<span class="plain-syntax">];</span> <span class="plain-syntax">];</span>
</pre> </pre>
<nav role="progress"><div class="progresscontainer"> <nav role="progress"><div class="progresscontainer">

View file

@ -662,7 +662,7 @@ fairly thorough description of its output, which is written into the
<span class="plain-syntax"> </span><span class="comment-syntax">Re-tokenise:</span> <span class="plain-syntax"> </span><span class="comment-syntax">Re-tokenise:</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">VM_Tokenise</span><span class="plain-syntax">(</span><span class="identifier-syntax">buffer</span><span class="plain-syntax">,</span><span class="identifier-syntax">parse</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">VM_Tokenise</span><span class="plain-syntax">(</span><span class="identifier-syntax">buffer</span><span class="plain-syntax">,</span><span class="identifier-syntax">parse</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">num_words</span><span class="plain-syntax"> = </span><span class="identifier-syntax">WordCount</span><span class="plain-syntax">(); </span><span class="identifier-syntax">players_command</span><span class="plain-syntax"> = </span><span class="constant-syntax">100</span><span class="plain-syntax"> + </span><span class="identifier-syntax">num_words</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">num_words</span><span class="plain-syntax"> = </span><span class="identifier-syntax">WordCount</span><span class="plain-syntax">(); </span><span class="identifier-syntax">players_command</span><span class="plain-syntax"> = </span><span class="constant-syntax">100</span><span class="plain-syntax"> + </span><span class="identifier-syntax">num_words</span><span class="plain-syntax">; </span><span class="identifier-syntax">token_filter</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">k</span><span class="plain-syntax">=0;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">k</span><span class="plain-syntax">=0;</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">Ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">DEBUG</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">DEBUG</span><span class="plain-syntax">;</span>
@ -709,10 +709,8 @@ fairly thorough description of its output, which is written into the
<span class="plain-syntax"> </span><span class="comment-syntax">Begin from what we currently think is the verb word</span> <span class="plain-syntax"> </span><span class="comment-syntax">Begin from what we currently think is the verb word</span>
<span class="plain-syntax"> .</span><span class="identifier-syntax">BeginCommand</span><span class="plain-syntax">;</span> <span class="plain-syntax"> .</span><span class="identifier-syntax">BeginCommand</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">;</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">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">verb_word</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NextWordStopped</span><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><span class="identifier-syntax">verb_word</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NextWordStopped</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="comment-syntax">If there's no input here, we must have something like "person,".</span> <span class="plain-syntax"> </span><span class="comment-syntax">If there's no input here, we must have something like "person,".</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">verb_word</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">verb_word</span><span class="plain-syntax"> == -1) {</span>
@ -792,7 +790,6 @@ fairly thorough description of its output, which is written into the
<span class="plain-syntax"> </span><span class="comment-syntax">or the name of someone to talk to</span> <span class="plain-syntax"> </span><span class="comment-syntax">or the name of someone to talk to</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">verb_word</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax"> || ((</span><span class="identifier-syntax">verb_word</span><span class="plain-syntax">-&gt;#</span><span class="identifier-syntax">dict_par1</span><span class="plain-syntax">) &amp; </span><span class="constant-syntax">1</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">verb_word</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax"> || ((</span><span class="identifier-syntax">verb_word</span><span class="plain-syntax">-&gt;#</span><span class="identifier-syntax">dict_par1</span><span class="plain-syntax">) &amp; </span><span class="constant-syntax">1</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="comment-syntax">So is the first word an object contained in the special object "compass"</span> <span class="plain-syntax"> </span><span class="comment-syntax">So is the first word an object contained in the special object "compass"</span>
<span class="plain-syntax"> </span><span class="comment-syntax">(i.e., a direction)? This needs use of NounDomain, a routine which</span> <span class="plain-syntax"> </span><span class="comment-syntax">(i.e., a direction)? This needs use of NounDomain, a routine which</span>
<span class="plain-syntax"> </span><span class="comment-syntax">does the object matching, returning the object number, or 0 if none found,</span> <span class="plain-syntax"> </span><span class="comment-syntax">does the object matching, returning the object number, or 0 if none found,</span>
@ -840,7 +837,6 @@ fairly thorough description of its output, which is written into the
<span class="plain-syntax"> </span><span class="comment-syntax">advanced past a comma. (A comma is a word all on its own in the table.)</span> <span class="plain-syntax"> </span><span class="comment-syntax">advanced past a comma. (A comma is a word all on its own in the table.)</span>
<span class="plain-syntax"> .</span><span class="identifier-syntax">Conversation</span><span class="plain-syntax">;</span> <span class="plain-syntax"> .</span><span class="identifier-syntax">Conversation</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">j</span><span class="plain-syntax"> = </span><span class="identifier-syntax">wn</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">j</span><span class="plain-syntax"> = </span><span class="identifier-syntax">wn</span><span class="plain-syntax"> - </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="comment-syntax">Use NounDomain (in the context of "animate creature") to see if the</span> <span class="plain-syntax"> </span><span class="comment-syntax">Use NounDomain (in the context of "animate creature") to see if the</span>
@ -848,7 +844,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="constant-syntax">1</span><span class="plain-syntax">; </span><span class="identifier-syntax">lookahead</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HELD_TOKEN</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">wn</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">; </span><span class="identifier-syntax">lookahead</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HELD_TOKEN</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">scope_reason</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TALKING_REASON</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">scope_reason</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TALKING_REASON</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">l</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NounDomain</span><span class="plain-syntax">(</span><span class="identifier-syntax">player</span><span class="plain-syntax">,</span><span class="identifier-syntax">actors_location</span><span class="plain-syntax">,6);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">l</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NounDomain</span><span class="plain-syntax">(</span><span class="identifier-syntax">player</span><span class="plain-syntax">, </span><span class="identifier-syntax">actors_location</span><span class="plain-syntax">, </span><span class="identifier-syntax">CREATURE_TOKEN</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">scope_reason</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PARSING_REASON</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">scope_reason</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PARSING_REASON</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">l</span><span class="plain-syntax"> == </span><span class="identifier-syntax">REPARSE_CODE</span><span class="plain-syntax">) </span><span class="reserved-syntax">jump</span><span class="plain-syntax"> </span><span class="identifier-syntax">ReParse</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">l</span><span class="plain-syntax"> == </span><span class="identifier-syntax">REPARSE_CODE</span><span class="plain-syntax">) </span><span class="reserved-syntax">jump</span><span class="plain-syntax"> </span><span class="identifier-syntax">ReParse</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">l</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">l</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
@ -2203,7 +2199,8 @@ because we want to allow duplicates).
<span class="plain-syntax"> </span><span class="identifier-syntax">first_word</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">l</span><span class="plain-syntax"> </span><span class="identifier-syntax">answer_words</span><span class="plain-syntax"> </span><span class="identifier-syntax">marker</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">first_word</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">l</span><span class="plain-syntax"> </span><span class="identifier-syntax">answer_words</span><span class="plain-syntax"> </span><span class="identifier-syntax">marker</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">DEBUG</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">DEBUG</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">parser_trace</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">4</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">parser_trace</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">4</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">" [NounDomain called at word "</span><span class="plain-syntax">, </span><span class="identifier-syntax">wn</span><span class="plain-syntax">, </span><span class="string-syntax">"^"</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">" [NounDomain called at word "</span><span class="plain-syntax">, </span><span class="identifier-syntax">wn</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">" (domain1 "</span><span class="plain-syntax">, (</span><span class="identifier-syntax">name</span><span class="plain-syntax">) </span><span class="identifier-syntax">domain1</span><span class="plain-syntax">, </span><span class="string-syntax">", domain2 "</span><span class="plain-syntax">, (</span><span class="identifier-syntax">name</span><span class="plain-syntax">) </span><span class="identifier-syntax">domain2</span><span class="plain-syntax">, </span><span class="string-syntax">")^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">" "</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">" "</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">indef_mode</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">indef_mode</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"seeking indefinite object: "</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"seeking indefinite object: "</span><span class="plain-syntax">;</span>
@ -3178,7 +3175,6 @@ the preposition <span class="extract"><span class="extract-syntax">n</span></spa
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">from</span><span class="plain-syntax"> ~= </span><span class="constant-syntax">0</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">from</span><span class="plain-syntax"> == </span><span class="identifier-syntax">pcount</span><span class="plain-syntax">-1) &amp;&amp;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">from</span><span class="plain-syntax"> ~= </span><span class="constant-syntax">0</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">from</span><span class="plain-syntax"> == </span><span class="identifier-syntax">pcount</span><span class="plain-syntax">-1) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">--&gt;</span><span class="identifier-syntax">from</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">1</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">--&gt;</span><span class="identifier-syntax">from</span><span class="plain-syntax"> &lt; </span><span class="identifier-syntax">REPARSE_CODE</span><span class="plain-syntax">))</span> <span class="plain-syntax"> (</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">--&gt;</span><span class="identifier-syntax">from</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">1</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">--&gt;</span><span class="identifier-syntax">from</span><span class="plain-syntax"> &lt; </span><span class="identifier-syntax">REPARSE_CODE</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">singleton_noun</span><span class="plain-syntax"> = </span><span class="reserved-syntax">true</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">singleton_noun</span><span class="plain-syntax"> = </span><span class="reserved-syntax">true</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">singleton_noun</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">singleton_noun</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BeginActivity</span><span class="plain-syntax">(</span><span class="identifier-syntax">CLARIFYING_PARSERS_CHOICE_ACT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pattern</span><span class="plain-syntax">--&gt;</span><span class="identifier-syntax">from</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">BeginActivity</span><span class="plain-syntax">(</span><span class="identifier-syntax">CLARIFYING_PARSERS_CHOICE_ACT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pattern</span><span class="plain-syntax">--&gt;</span><span class="identifier-syntax">from</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ForActivity</span><span class="plain-syntax">(</span><span class="identifier-syntax">CLARIFYING_PARSERS_CHOICE_ACT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pattern</span><span class="plain-syntax">--&gt;</span><span class="identifier-syntax">from</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ForActivity</span><span class="plain-syntax">(</span><span class="identifier-syntax">CLARIFYING_PARSERS_CHOICE_ACT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pattern</span><span class="plain-syntax">--&gt;</span><span class="identifier-syntax">from</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
@ -3609,7 +3605,6 @@ cases, we pass the job down to <span class="extract"><span class="extract-syntax
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">[ </span><span class="identifier-syntax">MatchTextAgainstObject</span><span class="plain-syntax"> </span><span class="identifier-syntax">item</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">MatchTextAgainstObject</span><span class="plain-syntax"> </span><span class="identifier-syntax">item</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">token_filter</span><span class="plain-syntax"> ~= </span><span class="constant-syntax">0</span><span class="plain-syntax"> &amp;&amp; </span><span class="identifier-syntax">ConsultNounFilterToken</span><span class="plain-syntax">(</span><span class="identifier-syntax">item</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">token_filter</span><span class="plain-syntax"> ~= </span><span class="constant-syntax">0</span><span class="plain-syntax"> &amp;&amp; </span><span class="identifier-syntax">ConsultNounFilterToken</span><span class="plain-syntax">(</span><span class="identifier-syntax">item</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">match_from</span><span class="plain-syntax"> &lt;= </span><span class="identifier-syntax">num_words</span><span class="plain-syntax">) { </span><span class="comment-syntax">If there's any text to match, that is</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">match_from</span><span class="plain-syntax"> &lt;= </span><span class="identifier-syntax">num_words</span><span class="plain-syntax">) { </span><span class="comment-syntax">If there's any text to match, that is</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="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="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NounWord</span><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NounWord</span><span class="plain-syntax">();</span>

View file

@ -202,7 +202,7 @@ yet the current action.
<span class="plain-syntax"> </span><span class="identifier-syntax">MStack_DestroyAVVars</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">MStack_DestroyAVVars</span><span class="plain-syntax">(</span><span class="identifier-syntax">A</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">RunTimeProblem</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTP_CANTABANDON</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">RunTimeProblem</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTP_CANTEND</span><span class="plain-syntax">);</span>
<span class="plain-syntax">];</span> <span class="plain-syntax">];</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>&#167;10. Abandon. </b>For (very) rare cases where an activity must be abandoned midway; such an <p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>&#167;10. Abandon. </b>For (very) rare cases where an activity must be abandoned midway; such an
@ -217,7 +217,7 @@ activity must be being run by calling the three stages individually, and
<span class="plain-syntax"> </span><span class="identifier-syntax">MStack_DestroyAVVars</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">MStack_DestroyAVVars</span><span class="plain-syntax">(</span><span class="identifier-syntax">A</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">RunTimeProblem</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTP_CANTEND</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">RunTimeProblem</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTP_CANTABANDON</span><span class="plain-syntax">);</span>
<span class="plain-syntax">];</span> <span class="plain-syntax">];</span>
</pre> </pre>
<nav role="progress"><div class="progresscontainer"> <nav role="progress"><div class="progresscontainer">

View file

@ -734,6 +734,7 @@ doors.
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">[ </span><span class="identifier-syntax">TestAdjacency</span><span class="plain-syntax"> </span><span class="identifier-syntax">R1</span><span class="plain-syntax"> </span><span class="identifier-syntax">R2</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> </span><span class="identifier-syntax">row</span><span class="plain-syntax">;</span> <span class="plain-syntax">[ </span><span class="identifier-syntax">TestAdjacency</span><span class="plain-syntax"> </span><span class="identifier-syntax">R1</span><span class="plain-syntax"> </span><span class="identifier-syntax">R2</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> </span><span class="identifier-syntax">row</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">R1</span><span class="plain-syntax"> == </span><span class="reserved-syntax">nothing</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">R2</span><span class="plain-syntax"> == </span><span class="reserved-syntax">nothing</span><span class="plain-syntax">)) </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">R1</span><span class="plain-syntax"> </span><span class="reserved-syntax">ofclass</span><span class="plain-syntax"> </span><span class="identifier-syntax">K9_region</span><span class="plain-syntax">) </span><span class="identifier-syntax">RunTimeProblem</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTP_REGIONSNOTADJACENT</span><span class="plain-syntax">, </span><span class="identifier-syntax">R1</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">R1</span><span class="plain-syntax"> </span><span class="reserved-syntax">ofclass</span><span class="plain-syntax"> </span><span class="identifier-syntax">K9_region</span><span class="plain-syntax">) </span><span class="identifier-syntax">RunTimeProblem</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTP_REGIONSNOTADJACENT</span><span class="plain-syntax">, </span><span class="identifier-syntax">R1</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">R2</span><span class="plain-syntax"> </span><span class="reserved-syntax">ofclass</span><span class="plain-syntax"> </span><span class="identifier-syntax">K9_region</span><span class="plain-syntax">) </span><span class="identifier-syntax">RunTimeProblem</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTP_REGIONSNOTADJACENT</span><span class="plain-syntax">, </span><span class="identifier-syntax">R2</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">R2</span><span class="plain-syntax"> </span><span class="reserved-syntax">ofclass</span><span class="plain-syntax"> </span><span class="identifier-syntax">K9_region</span><span class="plain-syntax">) </span><span class="identifier-syntax">RunTimeProblem</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTP_REGIONSNOTADJACENT</span><span class="plain-syntax">, </span><span class="identifier-syntax">R2</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">row</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">R1</span><span class="plain-syntax">.</span><span class="identifier-syntax">IK1_Count</span><span class="plain-syntax">)*</span><span class="identifier-syntax">No_Directions</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">row</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">R1</span><span class="plain-syntax">.</span><span class="identifier-syntax">IK1_Count</span><span class="plain-syntax">)*</span><span class="identifier-syntax">No_Directions</span><span class="plain-syntax">;</span>
@ -763,9 +764,13 @@ must either completely contain another region, or else have no overlap with it.)
<span class="plain-syntax"> </span><span class="reserved-syntax">rtrue</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">rtrue</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">rfalse</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">obj</span><span class="plain-syntax"> </span><span class="reserved-syntax">ofclass</span><span class="plain-syntax"> </span><span class="identifier-syntax">K1_room</span><span class="plain-syntax">)) </span><span class="identifier-syntax">obj</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocationOf</span><span class="plain-syntax">(</span><span class="identifier-syntax">obj</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">obj</span><span class="plain-syntax"> </span><span class="reserved-syntax">ofclass</span><span class="plain-syntax"> </span><span class="identifier-syntax">K9_region</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">obj</span><span class="plain-syntax"> == </span><span class="reserved-syntax">nothing</span><span class="plain-syntax">) </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">o</span><span class="plain-syntax"> = </span><span class="identifier-syntax">obj</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">o</span><span class="plain-syntax"> = </span><span class="identifier-syntax">obj</span><span class="plain-syntax">.</span><span class="identifier-syntax">map_region</span><span class="plain-syntax">;</span> <span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (~~(</span><span class="identifier-syntax">obj</span><span class="plain-syntax"> </span><span class="reserved-syntax">ofclass</span><span class="plain-syntax"> </span><span class="identifier-syntax">K1_room</span><span class="plain-syntax">)) </span><span class="identifier-syntax">obj</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocationOf</span><span class="plain-syntax">(</span><span class="identifier-syntax">obj</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">obj</span><span class="plain-syntax"> == </span><span class="reserved-syntax">nothing</span><span class="plain-syntax">) </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">o</span><span class="plain-syntax"> = </span><span class="identifier-syntax">obj</span><span class="plain-syntax">.</span><span class="identifier-syntax">map_region</span><span class="plain-syntax">;</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">o</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">o</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">o</span><span class="plain-syntax"> == </span><span class="identifier-syntax">region</span><span class="plain-syntax">) </span><span class="reserved-syntax">rtrue</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">o</span><span class="plain-syntax"> == </span><span class="identifier-syntax">region</span><span class="plain-syntax">) </span><span class="reserved-syntax">rtrue</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">o</span><span class="plain-syntax"> = </span><span class="reserved-syntax">parent</span><span class="plain-syntax">(</span><span class="identifier-syntax">o</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">o</span><span class="plain-syntax"> = </span><span class="reserved-syntax">parent</span><span class="plain-syntax">(</span><span class="identifier-syntax">o</span><span class="plain-syntax">);</span>
@ -853,8 +858,10 @@ which cannot be asserted true or false.
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">[ </span><span class="identifier-syntax">TestConcealment</span><span class="plain-syntax"> </span><span class="identifier-syntax">A</span><span class="plain-syntax"> </span><span class="identifier-syntax">B</span><span class="plain-syntax">;</span> <span class="plain-syntax">[ </span><span class="identifier-syntax">TestConcealment</span><span class="plain-syntax"> </span><span class="identifier-syntax">A</span><span class="plain-syntax"> </span><span class="identifier-syntax">B</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">A</span><span class="plain-syntax"> </span><span class="reserved-syntax">ofclass</span><span class="plain-syntax"> </span><span class="identifier-syntax">K2_thing</span><span class="plain-syntax"> &amp;&amp; </span><span class="identifier-syntax">B</span><span class="plain-syntax"> </span><span class="reserved-syntax">ofclass</span><span class="plain-syntax"> </span><span class="identifier-syntax">K2_thing</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">A</span><span class="plain-syntax"> </span><span class="reserved-syntax">ofclass</span><span class="plain-syntax"> </span><span class="identifier-syntax">K2_thing</span><span class="plain-syntax"> &amp;&amp; </span><span class="identifier-syntax">B</span><span class="plain-syntax"> </span><span class="reserved-syntax">ofclass</span><span class="plain-syntax"> </span><span class="identifier-syntax">K2_thing</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">particular_possession</span><span class="plain-syntax"> = </span><span class="identifier-syntax">B</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">IndirectlyContains</span><span class="plain-syntax">(</span><span class="identifier-syntax">A</span><span class="plain-syntax">, </span><span class="identifier-syntax">B</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">CarryOutActivity</span><span class="plain-syntax">(</span><span class="identifier-syntax">DECIDING_CONCEALED_POSSESS_ACT</span><span class="plain-syntax">, </span><span class="identifier-syntax">A</span><span class="plain-syntax">)) </span><span class="reserved-syntax">rtrue</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">particular_possession</span><span class="plain-syntax"> = </span><span class="identifier-syntax">B</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">CarryOutActivity</span><span class="plain-syntax">(</span><span class="identifier-syntax">DECIDING_CONCEALED_POSSESS_ACT</span><span class="plain-syntax">, </span><span class="identifier-syntax">A</span><span class="plain-syntax">)) </span><span class="reserved-syntax">rtrue</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
<span class="plain-syntax">];</span> <span class="plain-syntax">];</span>

View file

@ -299,13 +299,14 @@ this, a problem message of some kind will certainly result.
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">before/every/after/when/instead/check/carry/report</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-cs.html#SP4_1" class="named-paragraph-link"><span class="named-paragraph">Issue PM_RuleWithoutColon problem</span><span class="named-paragraph-number">4.1</span></a></span> <span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">before/every/after/when/instead/check/carry/report</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-cs.html#SP4_1" class="named-paragraph-link"><span class="named-paragraph">Issue PM_RuleWithoutColon problem</span><span class="named-paragraph-number">4.1</span></a></span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">if</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-cs.html#SP4_2" class="named-paragraph-link"><span class="named-paragraph">Issue PM_IfOutsidePhrase problem</span><span class="named-paragraph-number">4.2</span></a></span> <span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">if</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-cs.html#SP4_2" class="named-paragraph-link"><span class="named-paragraph">Issue PM_IfOutsidePhrase problem</span><span class="named-paragraph-number">4.2</span></a></span>
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">,</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-cs.html#SP4_3" class="named-paragraph-link"><span class="named-paragraph">Issue PM_NoSuchVerbComma problem</span><span class="named-paragraph-number">4.3</span></a></span> <span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">,</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-cs.html#SP4_3" class="named-paragraph-link"><span class="named-paragraph">Issue PM_NoSuchVerbComma problem</span><span class="named-paragraph-number">4.3</span></a></span>
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-cs.html#SP4_4" class="named-paragraph-link"><span class="named-paragraph">Issue PM_NoSuchVerb problem</span><span class="named-paragraph-number">4.4</span></a></span> <span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;cardinal-number&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">:</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;cardinal-number&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-cs.html#SP4_4" class="named-paragraph-link"><span class="named-paragraph">Issue PM_NoSuchVerbNumberedColon problem</span><span class="named-paragraph-number">4.4</span></a></span>
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-cs.html#SP4_5" class="named-paragraph-link"><span class="named-paragraph">Issue PM_NoSuchVerb problem</span><span class="named-paragraph-number">4.5</span></a></span>
<span class="Preform-function-syntax">&lt;no-primary-verb-diagnosis-tail&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span> <span class="Preform-function-syntax">&lt;no-primary-verb-diagnosis-tail&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;rc-marker&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;certainty&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;nonimperative-verb&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> { advance Wordings::delta(WR[1], W) }</span> <span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;rc-marker&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;certainty&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;nonimperative-verb&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> { advance Wordings::delta(WR[1], W) }</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;rc-marker&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;nonimperative-verb&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> { advance Wordings::delta(WR[1], W) }</span> <span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;rc-marker&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;nonimperative-verb&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> { advance Wordings::delta(WR[1], W) }</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;past-tense-verb&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-cs.html#SP4_5" class="named-paragraph-link"><span class="named-paragraph">Issue PM_NonPresentTense problem</span><span class="named-paragraph-number">4.5</span></a></span> <span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;past-tense-verb&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-cs.html#SP4_6" class="named-paragraph-link"><span class="named-paragraph">Issue PM_NonPresentTense problem</span><span class="named-paragraph-number">4.6</span></a></span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;negated-verb&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-cs.html#SP4_6" class="named-paragraph-link"><span class="named-paragraph">Issue PM_NegatedVerb1 problem</span><span class="named-paragraph-number">4.6</span></a></span> <span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;negated-verb&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-cs.html#SP4_7" class="named-paragraph-link"><span class="named-paragraph">Issue PM_NegatedVerb1 problem</span><span class="named-paragraph-number">4.7</span></a></span>
</pre> </pre>
<ul class="endnotetexts"><li>This is <a href="../words-module/4-ap.html" class="internal">Preform grammar</a>, not regular C code.</li></ul> <ul class="endnotetexts"><li>This is <a href="../words-module/4-ap.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
<p class="commentary firstcommentary"><a id="SP4_1" class="paragraph-anchor"></a><b>&#167;4.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue PM_RuleWithoutColon problem</span><span class="named-paragraph-number">4.1</span></span><span class="Preform-comment-syntax"> =</span> <p class="commentary firstcommentary"><a id="SP4_1" class="paragraph-anchor"></a><b>&#167;4.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue PM_RuleWithoutColon problem</span><span class="named-paragraph-number">4.1</span></span><span class="Preform-comment-syntax"> =</span>
@ -353,7 +354,24 @@ this, a problem message of some kind will certainly result.
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_end</span><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_end</span><span class="plain-syntax">();</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-cs.html#SP4">&#167;4</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="2-cs.html#SP4">&#167;4</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP4_4" class="paragraph-anchor"></a><b>&#167;4.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue PM_NoSuchVerb problem</span><span class="named-paragraph-number">4.4</span></span><span class="comment-syntax"> =</span> <p class="commentary firstcommentary"><a id="SP4_4" class="paragraph-anchor"></a><b>&#167;4.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue PM_NoSuchVerbNumberedColon problem</span><span class="named-paragraph-number">4.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">Problems::quote_source</span><span class="plain-syntax">(1, </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">StandardProblems::handmade_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_NoSuchVerbNumberedColon</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_segment</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="string-syntax">"In the sentence %1, I can't find a verb that I know how to deal with. "</span>
<span class="plain-syntax"> </span><span class="string-syntax">"I notice there's a colon ':' with a number either side of it - this might "</span>
<span class="plain-syntax"> </span><span class="string-syntax">"have led to confusion because the usual convention that ':' divides a "</span>
<span class="plain-syntax"> </span><span class="string-syntax">"rule or phrase from its definition does not apply in this case, to avoid "</span>
<span class="plain-syntax"> </span><span class="string-syntax">"potential confusion with times of day like '2:15 PM'. If you put a line "</span>
<span class="plain-syntax"> </span><span class="string-syntax">"break after the ':' and before the second number, though, you can make "</span>
<span class="plain-syntax"> </span><span class="string-syntax">"sure I'm definitely reading it as punctuation."</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_end</span><span class="plain-syntax">();</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-cs.html#SP4">&#167;4</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP4_5" class="paragraph-anchor"></a><b>&#167;4.5. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue PM_NoSuchVerb problem</span><span class="named-paragraph-number">4.5</span></span><span class="comment-syntax"> =</span>
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
@ -364,7 +382,7 @@ this, a problem message of some kind will certainly result.
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_end</span><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_end</span><span class="plain-syntax">();</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-cs.html#SP4">&#167;4</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="2-cs.html#SP4">&#167;4</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP4_5" class="paragraph-anchor"></a><b>&#167;4.5. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue PM_NonPresentTense problem</span><span class="named-paragraph-number">4.5</span></span><span class="comment-syntax"> =</span> <p class="commentary firstcommentary"><a id="SP4_6" class="paragraph-anchor"></a><b>&#167;4.6. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue PM_NonPresentTense problem</span><span class="named-paragraph-number">4.6</span></span><span class="comment-syntax"> =</span>
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
@ -379,7 +397,7 @@ this, a problem message of some kind will certainly result.
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-cs.html#SP4">&#167;4</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="2-cs.html#SP4">&#167;4</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP4_6" class="paragraph-anchor"></a><b>&#167;4.6. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue PM_NegatedVerb1 problem</span><span class="named-paragraph-number">4.6</span></span><span class="comment-syntax"> =</span> <p class="commentary firstcommentary"><a id="SP4_7" class="paragraph-anchor"></a><b>&#167;4.7. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue PM_NegatedVerb1 problem</span><span class="named-paragraph-number">4.7</span></span><span class="comment-syntax"> =</span>
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">

View file

@ -165,7 +165,7 @@ OP match the following:
<span class="plain-syntax"> </span><span class="identifier-syntax">uo</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax">&lt;use-setting&gt;</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">uo</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax">&lt;use-setting&gt;</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">uo</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">expansion</span><span class="plain-syntax"> = </span><span class="identifier-syntax">OP</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">uo</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">expansion</span><span class="plain-syntax"> = </span><span class="identifier-syntax">OP</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">uo</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">option_used</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">uo</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">option_used</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">uo</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">minimum_setting_value</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">N</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) ? </span><span class="identifier-syntax">N</span><span class="plain-syntax"> : -1;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">uo</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">minimum_setting_value</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">N</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">0</span><span class="plain-syntax">) ? </span><span class="identifier-syntax">N</span><span class="plain-syntax"> : -1;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">uo</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">source_file_scoped</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">uo</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">source_file_scoped</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">uo</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">notable_option_code</span><span class="plain-syntax"> = -1;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">uo</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">notable_option_code</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="function-syntax">&lt;notable-use-option-name&gt;(uo-&gt;</span><span class="element-syntax">name</span><span class="plain-syntax">)) </span><span class="identifier-syntax">uo</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">notable_option_code</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;r&gt;&gt;</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;notable-use-option-name&gt;(uo-&gt;</span><span class="element-syntax">name</span><span class="plain-syntax">)) </span><span class="identifier-syntax">uo</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">notable_option_code</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;r&gt;&gt;</span><span class="plain-syntax">;</span>
@ -182,7 +182,7 @@ them back that way too:
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">use_option</span><span class="plain-syntax"> *</span><span class="function-syntax">NewUseOptions::parse_uo</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">NewUseOptions::parse_uo</span></span>:<br/>Use Options - <a href="3-uor.html#SP2_2_4">&#167;2.2.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">OW</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">use_option</span><span class="plain-syntax"> *</span><span class="function-syntax">NewUseOptions::parse_uo</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">NewUseOptions::parse_uo</span></span>:<br/>Use Options - <a href="3-uor.html#SP2_1_4">&#167;2.1.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">OW</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Lexicon::retrieve</span><span class="plain-syntax">(</span><span class="identifier-syntax">MISCELLANEOUS_MC</span><span class="plain-syntax">, </span><span class="identifier-syntax">OW</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Lexicon::retrieve</span><span class="plain-syntax">(</span><span class="identifier-syntax">MISCELLANEOUS_MC</span><span class="plain-syntax">, </span><span class="identifier-syntax">OW</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Rvalues::is_CONSTANT_of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_use_option</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">Rvalues::to_use_option</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Rvalues::is_CONSTANT_of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_use_option</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">Rvalues::to_use_option</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
@ -192,7 +192,7 @@ them back that way too:
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">NewUseOptions::set</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">NewUseOptions::set</span></span>:<br/>Use Options - <a href="3-uor.html#SP2_2_4">&#167;2.2.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">use_option</span><span class="plain-syntax"> *</span><span class="identifier-syntax">uo</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">min_setting</span><span class="plain-syntax">, </span><span class="identifier-syntax">source_file</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">NewUseOptions::set</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">NewUseOptions::set</span></span>:<br/>Use Options - <a href="3-uor.html#SP2_1_4">&#167;2.1.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">use_option</span><span class="plain-syntax"> *</span><span class="identifier-syntax">uo</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">min_setting</span><span class="plain-syntax">, </span><span class="identifier-syntax">source_file</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">uo</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">minimum_setting_value</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">uo</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">minimum_setting_value</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">min_setting</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">min_setting</span><span class="plain-syntax"> != -1)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">StandardProblems::sentence_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_UONotNumerical</span><span class="plain-syntax">),</span> <span class="plain-syntax"> </span><span class="identifier-syntax">StandardProblems::sentence_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_UONotNumerical</span><span class="plain-syntax">),</span>
@ -234,7 +234,7 @@ by hand with a sentence in the source text.
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>&#167;7. </b></p> <p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>&#167;7. </b></p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">NewUseOptions::memory_setting</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">NewUseOptions::memory_setting</span></span>:<br/>Use Options - <a href="3-uor.html#SP2_2_3">&#167;2.2.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">identifier</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">n</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">NewUseOptions::memory_setting</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">NewUseOptions::memory_setting</span></span>:<br/>Use Options - <a href="3-uor.html#SP2_1_3">&#167;2.1.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">identifier</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">n</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">i6_memory_setting</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ms</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">i6_memory_setting</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ms</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">ms</span><span class="plain-syntax">, </span><span class="reserved-syntax">i6_memory_setting</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">ms</span><span class="plain-syntax">, </span><span class="reserved-syntax">i6_memory_setting</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">identifier</span><span class="plain-syntax">, </span><span class="identifier-syntax">ms</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ICL_identifier</span><span class="plain-syntax">)) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">identifier</span><span class="plain-syntax">, </span><span class="identifier-syntax">ms</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ICL_identifier</span><span class="plain-syntax">)) {</span>

View file

@ -99,10 +99,10 @@ articled lists:
<span class="plain-syntax"> </span><a href="3-uor.html#SP2" class="function-link"><span class="function-syntax">UseOptions::set_use_options</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">down</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="3-uor.html#SP2" class="function-link"><span class="function-syntax">UseOptions::set_use_options</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">down</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-uor.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Set a single use option</span><span class="named-paragraph-number">2.2</span></a></span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-uor.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">Set a single use option</span><span class="named-paragraph-number">2.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP2_1" class="paragraph-anchor"></a><b>&#167;2.1. </b>Each of the entries in this list must match the following; the text of the <p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>&#167;3. </b>Each of the entries in this list must match the following; the text of the
option name is taken from the <span class="extract"><span class="extract-syntax">...</span></span> or <span class="extract"><span class="extract-syntax">###</span></span> as appropriate: option name is taken from the <span class="extract"><span class="extract-syntax">...</span></span> or <span class="extract"><span class="extract-syntax">###</span></span> as appropriate:
</p> </p>
@ -114,33 +114,45 @@ option name is taken from the <span class="extract"><span class="extract-syntax"
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">language</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">index</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> { TRUE, - }</span> <span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">language</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">index</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> { TRUE, - }</span>
<span class="Preform-function-syntax">&lt;use-memory-setting&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span> <span class="Preform-function-syntax">&lt;use-memory-setting&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">###</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">of</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;cardinal-number-unlimited&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> { R[1], - }</span> <span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">###</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">of</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;cardinal-number-unlimited&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-uor.html#SP3_1" class="named-paragraph-link"><span class="named-paragraph">Validate the at-least setting</span><span class="named-paragraph-number">3.1</span></a></span>
<span class="Preform-function-syntax">&lt;use-setting&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span> <span class="Preform-function-syntax">&lt;use-setting&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">of</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">at</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">least</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;cardinal-number-unlimited&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> { R[1], - }</span> <span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">of</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">at</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">least</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;cardinal-number-unlimited&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-uor.html#SP3_1" class="named-paragraph-link"><span class="named-paragraph">Validate the at-least setting</span><span class="named-paragraph-number">3.1</span></a></span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;definite-article&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> { -1, - }</span> <span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;definite-article&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> { -1, - }</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> { -1, - }</span> <span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> { -1, - }</span>
</pre> </pre>
<ul class="endnotetexts"><li>This is <a href="../words-module/4-ap.html" class="internal">Preform grammar</a>, not regular C code.</li></ul> <ul class="endnotetexts"><li>This is <a href="../words-module/4-ap.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_2" class="paragraph-anchor"></a><b>&#167;2.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Set a single use option</span><span class="named-paragraph-number">2.2</span></span><span class="Preform-comment-syntax"> =</span> <p class="commentary firstcommentary"><a id="SP3_1" class="paragraph-anchor"></a><b>&#167;3.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Validate the at-least setting</span><span class="named-paragraph-number">3.1</span></span><span class="Preform-comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">R</span><span class="plain-syntax">[1] &lt; </span><span class="constant-syntax">0</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">StandardProblems::sentence_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</span><span class="plain-syntax">(),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_UseOptionAtLeastNegative</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="string-syntax">"the minimum possible value is not allowed to be negative"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"since it describes a quantity which must be 0 or more"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> ==&gt; { </span><span class="identifier-syntax">R</span><span class="plain-syntax">[1], - }</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-uor.html#SP3">&#167;3</a> (twice).</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">Set a single use option</span><span class="named-paragraph-number">2.1</span></span><span class="comment-syntax"> =</span>
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_text</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">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;use-inter-pipeline&gt;</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="function-syntax">&lt;use-inter-pipeline&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-uor.html#SP2_2_1" class="named-paragraph-link"><span class="named-paragraph">Set the pipeline given in this word range</span><span class="named-paragraph-number">2.2.1</span></a></span> <span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-uor.html#SP2_1_1" class="named-paragraph-link"><span class="named-paragraph">Set the pipeline given in this word range</span><span class="named-paragraph-number">2.1.1</span></a></span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;use-index-language&gt;</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">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;use-index-language&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-uor.html#SP2_2_2" class="named-paragraph-link"><span class="named-paragraph">Set index language</span><span class="named-paragraph-number">2.2.2</span></a></span> <span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-uor.html#SP2_1_2" class="named-paragraph-link"><span class="named-paragraph">Set index language</span><span class="named-paragraph-number">2.1.2</span></a></span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;use-memory-setting&gt;</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">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;use-memory-setting&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-uor.html#SP2_2_3" class="named-paragraph-link"><span class="named-paragraph">Set a memory setting</span><span class="named-paragraph-number">2.2.3</span></a></span> <span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-uor.html#SP2_1_3" class="named-paragraph-link"><span class="named-paragraph">Set a memory setting</span><span class="named-paragraph-number">2.1.3</span></a></span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;use-setting&gt;</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">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;use-setting&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-uor.html#SP2_2_4" class="named-paragraph-link"><span class="named-paragraph">Set the option given in this word range</span><span class="named-paragraph-number">2.2.4</span></a></span> <span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-uor.html#SP2_1_4" class="named-paragraph-link"><span class="named-paragraph">Set the option given in this word range</span><span class="named-paragraph-number">2.1.4</span></a></span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-uor.html#SP2">&#167;2</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="3-uor.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>This is an undocumented feature used during the transition from I6 to Inter: <p class="commentary firstcommentary"><a id="SP2_1_1" class="paragraph-anchor"></a><b>&#167;2.1.1. </b>This is an undocumented feature used during the transition from I6 to Inter:
</p> </p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Set the pipeline given in this word range</span><span class="named-paragraph-number">2.2.1</span></span><span class="comment-syntax"> =</span> <p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Set the pipeline given in this word range</span><span class="named-paragraph-number">2.1.1</span></span><span class="comment-syntax"> =</span>
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
@ -154,12 +166,12 @@ option name is taken from the <span class="extract"><span class="extract-syntax"
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</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">DISCARD_TEXT</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>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-uor.html#SP2_2">&#167;2.2</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="3-uor.html#SP2_1">&#167;2.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_2_2" class="paragraph-anchor"></a><b>&#167;2.2.2. </b>This is a somewhat experimental feature, too. For now, it is a deliberate <p class="commentary firstcommentary"><a id="SP2_1_2" class="paragraph-anchor"></a><b>&#167;2.1.2. </b>This is a somewhat experimental feature, too. For now, it is a deliberate
choice to fail silently if no such language is available. choice to fail silently if no such language is available.
</p> </p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Set index language</span><span class="named-paragraph-number">2.2.2</span></span><span class="comment-syntax"> =</span> <p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Set index language</span><span class="named-paragraph-number">2.1.2</span></span><span class="comment-syntax"> =</span>
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
@ -171,8 +183,8 @@ choice to fail silently if no such language is available.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax">) </span><span class="identifier-syntax">Projects::set_language_of_index</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::project</span><span class="plain-syntax">(), </span><span class="identifier-syntax">L</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax">) </span><span class="identifier-syntax">Projects::set_language_of_index</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::project</span><span class="plain-syntax">(), </span><span class="identifier-syntax">L</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"Cannot find language %S: ignoring use option\n"</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">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"Cannot find language %S: ignoring use option\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-uor.html#SP2_2">&#167;2.2</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="3-uor.html#SP2_1">&#167;2.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_2_3" class="paragraph-anchor"></a><b>&#167;2.2.3. </b>ICL, the "Inform 6 control language", is a set of a pragma-like settings for <p class="commentary firstcommentary"><a id="SP2_1_3" class="paragraph-anchor"></a><b>&#167;2.1.3. </b>ICL, the "Inform 6 control language", is a set of a pragma-like settings for
the I6 compiler. Of course, in the age in Inter, those might well be ignored, the I6 compiler. Of course, in the age in Inter, those might well be ignored,
since the compiler next down the chain may no longer be I6. since the compiler next down the chain may no longer be I6.
</p> </p>
@ -180,7 +192,7 @@ since the compiler next down the chain may no longer be I6.
<p class="commentary">See <a href="../runtime-module/3-uo.html" class="internal">Use Options (in runtime)</a> for what happens to these. <p class="commentary">See <a href="../runtime-module/3-uo.html" class="internal">Use Options (in runtime)</a> for what happens to these.
</p> </p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Set a memory setting</span><span class="named-paragraph-number">2.2.3</span></span><span class="comment-syntax"> =</span> <p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Set a memory setting</span><span class="named-paragraph-number">2.1.3</span></span><span class="comment-syntax"> =</span>
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
@ -196,11 +208,11 @@ since the compiler next down the chain may no longer be I6.
<span class="plain-syntax"> </span><a href="3-nuor.html#SP7" class="function-link"><span class="function-syntax">NewUseOptions::memory_setting</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">icl_identifier</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="3-nuor.html#SP7" class="function-link"><span class="function-syntax">NewUseOptions::memory_setting</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">icl_identifier</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">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">icl_identifier</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">icl_identifier</span><span class="plain-syntax">)</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-uor.html#SP2_2">&#167;2.2</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="3-uor.html#SP2_1">&#167;2.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_2_4" class="paragraph-anchor"></a><b>&#167;2.2.4. </b>Whereas thus is the standard use option syntax: <p class="commentary firstcommentary"><a id="SP2_1_4" class="paragraph-anchor"></a><b>&#167;2.1.4. </b>Whereas thus is the standard use option syntax:
</p> </p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Set the option given in this word range</span><span class="named-paragraph-number">2.2.4</span></span><span class="comment-syntax"> =</span> <p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Set the option given in this word range</span><span class="named-paragraph-number">2.1.4</span></span><span class="comment-syntax"> =</span>
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
@ -217,7 +229,7 @@ since the compiler next down the chain may no longer be I6.
<span class="plain-syntax"> </span><span class="string-syntax">"and needs to be one of the ones listed in the documentation."</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="string-syntax">"and needs to be one of the ones listed in the documentation."</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-uor.html#SP2_2">&#167;2.2</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="3-uor.html#SP2_1">&#167;2.1</a>.</li></ul>
<nav role="progress"><div class="progresscontainer"> <nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="3-nuor.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-am.html">1</a></li><li class="progresschapter"><a href="2-bv.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-dlr.html">dlr</a></li><li class="progresssection"><a href="3-pr.html">pr</a></li><li class="progresssection"><a href="3-tr.html">tr</a></li><li class="progresssection"><a href="3-nuor.html">nuor</a></li><li class="progresscurrent">uor</li><li class="progresssection"><a href="3-tr2.html">tr2</a></li><li class="progresssection"><a href="3-dbtr.html">dbtr</a></li><li class="progresssection"><a href="3-rpr.html">rpr</a></li><li class="progresssection"><a href="3-nar.html">nar</a></li><li class="progresssection"><a href="3-nlpr.html">nlpr</a></li><li class="progresssection"><a href="3-nrr.html">nrr</a></li><li class="progresssection"><a href="3-npr.html">npr</a></li><li class="progresssection"><a href="3-nvr.html">nvr</a></li><li class="progresssection"><a href="3-nar2.html">nar2</a></li><li class="progresssection"><a href="3-ir.html">ir</a></li><li class="progresschapter"><a href="4-nr.html">4</a></li><li class="progresschapter"><a href="5-id.html">5</a></li><li class="progresschapter"><a href="6-rls.html">6</a></li><li class="progresschapter"><a href="7-tc.html">7</a></li><li class="progresschapter"><a href="8-kpr.html">8</a></li><li class="progressnext"><a href="3-tr2.html">&#10095;</a></li></ul></div> <ul class="progressbar"><li class="progressprev"><a href="3-nuor.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-am.html">1</a></li><li class="progresschapter"><a href="2-bv.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-dlr.html">dlr</a></li><li class="progresssection"><a href="3-pr.html">pr</a></li><li class="progresssection"><a href="3-tr.html">tr</a></li><li class="progresssection"><a href="3-nuor.html">nuor</a></li><li class="progresscurrent">uor</li><li class="progresssection"><a href="3-tr2.html">tr2</a></li><li class="progresssection"><a href="3-dbtr.html">dbtr</a></li><li class="progresssection"><a href="3-rpr.html">rpr</a></li><li class="progresssection"><a href="3-nar.html">nar</a></li><li class="progresssection"><a href="3-nlpr.html">nlpr</a></li><li class="progresssection"><a href="3-nrr.html">nrr</a></li><li class="progresssection"><a href="3-npr.html">npr</a></li><li class="progresssection"><a href="3-nvr.html">nvr</a></li><li class="progresssection"><a href="3-nar2.html">nar2</a></li><li class="progresssection"><a href="3-ir.html">ir</a></li><li class="progresschapter"><a href="4-nr.html">4</a></li><li class="progresschapter"><a href="5-id.html">5</a></li><li class="progresschapter"><a href="6-rls.html">6</a></li><li class="progresschapter"><a href="7-tc.html">7</a></li><li class="progresschapter"><a href="8-kpr.html">8</a></li><li class="progressnext"><a href="3-tr2.html">&#10095;</a></li></ul></div>
</nav><!--End of weave--> </nav><!--End of weave-->

View file

@ -574,6 +574,7 @@ for how sentences specifying this are parsed.
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">NAP_problem_explained</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">; </span><span class="comment-syntax"> pertains to Named Action Patterns</span> <span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">NAP_problem_explained</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">; </span><span class="comment-syntax"> pertains to Named Action Patterns</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">issuing_ANL_problem</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">; </span><span class="comment-syntax"> pertains to Action Name Lists</span> <span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">issuing_ANL_problem</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">; </span><span class="comment-syntax"> pertains to Action Name Lists</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">defective_ANL_clauses</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">; </span><span class="comment-syntax"> ditto</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RuleFamily::to_rcd</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">RuleFamily::to_rcd</span></span>:<br/><a href="5-rf.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">imperative_defn_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">imperative_defn</span><span class="plain-syntax"> *</span><span class="identifier-syntax">id</span><span class="plain-syntax">,</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RuleFamily::to_rcd</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">RuleFamily::to_rcd</span></span>:<br/><a href="5-rf.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">imperative_defn_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">imperative_defn</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">id_runtime_context_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rcd</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">id_runtime_context_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rcd</span><span class="plain-syntax">) {</span>
@ -597,7 +598,9 @@ whichever way works.
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="6-rlb.html#SP2_2" class="function-link"><span class="function-syntax">Rulebooks::action_focus</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">rfd</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">owning_rulebook</span><span class="plain-syntax">)) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="6-rlb.html#SP2_2" class="function-link"><span class="function-syntax">Rulebooks::action_focus</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">rfd</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">owning_rulebook</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">save_cs</span><span class="plain-syntax"> = </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">ActionRules::set_ap</span><span class="plain-syntax">(</span><span class="identifier-syntax">rcd</span><span class="plain-syntax">, </span><span class="identifier-syntax">ActionPatterns::parse_action_based</span><span class="plain-syntax">(</span><span class="identifier-syntax">rfd</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">applicability</span><span class="plain-syntax">));</span> <span class="plain-syntax"> </span><span class="identifier-syntax">ActionRules::set_ap</span><span class="plain-syntax">(</span><span class="identifier-syntax">rcd</span><span class="plain-syntax">, </span><span class="identifier-syntax">ActionPatterns::parse_action_based</span><span class="plain-syntax">(</span><span class="identifier-syntax">rfd</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">applicability</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax"> = </span><span class="identifier-syntax">save_cs</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ActionRules::get_ap</span><span class="plain-syntax">(</span><span class="identifier-syntax">rcd</span><span class="plain-syntax">) == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="5-rf.html#SP11_1_1" class="named-paragraph-link"><span class="named-paragraph">Issue a problem message for a bad action</span><span class="named-paragraph-number">11.1.1</span></a></span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ActionRules::get_ap</span><span class="plain-syntax">(</span><span class="identifier-syntax">rcd</span><span class="plain-syntax">) == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="5-rf.html#SP11_1_1" class="named-paragraph-link"><span class="named-paragraph">Issue a problem message for a bad action</span><span class="named-paragraph-number">11.1.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span> <span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pk</span><span class="plain-syntax"> = </span><a href="6-rlb.html#SP2_2" class="function-link"><span class="function-syntax">Rulebooks::get_focus_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">rfd</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">owning_rulebook</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pk</span><span class="plain-syntax"> = </span><a href="6-rlb.html#SP2_2" class="function-link"><span class="function-syntax">Rulebooks::get_focus_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">rfd</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">owning_rulebook</span><span class="plain-syntax">);</span>
@ -830,6 +833,8 @@ parser, recording how it most recently failed.
<span class="plain-syntax"> </span><span class="string-syntax">" Looking at this as a list of alternative actions: "</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="string-syntax">" Looking at this as a list of alternative actions: "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">issuing_ANL_problem</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">; </span><span class="identifier-syntax">NAP_problem_explained</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">issuing_ANL_problem</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">; </span><span class="identifier-syntax">NAP_problem_explained</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="function-syntax">&lt;anl-diagnosis&gt;(rfd-&gt;</span><span class="element-syntax">applicability</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="function-syntax">&lt;anl-diagnosis&gt;(rfd-&gt;</span><span class="element-syntax">applicability</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">defective_ANL_clauses</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">Problems::issue_problem_segment</span><span class="plain-syntax">(</span><span class="string-syntax">" but the combination was ambiguous,"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_segment</span><span class="plain-syntax">(</span><span class="string-syntax">" so"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_segment</span><span class="plain-syntax">(</span><span class="string-syntax">" so"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
</pre> </pre>
@ -957,6 +962,7 @@ might have gone wrong.
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">issuing_ANL_problem</span><span class="plain-syntax">) &amp;&amp; (!</span><span class="identifier-syntax">preform_lookahead_mode</span><span class="plain-syntax">)) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">issuing_ANL_problem</span><span class="plain-syntax">) &amp;&amp; (!</span><span class="identifier-syntax">preform_lookahead_mode</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">defective_ANL_clauses</span><span class="plain-syntax">++;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_wording</span><span class="plain-syntax">(4, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_wording</span><span class="plain-syntax">(4, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;action-pattern&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;action-pattern&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_segment</span><span class="plain-syntax">(</span><span class="string-syntax">"'%4' did not make sense; "</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_segment</span><span class="plain-syntax">(</span><span class="string-syntax">"'%4' did not make sense; "</span><span class="plain-syntax">);</span>
@ -994,6 +1000,7 @@ might have gone wrong.
<span class="plain-syntax"> </span><span class="string-syntax">"which isn't allowed in a list like this; "</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="string-syntax">"which isn't allowed in a list like this; "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">defective_ANL_clauses</span><span class="plain-syntax">--;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_segment</span><span class="plain-syntax">(</span><span class="string-syntax">"'%4' was okay; "</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_segment</span><span class="plain-syntax">(</span><span class="string-syntax">"'%4' was okay; "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> ==&gt; { </span><span class="constant-syntax">1</span><span class="plain-syntax">, - };</span> <span class="plain-syntax"> ==&gt; { </span><span class="constant-syntax">1</span><span class="plain-syntax">, - };</span>

View file

@ -292,6 +292,7 @@ see <a href="1-ls.html#SP19" class="internal">LargeScale::begin_new_tree</a> &md
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="reserved-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="function-syntax">Packaging::enter</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">Packaging::enter</span></span>:<br/>Large-Scale Structure - <a href="1-ls.html#SP7">&#167;7</a>, <a href="1-ls.html#SP19">&#167;19</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="function-syntax">Packaging::enter</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">Packaging::enter</span></span>:<br/>Large-Scale Structure - <a href="1-ls.html#SP7">&#167;7</a>, <a href="1-ls.html#SP19">&#167;19</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">R</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 such package request"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">PACKAGING</span><span class="plain-syntax">, </span><span class="string-syntax">"Entering $X\n"</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">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">PACKAGING</span><span class="plain-syntax">, </span><span class="string-syntax">"Entering $X\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">R</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">tree</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">site</span><span class="plain-syntax">.</span><span class="element-syntax">spdata</span><span class="plain-syntax">.</span><span class="element-syntax">current_state</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">R</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">tree</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">site</span><span class="plain-syntax">.</span><span class="element-syntax">spdata</span><span class="plain-syntax">.</span><span class="element-syntax">current_state</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="1-pck.html#SP13" class="function-link"><span class="function-syntax">Packaging::incarnate</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="1-pck.html#SP13" class="function-link"><span class="function-syntax">Packaging::incarnate</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>

View file

@ -822,8 +822,18 @@ extracts a single specified scene if there is one:
<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="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP29" class="paragraph-anchor"></a><b>&#167;29. </b>And this is used to make metadata for indexing.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="function-syntax">Scenes::during_wording</span><span class="plain-syntax">(</span><span class="identifier-syntax">id_runtime_context_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">idrcd</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">idrcd</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">scenes_rcd_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">srcd</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RCD_PLUGIN_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">scenes</span><span class="plain-syntax">, </span><span class="identifier-syntax">idrcd</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">srcd</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">srcd</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">during_scene</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">EMPTY_WORDING</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre> </pre>
<nav role="progress"><div class="progresscontainer"> <nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="3-tr.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-bd.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-sm.html">sm</a></li><li class="progresssection"><a href="3-enah.html">enah</a></li><li class="progresssection"><a href="3-sr.html">sr</a></li><li class="progresssection"><a href="3-si.html">si</a></li><li class="progresssection"><a href="3-prs.html">prs</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-dvc.html">dvc</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresssection"><a href="3-mcr.html">mcr</a></li><li class="progresssection"><a href="3-tr.html">tr</a></li><li class="progresscurrent">scn</li><li class="progresssection"><a href="3-ts.html">ts</a></li><li class="progresssection"><a href="3-mhr.html">mhr</a></li><li class="progresschapter"><a href="4-ap.html">4</a></li><li class="progresschapter"><a href="5-pp.html">5</a></li><li class="progressnext"><a href="3-ts.html">&#10095;</a></li></ul></div> <ul class="progressbar"><li class="progressprev"><a href="3-tr.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-bd.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-sm.html">sm</a></li><li class="progresssection"><a href="3-enah.html">enah</a></li><li class="progresssection"><a href="3-sr.html">sr</a></li><li class="progresssection"><a href="3-si.html">si</a></li><li class="progresssection"><a href="3-prs.html">prs</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-dvc.html">dvc</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresssection"><a href="3-mcr.html">mcr</a></li><li class="progresssection"><a href="3-tr.html">tr</a></li><li class="progresscurrent">scn</li><li class="progresssection"><a href="3-ts.html">ts</a></li><li class="progresssection"><a href="3-mhr.html">mhr</a></li><li class="progresschapter"><a href="4-ap.html">4</a></li><li class="progresschapter"><a href="5-pp.html">5</a></li><li class="progressnext"><a href="3-ts.html">&#10095;</a></li></ul></div>

View file

@ -282,6 +282,20 @@ same object in a container, a room or a region respectively.
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-sr.html#SP4_5" class="named-paragraph-link"><span class="named-paragraph">Assert the worn and wearable properties</span><span class="named-paragraph-number">4.5</span></a></span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-sr.html#SP4_5" class="named-paragraph-link"><span class="named-paragraph">Assert the worn and wearable properties</span><span class="named-paragraph-number">4.5</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><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I1</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">StandardProblems::sentence_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_UndefinedContainment</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="string-syntax">"this asks to put something whose identity I don't know inside something else"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"and the reason I don't know that identity is that it isn't either a name "</span>
<span class="plain-syntax"> </span><span class="string-syntax">"of a room or thing, or of a constant or variable set to a room or thing."</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I0</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">StandardProblems::sentence_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_UndefinedContainment2</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="string-syntax">"this asks to put something inside something else whose identity I don't know"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"and the reason I don't know that identity is that it isn't either a name "</span>
<span class="plain-syntax"> </span><span class="string-syntax">"of a room or thing, or of a constant or variable set to a room or thing."</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>

View file

@ -827,6 +827,7 @@ something other than something &mdash; or <span class="extract"><span class="ext
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">anl_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">entry</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RP</span><span class="plain-syntax">[1];</span> <span class="plain-syntax"> </span><span class="reserved-syntax">anl_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">entry</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RP</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">entry</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">entry</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">entry</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">item</span><span class="plain-syntax">.</span><span class="element-syntax">action_listed</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) ||</span>
<span class="plain-syntax"> (</span><a href="4-as.html#SP4" class="function-link"><span class="function-syntax">ActionSemantics::can_have_noun</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">entry</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">item</span><span class="plain-syntax">.</span><span class="element-syntax">action_listed</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)) {</span> <span class="plain-syntax"> (</span><a href="4-as.html#SP4" class="function-link"><span class="function-syntax">ActionSemantics::can_have_noun</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">entry</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">item</span><span class="plain-syntax">.</span><span class="element-syntax">action_listed</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> ==&gt; { </span><span class="identifier-syntax">fail</span><span class="plain-syntax"> </span><span class="identifier-syntax">production</span><span class="plain-syntax"> };</span> <span class="plain-syntax"> ==&gt; { </span><span class="identifier-syntax">fail</span><span class="plain-syntax"> </span><span class="identifier-syntax">production</span><span class="plain-syntax"> };</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>

View file

@ -379,6 +379,8 @@ this purpose, so:
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-cgl.html#SP15_1" class="named-paragraph-link"><span class="named-paragraph">Annotate the CG tokens with slash-class and slash-dash-dash</span><span class="named-paragraph-number">15.1</span></a></span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-cgl.html#SP15_1" class="named-paragraph-link"><span class="named-paragraph">Annotate the CG tokens with slash-class and slash-dash-dash</span><span class="named-paragraph-number">15.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-cgl.html#SP15_2" class="named-paragraph-link"><span class="named-paragraph">Throw a problem if slash has been used with non-literal tokens</span><span class="named-paragraph-number">15.2</span></a></span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-cgl.html#SP15_2" class="named-paragraph-link"><span class="named-paragraph">Throw a problem if slash has been used with non-literal tokens</span><span class="named-paragraph-number">15.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-cgl.html#SP15_3" class="named-paragraph-link"><span class="named-paragraph">Calculate the lexeme count</span><span class="named-paragraph-number">15.3</span></a></span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-cgl.html#SP15_3" class="named-paragraph-link"><span class="named-paragraph">Calculate the lexeme count</span><span class="named-paragraph-number">15.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">cg</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">cg_is</span><span class="plain-syntax"> != </span><span class="constant-syntax">CG_IS_COMMAND</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">cg</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">cg_is</span><span class="plain-syntax"> != </span><span class="constant-syntax">CG_IS_TOKEN</span><span class="plain-syntax">)) </span><span class="named-paragraph-container code-font"><a href="5-cgl.html#SP15_4" class="named-paragraph-link"><span class="named-paragraph">Disallow a potentially empty line</span><span class="named-paragraph-number">15.4</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre> </pre>
@ -500,6 +502,44 @@ of groups arising from the calculations just done. In this example there are 4:
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-cgl.html#SP15">&#167;15</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="5-cgl.html#SP15">&#167;15</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP15_4" class="paragraph-anchor"></a><b>&#167;15.4. </b>The following catches grammar such as:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">Understand</span><span class="plain-syntax"> </span><span class="string-syntax">"Prof/--"</span><span class="plain-syntax"> </span><span class="identifier-syntax">as</span><span class="plain-syntax"> </span><span class="identifier-syntax">Professor</span><span class="plain-syntax"> </span><span class="identifier-syntax">Zaphier</span><span class="plain-syntax">.</span>
</pre>
<p class="commentary">which would otherwise compile fine, but lead to a hang of the story file when
attempting to recognise Zaphier's name.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Disallow a potentially empty line</span><span class="named-paragraph-number">15.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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">possibly_empty</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_THROUGH_CG_TOKENS</span><span class="plain-syntax">(</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="identifier-syntax">cgl</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> = </span><span class="identifier-syntax">cgt</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">slash_class</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">possibly_empty</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</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">dashdashed</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">slash_dash_dash</span><span class="plain-syntax">) </span><span class="identifier-syntax">dashdashed</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next_token</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next_token</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">slash_class</span><span class="plain-syntax"> == </span><span class="identifier-syntax">i</span><span class="plain-syntax">)) </span><span class="identifier-syntax">cgt</span><span class="plain-syntax"> = </span><span class="identifier-syntax">cgt</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next_token</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">dashdashed</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="identifier-syntax">possibly_empty</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">possibly_empty</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">StandardProblems::sentence_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</span><span class="plain-syntax">(),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_EmptyUnderstandLine</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="string-syntax">"the optional '--' word has been used here in such a way that it "</span>
<span class="plain-syntax"> </span><span class="string-syntax">"would be possible for a completely empty phrase to be understood "</span>
<span class="plain-syntax"> </span><span class="string-syntax">"in this context"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"but that isn't allowed."</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-cgl.html#SP15">&#167;15</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>&#167;16. Determining the line. </b>Here the aim is to find the <a href="5-dt.html#SP1" class="internal">determination_type</a> of a CGL. Sneakily, though, <p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>&#167;16. Determining the line. </b>Here the aim is to find the <a href="5-dt.html#SP1" class="internal">determination_type</a> of a CGL. Sneakily, though,
we also take the opportunity to calculate its two "sorting bonuses", which we also take the opportunity to calculate its two "sorting bonuses", which
affect how the list will be arranged when it is compiled. affect how the list will be arranged when it is compiled.

View file

@ -94,11 +94,12 @@ again for short periods of time:
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">formal_par_vars_made</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span> <span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">formal_par_vars_made</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">formal_par_VAR</span><span class="plain-syntax">[8];</span> <span class="identifier-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">formal_par_VAR</span><span class="plain-syntax">[8];</span>
<span class="identifier-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="function-syntax">TemporaryVariables::formal_parameter</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">TemporaryVariables::formal_parameter</span></span>:<br/>Functions - <a href="3-fnc.html#SP6_1_2">&#167;6.1.2</a>, <a href="3-fnc.html#SP6_1_4">&#167;6.1.4</a><br/>Compile Invocations - <a href="5-ci.html#SP1_3_1_2_1_1_1">&#167;1.3.1.2.1.1.1</a>, <a href="5-ci.html#SP1_3_1_2_1_2">&#167;1.3.1.2.1.2</a>, <a href="5-ci.html#SP1_3_1_2_1_3">&#167;1.3.1.2.1.3</a></span></button><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">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="function-syntax">TemporaryVariables::formal_parameter</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">TemporaryVariables::formal_parameter</span></span>:<br/>Functions - <a href="3-fnc.html#SP6_1_2">&#167;6.1.2</a>, <a href="3-fnc.html#SP6_1_4">&#167;6.1.4</a><br/>Compile Invocations - <a href="5-ci.html#SP1_3_1_2_1_1_1">&#167;1.3.1.2.1.1.1</a>, <a href="5-ci.html#SP1_3_1_2_1_2">&#167;1.3.1.2.1.2</a>, <a href="5-ci.html#SP1_3_1_2_1_3">&#167;1.3.1.2.1.3</a></span></button><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="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="constant-syntax">8</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"too many formal parameter variables"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">formal_par_vars_made</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">formal_par_vars_made</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">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;8; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">j</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">j</span><span class="plain-syntax">&lt;8; </span><span class="identifier-syntax">j</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">formal_par_VAR</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">] = </span><span class="identifier-syntax">NonlocalVariables::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</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">formal_par_VAR</span><span class="plain-syntax">[</span><span class="identifier-syntax">j</span><span class="plain-syntax">] = </span><span class="identifier-syntax">NonlocalVariables::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</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">RTVariables::set_hierarchy_location</span><span class="plain-syntax">(</span><span class="identifier-syntax">formal_par_VAR</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">RTVariables::set_hierarchy_location</span><span class="plain-syntax">(</span><span class="identifier-syntax">formal_par_VAR</span><span class="plain-syntax">[</span><span class="identifier-syntax">j</span><span class="plain-syntax">],</span>
<span class="plain-syntax"> </span><a href="3-tv.html#SP2" class="function-link"><span class="function-syntax">TemporaryVariables::hl_of_formal_parameter</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="3-tv.html#SP2" class="function-link"><span class="function-syntax">TemporaryVariables::hl_of_formal_parameter</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">j</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">formal_par_vars_made</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">formal_par_vars_made</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>

View file

@ -151,23 +151,34 @@ sets the kinds of the cinder values in the deferred function.
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Cinders::compile_cindered_values</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">Cinders::compile_cindered_values</span></span>:<br/>Compile Loops - <a href="4-cl.html#SP2">&#167;2</a><br/>Deciding to Defer - <a href="4-dtd.html#SP4_2">&#167;4.2</a>, <a href="4-dtd.html#SP10">&#167;10</a>, <a href="4-dtd.html#SP11">&#167;11</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">pcalc_prop</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop</span><span class="plain-syntax">, </span><span class="reserved-syntax">pcalc_prop_deferral</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pdef</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Cinders::compile_cindered_values</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">Cinders::compile_cindered_values</span></span>:<br/>Compile Loops - <a href="4-cl.html#SP2">&#167;2</a><br/>Deciding to Defer - <a href="4-dtd.html#SP4_2">&#167;4.2</a>, <a href="4-dtd.html#SP10">&#167;10</a>, <a href="4-dtd.html#SP11">&#167;11</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">pcalc_prop</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop</span><span class="plain-syntax">, </span><span class="reserved-syntax">pcalc_prop_deferral</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pdef</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">pcalc_prop_deferral</span><span class="plain-syntax"> *</span><span class="identifier-syntax">save_current_pdef</span><span class="plain-syntax"> = </span><span class="identifier-syntax">current_pdef</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">pcalc_prop_deferral</span><span class="plain-syntax"> *</span><span class="identifier-syntax">save_current_pdef</span><span class="plain-syntax"> = </span><span class="identifier-syntax">current_pdef</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">current_pdef</span><span class="plain-syntax"> = </span><span class="identifier-syntax">pdef</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">current_pdef</span><span class="plain-syntax"> = </span><span class="identifier-syntax">pdef</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">overflowed</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">TRAVERSE_VARIABLE</span><span class="plain-syntax">(</span><span class="identifier-syntax">atom</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">TRAVERSE_VARIABLE</span><span class="plain-syntax">(</span><span class="identifier-syntax">atom</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TRAVERSE_PROPOSITION</span><span class="plain-syntax">(</span><span class="identifier-syntax">atom</span><span class="plain-syntax">, </span><span class="identifier-syntax">prop</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="identifier-syntax">TRAVERSE_PROPOSITION</span><span class="plain-syntax">(</span><span class="identifier-syntax">atom</span><span class="plain-syntax">, </span><span class="identifier-syntax">prop</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">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;atom-&gt;</span><span class="identifier-syntax">arity</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++)</span> <span class="plain-syntax"> </span><span class="reserved-syntax">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;atom-&gt;</span><span class="identifier-syntax">arity</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax"> = </span><a href="4-cad.html#SP4" class="function-link"><span class="function-syntax">Cinders::compile_cindered_value_in_term</span></a><span class="plain-syntax">(&amp;(</span><span class="identifier-syntax">atom</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">terms</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</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">N</span><span class="plain-syntax"> = </span><a href="4-cad.html#SP4" class="function-link"><span class="function-syntax">Cinders::compile_cindered_value_in_term</span></a><span class="plain-syntax">(&amp;(</span><span class="identifier-syntax">atom</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">terms</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">]), </span><span class="identifier-syntax">N</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">overflowed</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">current_pdef</span><span class="plain-syntax"> = </span><span class="identifier-syntax">save_current_pdef</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">current_pdef</span><span class="plain-syntax"> = </span><span class="identifier-syntax">save_current_pdef</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">overflowed</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax"> = </span><span class="identifier-syntax">pdef</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">deferred_from</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">StandardProblems::sentence_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</span><span class="plain-syntax">(),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_CinderOverflow</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="string-syntax">"this complicated condition makes use of too many temporary values"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"and will have to be simplified."</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">N</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Cinders::compile_cindered_value_in_term</span><span class="plain-syntax">(</span><span class="identifier-syntax">pcalc_term</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pt</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Cinders::compile_cindered_value_in_term</span><span class="plain-syntax">(</span><span class="identifier-syntax">pcalc_term</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pt</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> *</span><span class="identifier-syntax">overflowed</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">pt</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">function</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">pt</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">function</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-cad.html#SP4" class="function-link"><span class="function-syntax">Cinders::compile_cindered_value_in_term</span></a><span class="plain-syntax">(&amp;(</span><span class="identifier-syntax">pt</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">function</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">fn_of</span><span class="plain-syntax">), </span><span class="identifier-syntax">N</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-cad.html#SP4" class="function-link"><span class="function-syntax">Cinders::compile_cindered_value_in_term</span></a><span class="plain-syntax">(&amp;(</span><span class="identifier-syntax">pt</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">function</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">fn_of</span><span class="plain-syntax">), </span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="identifier-syntax">overflowed</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">pt</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">constant</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">pt</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">constant</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-cad.html#SP1" class="function-link"><span class="function-syntax">Cinders::needs_to_be_cindered</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pt</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">constant</span><span class="plain-syntax">)) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-cad.html#SP1" class="function-link"><span class="function-syntax">Cinders::needs_to_be_cindered</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pt</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">constant</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">pt</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">cinder</span><span class="plain-syntax"> = </span><span class="identifier-syntax">N</span><span class="plain-syntax">++;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">MAX_CINDERS_PER_DEFERRAL</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-cv.html#SP5" class="function-link"><span class="function-syntax">CompileValues::to_code_val</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pt</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">constant</span><span class="plain-syntax">);</span> <span class="plain-syntax"> *</span><span class="identifier-syntax">overflowed</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">current_pdef</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">cinder_kinds</span><span class="plain-syntax">[</span><span class="identifier-syntax">pt</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">cinder</span><span class="plain-syntax">] = </span><span class="identifier-syntax">Specifications::to_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">pt</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">constant</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">pt</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">cinder</span><span class="plain-syntax"> = </span><span class="identifier-syntax">N</span><span class="plain-syntax">++;</span>
<span class="plain-syntax"> </span><a href="2-cv.html#SP5" class="function-link"><span class="function-syntax">CompileValues::to_code_val</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pt</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">constant</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">current_pdef</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">cinder_kinds</span><span class="plain-syntax">[</span><span class="identifier-syntax">pt</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">cinder</span><span class="plain-syntax">] = </span><span class="identifier-syntax">Specifications::to_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">pt</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">constant</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span> <span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">pt</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">cinder</span><span class="plain-syntax"> = -1;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">pt</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">cinder</span><span class="plain-syntax"> = -1;</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
@ -231,6 +242,8 @@ kind is then part of the information recorded at deferral time.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">pt</span><span class="plain-syntax">.</span><span class="identifier-syntax">cinder</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">pt</span><span class="plain-syntax">.</span><span class="identifier-syntax">cinder</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">current_pdef</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">current_pdef</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">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"cindered term outside of deferral"</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">"cindered term outside of deferral"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">pt</span><span class="plain-syntax">.</span><span class="identifier-syntax">cinder</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">MAX_CINDERS_PER_DEFERRAL</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">"cinder out of range"</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">current_pdef</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">cinder_kinds</span><span class="plain-syntax">[</span><span class="identifier-syntax">pt</span><span class="plain-syntax">.</span><span class="identifier-syntax">cinder</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">current_pdef</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">cinder_kinds</span><span class="plain-syntax">[</span><span class="identifier-syntax">pt</span><span class="plain-syntax">.</span><span class="identifier-syntax">cinder</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">Specifications::is_phrasal</span><span class="plain-syntax">(</span><span class="identifier-syntax">pt</span><span class="plain-syntax">.</span><span class="identifier-syntax">constant</span><span class="plain-syntax">))</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Specifications::is_phrasal</span><span class="plain-syntax">(</span><span class="identifier-syntax">pt</span><span class="plain-syntax">.</span><span class="identifier-syntax">constant</span><span class="plain-syntax">))</span>

View file

@ -162,8 +162,8 @@ this is plenty large enough:
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-cdp.html#SP3_2" class="named-paragraph-link"><span class="named-paragraph">Simplify the proposition by flipping negated quantifiers, if possible</span><span class="named-paragraph-number">3.2</span></a></span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-cdp.html#SP3_2" class="named-paragraph-link"><span class="named-paragraph">Simplify the proposition by flipping negated quantifiers, if possible</span><span class="named-paragraph-number">3.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">PREDICATE_CALCULUS</span><span class="plain-syntax">, </span><span class="string-syntax">"Compiling deferred proposition: %d: reason %d: $D\n"</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">PREDICATE_CALCULUS</span><span class="plain-syntax">, </span><span class="string-syntax">"Compiling %n as deferred proposition: %d: reason %d: $D\n"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">pdef</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">, </span><span class="identifier-syntax">pdef</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">reason</span><span class="plain-syntax">, </span><span class="identifier-syntax">proposition</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">pdef</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ppd_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">pdef</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">, </span><span class="identifier-syntax">pdef</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">reason</span><span class="plain-syntax">, </span><span class="identifier-syntax">proposition</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><a href="3-fnc.html#SP2" class="function-link"><span class="function-syntax">Functions::begin</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pdef</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ppd_iname</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><a href="3-fnc.html#SP2" class="function-link"><span class="function-syntax">Functions::begin</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pdef</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ppd_iname</span><span class="plain-syntax">);</span>

View file

@ -89,6 +89,7 @@ at runtime.
<span class="definition-keyword">define</span> <span class="constant-syntax">RANDOM_OF_DEFER</span><span class="plain-syntax"> </span><span class="constant-syntax">7</span><span class="plain-syntax"> </span><span class="comment-syntax"> "a random X"</span> <span class="definition-keyword">define</span> <span class="constant-syntax">RANDOM_OF_DEFER</span><span class="plain-syntax"> </span><span class="constant-syntax">7</span><span class="plain-syntax"> </span><span class="comment-syntax"> "a random X"</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">LIST_OF_DEFER</span><span class="plain-syntax"> </span><span class="constant-syntax">8</span><span class="plain-syntax"> </span><span class="comment-syntax"> "the list of X"</span> <span class="definition-keyword">define</span> <span class="constant-syntax">LIST_OF_DEFER</span><span class="plain-syntax"> </span><span class="constant-syntax">8</span><span class="plain-syntax"> </span><span class="comment-syntax"> "the list of X"</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">MULTIPURPOSE_DEFER</span><span class="plain-syntax"> </span><span class="constant-syntax">100</span><span class="plain-syntax"> </span><span class="comment-syntax"> potentially any of the above</span> <span class="definition-keyword">define</span> <span class="constant-syntax">MULTIPURPOSE_DEFER</span><span class="plain-syntax"> </span><span class="constant-syntax">100</span><span class="plain-syntax"> </span><span class="comment-syntax"> potentially any of the above</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">MAX_CINDERS_PER_DEFERRAL</span><span class="plain-syntax"> </span><span class="constant-syntax">16</span>
</pre> </pre>
<pre class="displayed-code all-displayed-code code-font"> <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">pcalc_prop_deferral</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">pcalc_prop_deferral</span><span class="plain-syntax"> {</span>
@ -96,7 +97,7 @@ at runtime.
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">pcalc_prop</span><span class="plain-syntax"> *</span><span class="identifier-syntax">proposition_to_defer</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">pcalc_prop</span><span class="plain-syntax"> *</span><span class="identifier-syntax">proposition_to_defer</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">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">deferred_from</span><span class="plain-syntax">; </span><span class="comment-syntax"> remember where it came from, for Problem reports</span> <span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">deferred_from</span><span class="plain-syntax">; </span><span class="comment-syntax"> remember where it came from, for Problem reports</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">general_pointer</span><span class="plain-syntax"> </span><span class="identifier-syntax">defn_ref</span><span class="plain-syntax">; </span><span class="comment-syntax"> sometimes we must remember other things too</span> <span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">general_pointer</span><span class="plain-syntax"> </span><span class="identifier-syntax">defn_ref</span><span class="plain-syntax">; </span><span class="comment-syntax"> sometimes we must remember other things too</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cinder_kinds</span><span class="plain-syntax">[16]; </span><span class="comment-syntax"> the kinds of value being cindered (see below)</span> <span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cinder_kinds</span><span class="plain-syntax">[</span><span class="constant-syntax">MAX_CINDERS_PER_DEFERRAL</span><span class="plain-syntax">]; </span><span class="comment-syntax"> the kinds of value being cindered (see below)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ppd_iname</span><span class="plain-syntax">; </span><span class="comment-syntax"> function to implement this</span> <span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ppd_iname</span><span class="plain-syntax">; </span><span class="comment-syntax"> function to implement this</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rtp_iname</span><span class="plain-syntax">; </span><span class="comment-syntax"> compile a string of the origin text for run-time problems?</span> <span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rtp_iname</span><span class="plain-syntax">; </span><span class="comment-syntax"> compile a string of the origin text for run-time problems?</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span> <span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>

View file

@ -369,36 +369,50 @@ of adjacent rules in a listing:
<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::optional_textual</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::optional_textual</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">italicised_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::optional_textual</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^index_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">italicised_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::optional_textual</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^index_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">first_line</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::optional_textual</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^first_line"</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">first_line</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::optional_textual</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^first_line"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">italicised_text</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="2-ir.html#SP12_1" class="named-paragraph-link"><span class="named-paragraph">Index the italicised text to do with the rule</span><span class="named-paragraph-number">12.1</span></a></span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">italicised_text</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="2-ir.html#SP12_2" class="named-paragraph-link"><span class="named-paragraph">Index the italicised text to do with the rule</span><span class="named-paragraph-number">12.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</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="2-ir.html#SP12_2" class="named-paragraph-link"><span class="named-paragraph">Index the rule name along with Javascript buttons</span><span class="named-paragraph-number">12.2</span></a></span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-ir.html#SP12_1" class="named-paragraph-link"><span class="named-paragraph">Index the during condition</span><span class="named-paragraph-number">12.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</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="2-ir.html#SP12_3" class="named-paragraph-link"><span class="named-paragraph">Index the rule name along with Javascript buttons</span><span class="named-paragraph-number">12.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">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">italicised_text</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) &amp;&amp;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">italicised_text</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Str::len</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">) &amp;&amp; (</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">first_line</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">Str::len</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">) &amp;&amp; (</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">first_line</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="named-paragraph-container code-font"><a href="2-ir.html#SP12_4" class="named-paragraph-link"><span class="named-paragraph">Index some text extracted from the first line of the otherwise anonymous rule</span><span class="named-paragraph-number">12.4</span></a></span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-ir.html#SP12_5" class="named-paragraph-link"><span class="named-paragraph">Index some text extracted from the first line of the otherwise anonymous rule</span><span class="named-paragraph-number">12.5</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-ir.html#SP12_5" class="named-paragraph-link"><span class="named-paragraph">Index a link to the first line of the rule's definition</span><span class="named-paragraph-number">12.5</span></a></span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-ir.html#SP12_6" class="named-paragraph-link"><span class="named-paragraph">Index a link to the first line of the rule's definition</span><span class="named-paragraph-number">12.6</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-ir.html#SP12_6" class="named-paragraph-link"><span class="named-paragraph">Index the small type rule numbering</span><span class="named-paragraph-number">12.6</span></a></span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-ir.html#SP12_7" class="named-paragraph-link"><span class="named-paragraph">Index the small type rule numbering</span><span class="named-paragraph-number">12.7</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-ir.html#SP12_7" class="named-paragraph-link"><span class="named-paragraph">Index any applicability conditions</span><span class="named-paragraph-number">12.7</span></a></span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-ir.html#SP12_8" class="named-paragraph-link"><span class="named-paragraph">Index any applicability conditions</span><span class="named-paragraph-number">12.8</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-ir.html#SP12_3" class="named-paragraph-link"><span class="named-paragraph">Index any response texts in the rule</span><span class="named-paragraph-number">12.3</span></a></span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-ir.html#SP12_4" class="named-paragraph-link"><span class="named-paragraph">Index any response texts in the rule</span><span class="named-paragraph-number">12.4</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">no_responses_indexed</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">no_responses_indexed</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP12_1" class="paragraph-anchor"></a><b>&#167;12.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Index the italicised text to do with the rule</span><span class="named-paragraph-number">12.1</span></span><span class="comment-syntax"> =</span> <p class="commentary firstcommentary"><a id="SP12_1" class="paragraph-anchor"></a><b>&#167;12.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Index the during condition</span><span class="named-paragraph-number">12.1</span></span><span class="comment-syntax"> =</span>
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&lt;i&gt;%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">italicised_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">rc</span><span class="plain-syntax">.</span><span class="identifier-syntax">scene_context</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">rc</span><span class="plain-syntax">.</span><span class="identifier-syntax">scene_context</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" "</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&lt;i&gt;"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Localisation::roman_t</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.During"</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="identifier-syntax">Localisation::roman_t</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.During"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="2-fs.html#SP5" class="function-link"><span class="function-syntax">FauxScenes::scene_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">rc</span><span class="plain-syntax">.</span><span class="element-syntax">scene_context</span><span class="plain-syntax">));</span> <span class="plain-syntax"> </span><a href="2-fs.html#SP5" class="function-link"><span class="function-syntax">FauxScenes::scene_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">rc</span><span class="plain-syntax">.</span><span class="element-syntax">scene_context</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&lt;/i&gt;&amp;nbsp;&amp;nbsp;"</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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">during_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::optional_textual</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^during_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">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">during_text</span><span class="plain-syntax">) &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&lt;i&gt;"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Localisation::roman_t</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.During"</span><span class="plain-syntax">, </span><span class="identifier-syntax">during_text</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&lt;/i&gt;&amp;nbsp;&amp;nbsp;"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&lt;/i&gt;&amp;nbsp;&amp;nbsp;"</span><span class="plain-syntax">);</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-ir.html#SP12">&#167;12</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="2-ir.html#SP12">&#167;12</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP12_2" class="paragraph-anchor"></a><b>&#167;12.2. </b></p> <p class="commentary firstcommentary"><a id="SP12_2" class="paragraph-anchor"></a><b>&#167;12.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Index the italicised text to do with the rule</span><span class="named-paragraph-number">12.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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&lt;i&gt;%S&lt;/i&gt;&amp;nbsp;&amp;nbsp;"</span><span class="plain-syntax">, </span><span class="identifier-syntax">italicised_text</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-ir.html#SP12">&#167;12</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP12_3" class="paragraph-anchor"></a><b>&#167;12.3. </b></p>
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">MAX_PASTEABLE_RULE_NAME_LENGTH</span><span class="plain-syntax"> </span><span class="constant-syntax">500</span> <pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">MAX_PASTEABLE_RULE_NAME_LENGTH</span><span class="plain-syntax"> </span><span class="constant-syntax">500</span>
</pre> </pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Index the rule name along with Javascript buttons</span><span class="named-paragraph-number">12.2</span></span><span class="comment-syntax"> =</span> <p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Index the rule name along with Javascript buttons</span><span class="named-paragraph-number">12.3</span></span><span class="comment-syntax"> =</span>
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
@ -430,7 +444,7 @@ of adjacent rules in a listing:
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-ir.html#SP12">&#167;12</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="2-ir.html#SP12">&#167;12</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP12_3" class="paragraph-anchor"></a><b>&#167;12.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Index any response texts in the rule</span><span class="named-paragraph-number">12.3</span></span><span class="comment-syntax"> =</span> <p class="commentary firstcommentary"><a id="SP12_4" class="paragraph-anchor"></a><b>&#167;12.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Index any response texts in the rule</span><span class="named-paragraph-number">12.4</span></span><span class="comment-syntax"> =</span>
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
@ -449,21 +463,21 @@ of adjacent rules in a listing:
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-ir.html#SP12">&#167;12</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="2-ir.html#SP12">&#167;12</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP12_4" class="paragraph-anchor"></a><b>&#167;12.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Index some text extracted from the first line of the otherwise anonymous rule</span><span class="named-paragraph-number">12.4</span></span><span class="comment-syntax"> =</span> <p class="commentary firstcommentary"><a id="SP12_5" class="paragraph-anchor"></a><b>&#167;12.5. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Index some text extracted from the first line of the otherwise anonymous rule</span><span class="named-paragraph-number">12.5</span></span><span class="comment-syntax"> =</span>
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"(%S)"</span><span class="plain-syntax">, </span><span class="identifier-syntax">first_line</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"(%S)"</span><span class="plain-syntax">, </span><span class="identifier-syntax">first_line</span><span class="plain-syntax">);</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-ir.html#SP12">&#167;12</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="2-ir.html#SP12">&#167;12</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP12_5" class="paragraph-anchor"></a><b>&#167;12.5. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Index a link to the first line of the rule's definition</span><span class="named-paragraph-number">12.5</span></span><span class="comment-syntax"> =</span> <p class="commentary firstcommentary"><a id="SP12_6" class="paragraph-anchor"></a><b>&#167;12.6. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Index a link to the first line of the rule's definition</span><span class="named-paragraph-number">12.6</span></span><span class="comment-syntax"> =</span>
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="2-iu.html#SP2" class="function-link"><span class="function-syntax">IndexUtilities::link_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-iu.html#SP2" class="function-link"><span class="function-syntax">IndexUtilities::link_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-ir.html#SP12">&#167;12</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="2-ir.html#SP12">&#167;12</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP12_6" class="paragraph-anchor"></a><b>&#167;12.6. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Index the small type rule numbering</span><span class="named-paragraph-number">12.6</span></span><span class="comment-syntax"> =</span> <p class="commentary firstcommentary"><a id="SP12_7" class="paragraph-anchor"></a><b>&#167;12.7. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Index the small type rule numbering</span><span class="named-paragraph-number">12.7</span></span><span class="comment-syntax"> =</span>
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
@ -476,7 +490,7 @@ of adjacent rules in a listing:
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-ir.html#SP12">&#167;12</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="2-ir.html#SP12">&#167;12</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP12_7" class="paragraph-anchor"></a><b>&#167;12.7. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Index any applicability conditions</span><span class="named-paragraph-number">12.7</span></span><span class="comment-syntax"> =</span> <p class="commentary firstcommentary"><a id="SP12_8" class="paragraph-anchor"></a><b>&#167;12.8. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Index any applicability conditions</span><span class="named-paragraph-number">12.8</span></span><span class="comment-syntax"> =</span>
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
@ -496,7 +510,7 @@ text to assert a change:
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IndexRules::index_response</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">IndexRules::index_response</span></span>:<br/><a href="2-ir.html#SP12_3">&#167;12.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rule_pack</span><span class="plain-syntax">,</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IndexRules::index_response</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">IndexRules::index_response</span></span>:<br/><a href="2-ir.html#SP12_4">&#167;12.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rule_pack</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">resp_pack</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> <span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">resp_pack</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>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">marker</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">int</span><span class="plain-syntax">) </span><span class="identifier-syntax">Metadata::read_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">resp_pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^marker"</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">marker</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">int</span><span class="plain-syntax">) </span><span class="identifier-syntax">Metadata::read_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">resp_pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^marker"</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">text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::required_textual</span><span class="plain-syntax">(</span><span class="identifier-syntax">resp_pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^index_text"</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">text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::required_textual</span><span class="plain-syntax">(</span><span class="identifier-syntax">resp_pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^index_text"</span><span class="plain-syntax">);</span>

View file

@ -136,7 +136,7 @@ the source text in the application.
<span class="plain-syntax"> </span><a href="2-iu.html#SP2" class="function-link"><span class="function-syntax">IndexUtilities::link_to_location</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Lexer::word_location</span><span class="plain-syntax">(</span><span class="identifier-syntax">wn</span><span class="plain-syntax">), </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-iu.html#SP2" class="function-link"><span class="function-syntax">IndexUtilities::link_to_location</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Lexer::word_location</span><span class="plain-syntax">(</span><span class="identifier-syntax">wn</span><span class="plain-syntax">), </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IndexUtilities::link_package</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">IndexUtilities::link_package</span></span>:<br/><a href="2-iu.html#SP11">&#167;11</a><br/>Index Rules - <a href="2-ir.html#SP8_2">&#167;8.2</a>, <a href="2-ir.html#SP12_5">&#167;12.5</a>, <a href="2-ir.html#SP12_7">&#167;12.7</a>, <a href="2-ir.html#SP14">&#167;14</a>, <a href="2-ir.html#SP15">&#167;15</a>, <a href="2-ir.html#SP15_1">&#167;15.1</a><br/>Arithmetic Element - <a href="3-ae2.html#SP1_3">&#167;1.3</a><br/>Behaviour Element - <a href="3-be.html#SP1">&#167;1</a><br/>Chart Element - <a href="3-ce2.html#SP6_4">&#167;6.4</a>, <a href="3-ce2.html#SP7_1">&#167;7.1</a><br/>Commands Element - <a href="3-ce3.html#SP2">&#167;2</a><br/>Contents Element - <a href="3-ce4.html#SP1_2_1">&#167;1.2.1</a>, <a href="3-ce4.html#SP2_1">&#167;2.1</a><br/>Events Element - <a href="3-ee.html#SP1_1">&#167;1.1</a>, <a href="3-ee.html#SP1_2">&#167;1.2</a><br/>Figures Element - <a href="3-fe.html#SP1_1_1_2">&#167;1.1.1.2</a>, <a href="3-fe.html#SP1_2_1_2">&#167;1.2.1.2</a>, <a href="3-fe.html#SP1_3_1">&#167;1.3.1</a><br/>Grouped Element - <a href="3-ge2.html#SP1">&#167;1</a>, <a href="3-ge2.html#SP2_1_2">&#167;2.1.2</a>, <a href="3-ge2.html#SP3">&#167;3</a><br/>Plot Element - <a href="3-pe2.html#SP1_3_1_1">&#167;1.3.1.1</a><br/>Relations Element - <a href="3-re.html#SP1">&#167;1</a><br/>Tables Element - <a href="3-te.html#SP1_3_1_1">&#167;1.3.1.1</a><br/>Tokens Element - <a href="3-te2.html#SP2">&#167;2</a><br/>Values Element - <a href="3-ve.html#SP1_1_2">&#167;1.1.2</a><br/>Verbs Element - <a href="3-ve2.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IndexUtilities::link_package</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">IndexUtilities::link_package</span></span>:<br/><a href="2-iu.html#SP11">&#167;11</a><br/>Index Rules - <a href="2-ir.html#SP8_2">&#167;8.2</a>, <a href="2-ir.html#SP12_6">&#167;12.6</a>, <a href="2-ir.html#SP12_8">&#167;12.8</a>, <a href="2-ir.html#SP14">&#167;14</a>, <a href="2-ir.html#SP15">&#167;15</a>, <a href="2-ir.html#SP15_1">&#167;15.1</a><br/>Arithmetic Element - <a href="3-ae2.html#SP1_3">&#167;1.3</a><br/>Behaviour Element - <a href="3-be.html#SP1">&#167;1</a><br/>Chart Element - <a href="3-ce2.html#SP6_4">&#167;6.4</a>, <a href="3-ce2.html#SP7_1">&#167;7.1</a><br/>Commands Element - <a href="3-ce3.html#SP2">&#167;2</a><br/>Contents Element - <a href="3-ce4.html#SP1_2_1">&#167;1.2.1</a>, <a href="3-ce4.html#SP2_1">&#167;2.1</a><br/>Events Element - <a href="3-ee.html#SP1_1">&#167;1.1</a>, <a href="3-ee.html#SP1_2">&#167;1.2</a><br/>Figures Element - <a href="3-fe.html#SP1_1_1_2">&#167;1.1.1.2</a>, <a href="3-fe.html#SP1_2_1_2">&#167;1.2.1.2</a>, <a href="3-fe.html#SP1_3_1">&#167;1.3.1</a><br/>Grouped Element - <a href="3-ge2.html#SP1">&#167;1</a>, <a href="3-ge2.html#SP2_1_2">&#167;2.1.2</a>, <a href="3-ge2.html#SP3">&#167;3</a><br/>Plot Element - <a href="3-pe2.html#SP1_3_1_1">&#167;1.3.1.1</a><br/>Relations Element - <a href="3-re.html#SP1">&#167;1</a><br/>Tables Element - <a href="3-te.html#SP1_3_1_1">&#167;1.3.1.1</a><br/>Tokens Element - <a href="3-te2.html#SP2">&#167;2</a><br/>Values Element - <a href="3-ve.html#SP1_1_2">&#167;1.1.2</a><br/>Verbs Element - <a href="3-ve2.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">int</span><span class="plain-syntax">) </span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^at"</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">at</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">int</span><span class="plain-syntax">) </span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^at"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">at</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><a href="2-iu.html#SP2" class="function-link"><span class="function-syntax">IndexUtilities::link</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">at</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">at</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><a href="2-iu.html#SP2" class="function-link"><span class="function-syntax">IndexUtilities::link</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">at</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
@ -236,7 +236,7 @@ code.
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&amp;nbsp;"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&amp;nbsp;"</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">IndexUtilities::extra_link_with</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">IndexUtilities::extra_link_with</span></span>:<br/>Index Rules - <a href="2-ir.html#SP12_2">&#167;12.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">icon</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IndexUtilities::extra_link_with</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">IndexUtilities::extra_link_with</span></span>:<br/>Index Rules - <a href="2-ir.html#SP12_3">&#167;12.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</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="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">icon</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"a"</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"a"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"href=\"#\" onclick=\"showResp('extra%d', 'plus%d'); return false;\""</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="string-syntax">"href=\"#\" onclick=\"showResp('extra%d', 'plus%d'); return false;\""</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</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">HTML_TAG_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"img"</span><span class="plain-syntax">, </span><span class="string-syntax">"border=0 id=\"plus%d\" src=inform:/doc_images/%s.png"</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">icon</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML_TAG_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"img"</span><span class="plain-syntax">, </span><span class="string-syntax">"border=0 id=\"plus%d\" src=inform:/doc_images/%s.png"</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">icon</span><span class="plain-syntax">);</span>
@ -265,12 +265,12 @@ code.
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"div"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"div"</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IndexUtilities::extra_div_open_nested</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">IndexUtilities::extra_div_open_nested</span></span>:<br/>Index Rules - <a href="2-ir.html#SP12_3">&#167;12.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">indent</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IndexUtilities::extra_div_open_nested</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">IndexUtilities::extra_div_open_nested</span></span>:<br/>Index Rules - <a href="2-ir.html#SP12_4">&#167;12.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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">indent</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"div"</span><span class="plain-syntax">, </span><span class="string-syntax">"id=\"extra%d\" style=\"display: none;\""</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">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"div"</span><span class="plain-syntax">, </span><span class="string-syntax">"id=\"extra%d\" style=\"display: none;\""</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">HTML::open_indented_p</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">indent</span><span class="plain-syntax">, </span><span class="string-syntax">""</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML::open_indented_p</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">indent</span><span class="plain-syntax">, </span><span class="string-syntax">""</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">IndexUtilities::extra_div_close_nested</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">IndexUtilities::extra_div_close_nested</span></span>:<br/>Index Rules - <a href="2-ir.html#SP12_3">&#167;12.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IndexUtilities::extra_div_close_nested</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">IndexUtilities::extra_div_close_nested</span></span>:<br/>Index Rules - <a href="2-ir.html#SP12_4">&#167;12.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</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="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="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"div"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"div"</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>

View file

@ -206,7 +206,6 @@ doesn't matter.
<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"> &lt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">s</span><span class="plain-syntax"> &lt; </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">"Tried to look up &lt;%S&gt;\n"</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">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"Tried to look up &lt;%S&gt;\n"</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">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"looked up non-existent map variable"</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">"looked up non-existent map variable"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">s</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">s</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">s</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>

View file

@ -2688,7 +2688,7 @@ cases followed by two general rules.
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">daring</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">dared</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span> <span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">daring</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">dared</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">daydreaming</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">daydreamed</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span> <span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">daydreaming</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">daydreamed</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">dealing</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">dealt</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span> <span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">dealing</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">dealt</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">diging</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">dug</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span> <span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">digging</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">dug</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">dighting</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">dighted</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span> <span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">dighting</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">dighted</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">disproving</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">disproved</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span> <span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">disproving</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">disproved</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">diving</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">dived</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span> <span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">diving</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">dived</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>

View file

@ -41,7 +41,9 @@ function togglePopup(material_id) {
<li><a href="../inform6.html">inform6</a></li> <li><a href="../inform6.html">inform6</a></li>
<li><a href="../inpolicyn.html">inpolicy</a></li> <li><a href="../inpolicyn.html">inpolicy</a></li>
<li><a href="../inrtpsn.html">inrtps</a></li> <li><a href="../inrtpsn.html">inrtps</a></li>
<li><a href="../extensions.html">extensions and kits</a></li> </ul><h2>Resources</h2><ul>
<li><a href="../extensions.html">extensions</a></li>
<li><a href="../kits.html">kits</a></li>
</ul><h2>Repository</h2><ul> </ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li> <li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul> </ul><h2>Related Projects</h2><ul>

View file

@ -42,7 +42,9 @@ function togglePopup(material_id) {
<li><a href="../inform6.html">inform6</a></li> <li><a href="../inform6.html">inform6</a></li>
<li><a href="../inpolicyn.html">inpolicy</a></li> <li><a href="../inpolicyn.html">inpolicy</a></li>
<li><a href="../inrtpsn.html">inrtps</a></li> <li><a href="../inrtpsn.html">inrtps</a></li>
<li><a href="../extensions.html">extensions and kits</a></li> </ul><h2>Resources</h2><ul>
<li><a href="../extensions.html">extensions</a></li>
<li><a href="../kits.html">kits</a></li>
</ul><h2>Repository</h2><ul> </ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li> <li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul> </ul><h2>Related Projects</h2><ul>

View file

@ -56,7 +56,9 @@ function togglePopup(material_id) {
<li><a href="../inform6.html">inform6</a></li> <li><a href="../inform6.html">inform6</a></li>
<li><a href="../inpolicyn.html">inpolicy</a></li> <li><a href="../inpolicyn.html">inpolicy</a></li>
<li><a href="../inrtpsn.html">inrtps</a></li> <li><a href="../inrtpsn.html">inrtps</a></li>
<li><a href="../extensions.html">extensions and kits</a></li> </ul><h2>Resources</h2><ul>
<li><a href="../extensions.html">extensions</a></li>
<li><a href="../kits.html">kits</a></li>
</ul><h2>Repository</h2><ul> </ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li> <li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul> </ul><h2>Related Projects</h2><ul>

View file

@ -55,7 +55,9 @@ MathJax = {
<li><a href="../inform6.html">inform6</a></li> <li><a href="../inform6.html">inform6</a></li>
<li><a href="../inpolicyn.html">inpolicy</a></li> <li><a href="../inpolicyn.html">inpolicy</a></li>
<li><a href="../inrtpsn.html">inrtps</a></li> <li><a href="../inrtpsn.html">inrtps</a></li>
<li><a href="../extensions.html">extensions and kits</a></li> </ul><h2>Resources</h2><ul>
<li><a href="../extensions.html">extensions</a></li>
<li><a href="../kits.html">kits</a></li>
</ul><h2>Repository</h2><ul> </ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li> <li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul> </ul><h2>Related Projects</h2><ul>

View file

@ -60,7 +60,9 @@ function togglePopup(material_id) {
<li><a href="../inform6.html">inform6</a></li> <li><a href="../inform6.html">inform6</a></li>
<li><a href="../inpolicyn.html">inpolicy</a></li> <li><a href="../inpolicyn.html">inpolicy</a></li>
<li><a href="../inrtpsn.html">inrtps</a></li> <li><a href="../inrtpsn.html">inrtps</a></li>
<li><a href="../extensions.html">extensions and kits</a></li> </ul><h2>Resources</h2><ul>
<li><a href="../extensions.html">extensions</a></li>
<li><a href="../kits.html">kits</a></li>
</ul><h2>Repository</h2><ul> </ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li> <li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul> </ul><h2>Related Projects</h2><ul>

View file

@ -55,7 +55,9 @@ MathJax = {
<li><a href="../inform6.html">inform6</a></li> <li><a href="../inform6.html">inform6</a></li>
<li><a href="../inpolicyn.html">inpolicy</a></li> <li><a href="../inpolicyn.html">inpolicy</a></li>
<li><a href="../inrtpsn.html">inrtps</a></li> <li><a href="../inrtpsn.html">inrtps</a></li>
<li><a href="../extensions.html">extensions and kits</a></li> </ul><h2>Resources</h2><ul>
<li><a href="../extensions.html">extensions</a></li>
<li><a href="../kits.html">kits</a></li>
</ul><h2>Repository</h2><ul> </ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li> <li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul> </ul><h2>Related Projects</h2><ul>

View file

@ -60,7 +60,9 @@ function togglePopup(material_id) {
<li><a href="../inform6.html">inform6</a></li> <li><a href="../inform6.html">inform6</a></li>
<li><a href="../inpolicyn.html">inpolicy</a></li> <li><a href="../inpolicyn.html">inpolicy</a></li>
<li><a href="../inrtpsn.html">inrtps</a></li> <li><a href="../inrtpsn.html">inrtps</a></li>
<li><a href="../extensions.html">extensions and kits</a></li> </ul><h2>Resources</h2><ul>
<li><a href="../extensions.html">extensions</a></li>
<li><a href="../kits.html">kits</a></li>
</ul><h2>Repository</h2><ul> </ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li> <li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul> </ul><h2>Related Projects</h2><ul>

View file

@ -41,7 +41,9 @@ function togglePopup(material_id) {
<li><a href="../inform6.html">inform6</a></li> <li><a href="../inform6.html">inform6</a></li>
<li><a href="../inpolicyn.html">inpolicy</a></li> <li><a href="../inpolicyn.html">inpolicy</a></li>
<li><a href="../inrtpsn.html">inrtps</a></li> <li><a href="../inrtpsn.html">inrtps</a></li>
<li><a href="../extensions.html">extensions and kits</a></li> </ul><h2>Resources</h2><ul>
<li><a href="../extensions.html">extensions</a></li>
<li><a href="../kits.html">kits</a></li>
</ul><h2>Repository</h2><ul> </ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li> <li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul> </ul><h2>Related Projects</h2><ul>

View file

@ -55,7 +55,9 @@ function togglePopup(material_id) {
<li><a href="../inform6.html">inform6</a></li> <li><a href="../inform6.html">inform6</a></li>
<li><a href="../inpolicyn.html">inpolicy</a></li> <li><a href="../inpolicyn.html">inpolicy</a></li>
<li><a href="../inrtpsn.html">inrtps</a></li> <li><a href="../inrtpsn.html">inrtps</a></li>
<li><a href="../extensions.html">extensions and kits</a></li> </ul><h2>Resources</h2><ul>
<li><a href="../extensions.html">extensions</a></li>
<li><a href="../kits.html">kits</a></li>
</ul><h2>Repository</h2><ul> </ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li> <li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul> </ul><h2>Related Projects</h2><ul>
@ -598,6 +600,12 @@ That means that the new value of <span class="extract"><span class="extract-synt
<span class="plain-syntax"> </span><span class="reserved-syntax">double</span><span class="plain-syntax"> </span><span class="identifier-syntax">k</span><span class="plain-syntax"> = </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">real_scalar</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">double</span><span class="plain-syntax"> </span><span class="identifier-syntax">k</span><span class="plain-syntax"> = </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">real_scalar</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">real_M</span><span class="plain-syntax"> = </span><span class="identifier-syntax">B</span><span class="plain-syntax">*</span><span class="identifier-syntax">k</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">real_M</span><span class="plain-syntax"> = </span><span class="identifier-syntax">B</span><span class="plain-syntax">*</span><span class="identifier-syntax">k</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">scaling_mode</span><span class="plain-syntax"> == </span><span class="constant-syntax">LP_SCALED_AT</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">use_integer_scaling</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">int_M</span><span class="plain-syntax"> = </span><span class="identifier-syntax">benchmark_sc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">int_M</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">sc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">real_M</span><span class="plain-syntax"> = </span><span class="identifier-syntax">benchmark_sc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">real_M</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-sav.html#SP13_2">&#167;13.2</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="3-sav.html#SP13_2">&#167;13.2</a>.</li></ul>

View file

@ -38,7 +38,9 @@
<li><a href="../inform6.html">inform6</a></li> <li><a href="../inform6.html">inform6</a></li>
<li><a href="../inpolicyn.html">inpolicy</a></li> <li><a href="../inpolicyn.html">inpolicy</a></li>
<li><a href="../inrtpsn.html">inrtps</a></li> <li><a href="../inrtpsn.html">inrtps</a></li>
<li><a href="../extensions.html">extensions and kits</a></li> </ul><h2>Resources</h2><ul>
<li><a href="../extensions.html">extensions</a></li>
<li><a href="../kits.html">kits</a></li>
</ul><h2>Repository</h2><ul> </ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li> <li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul> </ul><h2>Related Projects</h2><ul>

View file

@ -41,7 +41,9 @@ function togglePopup(material_id) {
<li><a href="../inform6.html">inform6</a></li> <li><a href="../inform6.html">inform6</a></li>
<li><a href="../inpolicyn.html">inpolicy</a></li> <li><a href="../inpolicyn.html">inpolicy</a></li>
<li><a href="../inrtpsn.html">inrtps</a></li> <li><a href="../inrtpsn.html">inrtps</a></li>
<li><a href="../extensions.html">extensions and kits</a></li> </ul><h2>Resources</h2><ul>
<li><a href="../extensions.html">extensions</a></li>
<li><a href="../kits.html">kits</a></li>
</ul><h2>Repository</h2><ul> </ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li> <li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul> </ul><h2>Related Projects</h2><ul>

View file

@ -41,7 +41,9 @@ function togglePopup(material_id) {
<li><a href="../inform6.html">inform6</a></li> <li><a href="../inform6.html">inform6</a></li>
<li><a href="../inpolicyn.html">inpolicy</a></li> <li><a href="../inpolicyn.html">inpolicy</a></li>
<li><a href="../inrtpsn.html">inrtps</a></li> <li><a href="../inrtpsn.html">inrtps</a></li>
<li><a href="../extensions.html">extensions and kits</a></li> </ul><h2>Resources</h2><ul>
<li><a href="../extensions.html">extensions</a></li>
<li><a href="../kits.html">kits</a></li>
</ul><h2>Repository</h2><ul> </ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li> <li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul> </ul><h2>Related Projects</h2><ul>

View file

@ -41,7 +41,9 @@ function togglePopup(material_id) {
<li><a href="../inform6.html">inform6</a></li> <li><a href="../inform6.html">inform6</a></li>
<li><a href="../inpolicyn.html">inpolicy</a></li> <li><a href="../inpolicyn.html">inpolicy</a></li>
<li><a href="../inrtpsn.html">inrtps</a></li> <li><a href="../inrtpsn.html">inrtps</a></li>
<li><a href="../extensions.html">extensions and kits</a></li> </ul><h2>Resources</h2><ul>
<li><a href="../extensions.html">extensions</a></li>
<li><a href="../kits.html">kits</a></li>
</ul><h2>Repository</h2><ul> </ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li> <li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul> </ul><h2>Related Projects</h2><ul>

View file

@ -41,7 +41,9 @@ function togglePopup(material_id) {
<li><a href="../inform6.html">inform6</a></li> <li><a href="../inform6.html">inform6</a></li>
<li><a href="../inpolicyn.html">inpolicy</a></li> <li><a href="../inpolicyn.html">inpolicy</a></li>
<li><a href="../inrtpsn.html">inrtps</a></li> <li><a href="../inrtpsn.html">inrtps</a></li>
<li><a href="../extensions.html">extensions and kits</a></li> </ul><h2>Resources</h2><ul>
<li><a href="../extensions.html">extensions</a></li>
<li><a href="../kits.html">kits</a></li>
</ul><h2>Repository</h2><ul> </ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li> <li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul> </ul><h2>Related Projects</h2><ul>

View file

@ -41,7 +41,9 @@ function togglePopup(material_id) {
<li><a href="../inform6.html">inform6</a></li> <li><a href="../inform6.html">inform6</a></li>
<li><a href="../inpolicyn.html">inpolicy</a></li> <li><a href="../inpolicyn.html">inpolicy</a></li>
<li><a href="../inrtpsn.html">inrtps</a></li> <li><a href="../inrtpsn.html">inrtps</a></li>
<li><a href="../extensions.html">extensions and kits</a></li> </ul><h2>Resources</h2><ul>
<li><a href="../extensions.html">extensions</a></li>
<li><a href="../kits.html">kits</a></li>
</ul><h2>Repository</h2><ul> </ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li> <li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul> </ul><h2>Related Projects</h2><ul>

View file

@ -41,7 +41,9 @@ function togglePopup(material_id) {
<li><a href="../inform6.html">inform6</a></li> <li><a href="../inform6.html">inform6</a></li>
<li><a href="../inpolicyn.html">inpolicy</a></li> <li><a href="../inpolicyn.html">inpolicy</a></li>
<li><a href="../inrtpsn.html">inrtps</a></li> <li><a href="../inrtpsn.html">inrtps</a></li>
<li><a href="../extensions.html">extensions and kits</a></li> </ul><h2>Resources</h2><ul>
<li><a href="../extensions.html">extensions</a></li>
<li><a href="../kits.html">kits</a></li>
</ul><h2>Repository</h2><ul> </ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li> <li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul> </ul><h2>Related Projects</h2><ul>

View file

@ -33,7 +33,9 @@
<li><a href="../inform6.html">inform6</a></li> <li><a href="../inform6.html">inform6</a></li>
<li><a href="../inpolicyn.html">inpolicy</a></li> <li><a href="../inpolicyn.html">inpolicy</a></li>
<li><a href="../inrtpsn.html">inrtps</a></li> <li><a href="../inrtpsn.html">inrtps</a></li>
<li><a href="../extensions.html">extensions and kits</a></li> </ul><h2>Resources</h2><ul>
<li><a href="../extensions.html">extensions</a></li>
<li><a href="../kits.html">kits</a></li>
</ul><h2>Repository</h2><ul> </ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li> <li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul> </ul><h2>Related Projects</h2><ul>

View file

@ -52,7 +52,9 @@ MathJax = {
<li><a href="../inform6.html">inform6</a></li> <li><a href="../inform6.html">inform6</a></li>
<li><a href="../inpolicyn.html">inpolicy</a></li> <li><a href="../inpolicyn.html">inpolicy</a></li>
<li><a href="../inrtpsn.html">inrtps</a></li> <li><a href="../inrtpsn.html">inrtps</a></li>
<li><a href="../extensions.html">extensions and kits</a></li> </ul><h2>Resources</h2><ul>
<li><a href="../extensions.html">extensions</a></li>
<li><a href="../kits.html">kits</a></li>
</ul><h2>Repository</h2><ul> </ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li> <li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul> </ul><h2>Related Projects</h2><ul>

View file

@ -31,7 +31,9 @@
<li><a href="../inform6.html">inform6</a></li> <li><a href="../inform6.html">inform6</a></li>
<li><a href="../inpolicyn.html">inpolicy</a></li> <li><a href="../inpolicyn.html">inpolicy</a></li>
<li><a href="../inrtpsn.html">inrtps</a></li> <li><a href="../inrtpsn.html">inrtps</a></li>
<li><a href="../extensions.html">extensions and kits</a></li> </ul><h2>Resources</h2><ul>
<li><a href="../extensions.html">extensions</a></li>
<li><a href="../kits.html">kits</a></li>
</ul><h2>Repository</h2><ul> </ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li> <li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul> </ul><h2>Related Projects</h2><ul>

View file

@ -33,7 +33,9 @@
<li><a href="../inform6.html">inform6</a></li> <li><a href="../inform6.html">inform6</a></li>
<li><a href="../inpolicyn.html">inpolicy</a></li> <li><a href="../inpolicyn.html">inpolicy</a></li>
<li><a href="../inrtpsn.html">inrtps</a></li> <li><a href="../inrtpsn.html">inrtps</a></li>
<li><a href="../extensions.html">extensions and kits</a></li> </ul><h2>Resources</h2><ul>
<li><a href="../extensions.html">extensions</a></li>
<li><a href="../kits.html">kits</a></li>
</ul><h2>Repository</h2><ul> </ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li> <li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul> </ul><h2>Related Projects</h2><ul>

View file

@ -42,7 +42,9 @@ function togglePopup(material_id) {
<li><a href="../inform6.html">inform6</a></li> <li><a href="../inform6.html">inform6</a></li>
<li><a href="../inpolicyn.html">inpolicy</a></li> <li><a href="../inpolicyn.html">inpolicy</a></li>
<li><a href="../inrtpsn.html">inrtps</a></li> <li><a href="../inrtpsn.html">inrtps</a></li>
<li><a href="../extensions.html">extensions and kits</a></li> </ul><h2>Resources</h2><ul>
<li><a href="../extensions.html">extensions</a></li>
<li><a href="../kits.html">kits</a></li>
</ul><h2>Repository</h2><ul> </ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li> <li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul> </ul><h2>Related Projects</h2><ul>

View file

@ -42,7 +42,9 @@ function togglePopup(material_id) {
<li><a href="../inform6.html">inform6</a></li> <li><a href="../inform6.html">inform6</a></li>
<li><a href="../inpolicyn.html">inpolicy</a></li> <li><a href="../inpolicyn.html">inpolicy</a></li>
<li><a href="../inrtpsn.html">inrtps</a></li> <li><a href="../inrtpsn.html">inrtps</a></li>
<li><a href="../extensions.html">extensions and kits</a></li> </ul><h2>Resources</h2><ul>
<li><a href="../extensions.html">extensions</a></li>
<li><a href="../kits.html">kits</a></li>
</ul><h2>Repository</h2><ul> </ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li> <li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul> </ul><h2>Related Projects</h2><ul>
@ -169,9 +171,15 @@ has been found to create a figure:
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">wn</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">id</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Task::get_next_free_blorb_resource_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">wn</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">id</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Task::get_next_free_blorb_resource_ID</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">, </span><span class="string-syntax">"%N"</span><span class="plain-syntax">, </span><span class="identifier-syntax">wn</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">, </span><span class="string-syntax">"%N"</span><span class="plain-syntax">, </span><span class="identifier-syntax">wn</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">wn</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">0</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">Str::is_whitespace</span><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">StandardProblems::sentence_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_FigureWhiteSpace</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="string-syntax">"this is not a filename I can use"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"because it is either empty or contains only spaces."</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">figure_file</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">figure_file</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">wn</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">figure_file</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::in</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::figures_path</span><span class="plain-syntax">(), </span><span class="identifier-syntax">leaf</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">wn</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">figure_file</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::in</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::figures_path</span><span class="plain-syntax">(), </span><span class="identifier-syntax">leaf</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="2-fgr.html#SP9" class="function-link"><span class="function-syntax">Figures::figures_create</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">figure_file</span><span class="plain-syntax">, </span><span class="function-syntax">&lt;&lt;alttext&gt;&gt;</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-fgr.html#SP9" class="function-link"><span class="function-syntax">Figures::figures_create</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">figure_file</span><span class="plain-syntax">, </span><span class="function-syntax">&lt;&lt;alttext&gt;&gt;</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">MULTIMEDIA_CREATIONS</span><span class="plain-syntax">, </span><span class="string-syntax">"Created figure &lt;%W&gt; = filename '%f' = resource ID %d\n"</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">MULTIMEDIA_CREATIONS</span><span class="plain-syntax">, </span><span class="string-syntax">"Created figure &lt;%W&gt; = filename '%f' = resource ID %d\n"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">figure_file</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">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">figure_file</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">);</span>

View file

@ -42,7 +42,9 @@ function togglePopup(material_id) {
<li><a href="../inform6.html">inform6</a></li> <li><a href="../inform6.html">inform6</a></li>
<li><a href="../inpolicyn.html">inpolicy</a></li> <li><a href="../inpolicyn.html">inpolicy</a></li>
<li><a href="../inrtpsn.html">inrtps</a></li> <li><a href="../inrtpsn.html">inrtps</a></li>
<li><a href="../extensions.html">extensions and kits</a></li> </ul><h2>Resources</h2><ul>
<li><a href="../extensions.html">extensions</a></li>
<li><a href="../kits.html">kits</a></li>
</ul><h2>Repository</h2><ul> </ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li> <li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul> </ul><h2>Related Projects</h2><ul>
@ -162,8 +164,14 @@ has been found to create a sound:
<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">Task::get_next_free_blorb_resource_ID</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">id</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Task::get_next_free_blorb_resource_ID</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">, </span><span class="string-syntax">"%N"</span><span class="plain-syntax">, </span><span class="identifier-syntax">wn</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">, </span><span class="string-syntax">"%N"</span><span class="plain-syntax">, </span><span class="identifier-syntax">wn</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::is_whitespace</span><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">StandardProblems::sentence_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_SoundWhiteSpace</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="string-syntax">"this is not a filename I can use"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"because it is either empty or contains only spaces."</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sound_file</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::in</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::sounds_path</span><span class="plain-syntax">(), </span><span class="identifier-syntax">leaf</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sound_file</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::in</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::sounds_path</span><span class="plain-syntax">(), </span><span class="identifier-syntax">leaf</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="2-se.html#SP9" class="function-link"><span class="function-syntax">Sounds::sounds_create</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">sound_file</span><span class="plain-syntax">, </span><span class="function-syntax">&lt;&lt;alttext&gt;&gt;</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-se.html#SP9" class="function-link"><span class="function-syntax">Sounds::sounds_create</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">sound_file</span><span class="plain-syntax">, </span><span class="function-syntax">&lt;&lt;alttext&gt;&gt;</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">MULTIMEDIA_CREATIONS</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">MULTIMEDIA_CREATIONS</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"Created sound effect &lt;%W&gt; = filename '%N' = resource ID %d\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">wn</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="string-syntax">"Created sound effect &lt;%W&gt; = filename '%N' = resource ID %d\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">wn</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">);</span>

View file

@ -33,7 +33,9 @@
<li><a href="../inform6.html">inform6</a></li> <li><a href="../inform6.html">inform6</a></li>
<li><a href="../inpolicyn.html">inpolicy</a></li> <li><a href="../inpolicyn.html">inpolicy</a></li>
<li><a href="../inrtpsn.html">inrtps</a></li> <li><a href="../inrtpsn.html">inrtps</a></li>
<li><a href="../extensions.html">extensions and kits</a></li> </ul><h2>Resources</h2><ul>
<li><a href="../extensions.html">extensions</a></li>
<li><a href="../kits.html">kits</a></li>
</ul><h2>Repository</h2><ul> </ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li> <li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul> </ul><h2>Related Projects</h2><ul>

View file

@ -31,7 +31,9 @@
<li><a href="../inform6.html">inform6</a></li> <li><a href="../inform6.html">inform6</a></li>
<li><a href="../inpolicyn.html">inpolicy</a></li> <li><a href="../inpolicyn.html">inpolicy</a></li>
<li><a href="../inrtpsn.html">inrtps</a></li> <li><a href="../inrtpsn.html">inrtps</a></li>
<li><a href="../extensions.html">extensions and kits</a></li> </ul><h2>Resources</h2><ul>
<li><a href="../extensions.html">extensions</a></li>
<li><a href="../kits.html">kits</a></li>
</ul><h2>Repository</h2><ul> </ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li> <li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul> </ul><h2>Related Projects</h2><ul>

View file

@ -1700,6 +1700,7 @@ and <a href="../pipeline-module/4-tsk.html" class="internal">The Standard Kits (
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULE_INDEX_NUMBER_MD_HL</span> <span class="definition-keyword">enum</span> <span class="constant-syntax">RULE_INDEX_NUMBER_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BRULE_AT_MD_HL</span> <span class="definition-keyword">enum</span> <span class="constant-syntax">BRULE_AT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULE_DURING_MD_HL</span> <span class="definition-keyword">enum</span> <span class="constant-syntax">RULE_DURING_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULE_DURING_TEXT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULE_ACTION_RELEVANCES_HAP</span> <span class="definition-keyword">enum</span> <span class="constant-syntax">RULE_ACTION_RELEVANCES_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULE_ACTION_RELEVANCE_MD_HL</span> <span class="definition-keyword">enum</span> <span class="constant-syntax">RULE_ACTION_RELEVANCE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULEBOOK_PLACEMENTS_HAP</span> <span class="definition-keyword">enum</span> <span class="constant-syntax">RULEBOOK_PLACEMENTS_HAP</span>
@ -1752,6 +1753,7 @@ and <a href="../pipeline-module/4-tsk.html" class="internal">The Standard Kits (
<span class="plain-syntax"> </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULE_INDEX_NUMBER_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^index_number"</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULE_INDEX_NUMBER_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^index_number"</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">BRULE_AT_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^at"</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">BRULE_AT_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^at"</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULE_DURING_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^during"</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULE_DURING_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^during"</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULE_DURING_TEXT_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^during_text"</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">RULE_ACTION_RELEVANCES_HAP</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"relevant_action"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_relevant_action"</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">RULE_ACTION_RELEVANCES_HAP</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"relevant_action"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_relevant_action"</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULE_ACTION_RELEVANCE_MD_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">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULE_ACTION_RELEVANCE_MD_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="constant-syntax">H_END</span> <span class="plain-syntax"> </span><span class="constant-syntax">H_END</span>

View file

@ -170,15 +170,15 @@ the first function appears.)
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">lp</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">lp_tokens</span><span class="plain-syntax">[</span><span class="identifier-syntax">tc</span><span class="plain-syntax">].</span><span class="identifier-syntax">lpt_type</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">lp</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">lp_tokens</span><span class="plain-syntax">[</span><span class="identifier-syntax">tc</span><span class="plain-syntax">].</span><span class="identifier-syntax">lpt_type</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">WORD_LPT:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-lp.html#SP4_1_1_1" class="named-paragraph-link"><span class="named-paragraph">Compile I6 code to print a fixed word token within a literal pattern</span><span class="named-paragraph-number">4.1.1.1</span></a></span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">WORD_LPT:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-lp.html#SP4_1_1_1" class="named-paragraph-link"><span class="named-paragraph">Compile Inter to print a fixed word token within a literal pattern</span><span class="named-paragraph-number">4.1.1.1</span></a></span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">CHARACTER_LPT:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-lp.html#SP4_1_1_2" class="named-paragraph-link"><span class="named-paragraph">Compile I6 code to print a character token within a literal pattern</span><span class="named-paragraph-number">4.1.1.2</span></a></span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">CHARACTER_LPT:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-lp.html#SP4_1_1_2" class="named-paragraph-link"><span class="named-paragraph">Compile Inter to print a character token within a literal pattern</span><span class="named-paragraph-number">4.1.1.2</span></a></span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">ELEMENT_LPT:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-lp.html#SP4_1_1_3" class="named-paragraph-link"><span class="named-paragraph">Compile I6 code to print an element token within a literal pattern</span><span class="named-paragraph-number">4.1.1.3</span></a></span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">ELEMENT_LPT:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-lp.html#SP4_1_1_3" class="named-paragraph-link"><span class="named-paragraph">Compile Inter to print an element token within a literal pattern</span><span class="named-paragraph-number">4.1.1.3</span></a></span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">default:</span><span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"unknown literal pattern token type"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">default:</span><span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"unknown literal pattern token type"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-lp.html#SP4_1">&#167;4.1</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="5-lp.html#SP4_1">&#167;4.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP4_1_1_1" class="paragraph-anchor"></a><b>&#167;4.1.1.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile I6 code to print a fixed word token within a literal pattern</span><span class="named-paragraph-number">4.1.1.1</span></span><span class="comment-syntax"> =</span> <p class="commentary firstcommentary"><a id="SP4_1_1_1" class="paragraph-anchor"></a><b>&#167;4.1.1.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile Inter to print a fixed word token within a literal pattern</span><span class="named-paragraph-number">4.1.1.1</span></span><span class="comment-syntax"> =</span>
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
@ -191,7 +191,7 @@ the first function appears.)
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</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">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">)</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-lp.html#SP4_1_1">&#167;4.1.1</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="5-lp.html#SP4_1_1">&#167;4.1.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP4_1_1_2" class="paragraph-anchor"></a><b>&#167;4.1.1.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile I6 code to print a character token within a literal pattern</span><span class="named-paragraph-number">4.1.1.2</span></span><span class="comment-syntax"> =</span> <p class="commentary firstcommentary"><a id="SP4_1_1_2" class="paragraph-anchor"></a><b>&#167;4.1.1.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile Inter to print a character token within a literal pattern</span><span class="named-paragraph-number">4.1.1.2</span></span><span class="comment-syntax"> =</span>
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
@ -207,7 +207,7 @@ the first function appears.)
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</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">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">)</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-lp.html#SP4_1_1">&#167;4.1.1</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="5-lp.html#SP4_1_1">&#167;4.1.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP4_1_1_3" class="paragraph-anchor"></a><b>&#167;4.1.1.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile I6 code to print an element token within a literal pattern</span><span class="named-paragraph-number">4.1.1.3</span></span><span class="comment-syntax"> =</span> <p class="commentary firstcommentary"><a id="SP4_1_1_3" class="paragraph-anchor"></a><b>&#167;4.1.1.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile Inter to print an element token within a literal pattern</span><span class="named-paragraph-number">4.1.1.3</span></span><span class="comment-syntax"> =</span>
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
@ -475,9 +475,9 @@ sets the <span class="extract"><span class="extract-syntax">parsed_number</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">lp</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">lp_tokens</span><span class="plain-syntax">[</span><span class="identifier-syntax">tc</span><span class="plain-syntax">].</span><span class="identifier-syntax">lpt_type</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">lp</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">lp_tokens</span><span class="plain-syntax">[</span><span class="identifier-syntax">tc</span><span class="plain-syntax">].</span><span class="identifier-syntax">lpt_type</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">WORD_LPT:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-lp.html#SP4_2_1_1" class="named-paragraph-link"><span class="named-paragraph">Compile I6 code to match a fixed word token within a literal pattern</span><span class="named-paragraph-number">4.2.1.1</span></a></span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">WORD_LPT:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-lp.html#SP4_2_1_1" class="named-paragraph-link"><span class="named-paragraph">Compile Inter to match a fixed word token within a literal pattern</span><span class="named-paragraph-number">4.2.1.1</span></a></span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">CHARACTER_LPT:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-lp.html#SP4_2_1_2" class="named-paragraph-link"><span class="named-paragraph">Compile I6 code to match a character token within a literal pattern</span><span class="named-paragraph-number">4.2.1.2</span></a></span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">CHARACTER_LPT:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-lp.html#SP4_2_1_2" class="named-paragraph-link"><span class="named-paragraph">Compile Inter to match a character token within a literal pattern</span><span class="named-paragraph-number">4.2.1.2</span></a></span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">ELEMENT_LPT:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-lp.html#SP4_2_1_3" class="named-paragraph-link"><span class="named-paragraph">Compile I6 code to match an element token within a literal pattern</span><span class="named-paragraph-number">4.2.1.3</span></a></span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">ELEMENT_LPT:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-lp.html#SP4_2_1_3" class="named-paragraph-link"><span class="named-paragraph">Compile Inter to match an element token within a literal pattern</span><span class="named-paragraph-number">4.2.1.3</span></a></span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">default:</span><span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"unknown literal pattern token type"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">default:</span><span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"unknown literal pattern token type"</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>
@ -573,7 +573,7 @@ sets the <span class="extract"><span class="extract-syntax">parsed_number</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-lp.html#SP4_2">&#167;4.2</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="5-lp.html#SP4_2">&#167;4.2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP4_2_1_1" class="paragraph-anchor"></a><b>&#167;4.2.1.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile I6 code to match a fixed word token within a literal pattern</span><span class="named-paragraph-number">4.2.1.1</span></span><span class="comment-syntax"> =</span> <p class="commentary firstcommentary"><a id="SP4_2_1_1" class="paragraph-anchor"></a><b>&#167;4.2.1.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile Inter to match a fixed word token within a literal pattern</span><span class="named-paragraph-number">4.2.1.1</span></span><span class="comment-syntax"> =</span>
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
@ -614,11 +614,11 @@ sets the <span class="extract"><span class="extract-syntax">parsed_number</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-lp.html#SP4_2_1">&#167;4.2.1</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="5-lp.html#SP4_2_1">&#167;4.2.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP4_2_1_2" class="paragraph-anchor"></a><b>&#167;4.2.1.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile I6 code to match a character token within a literal pattern</span><span class="named-paragraph-number">4.2.1.2</span></span><span class="comment-syntax"> =</span> <p class="commentary firstcommentary"><a id="SP4_2_1_2" class="paragraph-anchor"></a><b>&#167;4.2.1.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile Inter to match a character token within a literal pattern</span><span class="named-paragraph-number">4.2.1.2</span></span><span class="comment-syntax"> =</span>
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-lp.html#SP4_2_1_2_1" class="named-paragraph-link"><span class="named-paragraph">Compile I6 code to enter mid-word parsing if not already in it</span><span class="named-paragraph-number">4.2.1.2.1</span></a></span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-lp.html#SP4_2_1_2_1" class="named-paragraph-link"><span class="named-paragraph">Compile Inter to enter mid-word parsing if not already in it</span><span class="named-paragraph-number">4.2.1.2.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">lower_form</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Characters::tolower</span><span class="plain-syntax">(</span><span class="identifier-syntax">lp</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">lp_tokens</span><span class="plain-syntax">[</span><span class="identifier-syntax">tc</span><span class="plain-syntax">].</span><span class="identifier-syntax">token_char</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">lower_form</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Characters::tolower</span><span class="plain-syntax">(</span><span class="identifier-syntax">lp</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">lp_tokens</span><span class="plain-syntax">[</span><span class="identifier-syntax">tc</span><span class="plain-syntax">].</span><span class="identifier-syntax">token_char</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">upper_form</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Characters::toupper</span><span class="plain-syntax">(</span><span class="identifier-syntax">lp</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">lp_tokens</span><span class="plain-syntax">[</span><span class="identifier-syntax">tc</span><span class="plain-syntax">].</span><span class="identifier-syntax">token_char</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">upper_form</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Characters::toupper</span><span class="plain-syntax">(</span><span class="identifier-syntax">lp</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">lp_tokens</span><span class="plain-syntax">[</span><span class="identifier-syntax">tc</span><span class="plain-syntax">].</span><span class="identifier-syntax">token_char</span><span class="plain-syntax">);</span>
@ -662,14 +662,14 @@ sets the <span class="extract"><span class="extract-syntax">parsed_number</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-lp.html#SP4_2_1_2_2" class="named-paragraph-link"><span class="named-paragraph">Compile I6 code to exit mid-word parsing if at end of a word</span><span class="named-paragraph-number">4.2.1.2.2</span></a></span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-lp.html#SP4_2_1_2_2" class="named-paragraph-link"><span class="named-paragraph">Compile Inter to exit mid-word parsing if at end of a word</span><span class="named-paragraph-number">4.2.1.2.2</span></a></span><span class="plain-syntax">;</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-lp.html#SP4_2_1">&#167;4.2.1</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="5-lp.html#SP4_2_1">&#167;4.2.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP4_2_1_3" class="paragraph-anchor"></a><b>&#167;4.2.1.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile I6 code to match an element token within a literal pattern</span><span class="named-paragraph-number">4.2.1.3</span></span><span class="comment-syntax"> =</span> <p class="commentary firstcommentary"><a id="SP4_2_1_3" class="paragraph-anchor"></a><b>&#167;4.2.1.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile Inter to match an element token within a literal pattern</span><span class="named-paragraph-number">4.2.1.3</span></span><span class="comment-syntax"> =</span>
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-lp.html#SP4_2_1_2_1" class="named-paragraph-link"><span class="named-paragraph">Compile I6 code to enter mid-word parsing if not already in it</span><span class="named-paragraph-number">4.2.1.2.1</span></a></span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-lp.html#SP4_2_1_2_1" class="named-paragraph-link"><span class="named-paragraph">Compile Inter to enter mid-word parsing if not already in it</span><span class="named-paragraph-number">4.2.1.2.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">literal_pattern_element</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lpe</span><span class="plain-syntax"> = &amp;(</span><span class="identifier-syntax">lp</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">lp_elements</span><span class="plain-syntax">[</span><span class="identifier-syntax">ec</span><span class="plain-syntax">++]);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">literal_pattern_element</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lpe</span><span class="plain-syntax"> = &amp;(</span><span class="identifier-syntax">lp</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">lp_elements</span><span class="plain-syntax">[</span><span class="identifier-syntax">ec</span><span class="plain-syntax">++]);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ec</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ec</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">STORE_BIP</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">STORE_BIP</span><span class="plain-syntax">);</span>
@ -711,13 +711,13 @@ sets the <span class="extract"><span class="extract-syntax">parsed_number</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::FloatingPoint::uses_floating_point</span><span class="plain-syntax">(</span><span class="identifier-syntax">lp</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">kind_specified</span><span class="plain-syntax">))</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::FloatingPoint::uses_floating_point</span><span class="plain-syntax">(</span><span class="identifier-syntax">lp</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">kind_specified</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-lp.html#SP4_2_1_3_1" class="named-paragraph-link"><span class="named-paragraph">Compile I6 code to match a real number here</span><span class="named-paragraph-number">4.2.1.3.1</span></a></span> <span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-lp.html#SP4_2_1_3_1" class="named-paragraph-link"><span class="named-paragraph">Compile Inter to match a real number here</span><span class="named-paragraph-number">4.2.1.3.1</span></a></span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span> <span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-lp.html#SP4_2_1_3_2" class="named-paragraph-link"><span class="named-paragraph">Compile I6 code to match an integer here</span><span class="named-paragraph-number">4.2.1.3.2</span></a></span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-lp.html#SP4_2_1_3_2" class="named-paragraph-link"><span class="named-paragraph">Compile Inter to match an integer here</span><span class="named-paragraph-number">4.2.1.3.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-lp.html#SP4_2_1_2_2" class="named-paragraph-link"><span class="named-paragraph">Compile I6 code to exit mid-word parsing if at end of a word</span><span class="named-paragraph-number">4.2.1.2.2</span></a></span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-lp.html#SP4_2_1_2_2" class="named-paragraph-link"><span class="named-paragraph">Compile Inter to exit mid-word parsing if at end of a word</span><span class="named-paragraph-number">4.2.1.2.2</span></a></span><span class="plain-syntax">;</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-lp.html#SP4_2_1">&#167;4.2.1</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="5-lp.html#SP4_2_1">&#167;4.2.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP4_2_1_3_1" class="paragraph-anchor"></a><b>&#167;4.2.1.3.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile I6 code to match a real number here</span><span class="named-paragraph-number">4.2.1.3.1</span></span><span class="comment-syntax"> =</span> <p class="commentary firstcommentary"><a id="SP4_2_1_3_1" class="paragraph-anchor"></a><b>&#167;4.2.1.3.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile Inter to match a real number here</span><span class="named-paragraph-number">4.2.1.3.1</span></span><span class="comment-syntax"> =</span>
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
@ -810,7 +810,7 @@ sets the <span class="extract"><span class="extract-syntax">parsed_number</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP12" class="function-link"><span class="function-syntax">EmitCode::ref_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">gprk</span><span class="plain-syntax">.</span><span class="element-syntax">wpos_s</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-ec.html#SP12" class="function-link"><span class="function-syntax">EmitCode::ref_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">gprk</span><span class="plain-syntax">.</span><span class="element-syntax">wpos_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-lp.html#SP4_2_1_2_1" class="named-paragraph-link"><span class="named-paragraph">Compile I6 code to enter mid-word parsing if not already in it</span><span class="named-paragraph-number">4.2.1.2.1</span></a></span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-lp.html#SP4_2_1_2_1" class="named-paragraph-link"><span class="named-paragraph">Compile Inter to enter mid-word parsing if not already in it</span><span class="named-paragraph-number">4.2.1.2.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-lp.html#SP4_2_1_3_1_1" class="named-paragraph-link"><span class="named-paragraph">March forwards through decimal digits</span><span class="named-paragraph-number">4.2.1.3.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-lp.html#SP4_2_1_3_1_1" class="named-paragraph-link"><span class="named-paragraph">March forwards through decimal digits</span><span class="named-paragraph-number">4.2.1.3.1.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
@ -846,7 +846,7 @@ sets the <span class="extract"><span class="extract-syntax">parsed_number</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP12" class="function-link"><span class="function-syntax">EmitCode::ref_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">gprk</span><span class="plain-syntax">.</span><span class="element-syntax">mid_word_s</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-ec.html#SP12" class="function-link"><span class="function-syntax">EmitCode::ref_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">gprk</span><span class="plain-syntax">.</span><span class="element-syntax">mid_word_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_false</span></a><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_false</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-lp.html#SP4_2_1_2_1" class="named-paragraph-link"><span class="named-paragraph">Compile I6 code to enter mid-word parsing if not already in it</span><span class="named-paragraph-number">4.2.1.2.1</span></a></span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-lp.html#SP4_2_1_2_1" class="named-paragraph-link"><span class="named-paragraph">Compile Inter to enter mid-word parsing if not already in it</span><span class="named-paragraph-number">4.2.1.2.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
@ -912,7 +912,7 @@ sets the <span class="extract"><span class="extract-syntax">parsed_number</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP12" class="function-link"><span class="function-syntax">EmitCode::ref_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">gprk</span><span class="plain-syntax">.</span><span class="element-syntax">mid_word_s</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-ec.html#SP12" class="function-link"><span class="function-syntax">EmitCode::ref_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">gprk</span><span class="plain-syntax">.</span><span class="element-syntax">mid_word_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_false</span></a><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_false</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-lp.html#SP4_2_1_2_1" class="named-paragraph-link"><span class="named-paragraph">Compile I6 code to enter mid-word parsing if not already in it</span><span class="named-paragraph-number">4.2.1.2.1</span></a></span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-lp.html#SP4_2_1_2_1" class="named-paragraph-link"><span class="named-paragraph">Compile Inter to enter mid-word parsing if not already in it</span><span class="named-paragraph-number">4.2.1.2.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
@ -1138,7 +1138,7 @@ sets the <span class="extract"><span class="extract-syntax">parsed_number</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-lp.html#SP4_2_1_3_1">&#167;4.2.1.3.1</a> (three times).</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="5-lp.html#SP4_2_1_3_1">&#167;4.2.1.3.1</a> (three times).</li></ul>
<p class="commentary firstcommentary"><a id="SP4_2_1_3_2" class="paragraph-anchor"></a><b>&#167;4.2.1.3.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile I6 code to match an integer here</span><span class="named-paragraph-number">4.2.1.3.2</span></span><span class="comment-syntax"> =</span> <p class="commentary firstcommentary"><a id="SP4_2_1_3_2" class="paragraph-anchor"></a><b>&#167;4.2.1.3.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile Inter to match an integer here</span><span class="named-paragraph-number">4.2.1.3.2</span></span><span class="comment-syntax"> =</span>
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
@ -1297,7 +1297,7 @@ sets the <span class="extract"><span class="extract-syntax">parsed_number</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP12" class="function-link"><span class="function-syntax">EmitCode::ref_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">gprk</span><span class="plain-syntax">.</span><span class="element-syntax">mid_word_s</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-ec.html#SP12" class="function-link"><span class="function-syntax">EmitCode::ref_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">gprk</span><span class="plain-syntax">.</span><span class="element-syntax">mid_word_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_false</span></a><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_false</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-lp.html#SP4_2_1_2_1" class="named-paragraph-link"><span class="named-paragraph">Compile I6 code to enter mid-word parsing if not already in it</span><span class="named-paragraph-number">4.2.1.2.1</span></a></span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-lp.html#SP4_2_1_2_1" class="named-paragraph-link"><span class="named-paragraph">Compile Inter to enter mid-word parsing if not already in it</span><span class="named-paragraph-number">4.2.1.2.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">STORE_BIP</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">STORE_BIP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP12" class="function-link"><span class="function-syntax">EmitCode::ref_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">gprk</span><span class="plain-syntax">.</span><span class="element-syntax">x_s</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-ec.html#SP12" class="function-link"><span class="function-syntax">EmitCode::ref_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">gprk</span><span class="plain-syntax">.</span><span class="element-syntax">x_s</span><span class="plain-syntax">);</span>
@ -1388,7 +1388,7 @@ sets the <span class="extract"><span class="extract-syntax">parsed_number</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-lp.html#SP4_2_1_3">&#167;4.2.1.3</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="5-lp.html#SP4_2_1_3">&#167;4.2.1.3</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP4_2_1_2_1" class="paragraph-anchor"></a><b>&#167;4.2.1.2.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile I6 code to enter mid-word parsing if not already in it</span><span class="named-paragraph-number">4.2.1.2.1</span></span><span class="comment-syntax"> =</span> <p class="commentary firstcommentary"><a id="SP4_2_1_2_1" class="paragraph-anchor"></a><b>&#167;4.2.1.2.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile Inter to enter mid-word parsing if not already in it</span><span class="named-paragraph-number">4.2.1.2.1</span></span><span class="comment-syntax"> =</span>
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
@ -1431,7 +1431,7 @@ sets the <span class="extract"><span class="extract-syntax">parsed_number</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-lp.html#SP4_2_1_2">&#167;4.2.1.2</a>, <a href="5-lp.html#SP4_2_1_3">&#167;4.2.1.3</a>, <a href="5-lp.html#SP4_2_1_3_1">&#167;4.2.1.3.1</a> (three times), <a href="5-lp.html#SP4_2_1_3_2">&#167;4.2.1.3.2</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="5-lp.html#SP4_2_1_2">&#167;4.2.1.2</a>, <a href="5-lp.html#SP4_2_1_3">&#167;4.2.1.3</a>, <a href="5-lp.html#SP4_2_1_3_1">&#167;4.2.1.3.1</a> (three times), <a href="5-lp.html#SP4_2_1_3_2">&#167;4.2.1.3.2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP4_2_1_2_2" class="paragraph-anchor"></a><b>&#167;4.2.1.2.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile I6 code to exit mid-word parsing if at end of a word</span><span class="named-paragraph-number">4.2.1.2.2</span></span><span class="comment-syntax"> =</span> <p class="commentary firstcommentary"><a id="SP4_2_1_2_2" class="paragraph-anchor"></a><b>&#167;4.2.1.2.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile Inter to exit mid-word parsing if at end of a word</span><span class="named-paragraph-number">4.2.1.2.2</span></span><span class="comment-syntax"> =</span>
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">

View file

@ -254,6 +254,9 @@ rulebook:
<span class="plain-syntax"> </span><span class="identifier-syntax">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">during_scene</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Scenes::rcd_scene</span><span class="plain-syntax">(</span><span class="identifier-syntax">phrcd</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">during_scene</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Scenes::rcd_scene</span><span class="plain-syntax">(</span><span class="identifier-syntax">phrcd</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">during_scene</span><span class="plain-syntax">) </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">EP</span><span class="plain-syntax">, </span><span class="constant-syntax">RULE_DURING_MD_HL</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">during_scene</span><span class="plain-syntax">) </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">EP</span><span class="plain-syntax">, </span><span class="constant-syntax">RULE_DURING_MD_HL</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="5-ins.html#SP1" class="function-link"><span class="function-syntax">RTInstances::value_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">during_scene</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">as_instance</span><span class="plain-syntax">));</span> <span class="plain-syntax"> </span><a href="5-ins.html#SP1" class="function-link"><span class="function-syntax">RTInstances::value_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">during_scene</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">as_instance</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Scenes::during_wording</span><span class="plain-syntax">(</span><span class="identifier-syntax">phrcd</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_raw_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">EP</span><span class="plain-syntax">, </span><span class="constant-syntax">RULE_DURING_TEXT_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">action_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">an</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">action_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">an</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">an</span><span class="plain-syntax">, </span><span class="identifier-syntax">action_name</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">an</span><span class="plain-syntax">, </span><span class="identifier-syntax">action_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">ActionRules::within_action_context</span><span class="plain-syntax">(</span><span class="identifier-syntax">phrcd</span><span class="plain-syntax">, </span><span class="identifier-syntax">an</span><span class="plain-syntax">)) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ActionRules::within_action_context</span><span class="plain-syntax">(</span><span class="identifier-syntax">phrcd</span><span class="plain-syntax">, </span><span class="identifier-syntax">an</span><span class="plain-syntax">)) {</span>

View file

@ -338,8 +338,8 @@ equivalent to an exact value.
<span class="plain-syntax"> </span><span class="reserved-syntax">literal_pattern</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lp</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">literal_pattern</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lp</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">scaling_transformation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">benchmark_sc</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">scaling_transformation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">benchmark_sc</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="identifier-syntax">lp</span><span class="plain-syntax"> = </span><span class="identifier-syntax">list_head</span><span class="plain-syntax">; </span><span class="identifier-syntax">lp</span><span class="plain-syntax">; </span><span class="identifier-syntax">lp</span><span class="plain-syntax"> = </span><span class="identifier-syntax">lp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next_for_this_kind</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">lp</span><span class="plain-syntax"> = </span><span class="identifier-syntax">list_head</span><span class="plain-syntax">; </span><span class="identifier-syntax">lp</span><span class="plain-syntax">; </span><span class="identifier-syntax">lp</span><span class="plain-syntax"> = </span><span class="identifier-syntax">lp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next_for_this_kind</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">lp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">benchmark</span><span class="plain-syntax">) </span><span class="identifier-syntax">benchmark_sc</span><span class="plain-syntax"> = &amp;(</span><span class="identifier-syntax">lp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">scaling</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">lp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">benchmark</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">benchmark_sc</span><span class="plain-syntax"> = &amp;(</span><span class="identifier-syntax">lp</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">scaling</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">rescale_factor</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Kinds::Scalings::determine_M</span><span class="plain-syntax">(&amp;(</span><span class="identifier-syntax">new_lp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">scaling</span><span class="plain-syntax">), </span><span class="identifier-syntax">benchmark_sc</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">rescale_factor</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Kinds::Scalings::determine_M</span><span class="plain-syntax">(&amp;(</span><span class="identifier-syntax">new_lp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">scaling</span><span class="plain-syntax">), </span><span class="identifier-syntax">benchmark_sc</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">new_lp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">equivalent_unit</span><span class="plain-syntax">, </span><span class="identifier-syntax">new_lp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">primary_alternative</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">new_lp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">equivalent_unit</span><span class="plain-syntax">, </span><span class="identifier-syntax">new_lp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">primary_alternative</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">rescale_factor</span><span class="plain-syntax"> != </span><span class="constant-syntax">1</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">rescale_factor</span><span class="plain-syntax"> != </span><span class="constant-syntax">1</span><span class="plain-syntax">)</span>
@ -347,7 +347,6 @@ equivalent to an exact value.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">lp</span><span class="plain-syntax"> != </span><span class="identifier-syntax">new_lp</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">lp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">equivalent_unit</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">))</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">lp</span><span class="plain-syntax"> != </span><span class="identifier-syntax">new_lp</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">lp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">equivalent_unit</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">lp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">scaling</span><span class="plain-syntax"> =</span> <span class="plain-syntax"> </span><span class="identifier-syntax">lp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">scaling</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Kinds::Scalings::enlarge</span><span class="plain-syntax">(</span><span class="identifier-syntax">lp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">scaling</span><span class="plain-syntax">, </span><span class="identifier-syntax">rescale_factor</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">Kinds::Scalings::enlarge</span><span class="plain-syntax">(</span><span class="identifier-syntax">lp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">scaling</span><span class="plain-syntax">, </span><span class="identifier-syntax">rescale_factor</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">list_head</span><span class="plain-syntax"> = </span><a href="3-lp.html#SP11" class="function-link"><span class="function-syntax">LiteralPatterns::lp_list_add_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">list_head</span><span class="plain-syntax">, </span><span class="identifier-syntax">new_lp</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">list_head</span><span class="plain-syntax"> = </span><a href="3-lp.html#SP11" class="function-link"><span class="function-syntax">LiteralPatterns::lp_list_add_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">list_head</span><span class="plain-syntax">, </span><span class="identifier-syntax">new_lp</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">TargetVMs::is_16_bit</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::vm</span><span class="plain-syntax">())) &amp;&amp; (</span><span class="identifier-syntax">PM_ZMachineOverflow2_issued</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">))</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">TargetVMs::is_16_bit</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::vm</span><span class="plain-syntax">())) &amp;&amp; (</span><span class="identifier-syntax">PM_ZMachineOverflow2_issued</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">))</span>

View file

@ -1076,11 +1076,30 @@ later rules can override earlier ones but still make use of them.
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">MATCHING</span><span class="plain-syntax">, </span><span class="string-syntax">"Possibility (P%d) $e\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">list_of_possible_readings</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">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">MATCHING</span><span class="plain-syntax">, </span><span class="string-syntax">"Possibility (P%d) $e\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">list_of_possible_readings</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">]);</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-dsh.html#SP10_9_2">&#167;10.9.2</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="5-dsh.html#SP10_9_2">&#167;10.9.2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP10_9_2_1_1" class="paragraph-anchor"></a><b>&#167;10.9.2.1.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Add this reading to the list of test cases</span><span class="named-paragraph-number">10.9.2.1.1</span></span><span class="comment-syntax"> =</span> <p class="commentary firstcommentary"><a id="SP10_9_2_1_1" class="paragraph-anchor"></a><b>&#167;10.9.2.1.1. </b>In general, it's not great for typecheckers in compilers to put an upper bound
on complexity, because although human-written code seldom hits such maxima, there's
always the possibility of mechanically-generated code which does. On the other hand,
the result of that doctrine is that a lot of modern compilers (Swift, for example)
slow to a painful crawl and allocate gigabytes of memory trying to understand
strange type constraints in two or three lines of code. So, for now at least,
let's be pragmatic.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Add this reading to the list of test cases</span><span class="named-paragraph-number">10.9.2.1.1</span></span><span class="comment-syntax"> =</span>
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">no_of_possible_readings</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">MAX_INVOCATIONS_PER_PHRASE</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"overrun"</span><span 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_of_possible_readings</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">MAX_INVOCATIONS_PER_PHRASE</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="constant-syntax">THIS_IS_AN_ORDINARY_PROBLEM</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_wording</span><span class="plain-syntax">(1, </span><span class="identifier-syntax">Node::get_text</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">StandardProblems::handmade_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_AmbiguitiesTooDeep</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_segment</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="string-syntax">"The phrase %1 is too complicated for me to disentangle without "</span>
<span class="plain-syntax"> </span><span class="string-syntax">"running very, very slowly as I check many ambiguities in it. There "</span>
<span class="plain-syntax"> </span><span class="string-syntax">"ought to be some way to simplify things for me?"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_end</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NEVER_MATCH</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">list_of_possible_readings</span><span class="plain-syntax">[</span><span class="identifier-syntax">no_of_possible_readings</span><span class="plain-syntax">++] = </span><span class="identifier-syntax">alt</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">list_of_possible_readings</span><span class="plain-syntax">[</span><span class="identifier-syntax">no_of_possible_readings</span><span class="plain-syntax">++] = </span><span class="identifier-syntax">alt</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="5-dsh.html#SP22" class="function-link"><span class="function-syntax">Dash::clear_flags</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">alt</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="5-dsh.html#SP22" class="function-link"><span class="function-syntax">Dash::clear_flags</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">alt</span><span class="plain-syntax">);</span>
</pre> </pre>

View file

@ -3720,7 +3720,7 @@
constraint CS = {11} extremes [2, 2] constraint CS = {11} extremes [2, 2]
dealing dealt dealing dealt
constraint CS = {11} extremes [2, 2] constraint CS = {11} extremes [2, 2]
diging dug digging dug
constraint CS = {11} extremes [2, 2] constraint CS = {11} extremes [2, 2]
dighting dighted dighting dighted
constraint CS = {11} extremes [2, 2] constraint CS = {11} extremes [2, 2]
@ -5872,6 +5872,8 @@
constraint DS = {15} extremes [2, infinity) constraint DS = {15} extremes [2, infinity)
{...} , {...} {...} , {...}
constraint DS = {15} extremes [3, infinity) constraint DS = {15} extremes [3, infinity)
{...} <cardinal-number> : <cardinal-number> {...}
constraint DS = {15} extremes [5, infinity)
{...} {...}
constraint (none) extremes [1, infinity) constraint (none) extremes [1, infinity)

View file

@ -1,37 +1,37 @@
Total memory consumption was 126308K = 123 MB Total memory consumption was 120225K = 117 MB
---- was used for 2008028 objects, in 360803 frames in 0 x 800K = 0K = 0 MB: ---- was used for 2008028 objects, in 360803 frames in 0 x 800K = 0K = 0 MB:
32.3% inter_tree_node_array 58 x 8192 = 475136 objects, 41813824 bytes 33.9% inter_tree_node_array 58 x 8192 = 475136 objects, 41813824 bytes
18.9% text_stream_array 4342 x 100 = 434200 objects, 24454144 bytes 19.8% text_stream_array 4342 x 100 = 434200 objects, 24454144 bytes
18.7% linked_list 43279 objects, 24236240 bytes 19.6% linked_list 43279 objects, 24236240 bytes
10.8% inter_symbol_array 132 x 1024 = 135168 objects, 14061696 bytes 11.4% inter_symbol_array 132 x 1024 = 135168 objects, 14061696 bytes
10.2% inter_error_stash_array 101 x 1024 = 103424 objects, 13241504 bytes 10.7% inter_error_stash_array 101 x 1024 = 103424 objects, 13241504 bytes
8.0% parse_node 129462 objects, 10356960 bytes 8.4% parse_node 129462 objects, 10356960 bytes
5.7% verb_conjugation 160 objects, 7425280 bytes 6.0% verb_conjugation 160 objects, 7425280 bytes
4.2% parse_node_annotation_array 345 x 500 = 172500 objects, 5531040 bytes 4.4% parse_node_annotation_array 345 x 500 = 172500 objects, 5531040 bytes
2.6% pcalc_prop_array 25 x 1000 = 25000 objects, 3400800 bytes 2.7% pcalc_prop_array 25 x 1000 = 25000 objects, 3400800 bytes
2.4% inter_name_array 67 x 1000 = 67000 objects, 3218144 bytes 2.6% inter_name_array 67 x 1000 = 67000 objects, 3218144 bytes
2.0% kind_array 66 x 1000 = 66000 objects, 2642112 bytes 2.1% kind_array 66 x 1000 = 66000 objects, 2642112 bytes
1.5% inter_name_generator_array 51 x 1000 = 51000 objects, 2041632 bytes 1.6% inter_name_generator_array 51 x 1000 = 51000 objects, 2041632 bytes
1.5% inter_schema_token 13938 objects, 2007072 bytes 1.6% inter_schema_token 13938 objects, 2007072 bytes
1.4% package_request 21137 objects, 1860056 bytes 1.5% package_request 21137 objects, 1860056 bytes
1.3% vocabulary_entry_array 161 x 100 = 16100 objects, 1808352 bytes 1.4% vocabulary_entry_array 161 x 100 = 16100 objects, 1808352 bytes
1.1% match_trie_array 11 x 1000 = 11000 objects, 1496352 bytes 1.2% match_trie_array 11 x 1000 = 11000 objects, 1496352 bytes
1.1% inter_symbols_table 26569 objects, 1487864 bytes 1.2% inter_symbols_table 26569 objects, 1487864 bytes
1.0% i6_schema_array 23 x 100 = 2300 objects, 1380736 bytes 1.1% i6_schema_array 23 x 100 = 2300 objects, 1380736 bytes
0.9% inter_package 26569 objects, 1275312 bytes 1.0% inter_package 26569 objects, 1275312 bytes
0.9% dict_entry_array 386 x 100 = 38600 objects, 1247552 bytes 1.0% dict_entry_array 386 x 100 = 38600 objects, 1247552 bytes
0.8% map_data 670 objects, 1125600 bytes 0.9% map_data 670 objects, 1125600 bytes
0.8% id_body 941 objects, 1076504 bytes 0.8% id_body 941 objects, 1076504 bytes
0.7% adjective_meaning 202 objects, 1000304 bytes 0.8% adjective_meaning 202 objects, 1000304 bytes
0.7% excerpt_meaning 3100 objects, 967200 bytes 0.7% excerpt_meaning 3100 objects, 967200 bytes
0.6% production 3875 objects, 899000 bytes 0.7% production 3875 objects, 899000 bytes
0.6% ptoken 8390 objects, 872560 bytes 0.7% ptoken 8390 objects, 872560 bytes
0.6% grammatical_usage 3611 objects, 866640 bytes 0.7% grammatical_usage 3611 objects, 866640 bytes
0.6% individual_form 2561 objects, 860496 bytes 0.6% individual_form 2561 objects, 860496 bytes
0.6% inter_schema_node 8897 objects, 854112 bytes 0.6% inter_schema_node 8897 objects, 854112 bytes
0.4% unary_predicate_array 16 x 1000 = 16000 objects, 640512 bytes 0.5% unary_predicate_array 16 x 1000 = 16000 objects, 640512 bytes
0.3% scan_directory 112 objects, 462336 bytes 0.3% scan_directory 112 objects, 462336 bytes
0.3% local_variable_array 47 x 100 = 4700 objects, 452704 bytes 0.3% local_variable_array 47 x 100 = 4700 objects, 452704 bytes
0.3% verb_usage 1128 objects, 388032 bytes 0.3% verb_usage 1128 objects, 388032 bytes
@ -237,17 +237,17 @@ Total memory consumption was 126308K = 123 MB
100.0% was used for memory not allocated for objects: 100.0% was used for memory not allocated for objects:
59.2% text stream storage 76626600 bytes in 452201 claims 57.1% text stream storage 70397560 bytes in 451751 claims
3.5% dictionary storage 4544512 bytes in 6619 claims 3.6% dictionary storage 4544512 bytes in 6619 claims
---- sorting 744 bytes in 3 claims ---- sorting 744 bytes in 3 claims
5.5% source text 7200000 bytes in 3 claims 5.8% source text 7200000 bytes in 3 claims
8.3% source text details 10800000 bytes in 2 claims 8.7% source text details 10800000 bytes in 2 claims
0.2% documentation fragments 262144 bytes in 1 claim 0.2% documentation fragments 262144 bytes in 1 claim
---- linguistic stock array 81920 bytes in 2 claims ---- linguistic stock array 81920 bytes in 2 claims
---- small word set array 105600 bytes in 22 claims ---- small word set array 105600 bytes in 22 claims
3.4% inter symbols storage 4522784 bytes in 27922 claims 3.6% inter symbols storage 4522784 bytes in 27922 claims
12.9% inter bytecode storage 16767480 bytes in 14 claims 13.6% inter bytecode storage 16767480 bytes in 14 claims
4.8% inter links storage 6222976 bytes in 11 claims 5.0% inter links storage 6222976 bytes in 11 claims
0.1% inter tree location list storage 191232 bytes in 32 claims 0.1% inter tree location list storage 191232 bytes in 32 claims
1.3% instance-of-kind counting 1695204 bytes in 1 claim 1.3% instance-of-kind counting 1695204 bytes in 1 claim
---- compilation workspace for objects 21856 bytes in 25 claims ---- compilation workspace for objects 21856 bytes in 25 claims
@ -255,5 +255,5 @@ Total memory consumption was 126308K = 123 MB
---- code generation workspace for objects 1336 bytes in 4 claims ---- code generation workspace for objects 1336 bytes in 4 claims
0.2% emitter array storage 279776 bytes in 1995 claims 0.2% emitter array storage 279776 bytes in 1995 claims
-140.-5% was overhead - -181850144 bytes = -177588K = -173 MB -147.-7% was overhead - -181850144 bytes = -177588K = -173 MB

View file

@ -1,37 +1,33 @@
100.0% in inform7 run 100.0% in inform7 run
68.6% in compilation to Inter 68.5% in compilation to Inter
48.2% in //Sequence::undertake_queued_tasks// 48.0% in //Sequence::undertake_queued_tasks//
4.5% in //MajorNodes::pre_pass// 4.5% in //MajorNodes::pre_pass//
3.2% in //MajorNodes::pass_1// 3.4% in //MajorNodes::pass_1//
2.3% in //RTPhrasebook::compile_entries// 1.7% in //ImperativeDefinitions::assess_all//
1.8% in //ImperativeDefinitions::assess_all// 1.7% in //RTPhrasebook::compile_entries//
1.5% in //RTKindConstructors::compile// 1.5% in //RTKindConstructors::compile//
1.0% in //Sequence::lint_inter// 1.1% in //Sequence::lint_inter//
0.5% in //ImperativeDefinitions::compile_first_block//
0.5% in //MajorNodes::pass_2// 0.5% in //MajorNodes::pass_2//
0.5% in //Sequence::undertake_queued_tasks//
0.5% in //World::stage_V// 0.5% in //World::stage_V//
0.4% in //ImperativeDefinitions::compile_first_block// 0.3% in //Sequence::undertake_queued_tasks//
0.4% in //Sequence::undertake_queued_tasks// 0.1% in //CompletionModule::compile//
0.4% in //Sequence::undertake_queued_tasks//
0.2% in //CompletionModule::compile//
0.2% in //RTKindConstructors::compile_permissions//
0.1% in //InferenceSubjects::emit_all// 0.1% in //InferenceSubjects::emit_all//
0.1% in //RTKindConstructors::compile_permissions//
0.1% in //Task::make_built_in_kind_constructors// 0.1% in //Task::make_built_in_kind_constructors//
0.1% in //Understand::traverse//
0.1% in //World::stages_II_and_III// 0.1% in //World::stages_II_and_III//
2.3% not specifically accounted for 2.6% not specifically accounted for
28.8% in running Inter pipeline 28.7% in running Inter pipeline
10.0% in step 14/15: generate inform6 -> auto.inf 10.3% in step 14/15: generate inform6 -> auto.inf
7.6% in step 5/15: load-binary-kits 7.6% in step 5/15: load-binary-kits
6.5% in step 6/15: make-synoptic-module 6.3% in step 6/15: make-synoptic-module
1.5% in step 9/15: make-identifiers-unique 1.5% in step 9/15: make-identifiers-unique
0.5% in step 4/15: compile-splats 0.3% in step 12/15: eliminate-redundant-operations
0.4% in step 12/15: eliminate-redundant-operations 0.3% in step 4/15: compile-splats
0.4% in step 7/15: shorten-wiring 0.3% in step 7/15: shorten-wiring
0.3% in step 8/15: detect-indirect-calls 0.3% in step 8/15: detect-indirect-calls
0.2% in step 11/15: eliminate-redundant-labels 0.1% in step 11/15: eliminate-redundant-labels
0.1% in step 10/15: reconcile-verbs 1.2% not specifically accounted for
0.1% in step 2/15: parse-insertions 2.2% in supervisor
0.1% in step 3/15: resolve-conditional-compilation 0.4% not specifically accounted for
0.6% not specifically accounted for
2.3% in supervisor
0.3% not specifically accounted for

View file

@ -496,9 +496,6 @@
mkdir: $WORK/Transient mkdir: $WORK/Transient
step: find $WORK/Transient -mindepth 1 -delete step: find $WORK/Transient -mindepth 1 -delete
mkdir: $PATH/_Results_Actual
mkdir: $PATH/_Results_Ideal
set: $PIPELINE = set: $PIPELINE =
set: $DIAGS = inform7/Figures set: $DIAGS = inform7/Figures
@ -507,6 +504,8 @@
step: $I7 `$I7OPTIONS -format=$FORMAT -project $WORK/Example.inform $PIPELINE -diagnostics $DIAGS >$I7CONSOLE 2>&1 step: $I7 `$I7OPTIONS -format=$FORMAT -project $WORK/Example.inform $PIPELINE -diagnostics $DIAGS >$I7CONSOLE 2>&1
or: 'failed with Problem message(s)' $I7CONSOLE or: 'failed with Problem message(s)' $I7CONSOLE
show: $I7CONSOLE show: $I7CONSOLE
pass: 'passed'
-end -end
-recipe [Make] -recipe [Make]