mirror of
https://github.com/ganelson/inform.git
synced 2024-06-30 22:14:58 +03:00
Tidied up rule family
This commit is contained in:
parent
7ca37360b4
commit
6f6737f319
|
@ -1,6 +1,6 @@
|
|||
# Inform 7
|
||||
|
||||
v10.1.0-alpha.1+6R62 'Krypton' (26 March 2021)
|
||||
v10.1.0-alpha.1+6R63 'Krypton' (27 March 2021)
|
||||
|
||||
## About Inform 7
|
||||
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
Prerelease: alpha.1
|
||||
Build Date: 26 March 2021
|
||||
Build Number: 6R62
|
||||
Build Date: 27 March 2021
|
||||
Build Number: 6R63
|
||||
|
|
|
@ -123,7 +123,7 @@ but saves a deal of passing parameters around.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">pass</span><span class="plain-syntax"> == </span><span class="constant-syntax">2</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="2-ptmn.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Extend the pass to sentences needed when implicit kinds are set</span><span class="named-paragraph-number">2.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure pass_state is accessed in 2/ar, 3/tr, 3/uor, 3/dbtr, 4/ass, 4/ass2, 6/tc and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure pass_state is accessed in 2/ar, 3/tr, 3/uor, 3/dbtr, 4/ass, 4/ass2, 5/tpf, 6/tc and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_1" class="paragraph-anchor"></a><b>§2.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Extend the pass to invented sentences from kinds</span><span class="named-paragraph-number">2.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
|
@ -328,7 +328,7 @@ two cases") and all others (such as "regular meaning are more subtle").
|
|||
<p class="commentary firstcommentary"><a id="SP3_1_3" class="paragraph-anchor"></a><b>§3.1.3. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">MajorNodes::try_special_meaning</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">MajorNodes::try_special_meaning</span></span>:<br/><a href="2-ptmn.html#SP3_1_2_2">§3.1.2.2</a><br/>Rule Family - <a href="5-rf.html#SP6_1">§6.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">task</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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">MajorNodes::try_special_meaning</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">MajorNodes::try_special_meaning</span></span>:<br/><a href="2-ptmn.html#SP3_1_2_2">§3.1.2.2</a><br/>Rule Family - <a href="5-rf.html#SP9">§9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">task</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="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::call</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_special_meaning</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">), </span><span class="identifier-syntax">task</span><span class="plain-syntax">, </span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
|
|
@ -73,23 +73,50 @@ function togglePopup(material_id) {
|
|||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">assertions</a></li><li><a href="index.html#5">Chapter 5: Imperative Code</a></li><li><b>Adjectival Definition Family</b></li></ul></div>
|
||||
<p class="purpose">Imperative definitions of "Definition: X is Y: ..." adjectives.</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b></p>
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b>This family is used for adjective definitions, whether or not they run on
|
||||
into substantial amounts of code.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">imperative_defn_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">DEFINITIONAL_PHRASE_EFF_family</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="comment-syntax"> "Definition: a container is roomy if: ..."</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b></p>
|
||||
<span class="reserved-syntax">imperative_defn_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">adjectival_idf</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="comment-syntax"> "Definition: a container is roomy if: ..."</span>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">AdjectivalDefinitionFamily::create_family</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">AdjectivalDefinitionFamily::create_family</span></span>:<br/>Imperative Definition Families - <a href="5-idf.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DEFINITIONAL_PHRASE_EFF_family</span><span class="plain-syntax"> = </span><a href="5-idf.html#SP2" class="function-link"><span class="function-syntax">ImperativeDefinitionFamilies::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"DEFINITIONAL_PHRASE_EFF"</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">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">DEFINITIONAL_PHRASE_EFF_family</span><span class="plain-syntax">, </span><span class="constant-syntax">CLAIM_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><a href="5-adf.html#SP4" class="function-link"><span class="function-syntax">AdjectivalDefinitionFamily::claim</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">DEFINITIONAL_PHRASE_EFF_family</span><span class="plain-syntax">, </span><span class="constant-syntax">NEW_PHRASE_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><a href="5-adf.html#SP5" class="function-link"><span class="function-syntax">AdjectivalDefinitionFamily::new_phrase</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">DEFINITIONAL_PHRASE_EFF_family</span><span class="plain-syntax">, </span><span class="constant-syntax">ALLOWS_EMPTY_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><a href="5-adf.html#SP6" class="function-link"><span class="function-syntax">AdjectivalDefinitionFamily::allows_empty</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">DEFINITIONAL_PHRASE_EFF_family</span><span class="plain-syntax">, </span><span class="constant-syntax">TO_PHTD_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><a href="5-adf.html#SP6" class="function-link"><span class="function-syntax">AdjectivalDefinitionFamily::to_phtd</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">DEFINITIONAL_PHRASE_EFF_family</span><span class="plain-syntax">, </span><span class="constant-syntax">COMPILE_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><a href="5-adf.html#SP6" class="function-link"><span class="function-syntax">AdjectivalDefinitionFamily::compile</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">adjectival_idf</span><span class="plain-syntax"> = </span><a href="5-idf.html#SP2" class="function-link"><span class="function-syntax">ImperativeDefinitionFamilies::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"adjectival-idf"</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">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">adjectival_idf</span><span class="plain-syntax">, </span><span class="constant-syntax">IDENTIFY_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><a href="5-adf.html#SP4" class="function-link"><span class="function-syntax">AdjectivalDefinitionFamily::identify</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">adjectival_idf</span><span class="plain-syntax">, </span><span class="constant-syntax">GIVEN_BODY_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><a href="5-adf.html#SP6" class="function-link"><span class="function-syntax">AdjectivalDefinitionFamily::given_body</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">adjectival_idf</span><span class="plain-syntax">, </span><span class="constant-syntax">ALLOWS_EMPTY_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><a href="5-adf.html#SP5" class="function-link"><span class="function-syntax">AdjectivalDefinitionFamily::allows_empty</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">adjectival_idf</span><span class="plain-syntax">, </span><span class="constant-syntax">COMPILE_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><a href="5-adf.html#SP7" class="function-link"><span class="function-syntax">AdjectivalDefinitionFamily::compile</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b>Colons are used slightly differently in some adjectival definitions. Consider:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">Definition</span><span class="plain-syntax">: </span><span class="identifier-syntax">A</span><span class="plain-syntax"> </span><span class="identifier-syntax">container</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">roomy</span><span class="plain-syntax"> </span><span class="identifier-syntax">if</span><span class="plain-syntax"> </span><span class="identifier-syntax">its</span><span class="plain-syntax"> </span><span class="identifier-syntax">carrying</span><span class="plain-syntax"> </span><span class="identifier-syntax">capacity</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">greater</span><span class="plain-syntax"> </span><span class="identifier-syntax">than</span><span class="plain-syntax"> </span><span class="constant-syntax">10</span><span class="plain-syntax">.</span>
|
||||
<span class="identifier-syntax">Definition</span><span class="plain-syntax">: </span><span class="identifier-syntax">A</span><span class="plain-syntax"> </span><span class="identifier-syntax">container</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">possessed</span><span class="plain-syntax"> </span><span class="identifier-syntax">by</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">Devil</span><span class="plain-syntax">:</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">if</span><span class="plain-syntax"> </span><span class="identifier-syntax">its</span><span class="plain-syntax"> </span><span class="identifier-syntax">carrying</span><span class="plain-syntax"> </span><span class="identifier-syntax">capacity</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="constant-syntax">666</span><span class="plain-syntax">, </span><span class="identifier-syntax">decide</span><span class="plain-syntax"> </span><span class="identifier-syntax">yes</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">decide</span><span class="plain-syntax"> </span><span class="identifier-syntax">no</span><span class="plain-syntax">.</span>
|
||||
</pre>
|
||||
<p class="commentary">To Inform this looks like three consecutive <span class="extract"><span class="extract-syntax">IMPERATIVE_NT</span></span> nodes:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">Definition</span><span class="plain-syntax">:</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">A</span><span class="plain-syntax"> </span><span class="identifier-syntax">container</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">roomy</span><span class="plain-syntax"> </span><span class="identifier-syntax">if</span><span class="plain-syntax"> </span><span class="identifier-syntax">its</span><span class="plain-syntax"> </span><span class="identifier-syntax">carrying</span><span class="plain-syntax"> </span><span class="identifier-syntax">capacity</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">greater</span><span class="plain-syntax"> </span><span class="identifier-syntax">than</span><span class="plain-syntax"> </span><span class="constant-syntax">10</span><span class="plain-syntax">.</span>
|
||||
|
||||
<span class="identifier-syntax">Definition</span><span class="plain-syntax">:</span>
|
||||
|
||||
<span class="identifier-syntax">A</span><span class="plain-syntax"> </span><span class="identifier-syntax">container</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">possessed</span><span class="plain-syntax"> </span><span class="identifier-syntax">by</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">Devil</span><span class="plain-syntax">:</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">if</span><span class="plain-syntax"> </span><span class="identifier-syntax">its</span><span class="plain-syntax"> </span><span class="identifier-syntax">carrying</span><span class="plain-syntax"> </span><span class="identifier-syntax">capacity</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="constant-syntax">666</span><span class="plain-syntax">, </span><span class="identifier-syntax">decide</span><span class="plain-syntax"> </span><span class="identifier-syntax">yes</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">decide</span><span class="plain-syntax"> </span><span class="identifier-syntax">no</span><span class="plain-syntax">.</span>
|
||||
</pre>
|
||||
<p class="commentary">But we want to create just two <a href="5-id.html#SP1" class="internal">imperative_defn</a> objects, not three. So
|
||||
when the second <span class="extract"><span class="extract-syntax">IMPERATIVE_NT</span></span> node is identified as belonging to us, we
|
||||
take the opportunity to change the type of the third node to <span class="extract"><span class="extract-syntax">DEFN_CONT_NT</span></span>
|
||||
("definition continuation"). That means it will not lead to an <a href="5-id.html#SP1" class="internal">imperative_defn</a>
|
||||
of its own.
|
||||
</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. </b></p>
|
||||
|
||||
<pre class="Preform-displayed-code all-displayed-code code-font">
|
||||
|
@ -100,10 +127,10 @@ function togglePopup(material_id) {
|
|||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">AdjectivalDefinitionFamily::claim</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">AdjectivalDefinitionFamily::claim</span></span>:<br/><a href="5-adf.html#SP2">§2</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">AdjectivalDefinitionFamily::identify</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">AdjectivalDefinitionFamily::identify</span></span>:<br/><a href="5-adf.html#SP1">§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="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="element-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="function-syntax"><definition-preamble></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">id</span><span class="plain-syntax">-></span><span class="element-syntax">family</span><span class="plain-syntax"> = </span><span class="identifier-syntax">DEFINITIONAL_PHRASE_EFF_family</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="element-syntax">family</span><span class="plain-syntax"> = </span><span class="identifier-syntax">adjectival_idf</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="element-syntax">at</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="element-syntax">at</span><span class="plain-syntax">-></span><span class="identifier-syntax">down</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">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="element-syntax">at</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax">) == </span><span class="identifier-syntax">IMPERATIVE_NT</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-is.html#SP1" class="function-link"><span class="function-syntax">ImperativeSubtrees::accept_body</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="element-syntax">at</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax">);</span>
|
||||
|
@ -113,49 +140,45 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. </b>If a phrase defines an adjective, like so:
|
||||
</p>
|
||||
|
||||
<blockquote>
|
||||
<p>Definition: A container is capacious if: ...</p>
|
||||
</blockquote>
|
||||
|
||||
<p class="commentary">we need to make the pronoun "it" a local variable of kind "container" in the
|
||||
stack frame used to compile the "..." part. If it uses a calling, like so:
|
||||
</p>
|
||||
|
||||
<blockquote>
|
||||
<p>Definition: A container (called the sack) is capacious if: ...</p>
|
||||
</blockquote>
|
||||
|
||||
<p class="commentary">then we also want the name "sack" to refer to this. Here's where we take care
|
||||
of it:
|
||||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. </b>Since the "Definition:" node might have no code under it (because the code
|
||||
is actually under the continuation node):
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">AdjectivalDefinitionFamily::new_phrase</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">AdjectivalDefinitionFamily::new_phrase</span></span>:<br/><a href="5-adf.html#SP2">§2</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="identifier-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">new_ph</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">CW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Phrases::Phrasal::define_adjective_by_phrase</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="element-syntax">at</span><span class="plain-syntax">, </span><span class="identifier-syntax">new_ph</span><span class="plain-syntax">, &</span><span class="identifier-syntax">CW</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">LocalVariables::add_pronoun</span><span class="plain-syntax">(&(</span><span class="identifier-syntax">new_ph</span><span class="plain-syntax">-></span><span class="identifier-syntax">stack_frame</span><span class="plain-syntax">), </span><span class="identifier-syntax">CW</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>§6. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">AdjectivalDefinitionFamily::allows_empty</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">AdjectivalDefinitionFamily::allows_empty</span></span>:<br/><a href="5-adf.html#SP2">§2</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">int</span><span class="plain-syntax"> </span><span class="function-syntax">AdjectivalDefinitionFamily::allows_empty</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">AdjectivalDefinitionFamily::allows_empty</span></span>:<br/><a href="5-adf.html#SP1">§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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>§6. </b>The body of code under a definition needs to be set up so that:
|
||||
</p>
|
||||
|
||||
<ul class="items"><li>● The code expects to make a yes/no decision;
|
||||
</li><li>● The pronoun "it" is a local variable referring to the value being tested,
|
||||
perhaps also with a calling — consider the example "Definition: A
|
||||
container (called the sack) is capacious if...".
|
||||
</li></ul>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">AdjectivalDefinitionFamily::given_body</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">AdjectivalDefinitionFamily::given_body</span></span>:<br/><a href="5-adf.html#SP1">§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="identifier-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">body</span><span class="plain-syntax"> = </span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="element-syntax">body_of_defn</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Phrases::TypeData::set_mor</span><span class="plain-syntax">(&(</span><span class="identifier-syntax">body</span><span class="plain-syntax">-></span><span class="identifier-syntax">type_data</span><span class="plain-syntax">), </span><span class="identifier-syntax">DECIDES_CONDITION_MOR</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">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">CALLW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Phrases::Phrasal::define_adjective_by_phrase</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="element-syntax">at</span><span class="plain-syntax">, </span><span class="identifier-syntax">body</span><span class="plain-syntax">, &</span><span class="identifier-syntax">CALLW</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">LocalVariables::add_pronoun</span><span class="plain-syntax">(&(</span><span class="identifier-syntax">body</span><span class="plain-syntax">-></span><span class="identifier-syntax">stack_frame</span><span class="plain-syntax">), </span><span class="identifier-syntax">CALLW</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">AdjectivalDefinitionFamily::to_phtd</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">AdjectivalDefinitionFamily::to_phtd</span></span>:<br/><a href="5-adf.html#SP2">§2</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="identifier-syntax">ph_type_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phtd</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">XW</span><span class="plain-syntax">, </span><span class="identifier-syntax">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">Phrases::TypeData::set_mor</span><span class="plain-syntax">(</span><span class="identifier-syntax">phtd</span><span class="plain-syntax">, </span><span class="identifier-syntax">DECIDES_CONDITION_MOR</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>§7. </b>The code body for any definition is compiled here:
|
||||
</p>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">AdjectivalDefinitionFamily::compile</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">AdjectivalDefinitionFamily::compile</span></span>:<br/><a href="5-adf.html#SP2">§2</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>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">AdjectivalDefinitionFamily::compile</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">AdjectivalDefinitionFamily::compile</span></span>:<br/><a href="5-adf.html#SP1">§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="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> *</span><span class="identifier-syntax">total_phrases_compiled</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">total_phrases_to_compile</span><span class="plain-syntax">) {</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="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="reserved-syntax">imperative_defn</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="element-syntax">family</span><span class="plain-syntax"> == </span><span class="identifier-syntax">DEFINITIONAL_PHRASE_EFF_family</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="element-syntax">family</span><span class="plain-syntax"> == </span><span class="identifier-syntax">adjectival_idf</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Phrases::compile</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="identifier-syntax">body_of_defn</span><span class="plain-syntax">, </span><span class="identifier-syntax">total_phrases_compiled</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">total_phrases_to_compile</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</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">RTAdjectives::compile_support_code</span><span class="plain-syntax">();</span>
|
||||
|
|
|
@ -180,14 +180,15 @@ detailed look possible.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax"> = </span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="element-syntax">at</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="5-idf.html#SP4" class="function-link"><span class="function-syntax">ImperativeDefinitionFamilies::assess</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Node::is</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="element-syntax">at</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax">, </span><span class="identifier-syntax">DEFN_CONT_NT</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="element-syntax">at</span><span class="plain-syntax">-></span><span class="identifier-syntax">down</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><a href="5-idf.html#SP11" class="function-link"><span class="function-syntax">ImperativeDefinitionFamilies::allows_empty</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> (</span><a href="5-idf.html#SP10" class="function-link"><span class="function-syntax">ImperativeDefinitionFamilies::allows_empty</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">StandardProblems::sentence_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_Undefined</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"there doesn't seem to be any definition here"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"so I can't see what this rule or phrase would do."</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">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">body</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Phrases::create_from_preamble</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">id</span><span class="plain-syntax">-></span><span class="element-syntax">body_of_defn</span><span class="plain-syntax"> = </span><span class="identifier-syntax">body</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="5-idf.html#SP7" class="function-link"><span class="function-syntax">ImperativeDefinitionFamilies::given_body</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">body</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-idf.html#SP5" class="function-link"><span class="function-syntax">ImperativeDefinitionFamilies::given_body</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Phrases::prepare_stack_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">body</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">initial_problem_count</span><span class="plain-syntax"> < </span><span class="identifier-syntax">problem_count</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
|
@ -199,7 +200,7 @@ detailed look possible.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">imperative_defn_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">idf</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">idf</span><span class="plain-syntax">, </span><span class="reserved-syntax">imperative_defn_family</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="5-idf.html#SP5" class="function-link"><span class="function-syntax">ImperativeDefinitionFamilies::register</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">idf</span><span class="plain-syntax">, </span><span class="identifier-syntax">initial_problem_count</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-idf.html#SP6" class="function-link"><span class="function-syntax">ImperativeDefinitionFamilies::register</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">idf</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">initial_problem_count</span><span class="plain-syntax"> < </span><span class="identifier-syntax">problem_count</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
|
@ -211,7 +212,7 @@ detailed look possible.
|
|||
<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="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="reserved-syntax">imperative_defn</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="element-syntax">body_of_defn</span><span class="plain-syntax">-></span><span class="identifier-syntax">runtime_context_data</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="5-idf.html#SP8" class="function-link"><span class="function-syntax">ImperativeDefinitionFamilies::to_phrcd</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-idf.html#SP7" class="function-link"><span class="function-syntax">ImperativeDefinitionFamilies::to_phrcd</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">initial_problem_count</span><span class="plain-syntax"> < </span><span class="identifier-syntax">problem_count</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-id.html#SP5">§5</a>.</li></ul>
|
||||
|
@ -221,7 +222,7 @@ detailed look possible.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">imperative_defn_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">idf</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">idf</span><span class="plain-syntax">, </span><span class="reserved-syntax">imperative_defn_family</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="5-idf.html#SP6" class="function-link"><span class="function-syntax">ImperativeDefinitionFamilies::assessment_complete</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">idf</span><span class="plain-syntax">, </span><span class="identifier-syntax">initial_problem_count</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-idf.html#SP8" class="function-link"><span class="function-syntax">ImperativeDefinitionFamilies::assessment_complete</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">idf</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">initial_problem_count</span><span class="plain-syntax"> < </span><span class="identifier-syntax">problem_count</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
|
@ -239,11 +240,11 @@ in two stages. Stage one:
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">imperative_defn_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">idf</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">idf</span><span class="plain-syntax">, </span><span class="reserved-syntax">imperative_defn_family</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">idf</span><span class="plain-syntax">-></span><span class="element-syntax">compile_last</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="5-idf.html#SP13" class="function-link"><span class="function-syntax">ImperativeDefinitionFamilies::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">idf</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="5-idf.html#SP12" class="function-link"><span class="function-syntax">ImperativeDefinitionFamilies::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">idf</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> &</span><span class="identifier-syntax">total_phrases_compiled</span><span class="plain-syntax">, </span><span class="identifier-syntax">total_phrases_to_compile</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">idf</span><span class="plain-syntax">, </span><span class="reserved-syntax">imperative_defn_family</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">idf</span><span class="plain-syntax">-></span><span class="element-syntax">compile_last</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="5-idf.html#SP13" class="function-link"><span class="function-syntax">ImperativeDefinitionFamilies::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">idf</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="5-idf.html#SP12" class="function-link"><span class="function-syntax">ImperativeDefinitionFamilies::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">idf</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> &</span><span class="identifier-syntax">total_phrases_compiled</span><span class="plain-syntax">, </span><span class="identifier-syntax">total_phrases_to_compile</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
@ -267,7 +268,7 @@ any run-time resources which need to be made by the family.
|
|||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ImperativeDefinitions::compile_as_needed</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">imperative_defn_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">idf</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">idf</span><span class="plain-syntax">, </span><span class="reserved-syntax">imperative_defn_family</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="5-idf.html#SP14" class="function-link"><span class="function-syntax">ImperativeDefinitionFamilies::compile_as_needed</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">idf</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="5-idf.html#SP13" class="function-link"><span class="function-syntax">ImperativeDefinitionFamilies::compile_as_needed</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">idf</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> &</span><span class="identifier-syntax">total_phrases_compiled</span><span class="plain-syntax">, </span><span class="identifier-syntax">total_phrases_to_compile</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
|
|
@ -72,8 +72,18 @@ function togglePopup(material_id) {
|
|||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">assertions</a></li><li><a href="index.html#5">Chapter 5: Imperative Code</a></li><li><b>Imperative Definition Families</b></li></ul></div>
|
||||
<p class="purpose">Different categories of imperative definition.</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b>There are very few of these, and an Inform source text cannot create more.
|
||||
The following is called at startup, and then that's the lot:
|
||||
<ul class="toc"><li><a href="5-idf.html#SP1">§1. Creation</a></li><li><a href="5-idf.html#SP3">§3. Identification</a></li><li><a href="5-idf.html#SP4">§4. Assessment</a></li><li><a href="5-idf.html#SP9">§9. What is allowed in the body</a></li><li><a href="5-idf.html#SP12">§12. Compilation and indexing</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. Creation. </b>See <a href="5-id.html" class="internal">Imperative Definitions</a> for what these families are.
|
||||
</p>
|
||||
|
||||
<p class="commentary">There are very few of them, and an Inform source text cannot create more.
|
||||
The following is called at startup, and then that's the lot.
|
||||
</p>
|
||||
|
||||
<p class="commentary">The order of creation is important here, or at least, it's important that
|
||||
the rule family comes last, because this affects the order of the loop in
|
||||
<a href="5-idf.html#SP3" class="internal">ImperativeDefinitionFamilies::identify</a> below.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -81,9 +91,9 @@ The following is called at startup, and then that's the lot:
|
|||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ImperativeDefinitionFamilies::create</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">ImperativeDefinitionFamilies::create</span></span>:<br/>Assertions Module - <a href="1-am.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">unknown_idf</span><span class="plain-syntax"> = </span><a href="5-idf.html#SP2" class="function-link"><span class="function-syntax">ImperativeDefinitionFamilies::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"unknown-idf"</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-adf.html#SP2" class="function-link"><span class="function-syntax">AdjectivalDefinitionFamily::create_family</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="5-adf.html#SP1" class="function-link"><span class="function-syntax">AdjectivalDefinitionFamily::create_family</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="5-tpf.html#SP3" class="function-link"><span class="function-syntax">ToPhraseFamily::create_family</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="5-rf.html#SP2" class="function-link"><span class="function-syntax">RuleFamily::create_family</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="5-rf.html#SP1" class="function-link"><span class="function-syntax">RuleFamily::create_family</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b>Such a family is little more than a set of methods:
|
||||
|
@ -97,7 +107,7 @@ The following is called at startup, and then that's the lot:
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">imperative_defn_family</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="reserved-syntax">imperative_defn_family</span><span class="plain-syntax"> *</span><span class="function-syntax">ImperativeDefinitionFamilies::new</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">ImperativeDefinitionFamilies::new</span></span>:<br/><a href="5-idf.html#SP1">§1</a><br/>Adjectival Definition Family - <a href="5-adf.html#SP2">§2</a><br/>To Phrase Family - <a href="5-tpf.html#SP3">§3</a><br/>Rule Family - <a href="5-rf.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">last</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">imperative_defn_family</span><span class="plain-syntax"> *</span><span class="function-syntax">ImperativeDefinitionFamilies::new</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">ImperativeDefinitionFamilies::new</span></span>:<br/><a href="5-idf.html#SP1">§1</a><br/>Adjectival Definition Family - <a href="5-adf.html#SP1">§1</a><br/>To Phrase Family - <a href="5-tpf.html#SP3">§3</a><br/>Rule Family - <a href="5-rf.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">last</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">imperative_defn_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">family</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">imperative_defn_family</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">family</span><span class="plain-syntax">-></span><span class="element-syntax">family_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::duplicate</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">family</span><span class="plain-syntax">-></span><span class="element-syntax">methods</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Methods::new_set</span><span class="plain-syntax">();</span>
|
||||
|
@ -106,28 +116,31 @@ The following is called at startup, and then that's the lot:
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure imperative_defn_family is accessed in 5/id, 7/am and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. </b>So, then, the rest of this section provides an API, in effect, for different
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. Identification. </b>So, then, the rest of this section provides an API, in effect, for different
|
||||
users of imperative definitions to get their work done.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="extract"><span class="extract-syntax">CLAIM_IMP_DEFN_MTID</span></span> is for deciding from the syntax of a preamble whether
|
||||
this definition should belong to the family or not.
|
||||
<p class="commentary"><span class="extract"><span class="extract-syntax">IDENTIFY_IMP_DEFN_MTID</span></span> is for deciding from the syntax of a preamble whether
|
||||
this definition should belong to the family or not. The recipient should set
|
||||
<span class="extract"><span class="extract-syntax">id->family</span></span> to itself if it wants the definition.
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">CLAIM_IMP_DEFN_MTID</span>
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">IDENTIFY_IMP_DEFN_MTID</span>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">VOID_METHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">CLAIM_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">imperative_defn_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">f</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="identifier-syntax">VOID_METHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">IDENTIFY_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">imperative_defn_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">f</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">ImperativeDefinitionFamilies::identify</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">ImperativeDefinitionFamilies::identify</span></span>:<br/>Imperative Definitions - <a href="5-id.html#SP2">§2</a></span></button><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="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="element-syntax">family</span><span class="plain-syntax"> = </span><span class="identifier-syntax">unknown_idf</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">imperative_defn_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">f</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">f</span><span class="plain-syntax">, </span><span class="reserved-syntax">imperative_defn_family</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="element-syntax">family</span><span class="plain-syntax"> == </span><span class="identifier-syntax">unknown_idf</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VOID_METHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">f</span><span class="plain-syntax">, </span><span class="constant-syntax">CLAIM_IMP_DEFN_MTID</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">VOID_METHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">f</span><span class="plain-syntax">, </span><span class="constant-syntax">IDENTIFY_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. </b><span class="extract"><span class="extract-syntax">ASSESS_IMP_DEFN_MTID</span></span> is for parsing it in more detail, later on.
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. Assessment. </b><span class="extract"><span class="extract-syntax">ASSESS_IMP_DEFN_MTID</span></span> is for parsing the preamble in more detail, later on.
|
||||
At the start of assessment, this is called on each of the IDs belonging to the
|
||||
family in turn.
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">ASSESS_IMP_DEFN_MTID</span>
|
||||
|
@ -139,53 +152,43 @@ this definition should belong to the family or not.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">VOID_METHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="element-syntax">family</span><span class="plain-syntax">, </span><span class="constant-syntax">ASSESS_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. </b><span class="extract"><span class="extract-syntax">REGISTER_IMP_DEFN_MTID</span></span> is called on the family when everything has
|
||||
been assessed.
|
||||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. </b><span class="extract"><span class="extract-syntax">GIVEN_BODY_IMP_DEFN_MTID</span></span> is called on an ID just after <span class="extract"><span class="extract-syntax">id->body_of_defn</span></span>
|
||||
has finally been created.
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">GIVEN_BODY_IMP_DEFN_MTID</span>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">VOID_METHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">GIVEN_BODY_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">imperative_defn_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">f</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">ImperativeDefinitionFamilies::given_body</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">ImperativeDefinitionFamilies::given_body</span></span>:<br/>Imperative Definitions - <a href="5-id.html#SP5_1">§5.1</a></span></button><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="identifier-syntax">VOID_METHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="element-syntax">family</span><span class="plain-syntax">, </span><span class="constant-syntax">GIVEN_BODY_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>§6. </b>Next, <span class="extract"><span class="extract-syntax">REGISTER_IMP_DEFN_MTID</span></span> is then called on the family when all of the
|
||||
<span class="extract"><span class="extract-syntax">ASSESS_IMP_DEFN_MTID</span></span> calls have been made, and all the bodies created.
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">REGISTER_IMP_DEFN_MTID</span>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">VOID_METHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">REGISTER_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">imperative_defn_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">f</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">initial_problem_count</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">VOID_METHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">REGISTER_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">imperative_defn_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">f</span><span class="plain-syntax">)</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ImperativeDefinitionFamilies::register</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">ImperativeDefinitionFamilies::register</span></span>:<br/>Imperative Definitions - <a href="5-id.html#SP5_2">§5.2</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">f</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">initial_problem_count</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VOID_METHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">f</span><span class="plain-syntax">, </span><span class="constant-syntax">REGISTER_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">initial_problem_count</span><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ImperativeDefinitionFamilies::register</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">ImperativeDefinitionFamilies::register</span></span>:<br/>Imperative Definitions - <a href="5-id.html#SP5_2">§5.2</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">f</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VOID_METHOD_CALL_WITHOUT_ARGUMENTS</span><span class="plain-syntax">(</span><span class="identifier-syntax">f</span><span class="plain-syntax">, </span><span class="constant-syntax">REGISTER_IMP_DEFN_MTID</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>§6. </b><span class="extract"><span class="extract-syntax">ASSESSMENT_COMPLETE_IMP_DEFN_MTID</span></span> is called on the family when everything has
|
||||
been assessed.
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">ASSESSMENT_COMPLETE_IMP_DEFN_MTID</span>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">VOID_METHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">ASSESSMENT_COMPLETE_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">imperative_defn_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">f</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">initial_problem_count</span><span class="plain-syntax">)</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ImperativeDefinitionFamilies::assessment_complete</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">ImperativeDefinitionFamilies::assessment_complete</span></span>:<br/>Imperative Definitions - <a href="5-id.html#SP5_4">§5.4</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">f</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">initial_problem_count</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VOID_METHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">f</span><span class="plain-syntax">, </span><span class="constant-syntax">ASSESSMENT_COMPLETE_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">initial_problem_count</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>§7. </b><span class="extract"><span class="extract-syntax">NEW_PHRASE_IMP_DEFN_MTID</span></span> is for ...
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">NEW_PHRASE_IMP_DEFN_MTID</span>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">VOID_METHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">NEW_PHRASE_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">imperative_defn_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">f</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="identifier-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">new_ph</span><span class="plain-syntax">)</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ImperativeDefinitionFamilies::given_body</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">ImperativeDefinitionFamilies::given_body</span></span>:<br/>Imperative Definitions - <a href="5-id.html#SP5_1">§5.1</a></span></button><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="identifier-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">new_ph</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VOID_METHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="element-syntax">family</span><span class="plain-syntax">, </span><span class="constant-syntax">NEW_PHRASE_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">new_ph</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>§8. </b><span class="extract"><span class="extract-syntax">TO_RCD_IMP_DEFN_MTID</span></span> is for...
|
||||
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>§7. </b>A call to <span class="extract"><span class="extract-syntax">TO_RCD_IMP_DEFN_MTID</span></span> is then made for each ID in turn, asking the
|
||||
family to give the body its runtime context data.
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">TO_RCD_IMP_DEFN_MTID</span>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">VOID_METHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">TO_RCD_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">imperative_defn_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">f</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="identifier-syntax">ph_runtime_context_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rcd</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">VOID_METHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">TO_RCD_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">imperative_defn_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">f</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="identifier-syntax">ph_runtime_context_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rcd</span><span class="plain-syntax">)</span>
|
||||
|
||||
<span class="identifier-syntax">ph_runtime_context_data</span><span class="plain-syntax"> </span><span class="function-syntax">ImperativeDefinitionFamilies::to_phrcd</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">ImperativeDefinitionFamilies::to_phrcd</span></span>:<br/>Imperative Definitions - <a href="5-id.html#SP5_3">§5.3</a></span></button><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="identifier-syntax">ph_runtime_context_data</span><span class="plain-syntax"> </span><span class="function-syntax">ImperativeDefinitionFamilies::to_phrcd</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">ImperativeDefinitionFamilies::to_phrcd</span></span>:<br/>Imperative Definitions - <a href="5-id.html#SP5_3">§5.3</a></span></button><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="identifier-syntax">current_sentence</span><span class="plain-syntax"> = </span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="element-syntax">at</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Frames::make_current</span><span class="plain-syntax">(&(</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="element-syntax">body_of_defn</span><span class="plain-syntax">-></span><span class="identifier-syntax">stack_frame</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ph_runtime_context_data</span><span class="plain-syntax"> </span><span class="identifier-syntax">phrcd</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Phrases::Context::new</span><span class="plain-syntax">();</span>
|
||||
|
@ -194,25 +197,32 @@ been assessed.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">phrcd</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>§9. </b><span class="extract"><span class="extract-syntax">TO_PHTD_IMP_DEFN_MTID</span></span> is for...
|
||||
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>§8. </b>Finally, <span class="extract"><span class="extract-syntax">ASSESSMENT_COMPLETE_IMP_DEFN_MTID</span></span> is called on the family when
|
||||
everything has been assessed.
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">TO_PHTD_IMP_DEFN_MTID</span>
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">ASSESSMENT_COMPLETE_IMP_DEFN_MTID</span>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">VOID_METHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">TO_PHTD_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">imperative_defn_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">f</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="identifier-syntax">ph_type_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phtd</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">XW</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OW</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">VOID_METHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">ASSESSMENT_COMPLETE_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">imperative_defn_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">f</span><span class="plain-syntax">)</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ImperativeDefinitionFamilies::to_phtd</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="identifier-syntax">ph_type_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phtd</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">XW</span><span class="plain-syntax">, </span><span class="identifier-syntax">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">VOID_METHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="element-syntax">family</span><span class="plain-syntax">, </span><span class="constant-syntax">TO_PHTD_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">phtd</span><span class="plain-syntax">, </span><span class="identifier-syntax">XW</span><span class="plain-syntax">, </span><span class="identifier-syntax">OW</span><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ImperativeDefinitionFamilies::assessment_complete</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">ImperativeDefinitionFamilies::assessment_complete</span></span>:<br/>Imperative Definitions - <a href="5-id.html#SP5_4">§5.4</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">f</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VOID_METHOD_CALL_WITHOUT_ARGUMENTS</span><span class="plain-syntax">(</span><span class="identifier-syntax">f</span><span class="plain-syntax">, </span><span class="constant-syntax">ASSESSMENT_COMPLETE_IMP_DEFN_MTID</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>§10. </b>Whether phrases which end the current rulebook are allowed in the definition body.
|
||||
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>§9. What is allowed in the body. </b>The body of the definition can for the most part be any Inform 7 code, but
|
||||
there are a few restrictions which depend on what the definition family is.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="extract"><span class="extract-syntax">ALLOWS_RULE_ONLY_PHRASES_IMP_DEFN_MTID</span></span> should reply <span class="extract"><span class="extract-syntax">TRUE</span></span> if phrases
|
||||
intended to end rules or rulebooks can be used in the body; by default, not.
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">ALLOWS_RULE_ONLY_PHRASES_IMP_DEFN_MTID</span>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">INT_METHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">ALLOWS_RULE_ONLY_PHRASES_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">imperative_defn_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">f</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="identifier-syntax">INT_METHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">ALLOWS_RULE_ONLY_PHRASES_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">imperative_defn_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">f</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">imperative_defn</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="function-syntax">ImperativeDefinitionFamilies::goes_in_rulebooks</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
|
@ -220,8 +230,9 @@ been assessed.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>§11. </b>Whether the definition body can be empty (as when a definition of an adjective
|
||||
does not go on to contain code).
|
||||
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>§10. </b><span class="extract"><span class="extract-syntax">ALLOWS_EMPTY_IMP_DEFN_MTID</span></span> should reply <span class="extract"><span class="extract-syntax">TRUE</span></span> if the body is allowed to
|
||||
be empty, that is, for there to be no code at all. This happens for some
|
||||
adjective definitions which wrap up in a single line. The default is no.
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">ALLOWS_EMPTY_IMP_DEFN_MTID</span>
|
||||
|
@ -235,7 +246,8 @@ does not go on to contain code).
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>§12. </b>Whether the definition body can be given as <span class="extract"><span class="extract-syntax">(-</span></span> inline <span class="extract"><span class="extract-syntax">-)</span></span> material.
|
||||
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>§11. </b><span class="extract"><span class="extract-syntax">ALLOWS_INLINE_IMP_DEFN_MTID</span></span> should reply <span class="extract"><span class="extract-syntax">TRUE</span></span> if the definition body can
|
||||
be given as <span class="extract"><span class="extract-syntax">(-</span></span> inline <span class="extract"><span class="extract-syntax">-)</span></span> material. The default is no.
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">ALLOWS_INLINE_IMP_DEFN_MTID</span>
|
||||
|
@ -249,7 +261,9 @@ does not go on to contain code).
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>§13. </b><span class="extract"><span class="extract-syntax">COMPILE_IMP_DEFN_MTID</span></span> is for .
|
||||
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>§12. Compilation and indexing. </b><span class="extract"><span class="extract-syntax">COMPILE_IMP_DEFN_MTID</span></span> is called to ask the family to perform its main round
|
||||
of compilation for any resources it will need — most obviously, of course,
|
||||
it may want to turn its definition bodies into Inter functions.
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">COMPILE_IMP_DEFN_MTID</span>
|
||||
|
@ -264,7 +278,9 @@ does not go on to contain code).
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">total_phrases_compiled</span><span class="plain-syntax">, </span><span class="identifier-syntax">total_phrases_to_compile</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>§14. </b><span class="extract"><span class="extract-syntax">COMPILE_IMP_DEFN_MTID</span></span> is for .
|
||||
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>§13. </b><span class="extract"><span class="extract-syntax">COMPILE_AS_NEEDED_IMP_DEFN_MTID</span></span> is then called as an opportunity to
|
||||
compile any remaining resources, and should pick up anything needed since the
|
||||
last time it was called: note that it can be called multiple times.
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">COMPILE_AS_NEEDED_IMP_DEFN_MTID</span>
|
||||
|
@ -279,7 +295,8 @@ does not go on to contain code).
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">total_phrases_compiled</span><span class="plain-syntax">, </span><span class="identifier-syntax">total_phrases_to_compile</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>§15. </b><span class="extract"><span class="extract-syntax">PHRASEBOOK_INDEX_IMP_DEFN_MTID</span></span> is for .
|
||||
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>§14. </b><span class="extract"><span class="extract-syntax">PHRASEBOOK_INDEX_IMP_DEFN_MTID</span></span> should reply <span class="extract"><span class="extract-syntax">TRUE</span></span> if the definition should
|
||||
go into the Phrasebook page of the index.
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">PHRASEBOOK_INDEX_IMP_DEFN_MTID</span>
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -87,7 +87,8 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">pattern</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">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">prototype_text</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">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">constant_name</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">constant_phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">constant_phrase_holder</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">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">ph_documentation_symbol</span><span class="plain-syntax">; </span><span class="comment-syntax"> the documentation reference, if any</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">constant_phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">constant_phrase_holder</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">explicit_name_used_in_maths</span><span class="plain-syntax">; </span><span class="comment-syntax"> if so, this flag means it's like </span><span class="extract"><span class="extract-syntax">log()</span></span><span class="comment-syntax"> or </span><span class="extract"><span class="extract-syntax">sin()</span></span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">explicit_name_for_inverse</span><span class="plain-syntax">; </span><span class="comment-syntax"> e.g. </span><span class="extract"><span class="extract-syntax">exp</span></span><span class="comment-syntax"> for </span><span class="extract"><span class="extract-syntax">log</span></span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">to_begin</span><span class="plain-syntax">; </span><span class="comment-syntax"> used in Basic mode only: this is to be the main phrase</span>
|
||||
|
@ -100,12 +101,11 @@ function togglePopup(material_id) {
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ToPhraseFamily::create_family</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">ToPhraseFamily::create_family</span></span>:<br/>Imperative Definition Families - <a href="5-idf.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TO_PHRASE_EFF_family</span><span class="plain-syntax"> = </span><a href="5-idf.html#SP2" class="function-link"><span class="function-syntax">ImperativeDefinitionFamilies::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"TO_PHRASE_EFF"</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">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">TO_PHRASE_EFF_family</span><span class="plain-syntax">, </span><span class="constant-syntax">CLAIM_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><a href="5-tpf.html#SP5" class="function-link"><span class="function-syntax">ToPhraseFamily::claim</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">TO_PHRASE_EFF_family</span><span class="plain-syntax">, </span><span class="constant-syntax">IDENTIFY_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><a href="5-tpf.html#SP5" class="function-link"><span class="function-syntax">ToPhraseFamily::claim</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">TO_PHRASE_EFF_family</span><span class="plain-syntax">, </span><span class="constant-syntax">ASSESS_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><a href="5-tpf.html#SP8" class="function-link"><span class="function-syntax">ToPhraseFamily::assess</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">TO_PHRASE_EFF_family</span><span class="plain-syntax">, </span><span class="constant-syntax">REGISTER_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><a href="5-tpf.html#SP9" class="function-link"><span class="function-syntax">ToPhraseFamily::register</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">TO_PHRASE_EFF_family</span><span class="plain-syntax">, </span><span class="constant-syntax">NEW_PHRASE_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><a href="5-tpf.html#SP9" class="function-link"><span class="function-syntax">ToPhraseFamily::new_phrase</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">TO_PHRASE_EFF_family</span><span class="plain-syntax">, </span><span class="constant-syntax">GIVEN_BODY_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><a href="5-tpf.html#SP9" class="function-link"><span class="function-syntax">ToPhraseFamily::given_body</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">TO_PHRASE_EFF_family</span><span class="plain-syntax">, </span><span class="constant-syntax">ALLOWS_INLINE_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><a href="5-tpf.html#SP9" class="function-link"><span class="function-syntax">ToPhraseFamily::allows_inline</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">TO_PHRASE_EFF_family</span><span class="plain-syntax">, </span><span class="constant-syntax">TO_PHTD_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><a href="5-tpf.html#SP9" class="function-link"><span class="function-syntax">ToPhraseFamily::to_phtd</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">TO_PHRASE_EFF_family</span><span class="plain-syntax">, </span><span class="constant-syntax">COMPILE_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><a href="5-tpf.html#SP10" class="function-link"><span class="function-syntax">ToPhraseFamily::compile</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">TO_PHRASE_EFF_family</span><span class="plain-syntax">, </span><span class="constant-syntax">COMPILE_AS_NEEDED_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><a href="5-tpf.html#SP11" class="function-link"><span class="function-syntax">ToPhraseFamily::compile_as_needed</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">TO_PHRASE_EFF_family</span><span class="plain-syntax">, </span><span class="constant-syntax">PHRASEBOOK_INDEX_IMP_DEFN_MTID</span><span class="plain-syntax">, </span><a href="5-tpf.html#SP9" class="function-link"><span class="function-syntax">ToPhraseFamily::include_in_Phrasebook_index</span></a><span class="plain-syntax">);</span>
|
||||
|
@ -168,13 +168,15 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="string-syntax">"because it already has a meaning."</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">tfd</span><span class="plain-syntax">-></span><span class="element-syntax">constant_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RW</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Phrases::Constants::parse</span><span class="plain-syntax">(</span><span class="identifier-syntax">RW</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">Phrases::Constants::create</span><span class="plain-syntax">(</span><span class="identifier-syntax">RW</span><span class="plain-syntax">, </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax"><to-phrase-preamble></span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="5-tpf.html#SP14" class="function-link"><span class="function-syntax">ToPhraseFamily::parse_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">RW</span><span class="plain-syntax">) == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="5-tpf.html#SP13" class="function-link"><span class="function-syntax">ToPhraseFamily::create_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">RW</span><span class="plain-syntax">, </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax"><to-phrase-preamble></span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">form</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">form</span><span class="plain-syntax"> == </span><span class="constant-syntax">2</span><span class="plain-syntax">)) </span><span class="identifier-syntax">tfd</span><span class="plain-syntax">-></span><span class="element-syntax">explicit_name_used_in_maths</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">form</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><span class="identifier-syntax">tfd</span><span class="plain-syntax">-></span><span class="element-syntax">explicit_name_for_inverse</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Wordings::first_word</span><span class="plain-syntax">(</span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax"><to-phrase-preamble></span><span class="plain-syntax">, </span><span class="constant-syntax">3</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">tfd</span><span class="plain-syntax">-></span><span class="element-syntax">prototype_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax"><to-phrase-preamble></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">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">PW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax"><to-phrase-preamble></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">tfd</span><span class="plain-syntax">-></span><span class="element-syntax">ph_documentation_symbol</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Index::DocReferences::position_of_symbol</span><span class="plain-syntax">(&</span><span class="identifier-syntax">PW</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">tfd</span><span class="plain-syntax">-></span><span class="element-syntax">prototype_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PW</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
@ -231,9 +233,9 @@ mode, we can get that value back again if we look it up by name.
|
|||
<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">NW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">tfd</span><span class="plain-syntax">-></span><span class="element-syntax">constant_name</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">constant_phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cphr</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Phrases::Constants::parse</span><span class="plain-syntax">(</span><span class="identifier-syntax">NW</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::definite</span><span class="plain-syntax">(</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="identifier-syntax">cphr_kind</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">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Phrases::Constants::as_phrase</span><span class="plain-syntax">(</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">constant_phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cphr</span><span class="plain-syntax"> = </span><a href="5-tpf.html#SP14" class="function-link"><span class="function-syntax">ToPhraseFamily::parse_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">NW</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::definite</span><span class="plain-syntax">(</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="element-syntax">cphr_kind</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">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</span><span class="plain-syntax"> = </span><a href="5-tpf.html#SP16" class="function-link"><span class="function-syntax">ToPhraseFamily::body_of_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ph</span><span class="plain-syntax">) </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Phrases::declaration_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_source</span><span class="plain-syntax">(1, </span><span class="identifier-syntax">Diagrams::new_UNPARSED_NOUN</span><span class="plain-syntax">(</span><span class="identifier-syntax">Nouns::nominative_singular</span><span class="plain-syntax">(</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">)));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_wording</span><span class="plain-syntax">(2, </span><span class="identifier-syntax">Nouns::nominative_singular</span><span class="plain-syntax">(</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">));</span>
|
||||
|
@ -246,7 +248,7 @@ mode, we can get that value back again if we look it up by name.
|
|||
<span class="plain-syntax"> </span><span class="string-syntax">"for every setting where it might be needed, and we can't "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"predict in advance which one '%2' might need to be."</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="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"CPHR failed at %d, %u\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">, </span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="identifier-syntax">cphr_kind</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"CPHR failed at %d, %u\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">, </span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="element-syntax">cphr_kind</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">tfd</span><span class="plain-syntax">-></span><span class="element-syntax">constant_phrase_holder</span><span class="plain-syntax"> = </span><span class="identifier-syntax">cphr</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
|
@ -254,29 +256,31 @@ mode, we can get that value back again if we look it up by name.
|
|||
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>§9. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ToPhraseFamily::register</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">ToPhraseFamily::register</span></span>:<br/><a href="5-tpf.html#SP3">§3</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">initial_problem_count</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ToPhraseFamily::register</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">ToPhraseFamily::register</span></span>:<br/><a href="5-tpf.html#SP3">§3</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="plain-syntax"> </span><span class="identifier-syntax">Routines::ToPhrases::register_all</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">ToPhraseFamily::new_phrase</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">ToPhraseFamily::new_phrase</span></span>:<br/><a href="5-tpf.html#SP3">§3</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="identifier-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">new_ph</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ToPhraseFamily::given_body</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">ToPhraseFamily::given_body</span></span>:<br/><a href="5-tpf.html#SP3">§3</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">to_family_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tfd</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_to_family_data</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="element-syntax">family_specific_data</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">tfd</span><span class="plain-syntax">-></span><span class="element-syntax">to_begin</span><span class="plain-syntax">) </span><span class="identifier-syntax">new_ph</span><span class="plain-syntax">-></span><span class="element-syntax">to_begin</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">Routines::ToPhrases::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">new_ph</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">tfd</span><span class="plain-syntax">-></span><span class="element-syntax">to_begin</span><span class="plain-syntax">) </span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="element-syntax">body_of_defn</span><span class="plain-syntax">-></span><span class="element-syntax">to_begin</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">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">XW</span><span class="plain-syntax"> = </span><a href="5-tpf.html#SP10" class="function-link"><span class="function-syntax">ToPhraseFamily::get_prototype_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">OW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Phrases::TypeData::Textual::parse</span><span class="plain-syntax">(&(</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="element-syntax">body_of_defn</span><span class="plain-syntax">-></span><span class="identifier-syntax">type_data</span><span class="plain-syntax">), </span><span class="identifier-syntax">XW</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">Phrases::Options::parse_declared_options</span><span class="plain-syntax">(&(</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="element-syntax">body_of_defn</span><span class="plain-syntax">-></span><span class="identifier-syntax">options_data</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">Routines::ToPhrases::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="identifier-syntax">body_of_defn</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">ToPhraseFamily::allows_inline</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">ToPhraseFamily::allows_inline</span></span>:<br/><a href="5-tpf.html#SP3">§3</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ToPhraseFamily::to_phtd</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">ToPhraseFamily::to_phtd</span></span>:<br/><a href="5-tpf.html#SP3">§3</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="identifier-syntax">ph_type_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phtd</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">XW</span><span class="plain-syntax">, </span><span class="identifier-syntax">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">Phrases::TypeData::Textual::parse</span><span class="plain-syntax">(</span><span class="identifier-syntax">phtd</span><span class="plain-syntax">, </span><span class="identifier-syntax">XW</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">int</span><span class="plain-syntax"> </span><span class="function-syntax">ToPhraseFamily::include_in_Phrasebook_index</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">ToPhraseFamily::include_in_Phrasebook_index</span></span>:<br/><a href="5-tpf.html#SP3">§3</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">int</span><span class="plain-syntax"> </span><span class="function-syntax">ToPhraseFamily::include_in_Phrasebook_index</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">ToPhraseFamily::include_in_Phrasebook_index</span></span>:<br/><a href="5-tpf.html#SP3">§3</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">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="identifier-syntax">phrase</span><span class="plain-syntax"> *</span><span class="function-syntax">ToPhraseFamily::inverse</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">ToPhraseFamily::inverse</span></span>:<br/>Equations - <a href="6-eqt.html#SP41_3_2">§41.3.2</a></span></button><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="identifier-syntax">phrase</span><span class="plain-syntax"> *</span><span class="function-syntax">ToPhraseFamily::inverse</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">ToPhraseFamily::inverse</span></span>:<br/>Equations - <a href="6-eqt.html#SP41_3_2">§41.3.2</a></span></button><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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="element-syntax">family</span><span class="plain-syntax"> != </span><span class="identifier-syntax">TO_PHRASE_EFF_family</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">to_family_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tfd</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_to_family_data</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="element-syntax">family_specific_data</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">tfd</span><span class="plain-syntax">-></span><span class="element-syntax">explicit_name_for_inverse</span><span class="plain-syntax">)) {</span>
|
||||
|
@ -291,7 +295,7 @@ mode, we can get that value back again if we look it up by name.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">constant_phrase</span><span class="plain-syntax"> *</span><span class="function-syntax">ToPhraseFamily::constant_phrase</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">constant_phrase</span><span class="plain-syntax"> *</span><span class="function-syntax">ToPhraseFamily::constant_phrase</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">ToPhraseFamily::constant_phrase</span></span>:<br/><a href="5-tpf.html#SP16">§16</a></span></button><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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="element-syntax">family</span><span class="plain-syntax"> != </span><span class="identifier-syntax">TO_PHRASE_EFF_family</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">to_family_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tfd</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_to_family_data</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="element-syntax">family_specific_data</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">tfd</span><span class="plain-syntax">-></span><span class="element-syntax">constant_phrase_holder</span><span class="plain-syntax">;</span>
|
||||
|
@ -319,18 +323,24 @@ mode, we can get that value back again if we look it up by name.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">Wordings::first_word</span><span class="plain-syntax">(</span><span class="identifier-syntax">Nouns::nominative_singular</span><span class="plain-syntax">(</span><span class="identifier-syntax">tfd</span><span class="plain-syntax">-></span><span class="element-syntax">constant_phrase_holder</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="function-syntax">ToPhraseFamily::doc_ref</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="element-syntax">family</span><span class="plain-syntax"> != </span><span class="identifier-syntax">TO_PHRASE_EFF_family</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">to_family_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tfd</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_to_family_data</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="element-syntax">family_specific_data</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">tfd</span><span class="plain-syntax">-></span><span class="element-syntax">ph_documentation_symbol</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>§10. Extracting the stem. </b>A couple of routines to read but not really parse the stem and the bud.
|
||||
</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">ToPhraseFamily::get_prototype_text</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="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="function-syntax">ToPhraseFamily::get_prototype_text</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">ToPhraseFamily::get_prototype_text</span></span>:<br/><a href="5-tpf.html#SP9">§9</a></span></button><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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="element-syntax">family</span><span class="plain-syntax"> != </span><span class="identifier-syntax">TO_PHRASE_EFF_family</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">to_family_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tfd</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_to_family_data</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="element-syntax">family_specific_data</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">tfd</span><span class="plain-syntax">-></span><span class="element-syntax">prototype_text</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">ToPhraseFamily::compile</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">ToPhraseFamily::compile</span></span>:<br/><a href="5-tpf.html#SP3">§3</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">void</span><span class="plain-syntax"> </span><span class="function-syntax">ToPhraseFamily::compile</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">ToPhraseFamily::compile</span></span>:<br/><a href="5-tpf.html#SP3">§3</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="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> *</span><span class="identifier-syntax">total_phrases_compiled</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">total_phrases_to_compile</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-tpf.html#SP10_1" class="named-paragraph-link"><span class="named-paragraph">Mark To... phrases which have definite kinds for future compilation</span><span class="named-paragraph-number">10.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-tpf.html#SP10_2" class="named-paragraph-link"><span class="named-paragraph">Throw problems for phrases with return kinds too vaguely defined</span><span class="named-paragraph-number">10.2</span></a></span><span class="plain-syntax">;</span>
|
||||
|
@ -465,7 +475,7 @@ hand over to the others to generate more work.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ToPhraseFamily::compile_as_needed</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">ToPhraseFamily::compile_as_needed</span></span>:<br/><a href="5-tpf.html#SP3">§3</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">void</span><span class="plain-syntax"> </span><span class="function-syntax">ToPhraseFamily::compile_as_needed</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">ToPhraseFamily::compile_as_needed</span></span>:<br/><a href="5-tpf.html#SP3">§3</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="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> *</span><span class="identifier-syntax">total_phrases_compiled</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">total_phrases_to_compile</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">repeat</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">while</span><span class="plain-syntax"> (</span><span class="identifier-syntax">repeat</span><span class="plain-syntax">) {</span>
|
||||
|
@ -486,6 +496,97 @@ hand over to the others to generate more work.
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>§12. </b>A few "To..." phrases have names, and can therefore be used as values in their
|
||||
own right, a functional-programming sort of device. For example:
|
||||
</p>
|
||||
|
||||
<blockquote>
|
||||
<p>To decide what number is double (N - a number) (this is doubling):</p>
|
||||
</blockquote>
|
||||
|
||||
<p class="commentary">has the name "doubling". Such a name is recorded here:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">typedef</span><span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">constant_phrase</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">noun</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">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phrase_meant</span><span class="plain-syntax">; </span><span class="comment-syntax"> if known at this point</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">cphr_kind</span><span class="plain-syntax">; </span><span class="comment-syntax"> ditto</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">cphr_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">associated_preamble_text</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">constant_phrase</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure constant_phrase is accessed in 3/nuor, 3/dbtr, 3/rpr, 4/ass, 6/tc, 6/tbl, 6/eqt and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>§13. </b>Here we create a new named phrase ("doubling", say):
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">constant_phrase</span><span class="plain-syntax"> *</span><span class="function-syntax">ToPhraseFamily::create_constant</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">ToPhraseFamily::create_constant</span></span>:<br/><a href="5-tpf.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">NW</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">RW</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">constant_phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cphr</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">constant_phrase</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="identifier-syntax">phrase_meant</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="comment-syntax"> we won't know until later</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="identifier-syntax">cphr_kind</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="comment-syntax"> nor this</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="identifier-syntax">associated_preamble_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RW</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="identifier-syntax">name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Nouns::new_proper_noun</span><span class="plain-syntax">(</span><span class="identifier-syntax">NW</span><span class="plain-syntax">, </span><span class="identifier-syntax">NEUTER_GENDER</span><span class="plain-syntax">, </span><span class="identifier-syntax">ADD_TO_LEXICON_NTOPT</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PHRASE_CONSTANT_MC</span><span class="plain-syntax">, </span><span class="identifier-syntax">Rvalues::from_constant_phrase</span><span class="plain-syntax">(</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">), </span><span class="identifier-syntax">Task::language_of_syntax</span><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="identifier-syntax">cphr_iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">cphr</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>§14. </b>...and parse for an existing one:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">constant_phrase</span><span class="plain-syntax"> *</span><span class="function-syntax">ToPhraseFamily::parse_constant</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">ToPhraseFamily::parse_constant</span></span>:<br/><a href="5-tpf.html#SP5">§5</a>, <a href="5-tpf.html#SP8_1">§8.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">NW</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><s-value></span><span class="plain-syntax">(</span><span class="identifier-syntax">NW</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">spec</span><span class="plain-syntax"> = </span><span class="function-syntax"><<rp>></span><span 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_construction</span><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">, </span><span class="identifier-syntax">CON_phrase</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">constant_phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cphr</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Rvalues::to_constant_phrase</span><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-tpf.html#SP15" class="function-link"><span class="function-syntax">ToPhraseFamily::kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cphr</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">cphr</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">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>§15. </b>As often happens with Inform constants, the kind of a constant phrase can't
|
||||
be known when its name first comes up, and must be filled in later. (In
|
||||
particular, before the second traverse many kinds do not yet exist.) So
|
||||
the following takes a patch-it-later approach.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="function-syntax">ToPhraseFamily::kind</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">ToPhraseFamily::kind</span></span>:<br/><a href="5-tpf.html#SP14">§14</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">constant_phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cphr</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">global_pass_state</span><span class="plain-syntax">.</span><span class="element-syntax">pass</span><span class="plain-syntax"> < </span><span class="constant-syntax">2</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">Kinds::binary_con</span><span class="plain-syntax">(</span><span class="identifier-syntax">CON_phrase</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="element-syntax">cphr_kind</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">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">OW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ph_type_data</span><span class="plain-syntax"> </span><span class="identifier-syntax">phtd</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Phrases::TypeData::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Phrases::TypeData::Textual::parse</span><span class="plain-syntax">(&</span><span class="identifier-syntax">phtd</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="element-syntax">associated_preamble_text</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">cphr</span><span class="plain-syntax">-></span><span class="element-syntax">cphr_kind</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Phrases::TypeData::kind</span><span class="plain-syntax">(&</span><span class="identifier-syntax">phtd</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">cphr</span><span class="plain-syntax">-></span><span class="element-syntax">cphr_kind</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>§16. </b>And similarly for the <span class="extract"><span class="extract-syntax">phrase</span></span> structure this name corresponds to.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">phrase</span><span class="plain-syntax"> *</span><span class="function-syntax">ToPhraseFamily::body_of_constant</span><button class="popup" onclick="togglePopup('usagePopup18')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup18">Usage of <span class="code-font"><span class="function-syntax">ToPhraseFamily::body_of_constant</span></span>:<br/><a href="5-tpf.html#SP8_1">§8.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">constant_phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cphr</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">"null cphr"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="element-syntax">phrase_meant</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">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="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="reserved-syntax">imperative_defn</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="5-tpf.html#SP9" class="function-link"><span class="function-syntax">ToPhraseFamily::constant_phrase</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">) == </span><span class="identifier-syntax">cphr</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="element-syntax">phrase_meant</span><span class="plain-syntax"> = </span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="element-syntax">body_of_defn</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="element-syntax">phrase_meant</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-adf.html">❮</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="progresschapter"><a href="3-dlr.html">3</a></li><li class="progresschapter"><a href="4-nr.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-id.html">id</a></li><li class="progresssection"><a href="5-idf.html">idf</a></li><li class="progresssection"><a href="5-adf.html">adf</a></li><li class="progresscurrent">tpf</li><li class="progresssection"><a href="5-rf.html">rf</a></li><li class="progresschapter"><a href="6-tc.html">6</a></li><li class="progresschapter"><a href="7-kpr.html">7</a></li><li class="progressnext"><a href="5-rf.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
|
|
@ -87,6 +87,7 @@ We begin with <a href="index.html" class="internal">core</a> itself.
|
|||
<span class="definition-keyword">enum</span> <span class="constant-syntax">adjective_meaning_family_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">application_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">by_routine_bp_data_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">constant_phrase_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">equivalence_bp_data_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">explicit_bp_data_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">generalisation_CLASS</span>
|
||||
|
@ -106,6 +107,7 @@ We begin with <a href="index.html" class="internal">core</a> itself.
|
|||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">adjective_meaning</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">adjective_meaning_family</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS_ALLOCATED_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="identifier-syntax">application</span><span class="plain-syntax">, </span><span class="constant-syntax">100</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">constant_phrase</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">generalisation</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">by_routine_bp_data</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">equivalence_bp_data</span><span class="plain-syntax">)</span>
|
||||
|
@ -227,8 +229,7 @@ We begin with <a href="index.html" class="internal">core</a> itself.
|
|||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. </b><a href="../imperative-module/index.html" class="internal">imperative</a> —
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">constant_phrase_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">invocation_options_CLASS</span>
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">invocation_options_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">local_variable_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">past_tense_action_record_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">past_tense_condition_record_CLASS</span>
|
||||
|
@ -238,10 +239,8 @@ We begin with <a href="index.html" class="internal">core</a> itself.
|
|||
<span class="definition-keyword">enum</span> <span class="constant-syntax">phrase_option_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">pointer_allocation_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">to_phrase_request_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">use_as_event_CLASS</span>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">constant_phrase</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS_ALLOCATED_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="identifier-syntax">invocation_options</span><span class="plain-syntax">, </span><span class="constant-syntax">100</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS_ALLOCATED_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="identifier-syntax">local_variable</span><span class="plain-syntax">, </span><span class="constant-syntax">100</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">past_tense_action_record</span><span class="plain-syntax">)</span>
|
||||
|
@ -252,7 +251,6 @@ We begin with <a href="index.html" class="internal">core</a> itself.
|
|||
<span class="identifier-syntax">DECLARE_CLASS_ALLOCATED_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="identifier-syntax">phrase_option</span><span class="plain-syntax">, </span><span class="constant-syntax">100</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">pointer_allocation</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">to_phrase_request</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">use_as_event</span><span class="plain-syntax">)</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>§6. </b><a href="../runtime-module/index.html" class="internal">runtime</a> —
|
||||
</p>
|
||||
|
@ -347,6 +345,7 @@ We begin with <a href="index.html" class="internal">core</a> itself.
|
|||
<span class="definition-keyword">enum</span> <span class="constant-syntax">release_instructions_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">scene_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">spatial_data_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">timed_rules_rfd_data_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">anl_clause_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">anl_entry_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">action_pattern_CLASS</span>
|
||||
|
@ -380,6 +379,7 @@ We begin with <a href="index.html" class="internal">core</a> itself.
|
|||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">release_instructions</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">scene</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">spatial_data</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">timed_rules_rfd_data</span><span class="plain-syntax">)</span>
|
||||
|
||||
<span class="identifier-syntax">DECLARE_CLASS_ALLOCATED_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="identifier-syntax">anl_clause</span><span class="plain-syntax">, </span><span class="constant-syntax">1000</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS_ALLOCATED_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="identifier-syntax">anl_entry</span><span class="plain-syntax">, </span><span class="constant-syntax">1000</span><span class="plain-syntax">)</span>
|
||||
|
|
|
@ -369,9 +369,6 @@ so on. Those absolute basics are made here.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">Phrases::Constants::compile_closures</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTKinds::compile_structures</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">Rules::check_response_usages</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">Phrases::Timed::check_for_unused</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">Phrases::Timed::TimedEventsTable</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">Phrases::Timed::TimedEventTimesTable</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTUseOptions::configure_template</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTBibliographicData::IFID_text</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
|
|
|
@ -72,7 +72,7 @@ function togglePopup(material_id) {
|
|||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">core</a></li><li><a href="index.html#3">Chapter 3: Plugins</a></li><li><b>Plugin Calls</b></li></ul></div>
|
||||
<p class="purpose">The interface between the main compiler and its plugins.</p>
|
||||
|
||||
<ul class="toc"><li><a href="3-pc.html#SP2">§2. Influencing core</a></li><li><a href="3-pc.html#SP3">§3. Influencing assertions</a></li><li><a href="3-pc.html#SP16">§16. Influencing values</a></li><li><a href="3-pc.html#SP21">§21. Influencing knowledge</a></li><li><a href="3-pc.html#SP34">§34. Influencing the imperative plugin</a></li><li><a href="3-pc.html#SP38">§38. Influencing the actions plugin</a></li><li><a href="3-pc.html#SP49">§49. Influencing index</a></li></ul><hr class="tocbar">
|
||||
<ul class="toc"><li><a href="3-pc.html#SP2">§2. Influencing core</a></li><li><a href="3-pc.html#SP3">§3. Influencing assertions</a></li><li><a href="3-pc.html#SP17">§17. Influencing values</a></li><li><a href="3-pc.html#SP22">§22. Influencing knowledge</a></li><li><a href="3-pc.html#SP35">§35. Influencing the imperative plugin</a></li><li><a href="3-pc.html#SP40">§40. Influencing the actions plugin</a></li><li><a href="3-pc.html#SP51">§51. Influencing index</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b>The following set of functions is an API for the main compiler to consult
|
||||
with the plugins; put another way, it is also an API for the plugins to
|
||||
|
@ -285,7 +285,18 @@ is now being assigned a value by an explicit assertion sentence.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">VARIABLE_VALUE_NOTIFY_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">q</span><span class="plain-syntax">, </span><span class="identifier-syntax">val</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>§16. Influencing values. </b>Called from <a href="../values-module/2-rvl.html" class="internal">Rvalues (in values)</a> to allow plugins to help decide whether values
|
||||
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>§16. </b>Called from <a href="../assertions-module/5-rf.html" class="internal">Rule Family (in assertions)</a> to warn plugins that a new rule
|
||||
definition has been found in the source text.
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">NEW_RULE_DEFN_NOTIFY_PLUG</span>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">PluginCalls::new_rule_defn_notify</span><span class="plain-syntax">(</span><span class="identifier-syntax">imperative_defn</span><span class="plain-syntax"> *</span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">rule_family_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rfd</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">NEW_RULE_DEFN_NOTIFY_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">rfd</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP17" class="paragraph-anchor"></a><b>§17. Influencing values. </b>Called from <a href="../values-module/2-rvl.html" class="internal">Rvalues (in values)</a> to allow plugins to help decide whether values
|
||||
of the same kind would be equal if evaluated at runtime. For example, the
|
||||
"scenes" plugin uses this to determine if two <span class="extract"><span class="extract-syntax">K_scene</span></span> constants are equal.
|
||||
To make a decision, set <span class="extract"><span class="extract-syntax">rv</span></span> to either <span class="extract"><span class="extract-syntax">TRUE</span></span> or <span class="extract"><span class="extract-syntax">FALSE</span></span> and return <span class="extract"><span class="extract-syntax">TRUE</span></span>.
|
||||
|
@ -299,7 +310,7 @@ To make no decision, return <span class="extract"><span class="extract-syntax">F
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">COMPARE_CONSTANT_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">c1</span><span class="plain-syntax">, </span><span class="identifier-syntax">c2</span><span class="plain-syntax">, </span><span class="identifier-syntax">rv</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP17" class="paragraph-anchor"></a><b>§17. </b>Called from <a href="../values-module/2-rvl.html" class="internal">Rvalues (in values)</a> to allow plugins to compile rvalues in
|
||||
<p class="commentary firstcommentary"><a id="SP18" class="paragraph-anchor"></a><b>§18. </b>Called from <a href="../values-module/2-rvl.html" class="internal">Rvalues (in values)</a> to allow plugins to compile rvalues in
|
||||
eccentric ways of their own: not in fact just for the whimsy of it, but to
|
||||
make it possible for plugins to support base kinds of their own. For example,
|
||||
the "actions" plugin needs this to deal with the "stored action" kind.
|
||||
|
@ -312,7 +323,7 @@ the "actions" plugin needs this to deal with the "stored action" kind.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">COMPILE_CONSTANT_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">VH</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">spec</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP18" class="paragraph-anchor"></a><b>§18. </b>Called from <a href="../values-module/2-cnd.html" class="internal">Conditions (in values)</a> to allow plugins to compile conditions in
|
||||
<p class="commentary firstcommentary"><a id="SP19" class="paragraph-anchor"></a><b>§19. </b>Called from <a href="../values-module/2-cnd.html" class="internal">Conditions (in values)</a> to allow plugins to compile conditions in
|
||||
their own way. For example, the "actions" plugin needs this to compile matches
|
||||
of the current action against an action pattern.
|
||||
</p>
|
||||
|
@ -324,7 +335,7 @@ of the current action against an action pattern.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">COMPILE_CONDITION_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">VH</span><span class="plain-syntax">, </span><span class="identifier-syntax">spec</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP19" class="paragraph-anchor"></a><b>§19. </b>Called from <a href="../values-module/2-spc.html" class="internal">Specifications (in values)</a> to ask if there is some reason why
|
||||
<p class="commentary firstcommentary"><a id="SP20" class="paragraph-anchor"></a><b>§20. </b>Called from <a href="../values-module/2-spc.html" class="internal">Specifications (in values)</a> to ask if there is some reason why
|
||||
a rule about <span class="extract"><span class="extract-syntax">I1</span></span> should be thought broader in scope than one about <span class="extract"><span class="extract-syntax">I2</span></span>. This
|
||||
is used by the regions plugin when one is a sub-region of the other. This is
|
||||
expected to behave as a <span class="extract"><span class="extract-syntax">strcmp</span></span>-like sorting function, with a positive
|
||||
|
@ -338,7 +349,7 @@ return value saying <span class="extract"><span class="extract-syntax">I1</span>
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">MORE_SPECIFIC_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">I1</span><span class="plain-syntax">, </span><span class="identifier-syntax">I2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP20" class="paragraph-anchor"></a><b>§20. </b>Called from <a href="../values-module/4-cad.html" class="internal">Constants and Descriptions (in values)</a> to give plugins a chance
|
||||
<p class="commentary firstcommentary"><a id="SP21" class="paragraph-anchor"></a><b>§21. </b>Called from <a href="../values-module/4-cad.html" class="internal">Constants and Descriptions (in values)</a> to give plugins a chance
|
||||
to parse text which might otherwise be meaningless (or mean something different)
|
||||
and make it a "composite noun-quantifier" such as "everywhere" or "nothing".
|
||||
The main compiler does not recognise "everywhere" because it has no concept
|
||||
|
@ -353,7 +364,7 @@ of space, but the spatial plugin does, and this is how.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">PARSE_COMPOSITE_NQS_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">DW</span><span class="plain-syntax">, </span><span class="identifier-syntax">quantifier_used</span><span class="plain-syntax">, </span><span class="identifier-syntax">some_kind</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP21" class="paragraph-anchor"></a><b>§21. Influencing knowledge. </b>Called from <a href="../knowledge-module/5-tmw.html" class="internal">The Model World (in knowledge)</a> to invite the plugin to participate
|
||||
<p class="commentary firstcommentary"><a id="SP22" class="paragraph-anchor"></a><b>§22. Influencing knowledge. </b>Called from <a href="../knowledge-module/5-tmw.html" class="internal">The Model World (in knowledge)</a> to invite the plugin to participate
|
||||
in stages I to V of the completion process. This may involve using contextual
|
||||
reasoning to draw further inferences.
|
||||
</p>
|
||||
|
@ -365,7 +376,7 @@ reasoning to draw further inferences.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">COMPLETE_MODEL_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">stage</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP22" class="paragraph-anchor"></a><b>§22. </b>Called from <a href="../knowledge-module/4-is.html" class="internal">Inference Subjects (in knowledge)</a> to invite the plugin to
|
||||
<p class="commentary firstcommentary"><a id="SP23" class="paragraph-anchor"></a><b>§23. </b>Called from <a href="../knowledge-module/4-is.html" class="internal">Inference Subjects (in knowledge)</a> to invite the plugin to
|
||||
create any additional inference subjects it might want to reason about. In
|
||||
practice, this tends to be used to create preliminary subjects to stand in
|
||||
for significant kinds before those kinds are ready to be created.
|
||||
|
@ -378,7 +389,7 @@ for significant kinds before those kinds are ready to be created.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALLV</span><span class="plain-syntax">(</span><span class="constant-syntax">CREATE_INFERENCE_SUBJECTS_PLUG</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP23" class="paragraph-anchor"></a><b>§23. </b>Called from <a href="../knowledge-module/5-ia.html" class="internal">Indefinite Appearance (in knowledge)</a> to ask the plugins what
|
||||
<p class="commentary firstcommentary"><a id="SP24" class="paragraph-anchor"></a><b>§24. </b>Called from <a href="../knowledge-module/5-ia.html" class="internal">Indefinite Appearance (in knowledge)</a> to ask the plugins what
|
||||
inferences, if any, to draw from a double-quoted text standing as an entire
|
||||
sentence. The <span class="extract"><span class="extract-syntax">infs</span></span> is the subject which was being talked about at the time
|
||||
the text was quoted, and therefore presumably is what the text should describe.
|
||||
|
@ -391,7 +402,7 @@ the text was quoted, and therefore presumably is what the text should describe.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">DEFAULT_APPEARANCE_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">infs</span><span class="plain-syntax">, </span><span class="identifier-syntax">txt</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP24" class="paragraph-anchor"></a><b>§24. </b>Called from <a href="../knowledge-module/5-inf.html" class="internal">Inferences (in knowledge)</a> when an inference is drawn about
|
||||
<p class="commentary firstcommentary"><a id="SP25" class="paragraph-anchor"></a><b>§25. </b>Called from <a href="../knowledge-module/5-inf.html" class="internal">Inferences (in knowledge)</a> when an inference is drawn about
|
||||
something. This does not, of course, necessarily mean that this will actually
|
||||
be the property of something: the inference might turn out to be mistaken. The
|
||||
mapping plugin uses this to infer further that if something is said to be a
|
||||
|
@ -405,7 +416,7 @@ map connection to somewhere else, then it is probably a room.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">INFERENCE_DRAWN_NOTIFY_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">subj</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP25" class="paragraph-anchor"></a><b>§25. </b>Called from <a href="../knowledge-module/4-ks.html" class="internal">Kind Subjects (in knowledge)</a>. Early in the run, before some kinds
|
||||
<p class="commentary firstcommentary"><a id="SP26" class="paragraph-anchor"></a><b>§26. </b>Called from <a href="../knowledge-module/4-ks.html" class="internal">Kind Subjects (in knowledge)</a>. Early in the run, before some kinds
|
||||
are created, placeholder inference subjects are created to stand in for them;
|
||||
this call enables plugins to recognise certain texts as referring to those.
|
||||
</p>
|
||||
|
@ -417,7 +428,7 @@ this call enables plugins to recognise certain texts as referring to those.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">NAME_TO_EARLY_INFS_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">infs</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP26" class="paragraph-anchor"></a><b>§26. </b>Called from <a href="../knowledge-module/4-ks.html" class="internal">Kind Subjects (in knowledge)</a> to warn plugins about a new kind,
|
||||
<p class="commentary firstcommentary"><a id="SP27" class="paragraph-anchor"></a><b>§27. </b>Called from <a href="../knowledge-module/4-ks.html" class="internal">Kind Subjects (in knowledge)</a> to warn plugins about a new kind,
|
||||
which in practice enables them to spot from the name that it is actually a kind
|
||||
they want to provide built-in support for: thus the actions plugin reacts to
|
||||
the name "stored action", for example. <span class="extract"><span class="extract-syntax">K</span></span> is the newcomer, <span class="extract"><span class="extract-syntax">super</span></span> its super-kind,
|
||||
|
@ -433,7 +444,7 @@ source text (such as "container").
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">NEW_BASE_KIND_NOTIFY_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">d</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP27" class="paragraph-anchor"></a><b>§27. </b>Called from <a href="../knowledge-module/2-ins.html" class="internal">Instances (in knowledge)</a> to warn plugins that a new instance has
|
||||
<p class="commentary firstcommentary"><a id="SP28" class="paragraph-anchor"></a><b>§28. </b>Called from <a href="../knowledge-module/2-ins.html" class="internal">Instances (in knowledge)</a> to warn plugins that a new instance has
|
||||
been created. For example, the figures plugin needs to know this so that it
|
||||
can see when a new illustration has been created.
|
||||
</p>
|
||||
|
@ -450,7 +461,7 @@ sure you're not dealing with an object.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">NEW_INSTANCE_NOTIFY_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">nc</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP28" class="paragraph-anchor"></a><b>§28. </b>Called from <a href="../knowledge-module/4-pp.html" class="internal">Property Permissions (in knowledge)</a> to warn plugins that a subject
|
||||
<p class="commentary firstcommentary"><a id="SP29" class="paragraph-anchor"></a><b>§29. </b>Called from <a href="../knowledge-module/4-pp.html" class="internal">Property Permissions (in knowledge)</a> to warn plugins that a subject
|
||||
has been given permission to hold a property; the parsing plugin, for example,
|
||||
uses this to attach a visibility flag.
|
||||
</p>
|
||||
|
@ -462,7 +473,7 @@ uses this to attach a visibility flag.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">NEW_PERMISSION_NOTIFY_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">pp</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP29" class="paragraph-anchor"></a><b>§29. </b>Called from <a href="../knowledge-module/3-prp.html" class="internal">Properties (in knowledge)</a> to warn plugins that a property has
|
||||
<p class="commentary firstcommentary"><a id="SP30" class="paragraph-anchor"></a><b>§30. </b>Called from <a href="../knowledge-module/3-prp.html" class="internal">Properties (in knowledge)</a> to warn plugins that a property has
|
||||
been created, which they can use to spot properties with special significance
|
||||
to them.
|
||||
</p>
|
||||
|
@ -474,7 +485,7 @@ to them.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">NEW_PROPERTY_NOTIFY_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">prn</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP30" class="paragraph-anchor"></a><b>§30. </b>Called from <a href="../knowledge-module/4-is.html" class="internal">Inference Subjects (in knowledge)</a> to warn plugins that a subject
|
||||
<p class="commentary firstcommentary"><a id="SP31" class="paragraph-anchor"></a><b>§31. </b>Called from <a href="../knowledge-module/4-is.html" class="internal">Inference Subjects (in knowledge)</a> to warn plugins that a subject
|
||||
has been created, which they can use to spot subjects with special significance
|
||||
to them.
|
||||
</p>
|
||||
|
@ -486,7 +497,7 @@ to them.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">NEW_SUBJECT_NOTIFY_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">subj</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP31" class="paragraph-anchor"></a><b>§31. </b>Called from <a href="../knowledge-module/2-nv.html" class="internal">Nonlocal Variables (in knowledge)</a> to warn plugins that a new
|
||||
<p class="commentary firstcommentary"><a id="SP32" class="paragraph-anchor"></a><b>§32. </b>Called from <a href="../knowledge-module/2-nv.html" class="internal">Nonlocal Variables (in knowledge)</a> to warn plugins that a new
|
||||
variable has been created, which they can use to spot variables with special
|
||||
significance to them.
|
||||
</p>
|
||||
|
@ -498,7 +509,7 @@ significance to them.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">NEW_VARIABLE_NOTIFY_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">q</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP32" class="paragraph-anchor"></a><b>§32. </b>Called from <a href="../knowledge-module/2-ins.html" class="internal">Instances (in knowledge)</a> to warn plugins that the kind of an
|
||||
<p class="commentary firstcommentary"><a id="SP33" class="paragraph-anchor"></a><b>§33. </b>Called from <a href="../knowledge-module/2-ins.html" class="internal">Instances (in knowledge)</a> to warn plugins that the kind of an
|
||||
instance is about to be set. This happens most often when the instance is
|
||||
created, but can also happen again, refining the kind to a subkind, when
|
||||
the instance is an object.
|
||||
|
@ -511,7 +522,7 @@ the instance is an object.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">SET_KIND_NOTIFY_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">k</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP33" class="paragraph-anchor"></a><b>§33. </b>Called from <a href="../knowledge-module/4-ks.html" class="internal">Kind Subjects (in knowledge)</a> when one kind of object is made a
|
||||
<p class="commentary firstcommentary"><a id="SP34" class="paragraph-anchor"></a><b>§34. </b>Called from <a href="../knowledge-module/4-ks.html" class="internal">Kind Subjects (in knowledge)</a> when one kind of object is made a
|
||||
subkind of another, as for example when "container" is a made a subkind of
|
||||
"thing". The plugin should return <span class="extract"><span class="extract-syntax">TRUE</span></span> if it wishes to forbid this,
|
||||
and if so, it had better throw a problem message, or the user will be
|
||||
|
@ -529,7 +540,7 @@ regions plugin does with the "region" kind.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">SET_SUBKIND_NOTIFY_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">sub</span><span class="plain-syntax">, </span><span class="identifier-syntax">super</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP34" class="paragraph-anchor"></a><b>§34. Influencing the imperative plugin. </b>Called from <a href="../imperative-module/2-rb.html" class="internal">Rule Bookings (in imperative)</a> to give plugins a chance to move
|
||||
<p class="commentary firstcommentary"><a id="SP35" class="paragraph-anchor"></a><b>§35. Influencing the imperative plugin. </b>Called from <a href="../imperative-module/2-rb.html" class="internal">Rule Bookings (in imperative)</a> to give plugins a chance to move
|
||||
automatically placed rules from one rulebook to another. The actions plugin
|
||||
uses this to break up what would otherwise be unwieldy before and after
|
||||
rulebooks into smaller ones for each action.
|
||||
|
@ -546,7 +557,7 @@ and return <span class="extract"><span class="extract-syntax">TRUE</span></span>
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">PLACE_RULE_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-syntax">original_owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">new_owner</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP35" class="paragraph-anchor"></a><b>§35. </b>Called from <a href="../imperative-module/2-rlb.html" class="internal">Rulebooks (in imperative)</a>. This is very similar, but runs in all cases,
|
||||
<p class="commentary firstcommentary"><a id="SP36" class="paragraph-anchor"></a><b>§36. </b>Called from <a href="../imperative-module/2-rlb.html" class="internal">Rulebooks (in imperative)</a>. This is very similar, but runs in all cases,
|
||||
and not only for automatic placement.
|
||||
</p>
|
||||
|
||||
|
@ -557,7 +568,7 @@ and not only for automatic placement.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">RULE_PLACEMENT_NOTIFY_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-syntax">original_owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">side</span><span class="plain-syntax">, </span><span class="identifier-syntax">ref_rule</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP36" class="paragraph-anchor"></a><b>§36. </b></p>
|
||||
<p class="commentary firstcommentary"><a id="SP37" class="paragraph-anchor"></a><b>§37. </b></p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">COMPILE_TEST_HEAD_PLUG</span>
|
||||
</pre>
|
||||
|
@ -566,7 +577,7 @@ and not only for automatic placement.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">COMPILE_TEST_HEAD_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">ph</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-syntax">tests</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP37" class="paragraph-anchor"></a><b>§37. </b></p>
|
||||
<p class="commentary firstcommentary"><a id="SP38" class="paragraph-anchor"></a><b>§38. </b></p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">COMPILE_TEST_TAIL_PLUG</span>
|
||||
</pre>
|
||||
|
@ -575,7 +586,19 @@ and not only for automatic placement.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">COMPILE_TEST_TAIL_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">ph</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP38" class="paragraph-anchor"></a><b>§38. Influencing the actions plugin. </b>We now have a whole run of functions called only by the actions plugin, and
|
||||
<p class="commentary firstcommentary"><a id="SP39" class="paragraph-anchor"></a><b>§39. </b>Called from <a href="../imperative-module/6-cii.html" class="internal">Compile Invocations Inline (in imperative)</a>, but only when an
|
||||
annotation arises which the regular machinery doesn't know how to handle.
|
||||
This is currently only used by <a href="../if-module/3-tr.html" class="internal">Timed Rules (in if)</a>.
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">INLINE_ANNOTATION_PLUG</span>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">PluginCalls::nonstandard_inline_annotation</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">annot</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">supplied</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">INLINE_ANNOTATION_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">annot</span><span class="plain-syntax">, </span><span class="identifier-syntax">supplied</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP40" class="paragraph-anchor"></a><b>§40. Influencing the actions plugin. </b>We now have a whole run of functions called only by the actions plugin, and
|
||||
therefore only when it is active.
|
||||
</p>
|
||||
|
||||
|
@ -590,7 +613,7 @@ created. For example, the going plugin uses this to spot the arrival of "going".
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">NEW_ACTION_NOTIFY_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">an</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP39" class="paragraph-anchor"></a><b>§39. </b>Called from <a href="../if-module/4-apc.html" class="internal">Action Pattern Clauses (in if)</a> to invite plugins to change the
|
||||
<p class="commentary firstcommentary"><a id="SP41" class="paragraph-anchor"></a><b>§41. </b>Called from <a href="../if-module/4-apc.html" class="internal">Action Pattern Clauses (in if)</a> to invite plugins to change the
|
||||
action pattern clause ID associated with a given action variable. This may be
|
||||
needed in order to cross-reference between multiple such clauses, as with
|
||||
the going action variables.
|
||||
|
@ -604,7 +627,7 @@ the going action variables.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">DIVERT_AP_CLAUSE_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">stv</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP40" class="paragraph-anchor"></a><b>§40. </b>Called from <a href="../if-module/4-apc.html" class="internal">Action Pattern Clauses (in if)</a> to ask plugins to print a helpful
|
||||
<p class="commentary firstcommentary"><a id="SP42" class="paragraph-anchor"></a><b>§42. </b>Called from <a href="../if-module/4-apc.html" class="internal">Action Pattern Clauses (in if)</a> to ask plugins to print a helpful
|
||||
name for the debugging log for any new clause ID <span class="extract"><span class="extract-syntax">C</span></span> which they have created.
|
||||
</p>
|
||||
|
||||
|
@ -615,7 +638,7 @@ name for the debugging log for any new clause ID <span class="extract"><span cla
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">WRITE_AP_CLAUSE_ID_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP41" class="paragraph-anchor"></a><b>§41. </b>Called from <a href="../if-module/4-apc.html" class="internal">Action Pattern Clauses (in if)</a> to ask for the <span class="extract"><span class="extract-syntax">*_APCA</span></span> aspect
|
||||
<p class="commentary firstcommentary"><a id="SP43" class="paragraph-anchor"></a><b>§43. </b>Called from <a href="../if-module/4-apc.html" class="internal">Action Pattern Clauses (in if)</a> to ask for the <span class="extract"><span class="extract-syntax">*_APCA</span></span> aspect
|
||||
for the clause ID <span class="extract"><span class="extract-syntax">C</span></span>, where <span class="extract"><span class="extract-syntax">C</span></span> is a new clause ID created by the plugin. If
|
||||
this is not given, then the aspect will be <span class="extract"><span class="extract-syntax">MISC_APCA</span></span>.
|
||||
</p>
|
||||
|
@ -627,7 +650,7 @@ this is not given, then the aspect will be <span class="extract"><span class="ex
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">ASPECT_OF_AP_CLAUSE_ID_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="identifier-syntax">A</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP42" class="paragraph-anchor"></a><b>§42. </b>Called from <a href="../if-module/4-apc.html" class="internal">Action Pattern Clauses (in if)</a> to give plugins a chance to
|
||||
<p class="commentary firstcommentary"><a id="SP44" class="paragraph-anchor"></a><b>§44. </b>Called from <a href="../if-module/4-apc.html" class="internal">Action Pattern Clauses (in if)</a> to give plugins a chance to
|
||||
decide which AP is more specific, on the basis of the extra clauses defined
|
||||
in the plugin.
|
||||
</p>
|
||||
|
@ -651,7 +674,7 @@ to let the usual machinery take its course.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">COMPARE_AP_SPECIFICITY_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">ap1</span><span class="plain-syntax">, </span><span class="identifier-syntax">ap2</span><span class="plain-syntax">, </span><span class="identifier-syntax">rv</span><span class="plain-syntax">, </span><span class="identifier-syntax">ignore_in</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP43" class="paragraph-anchor"></a><b>§43. </b>Called from <a href="../if-module/4-apc.html" class="internal">Action Pattern Clauses (in if)</a> to notify plugins that a clause
|
||||
<p class="commentary firstcommentary"><a id="SP45" class="paragraph-anchor"></a><b>§45. </b>Called from <a href="../if-module/4-apc.html" class="internal">Action Pattern Clauses (in if)</a> to notify plugins that a clause
|
||||
matching an action variable has just been added to an action pattern.
|
||||
</p>
|
||||
|
||||
|
@ -662,7 +685,7 @@ matching an action variable has just been added to an action pattern.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">NEW_AP_CLAUSE_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">ap</span><span class="plain-syntax">, </span><span class="identifier-syntax">apoc</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP44" class="paragraph-anchor"></a><b>§44. </b>Called from <a href="../if-module/4-pc.html" class="internal">Parse Clauses (in if)</a> to give plugins a chance to intervene in
|
||||
<p class="commentary firstcommentary"><a id="SP46" class="paragraph-anchor"></a><b>§46. </b>Called from <a href="../if-module/4-pc.html" class="internal">Parse Clauses (in if)</a> to give plugins a chance to intervene in
|
||||
the normal process of evaluating the meaning of text in an action pattern
|
||||
clause: for example, in parsing "going nowhere", the going plugin uses this
|
||||
to detect that the <span class="extract"><span class="extract-syntax">NOUN_AP_CLAUSE</span></span>, with text "nowhere", should not be parsed
|
||||
|
@ -681,7 +704,7 @@ text of the clause in the normal way.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">PARSE_AP_CLAUSE_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">an</span><span class="plain-syntax">, </span><span class="identifier-syntax">c</span><span class="plain-syntax">, </span><span class="identifier-syntax">bits</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP45" class="paragraph-anchor"></a><b>§45. </b>Called from <a href="../if-module/4-pc.html" class="internal">Parse Clauses (in if)</a> to give plugins a chance to intervene in
|
||||
<p class="commentary firstcommentary"><a id="SP47" class="paragraph-anchor"></a><b>§47. </b>Called from <a href="../if-module/4-pc.html" class="internal">Parse Clauses (in if)</a> to give plugins a chance to intervene in
|
||||
the type-checking process for a clause. Ordinarily, this would just check that
|
||||
the contents have the right kind: if matching an action variable of kind <span class="extract"><span class="extract-syntax">K</span></span>
|
||||
then it must be a value compatible with <span class="extract"><span class="extract-syntax">K</span></span> or a description of such.
|
||||
|
@ -699,7 +722,7 @@ or <span class="extract"><span class="extract-syntax">FALSE</span></span> (it is
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">VALIDATE_AP_CLAUSE_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">an</span><span class="plain-syntax">, </span><span class="identifier-syntax">c</span><span class="plain-syntax">, </span><span class="identifier-syntax">outcome</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP46" class="paragraph-anchor"></a><b>§46. </b>Called from <a href="../if-module/4-pc.html" class="internal">Parse Clauses (in if)</a> to deal with the options bitmap set
|
||||
<p class="commentary firstcommentary"><a id="SP48" class="paragraph-anchor"></a><b>§48. </b>Called from <a href="../if-module/4-pc.html" class="internal">Parse Clauses (in if)</a> to deal with the options bitmap set
|
||||
previously by a <span class="extract"><span class="extract-syntax">PARSE_AP_CLAUSE_PLUG</span></span> call: see above.
|
||||
</p>
|
||||
|
||||
|
@ -710,7 +733,7 @@ previously by a <span class="extract"><span class="extract-syntax">PARSE_AP_CLAU
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">ACT_ON_ANL_ENTRY_OPTIONS_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">entry</span><span class="plain-syntax">, </span><span class="identifier-syntax">entry_options</span><span class="plain-syntax">, </span><span class="identifier-syntax">fail</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP47" class="paragraph-anchor"></a><b>§47. </b>Called from <a href="../runtime-module/5-ap.html" class="internal">Action Patterns (in runtime)</a> when assembling the requirement
|
||||
<p class="commentary firstcommentary"><a id="SP49" class="paragraph-anchor"></a><b>§49. </b>Called from <a href="../runtime-module/5-ap.html" class="internal">Action Patterns (in runtime)</a> when assembling the requirement
|
||||
clauses for compiling a mattern match; this gives plugins a chance to act
|
||||
extra stipulations, which are not explicit in clauses already in the pattern.
|
||||
</p>
|
||||
|
@ -723,7 +746,7 @@ extra stipulations, which are not explicit in clauses already in the pattern.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">SET_PATTERN_MATCH_REQUIREMENTS_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">ap</span><span class="plain-syntax">, </span><span class="identifier-syntax">cpm</span><span class="plain-syntax">, </span><span class="identifier-syntax">needed</span><span class="plain-syntax">, </span><span class="identifier-syntax">needed_apoc</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP48" class="paragraph-anchor"></a><b>§48. </b>Called from <a href="../runtime-module/5-ap.html" class="internal">Action Patterns (in runtime)</a> when compiling any additional
|
||||
<p class="commentary firstcommentary"><a id="SP50" class="paragraph-anchor"></a><b>§50. </b>Called from <a href="../runtime-module/5-ap.html" class="internal">Action Patterns (in runtime)</a> when compiling any additional
|
||||
requirements set by <span class="extract"><span class="extract-syntax">SET_PATTERN_MATCH_REQUIREMENTS_PLUG</span></span>.
|
||||
</p>
|
||||
|
||||
|
@ -735,7 +758,7 @@ requirements set by <span class="extract"><span class="extract-syntax">SET_PATTE
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">COMPILE_PATTERN_MATCH_CLAUSE_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">VH</span><span class="plain-syntax">, </span><span class="identifier-syntax">ap</span><span class="plain-syntax">, </span><span class="identifier-syntax">cpmc</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP49" class="paragraph-anchor"></a><b>§49. Influencing index. </b>Called from <a href="../index-module/2-ipw.html" class="internal">Index Physical World (in index)</a> to add something (if it wishes)
|
||||
<p class="commentary firstcommentary"><a id="SP51" class="paragraph-anchor"></a><b>§51. Influencing index. </b>Called from <a href="../index-module/2-ipw.html" class="internal">Index Physical World (in index)</a> to add something (if it wishes)
|
||||
to the index description of an instance in the spatial model. For example,
|
||||
the regions plugin uses this to put colour chips next to names of regions.
|
||||
</p>
|
||||
|
@ -747,7 +770,7 @@ the regions plugin uses this to put colour chips next to names of regions.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">ADD_TO_WORLD_INDEX_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">O</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP50" class="paragraph-anchor"></a><b>§50. </b>Called from <a href="../index-module/2-ipw.html" class="internal">Index Physical World (in index)</a> to add something (if it wishes)
|
||||
<p class="commentary firstcommentary"><a id="SP52" class="paragraph-anchor"></a><b>§52. </b>Called from <a href="../index-module/2-ipw.html" class="internal">Index Physical World (in index)</a> to add something (if it wishes)
|
||||
to the textual description of an instance in the spatial model. For example,
|
||||
the mapping plugin uses this to say where a door leads.
|
||||
</p>
|
||||
|
|
|
@ -167,7 +167,7 @@ nothing except to be a parent to them; it has no activation function.
|
|||
<span class="plain-syntax"> *</span><span class="identifier-syntax">backdrops_plugin</span><span class="plain-syntax">, *</span><span class="identifier-syntax">bibliographic_plugin</span><span class="plain-syntax">, *</span><span class="identifier-syntax">chronology_plugin</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> *</span><span class="identifier-syntax">devices_plugin</span><span class="plain-syntax">, *</span><span class="identifier-syntax">map_plugin</span><span class="plain-syntax">, *</span><span class="identifier-syntax">parsing_plugin</span><span class="plain-syntax">, *</span><span class="identifier-syntax">persons_plugin</span><span class="plain-syntax">, *</span><span class="identifier-syntax">player_plugin</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> *</span><span class="identifier-syntax">regions_plugin</span><span class="plain-syntax">, *</span><span class="identifier-syntax">scenes_plugin</span><span class="plain-syntax">, *</span><span class="identifier-syntax">scoring_plugin</span><span class="plain-syntax">, *</span><span class="identifier-syntax">showme_plugin</span><span class="plain-syntax">, *</span><span class="identifier-syntax">spatial_plugin</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> *</span><span class="identifier-syntax">times_plugin</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> *</span><span class="identifier-syntax">timed_rules_plugin</span><span class="plain-syntax">, *</span><span class="identifier-syntax">times_plugin</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. </b></p>
|
||||
|
||||
|
@ -188,6 +188,7 @@ nothing except to be a parent to them; it has no activation function.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">regions_plugin</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PluginManager::new</span><span class="plain-syntax">(&</span><a href="3-rgn.html#SP1" class="function-link"><span class="function-syntax">Regions::start</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"regions"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ifp</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">scenes_plugin</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PluginManager::new</span><span class="plain-syntax">(&</span><a href="3-scn.html#SP1" class="function-link"><span class="function-syntax">Scenes::start</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"scenes"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ifp</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">scoring_plugin</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PluginManager::new</span><span class="plain-syntax">(&</span><a href="3-ts.html#SP1" class="function-link"><span class="function-syntax">TheScore::start</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"scoring"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ifp</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">timed_rules_plugin</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PluginManager::new</span><span class="plain-syntax">(</span><a href="3-tr.html#SP1" class="function-link"><span class="function-syntax">TimedRules::start</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"timed rules"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ifp</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">times_plugin</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PluginManager::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">TimesOfDay::start</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"times of day"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ifp</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">actions_plugin</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PluginManager::new</span><span class="plain-syntax">(&</span><a href="4-ap.html#SP1" class="function-link"><span class="function-syntax">ActionsPlugin::start</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"actions"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ifp</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -405,7 +405,7 @@ backdrop.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-dvc.html">❮</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="progresscurrent">bck</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-scn.html">scn</a></li><li class="progresssection"><a href="3-ts.html">ts</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-rgn.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-dvc.html">❮</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="progresscurrent">bck</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="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-ts.html">ts</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-rgn.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -117,7 +117,7 @@ is no need to translate this.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-tp.html">❮</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="progresscurrent">dvc</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-scn.html">scn</a></li><li class="progresssection"><a href="3-ts.html">ts</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-bck.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-tp.html">❮</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="progresscurrent">dvc</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="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-ts.html">ts</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-bck.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -304,7 +304,7 @@ and put the issue aside for now.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-sm.html">❮</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="progresscurrent">enah</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-scn.html">scn</a></li><li class="progresssection"><a href="3-ts.html">ts</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-sr.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-sm.html">❮</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="progresscurrent">enah</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="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-ts.html">ts</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-sr.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -337,7 +337,7 @@ such.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-tm.html">❮</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="progresscurrent">mcr</li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-ts.html">ts</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-scn.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-tm.html">❮</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="progresscurrent">mcr</li><li class="progresssection"><a href="3-tr.html">tr</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-ts.html">ts</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-tr.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -102,7 +102,7 @@ tomfoolery.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-si.html">❮</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="progresscurrent">prs</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-scn.html">scn</a></li><li class="progresssection"><a href="3-ts.html">ts</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-tp.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-si.html">❮</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="progresscurrent">prs</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="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-ts.html">ts</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-tp.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -450,7 +450,7 @@ to be a region already:
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-rgn.html#SP17">§17</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-bck.html">❮</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="progresscurrent">rgn</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-scn.html">scn</a></li><li class="progresssection"><a href="3-ts.html">ts</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-tm.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-bck.html">❮</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="progresscurrent">rgn</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="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-ts.html">ts</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-tm.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -790,7 +790,7 @@ collection of them:
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP26">§26</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-mcr.html">❮</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="progresscurrent">scn</li><li class="progresssection"><a href="3-ts.html">ts</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">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-tr.html">❮</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="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">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -315,7 +315,7 @@ single function to return this:
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-sr.html">❮</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="progresscurrent">si</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-scn.html">scn</a></li><li class="progresssection"><a href="3-ts.html">ts</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-prs.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-sr.html">❮</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="progresscurrent">si</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="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-ts.html">ts</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-prs.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -1466,7 +1466,7 @@ empty.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-tbf.html">❮</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="progresscurrent">sm</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-scn.html">scn</a></li><li class="progresssection"><a href="3-ts.html">ts</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-enah.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-tbf.html">❮</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="progresscurrent">sm</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="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-ts.html">ts</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-enah.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -388,7 +388,7 @@ special to make it work, so this doesn't seem worth the trouble.)
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-enah.html">❮</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="progresscurrent">sr</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-scn.html">scn</a></li><li class="progresssection"><a href="3-ts.html">ts</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-si.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-enah.html">❮</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="progresscurrent">sr</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="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-ts.html">ts</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-si.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -1171,7 +1171,7 @@ why we don't need to compile <span class="extract"><span class="extract-syntax">
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-tm.html#SP33_8">§33.8</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-rgn.html">❮</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="progresscurrent">tm</li><li class="progresssection"><a href="3-mcr.html">mcr</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-ts.html">ts</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-mcr.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-rgn.html">❮</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="progresscurrent">tm</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="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-ts.html">ts</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-mcr.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -458,7 +458,7 @@ will do. But otherwise:
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-tp.html#SP10">§10</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-prs.html">❮</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="progresscurrent">tp</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-scn.html">scn</a></li><li class="progresssection"><a href="3-ts.html">ts</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-dvc.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-prs.html">❮</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="progresscurrent">tp</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="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-ts.html">ts</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-dvc.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
275
docs/if-module/3-tr.html
Normal file
275
docs/if-module/3-tr.html
Normal file
|
@ -0,0 +1,275 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Timed Rules</title>
|
||||
<link href="../docs-assets/Breadcrumbs.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<meta name="viewport" content="width=device-width initial-scale=1">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en-gb">
|
||||
|
||||
<link href="../docs-assets/Contents.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Progress.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Navigation.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Fonts.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Base.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<script>
|
||||
function togglePopup(material_id) {
|
||||
var popup = document.getElementById(material_id);
|
||||
popup.classList.toggle("show");
|
||||
}
|
||||
</script>
|
||||
|
||||
<link href="../docs-assets/Popups.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Preform-Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
|
||||
</head>
|
||||
<body class="commentary-font">
|
||||
<nav role="navigation">
|
||||
<h1><a href="../index.html">
|
||||
<img src="../docs-assets/Inform.png" height=72">
|
||||
</a></h1>
|
||||
<ul><li><a href="../compiler.html">compiler tools</a></li>
|
||||
<li><a href="../other.html">other tools</a></li>
|
||||
<li><a href="../extensions.html">extensions and kits</a></li>
|
||||
<li><a href="../units.html">unit test tools</a></li>
|
||||
</ul><h2>Compiler Webs</h2><ul>
|
||||
<li><a href="../inbuild/index.html">inbuild</a></li>
|
||||
<li><a href="../inform7/index.html">inform7</a></li>
|
||||
<li><a href="../inter/index.html">inter</a></li>
|
||||
</ul><h2>Inbuild Modules</h2><ul>
|
||||
<li><a href="../supervisor-module/index.html">supervisor</a></li>
|
||||
</ul><h2>Inform7 Modules</h2><ul>
|
||||
<li><a href="../core-module/index.html">core</a></li>
|
||||
<li><a href="../assertions-module/index.html">assertions</a></li>
|
||||
<li><a href="../values-module/index.html">values</a></li>
|
||||
<li><a href="../knowledge-module/index.html">knowledge</a></li>
|
||||
<li><a href="../imperative-module/index.html">imperative</a></li>
|
||||
<li><a href="../runtime-module/index.html">runtime</a></li>
|
||||
<li><a href="index.html"><span class="selectedlink">if</span></a></li>
|
||||
<li><a href="../multimedia-module/index.html">multimedia</a></li>
|
||||
<li><a href="../index-module/index.html">index</a></li>
|
||||
</ul><h2>Inter Modules</h2><ul>
|
||||
<li><a href="../bytecode-module/index.html">bytecode</a></li>
|
||||
<li><a href="../building-module/index.html">building</a></li>
|
||||
<li><a href="../codegen-module/index.html">codegen</a></li>
|
||||
</ul><h2>Services</h2><ul>
|
||||
<li><a href="../arch-module/index.html">arch</a></li>
|
||||
<li><a href="../calculus-module/index.html">calculus</a></li>
|
||||
<li><a href="../html-module/index.html">html</a></li>
|
||||
<li><a href="../inflections-module/index.html">inflections</a></li>
|
||||
<li><a href="../kinds-module/index.html">kinds</a></li>
|
||||
<li><a href="../linguistics-module/index.html">linguistics</a></li>
|
||||
<li><a href="../problems-module/index.html">problems</a></li>
|
||||
<li><a href="../syntax-module/index.html">syntax</a></li>
|
||||
<li><a href="../words-module/index.html">words</a></li>
|
||||
<li><a href="../../../inweb/docs/foundation-module/index.html">foundation</a></li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
<main role="main">
|
||||
<!--Weave of 'Timed Rules' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">if</a></li><li><a href="index.html#3">Chapter 3: Space and Time</a></li><li><b>Timed Rules</b></li></ul></div>
|
||||
<p class="purpose">A plugin to support rules like "At 12:03AM: ...".</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b>This plugin makes a special set of rules for timed events; the <span class="extract"><span class="extract-syntax">:timedrules</span></span>
|
||||
test group may be useful in testing it.
|
||||
</p>
|
||||
|
||||
<p class="commentary">Each such rule has a time at which it should spontaneously happen. This is
|
||||
ordinarily a time of day, such as "At 9:00 AM: ...", represented by a number
|
||||
from 0 to 1439, measuring minutes since midnight. These negative values have
|
||||
special significance:
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">NOT_A_TIMED_EVENT</span><span class="plain-syntax"> -1 </span><span class="comment-syntax"> as for the vast majority of rules</span>
|
||||
<span class="definition-keyword">define</span> <span class="constant-syntax">NO_FIXED_TIME</span><span class="plain-syntax"> -2 </span><span class="comment-syntax"> for phrases like "When the clock strikes: ..."</span>
|
||||
<span class="definition-keyword">define</span> <span class="constant-syntax">NOT_AN_EVENT</span><span class="plain-syntax"> -3 </span><span class="comment-syntax"> not even syntactically</span>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TimedRules::start</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">TimedRules::start</span></span>:<br/>IF Module - <a href="1-im.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">NEW_RULE_DEFN_NOTIFY_PLUG</span><span class="plain-syntax">, </span><a href="3-tr.html#SP3" class="function-link"><span class="function-syntax">TimedRules::new_rule_defn_notify</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">INLINE_ANNOTATION_PLUG</span><span class="plain-syntax">, </span><a href="3-tr.html#SP6" class="function-link"><span class="function-syntax">TimedRules::inline_annotation</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">PRODUCTION_LINE_PLUG</span><span class="plain-syntax">, </span><a href="3-tr.html#SP1" class="function-link"><span class="function-syntax">TimedRules::production_line</span></a><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">TimedRules::production_line</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">stage</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">debugging</span><span class="plain-syntax">, </span><span class="identifier-syntax">stopwatch_timer</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sequence_timer</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">stage</span><span class="plain-syntax"> == </span><span class="identifier-syntax">INTER5_CSEQ</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="3-tr.html#SP7" class="function-link"><span class="function-syntax">TimedRules::check_for_unused</span></a><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTTimedRules::TimedEventsTable</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTTimedRules::TimedEventTimesTable</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b>Event rules are recognised by the initial word "At":
|
||||
</p>
|
||||
|
||||
<pre class="Preform-displayed-code all-displayed-code code-font">
|
||||
<span class="Preform-function-syntax"><event-rule-preamble></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">at</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><clock-time></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"> { pass 1 }</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">the</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">time</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">when</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">==></span><span class="Preform-plain-syntax"> { NO_FIXED_TIME, - }</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">the</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">time</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">that</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">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-tr.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">Issue PM_AtTimeThat problem</span><span class="named-paragraph-number">2.1</span></a></span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">at</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="named-paragraph-container code-font"><a href="3-tr.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Issue PM_AtWithoutTime problem</span><span class="named-paragraph-number">2.2</span></a></span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is <a href="../words-module/4-ap.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_1" class="paragraph-anchor"></a><b>§2.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue PM_AtTimeThat problem</span><span class="named-paragraph-number">2.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="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_AtTimeThat</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"this seems to use 'that' where it should use 'when'"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"assuming it's trying to apply a rule to an event. (The convention is that any "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"rule beginning 'At' is a timed one. The time can either be a fixed time, as in "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"'At 11:10 AM: ...', or the time when some named event takes place, as in 'At the "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"time when the clock chimes: ...'.)"</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-tr.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_2" class="paragraph-anchor"></a><b>§2.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue PM_AtWithoutTime problem</span><span class="named-paragraph-number">2.2</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">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_AtWithoutTime</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"'at' what time? No description of a time is given"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"which means that this rule can never have effect. (The convention is that any "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"rule beginning 'At' is a timed one. The time can either be a fixed time, as in "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"'At 11:10 AM: ...', or the time when some named event takes place, as in 'At the "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"time when the clock chimes: ...'.)"</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-tr.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">TimedRules::new_rule_defn_notify</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">TimedRules::new_rule_defn_notify</span></span>:<br/><a href="3-tr.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">imperative_defn</span><span class="plain-syntax"> *</span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">rule_family_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rfd</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CREATE_PLUGIN_RFD_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">timed_rules</span><span class="plain-syntax">, </span><span class="identifier-syntax">rfd</span><span class="plain-syntax">, </span><a href="3-tr.html#SP4" class="function-link"><span class="function-syntax">TimedRules::new_rfd_data</span></a><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">rfd</span><span class="plain-syntax">-></span><span class="identifier-syntax">usage_preamble</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"><event-rule-preamble></span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax"> = </span><span class="function-syntax"><<r>></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">rfd</span><span class="plain-syntax">-></span><span class="identifier-syntax">usage_preamble</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">rfd</span><span class="plain-syntax">-></span><span class="identifier-syntax">not_in_rulebook</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">RFD_PLUGIN_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">timed_rules</span><span class="plain-syntax">, </span><span class="identifier-syntax">rfd</span><span class="plain-syntax">)-></span><span class="element-syntax">event_time</span><span class="plain-syntax"> = </span><span class="identifier-syntax">t</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">t</span><span class="plain-syntax"> == </span><span class="constant-syntax">NO_FIXED_TIME</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">EW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax"><event-rule-preamble></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">EW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Articles::remove_the</span><span class="plain-syntax">(</span><span class="identifier-syntax">EW</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">RFD_PLUGIN_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">timed_rules</span><span class="plain-syntax">, </span><span class="identifier-syntax">rfd</span><span class="plain-syntax">)-></span><span class="element-syntax">event_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EW</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">rfd</span><span class="plain-syntax">-></span><span class="identifier-syntax">constant_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EW</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">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. </b>The above therefore attaches one of these to each set of rule data:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">typedef</span><span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">timed_rules_rfd_data</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">event_time</span><span class="plain-syntax">; </span><span class="comment-syntax"> 0 to 1339, or one of the special values above</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">event_name</span><span class="plain-syntax">; </span><span class="comment-syntax"> if one is given</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">uses_as_event</span><span class="plain-syntax">; </span><span class="comment-syntax"> of </span><span class="extract"><span class="extract-syntax">parse_node</span></span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">timed_rules_rfd_data</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="reserved-syntax">timed_rules_rfd_data</span><span class="plain-syntax"> *</span><span class="function-syntax">TimedRules::new_rfd_data</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">TimedRules::new_rfd_data</span></span>:<br/><a href="3-tr.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">rule_family_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rfd</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">timed_rules_rfd_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">trfd</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">timed_rules_rfd_data</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">trfd</span><span class="plain-syntax">-></span><span class="identifier-syntax">event_time</span><span class="plain-syntax"> = </span><span class="constant-syntax">NOT_A_TIMED_EVENT</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">trfd</span><span class="plain-syntax">-></span><span class="identifier-syntax">event_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">trfd</span><span class="plain-syntax">-></span><span class="identifier-syntax">uses_as_event</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">trfd</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure timed_rules_rfd_data is private to this section.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. </b>And that data can be read back with:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="function-syntax">TimedRules::get_uses_as_event</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">TimedRules::get_uses_as_event</span></span>:<br/><a href="3-tr.html#SP6">§6</a>, <a href="3-tr.html#SP7">§7</a></span></button><span class="plain-syntax">(</span><span class="identifier-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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="identifier-syntax">family</span><span class="plain-syntax"> != </span><span class="identifier-syntax">rule_idf</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">rule_family_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rfd</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_rule_family_data</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="identifier-syntax">family_specific_data</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">RFD_PLUGIN_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">timed_rules</span><span class="plain-syntax">, </span><span class="identifier-syntax">rfd</span><span class="plain-syntax">)-></span><span class="element-syntax">uses_as_event</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">TimedRules::get_timing_of_event</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">TimedRules::get_timing_of_event</span></span>:<br/><a href="3-tr.html#SP6">§6</a>, <a href="3-tr.html#SP7">§7</a></span></button><span class="plain-syntax">(</span><span class="identifier-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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="identifier-syntax">family</span><span class="plain-syntax"> != </span><span class="identifier-syntax">rule_idf</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">NOT_A_TIMED_EVENT</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">rule_family_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rfd</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_rule_family_data</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="identifier-syntax">family_specific_data</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">RFD_PLUGIN_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">timed_rules</span><span class="plain-syntax">, </span><span class="identifier-syntax">rfd</span><span class="plain-syntax">)-></span><span class="element-syntax">event_time</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="function-syntax">TimedRules::get_wording_of_event</span><span class="plain-syntax">(</span><span class="identifier-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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="identifier-syntax">family</span><span class="plain-syntax"> != </span><span class="identifier-syntax">rule_idf</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">rule_family_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rfd</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_rule_family_data</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="identifier-syntax">family_specific_data</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">RFD_PLUGIN_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">timed_rules</span><span class="plain-syntax">, </span><span class="identifier-syntax">rfd</span><span class="plain-syntax">)-></span><span class="element-syntax">event_name</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>§6. </b>When a rule has no explicit timing, it needs to be triggered by a phrase
|
||||
like "spawn fresh zombies in 4 turns from now". Here, "spawn fresh zombies"
|
||||
is the name of the rule. But this has the same kind as any other rule, so
|
||||
the Dash typechecker is not able to make sure "spawn fresh zombies" is indeed
|
||||
timed, and not some other rule.
|
||||
</p>
|
||||
|
||||
<p class="commentary">We fix this by defining the trigger phrase to use the inline annotation
|
||||
<span class="extract"><span class="extract-syntax">{-mark-event-used:R}</span></span> on the rule <span class="extract"><span class="extract-syntax">R</span></span>. That in turn results in the following
|
||||
being called:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">TimedRules::inline_annotation</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">TimedRules::inline_annotation</span></span>:<br/><a href="3-tr.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">annot</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">supplied</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">annot</span><span class="plain-syntax"> == </span><span class="identifier-syntax">mark_event_used_ISINC</span><span 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_construction</span><span class="plain-syntax">(</span><span class="identifier-syntax">supplied</span><span class="plain-syntax">, </span><span class="identifier-syntax">CON_rule</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">rule</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Rvalues::to_rule</span><span class="plain-syntax">(</span><span class="identifier-syntax">supplied</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">imperative_defn</span><span class="plain-syntax"> *</span><span class="identifier-syntax">id</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Rules::get_imperative_definition</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">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">t</span><span class="plain-syntax"> = </span><a href="3-tr.html#SP5" class="function-link"><span class="function-syntax">TimedRules::get_timing_of_event</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">t</span><span class="plain-syntax"> == </span><span class="constant-syntax">NO_FIXED_TIME</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><a href="3-tr.html#SP5" class="function-link"><span class="function-syntax">TimedRules::get_uses_as_event</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</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="named-paragraph-container code-font"><a href="3-tr.html#SP6_1" class="named-paragraph-link"><span class="named-paragraph">Not an event rule</span><span class="named-paragraph-number">6.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-tr.html#SP6_1" class="named-paragraph-link"><span class="named-paragraph">Not an event rule</span><span class="named-paragraph-number">6.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-tr.html#SP6_1" class="named-paragraph-link"><span class="named-paragraph">Not an event rule</span><span class="named-paragraph-number">6.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP6_1" class="paragraph-anchor"></a><b>§6.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Not an event rule</span><span class="named-paragraph-number">6.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_source</span><span class="plain-syntax">(1, </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_wording</span><span class="plain-syntax">(2, </span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">supplied</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_NonconstantEvent</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">"You wrote %1, but '%2' isn't the name of any timed event that I know of. "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"(These need to be set up in a special way, like so - 'At the time when stuff "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"happens: ...' creates a timed event called 'stuff happens'.)"</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="3-tr.html#SP6">§6</a> (three times).</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>§7. </b>An interesting case where the Problem is arguably only a warning and arguably
|
||||
shouldn't block compilation. Then again...
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TimedRules::check_for_unused</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">TimedRules::check_for_unused</span></span>:<br/><a href="3-tr.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">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="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">imperative_defn</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-tr.html#SP5" class="function-link"><span class="function-syntax">TimedRules::get_timing_of_event</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">) == </span><span class="constant-syntax">NO_FIXED_TIME</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">LinkedLists::len</span><span class="plain-syntax">(</span><a href="3-tr.html#SP5" class="function-link"><span class="function-syntax">TimedRules::get_uses_as_event</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</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">current_sentence</span><span class="plain-syntax"> = </span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="identifier-syntax">at</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_UnusedTimedEvent</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"this sets up a timed event which is never used"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"since you never use any of the phrases which could cause it. (A timed "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"event is just a name, and it needs other instructions elsewhere before "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"it can have any effect.)"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-mcr.html">❮</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="progresscurrent">tr</li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-ts.html">ts</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-scn.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -173,7 +173,7 @@ be the score corresponding to successful completion and the highest rank.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-scn.html">❮</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-scn.html">scn</a></li><li class="progresscurrent">ts</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="4-ap.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-scn.html">❮</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="progresssection"><a href="3-scn.html">scn</a></li><li class="progresscurrent">ts</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="4-ap.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -193,11 +193,22 @@ of the text they came from; for which, see <a href="4-pap.html" class="internal"
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>§6. </b>This simple parser converts text to a parametric AP of kind <span class="extract"><span class="extract-syntax">K</span></span>. The parser
|
||||
for action-based APs is very much more complicated: see <a href="4-pap.html" class="internal">Parse Action Patterns</a>.
|
||||
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>§6. </b>These functions are used when parsing rule applicability:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">action_pattern</span><span class="plain-syntax"> *</span><span class="function-syntax">ActionPatterns::parse_action_based</span><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">action_pattern</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ap</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">saved</span><span class="plain-syntax"> = </span><a href="4-pap.html#SP2" class="function-link"><span class="function-syntax">ParseActionPatterns::enter_mode</span></a><span class="plain-syntax">(</span><span class="constant-syntax">PERMIT_TRYING_OMISSION</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Rules::all_action_processing_variables</span><span class="plain-syntax">())</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Frames::set_stvol</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Frames::current_stack_frame</span><span class="plain-syntax">(), </span><span class="identifier-syntax">Rules::all_action_processing_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="function-syntax"><action-pattern></span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) </span><span class="identifier-syntax">ap</span><span class="plain-syntax"> = </span><span class="function-syntax"><<rp>></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Frames::remove_nonphrase_stack_frame</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="4-pap.html#SP2" class="function-link"><span class="function-syntax">ParseActionPatterns::restore_mode</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">saved</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">ap</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">action_pattern</span><span class="plain-syntax"> *</span><span class="function-syntax">ActionPatterns::parse_parametric</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">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">spec</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="function-syntax"><s-ap-parameter></span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) </span><span class="identifier-syntax">spec</span><span class="plain-syntax"> = </span><span class="function-syntax"><<rp>></span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -119,7 +119,7 @@ rigged always to fail.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">parse_action_pattern_mode</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">ParseActionPatterns::enter_mode</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">ParseActionPatterns::enter_mode</span></span>:<br/><a href="4-pap.html#SP5">§5</a>, <a href="4-pap.html#SP6">§6</a>, <a href="4-pap.html#SP9">§9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">pm</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">ParseActionPatterns::enter_mode</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">ParseActionPatterns::enter_mode</span></span>:<br/><a href="4-pap.html#SP5">§5</a>, <a href="4-pap.html#SP6">§6</a>, <a href="4-pap.html#SP9">§9</a><br/>Action Patterns - <a href="4-ap2.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">pm</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">was</span><span class="plain-syntax"> = </span><span class="identifier-syntax">parse_action_pattern_mode</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_action_pattern_mode</span><span class="plain-syntax"> |= </span><span class="identifier-syntax">pm</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">was</span><span class="plain-syntax">;</span>
|
||||
|
@ -132,7 +132,7 @@ rigged always to fail.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">was</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">ParseActionPatterns::restore_mode</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">ParseActionPatterns::restore_mode</span></span>:<br/><a href="4-pap.html#SP5">§5</a>, <a href="4-pap.html#SP6">§6</a>, <a href="4-pap.html#SP9">§9</a>, <a href="4-pap.html#SP15">§15</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">saved</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ParseActionPatterns::restore_mode</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">ParseActionPatterns::restore_mode</span></span>:<br/><a href="4-pap.html#SP5">§5</a>, <a href="4-pap.html#SP6">§6</a>, <a href="4-pap.html#SP9">§9</a>, <a href="4-pap.html#SP15">§15</a><br/>Action Patterns - <a href="4-ap2.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">saved</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_action_pattern_mode</span><span class="plain-syntax"> = </span><span class="identifier-syntax">saved</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
|
|
@ -171,6 +171,11 @@
|
|||
<spon class="sectiontitle">Map Connection Relations</span></a> -
|
||||
<span class="sectionpurpose">To define one binary predicate for each map direction, such as "mapped north of".</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="3-tr.html">
|
||||
<spon class="sectiontitle">Timed Rules</span></a> -
|
||||
<span class="sectionpurpose">A plugin to support rules like "At 12:03AM: ...".</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="3-scn.html">
|
||||
<spon class="sectiontitle">Scenes</span></a> -
|
||||
|
|
|
@ -88,7 +88,7 @@ which use this module:
|
|||
<span class="identifier-syntax">COMPILE_WRITER</span><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *, </span><a href="6-inv.html#SP9" class="function-link"><span class="function-syntax">Invocations::log</span></a><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">COMPILE_WRITER</span><span class="plain-syntax">(</span><span class="reserved-syntax">ph_type_data</span><span class="plain-syntax"> *, </span><a href="3-dptd.html#SP1" class="function-link"><span class="function-syntax">Phrases::TypeData::Textual::log</span></a><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">COMPILE_WRITER</span><span class="plain-syntax">(</span><span class="reserved-syntax">local_variable</span><span class="plain-syntax"> *, </span><a href="4-lv.html#SP34" class="function-link"><span class="function-syntax">LocalVariables::log</span></a><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">COMPILE_WRITER</span><span class="plain-syntax">(</span><span class="reserved-syntax">phrase</span><span class="plain-syntax"> *, </span><a href="3-phr.html#SP8" class="function-link"><span class="function-syntax">Phrases::log</span></a><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">COMPILE_WRITER</span><span class="plain-syntax">(</span><span class="reserved-syntax">phrase</span><span class="plain-syntax"> *, </span><a href="3-phr.html#SP9" class="function-link"><span class="function-syntax">Phrases::log</span></a><span class="plain-syntax">)</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ImperativeModule::start</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Writers::register_writer</span><span class="plain-syntax">(</span><span class="character-syntax">'L'</span><span class="plain-syntax">, &</span><a href="4-lv.html#SP43" class="function-link"><span class="function-syntax">LocalVariables::writer</span></a><span class="plain-syntax">);</span>
|
||||
|
@ -96,7 +96,7 @@ which use this module:
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">REGISTER_WRITER</span><span class="plain-syntax">(</span><span class="character-syntax">'e'</span><span class="plain-syntax">, </span><a href="6-inv.html#SP9" class="function-link"><span class="function-syntax">Invocations::log</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">REGISTER_WRITER</span><span class="plain-syntax">(</span><span class="character-syntax">'h'</span><span class="plain-syntax">, </span><a href="3-dptd.html#SP1" class="function-link"><span class="function-syntax">Phrases::TypeData::Textual::log</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">REGISTER_WRITER</span><span class="plain-syntax">(</span><span class="character-syntax">'k'</span><span class="plain-syntax">, </span><a href="4-lv.html#SP34" class="function-link"><span class="function-syntax">LocalVariables::log</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">REGISTER_WRITER</span><span class="plain-syntax">(</span><span class="character-syntax">'R'</span><span class="plain-syntax">, </span><a href="3-phr.html#SP8" class="function-link"><span class="function-syntax">Phrases::log</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">REGISTER_WRITER</span><span class="plain-syntax">(</span><span class="character-syntax">'R'</span><span class="plain-syntax">, </span><a href="3-phr.html#SP9" class="function-link"><span class="function-syntax">Phrases::log</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Memory::reason_name</span><span class="plain-syntax">(</span><span class="constant-syntax">INV_LIST_MREASON</span><span class="plain-syntax">, </span><span class="string-syntax">"lists for type-checking invocations"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Log::declare_aspect</span><span class="plain-syntax">(</span><span class="constant-syntax">DESCRIPTION_COMPILATION_DA</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"description compilation"</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</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">Log::declare_aspect</span><span class="plain-syntax">(</span><span class="constant-syntax">EXPRESSIONS_DA</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"expressions"</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -92,7 +92,7 @@ and a shared set of variables, so this will not be a long section of code.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">activity</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure activity is accessed in 2/rls, 2/rlb, 2/fao, 3/prcd, 3/po, 3/pav, 4/sv, 6/cii, 6/cste and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure activity is accessed in 2/rls, 2/rlb, 2/fao, 3/prcd, 3/po, 4/sv, 6/cii, 6/cste and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b>Whereas rulebooks can turn values into other values, activities are more like
|
||||
void functions: they work on a value, but produce nothing.
|
||||
</p>
|
||||
|
|
|
@ -170,7 +170,7 @@ structures <a href="2-fao.html#SP3" class="internal">rulebook_outcome</a> and <a
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">named_rulebook_outcome</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure named_rulebook_outcome is accessed in 2/rls, 2/act, 3/po, 3/pav, 4/sv, 6/cii, 6/cste and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure named_rulebook_outcome is accessed in 2/rls, 2/act, 3/po, 4/sv, 6/cii, 6/cste and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. </b>That awkward distinction between a <a href="2-fao.html#SP3" class="internal">rulebook_outcome</a> and a <a href="2-fao.html#SP4" class="internal">named_rulebook_outcome</a>
|
||||
brings us edge cases if a rule has been written for use in one rulebook, but then
|
||||
has been explicitly listed in another, or is more than one rulebook.
|
||||
|
|
|
@ -124,7 +124,7 @@ different dynamics altogether. In short, then: rules are not phrases.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">rule</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure rule is accessed in 2/rlb, 2/fao, 2/act, 3/prcd, 3/po, 3/pav, 4/sv, 6/cii, 6/cste and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure rule is accessed in 2/rlb, 2/fao, 2/act, 3/prcd, 3/po, 4/sv, 6/cii, 6/cste and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b>Rules are created before their definitions can be parsed or compiled. A
|
||||
typical rule like so:
|
||||
</p>
|
||||
|
@ -320,9 +320,10 @@ of a <a href="3-phr.html#SP3" class="internal">phrase</a> as follows:
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Rules::set_imperative_definition</span><span class="plain-syntax">(</span><span class="reserved-syntax">rule</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-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="identifier-syntax">R</span><span class="plain-syntax">-></span><span class="element-syntax">defn_as_I7_source</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">RTRules::prepare_rule</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</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">imperative_defn</span><span class="plain-syntax"> *</span><span class="function-syntax">Rules::get_imperative_definition</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Rules::get_imperative_definition</span></span>:<br/>Rule Bookings - <a href="2-rb.html#SP6">§6</a><br/>Booking Lists - <a href="2-bl.html#SP7">§7</a><br/>Phrase Runtime Context Data - <a href="3-prcd.html#SP8">§8</a><br/>Compile Invocations Inline - <a href="6-cii.html#SP3_1_1_4_12">§3.1.1.4.12</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">rule</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">imperative_defn</span><span class="plain-syntax"> *</span><span class="function-syntax">Rules::get_imperative_definition</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Rules::get_imperative_definition</span></span>:<br/>Rule Bookings - <a href="2-rb.html#SP6">§6</a><br/>Booking Lists - <a href="2-bl.html#SP7">§7</a><br/>Phrase Runtime Context Data - <a href="3-prcd.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">rule</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="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">R</span><span class="plain-syntax">-></span><span class="element-syntax">defn_as_I7_source</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -651,7 +652,7 @@ possibility we store one of these:
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">R</span><span class="plain-syntax">-></span><span class="element-syntax">responses</span><span class="plain-syntax">[</span><span class="identifier-syntax">code</span><span class="plain-syntax">].</span><span class="element-syntax">used</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure rule_response is accessed in 3/prcd and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure rule_response is private to this section.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP21" class="paragraph-anchor"></a><b>§21. </b>When a response is defined in the body of a rule, the <span class="extract"><span class="extract-syntax">message</span></span> is
|
||||
created with <a href="2-rls.html#SP21" class="internal">Rules::set_response</a>:
|
||||
</p>
|
||||
|
|
|
@ -119,7 +119,7 @@ The debugging log is simple:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::TypeData::Textual::log_briefly</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">Phrases::TypeData::Textual::log_briefly</span></span>:<br/>Phrases - <a href="3-phr.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">ph_type_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phtd</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::TypeData::Textual::log_briefly</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">Phrases::TypeData::Textual::log_briefly</span></span>:<br/>Phrases - <a href="3-phr.html#SP9">§9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">ph_type_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phtd</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">phtd</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) { </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"NULL-PHTD"</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span class="plain-syntax">; }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"\"%W\""</span><span class="plain-syntax">, </span><span class="identifier-syntax">phtd</span><span class="plain-syntax">-></span><span class="element-syntax">registration_text</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">phtd</span><span class="plain-syntax">-></span><span class="element-syntax">manner_of_return</span><span class="plain-syntax">) {</span>
|
||||
|
@ -142,7 +142,7 @@ match is shown.
|
|||
<span class="definition-keyword">define</span> <span class="constant-syntax">INDEX_PHRASE_FORMAT</span><span class="plain-syntax"> </span><span class="constant-syntax">2</span><span class="plain-syntax"> </span><span class="comment-syntax"> a simpler version good enough for most purposes</span>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::TypeData::Textual::write_HTML_representation</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">Phrases::TypeData::Textual::write_HTML_representation</span></span>:<br/><a href="3-dptd.html#SP4">§4</a><br/>Phrases - <a href="3-phr.html#SP9">§9</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">Phrases::TypeData::Textual::write_HTML_representation</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">Phrases::TypeData::Textual::write_HTML_representation</span></span>:<br/><a href="3-dptd.html#SP4">§4</a><br/>Phrases - <a href="3-phr.html#SP10">§10</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="reserved-syntax">ph_type_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phtd</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">paste_format</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax">) {</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">seq_from</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">seq_to</span><span class="plain-syntax"> = </span><span class="identifier-syntax">phtd</span><span class="plain-syntax">-></span><span class="element-syntax">no_words</span><span class="plain-syntax">;</span>
|
||||
|
@ -304,9 +304,9 @@ match is shown.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_phrase_invoked</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ph</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">ph_type_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phtd</span><span class="plain-syntax"> = &(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">type_data</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">ph_documentation_symbol</span><span 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">ToPhraseFamily::doc_ref</span><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">from</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">pds</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">pds</span><span class="plain-syntax">, </span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::one_word</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">ph_documentation_symbol</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">pds</span><span class="plain-syntax">, </span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::one_word</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">ToPhraseFamily::doc_ref</span><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">from</span><span class="plain-syntax">))));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Index::DocReferences::link_to</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pds</span><span class="plain-syntax">, -1);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">pds</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span>
|
||||
|
@ -329,7 +329,7 @@ match is shown.
|
|||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::TypeData::Textual::write_index_representation</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">Phrases::TypeData::Textual::write_index_representation</span></span>:<br/><a href="3-dptd.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">ph_type_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phtd</span><span class="plain-syntax">, </span><span class="reserved-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">phtd</span><span class="plain-syntax">-></span><span class="element-syntax">manner_of_return</span><span class="plain-syntax"> == </span><span class="constant-syntax">DECIDES_CONDITION_MOR</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">"<i>if</i> "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-phr.html#SP9" class="function-link"><span class="function-syntax">Phrases::write_HTML_representation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">ph</span><span class="plain-syntax">, </span><span class="constant-syntax">INDEX_PHRASE_FORMAT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-phr.html#SP10" class="function-link"><span class="function-syntax">Phrases::write_HTML_representation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">ph</span><span class="plain-syntax">, </span><span class="constant-syntax">INDEX_PHRASE_FORMAT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">phtd</span><span class="plain-syntax">-></span><span class="element-syntax">return_kind</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">phtd</span><span class="plain-syntax">-></span><span class="element-syntax">manner_of_return</span><span class="plain-syntax"> == </span><span class="constant-syntax">DECIDES_CONDITION_MOR</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<i>:</i>"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
|
@ -368,7 +368,7 @@ This is the routine which prints those details.
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="3-phr.html#SP9" class="function-link"><span class="function-syntax">Phrases::write_HTML_representation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">, </span><span class="identifier-syntax">ph</span><span class="plain-syntax">, </span><span class="constant-syntax">PASTE_PHRASE_FORMAT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-phr.html#SP10" class="function-link"><span class="function-syntax">Phrases::write_HTML_representation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">, </span><span class="identifier-syntax">ph</span><span class="plain-syntax">, </span><span class="constant-syntax">PASTE_PHRASE_FORMAT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PasteButtons::paste_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&nbsp;"</span><span class="plain-syntax">);</span>
|
||||
|
@ -382,10 +382,10 @@ of course.
|
|||
</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">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">ph_documentation_symbol</span><span 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">ToPhraseFamily::doc_ref</span><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">from</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">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">pds</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">pds</span><span class="plain-syntax">, </span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::one_word</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">ph_documentation_symbol</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">pds</span><span class="plain-syntax">, </span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::one_word</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">ToPhraseFamily::doc_ref</span><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">from</span><span class="plain-syntax">))));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Index::DocReferences::doc_fragment</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pds</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">); </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<b>See</b> "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Index::DocReferences::fully_link</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pds</span><span class="plain-syntax">);</span>
|
||||
|
@ -490,7 +490,7 @@ correctly set.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::TypeData::Textual::parse</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Phrases::TypeData::Textual::parse</span></span>:<br/>Phrases as Values - <a href="3-pav.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">ph_type_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phtd</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">XW</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OW</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::TypeData::Textual::parse</span><span class="plain-syntax">(</span><span class="reserved-syntax">ph_type_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phtd</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">XW</span><span class="plain-syntax">, </span><span class="identifier-syntax">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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">say_flag</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">; </span><span class="comment-syntax"> is this going to be a "say" phrase?</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">XW</span><span class="plain-syntax">)) </span><span class="identifier-syntax">XW</span><span class="plain-syntax"> = </span><a href="3-dptd.html#SP16" class="function-link"><span class="function-syntax">Phrases::TypeData::Textual::phtd_parse_return_data</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">phtd</span><span class="plain-syntax">, </span><span class="identifier-syntax">XW</span><span class="plain-syntax">); </span><span class="comment-syntax"> trim return data from the front</span>
|
||||
|
@ -716,7 +716,7 @@ haven't yet been parsed, so that we don't yet know it will be meaningful.
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">no_truth_state_returns</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::TypeData::Textual::phtd_parse_return_data</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Phrases::TypeData::Textual::phtd_parse_return_data</span></span>:<br/><a href="3-dptd.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">ph_type_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phtd</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">XW</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::TypeData::Textual::phtd_parse_return_data</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Phrases::TypeData::Textual::phtd_parse_return_data</span></span>:<br/><a href="3-dptd.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">ph_type_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phtd</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">XW</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">phtd</span><span class="plain-syntax">-></span><span class="identifier-syntax">return_kind</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="function-syntax"><to-return-data></span><span class="plain-syntax">(</span><span class="identifier-syntax">XW</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">XW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax"><to-return-data></span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
|
@ -749,7 +749,7 @@ preamble word range backwards — it returns the current last word number.
|
|||
</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">Phrases::TypeData::Textual::phtd_parse_doodads</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">Phrases::TypeData::Textual::phtd_parse_doodads</span></span>:<br/><a href="3-dptd.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">ph_type_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phtd</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> *</span><span class="identifier-syntax">say_flag</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::TypeData::Textual::phtd_parse_doodads</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Phrases::TypeData::Textual::phtd_parse_doodads</span></span>:<br/><a href="3-dptd.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">ph_type_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phtd</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> *</span><span class="identifier-syntax">say_flag</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="function-syntax"><<operation>></span><span class="plain-syntax"> = -1; </span><span class="function-syntax"><<assignment>></span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">; </span><span class="function-syntax"><<deprecated>></span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">; </span><span class="function-syntax"><<run-on>></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"><phrase-preamble></span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">); </span><span class="comment-syntax"> guaranteed to match any non-empty text</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><<r>></span><span class="plain-syntax"> == </span><span class="constant-syntax">SAY_ANN</span><span class="plain-syntax">) </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax"><say-preamble></span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
|
@ -979,7 +979,7 @@ form the word and token sequences:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::TypeData::Textual::phtd_parse_word_sequence</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Phrases::TypeData::Textual::phtd_parse_word_sequence</span></span>:<br/><a href="3-dptd.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">ph_type_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phtd</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::TypeData::Textual::phtd_parse_word_sequence</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Phrases::TypeData::Textual::phtd_parse_word_sequence</span></span>:<br/><a href="3-dptd.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">ph_type_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phtd</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">phtd</span><span class="plain-syntax">-></span><span class="identifier-syntax">no_tokens</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">phtd</span><span class="plain-syntax">-></span><span class="identifier-syntax">no_words</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
|
||||
|
@ -1184,7 +1184,7 @@ such as "list of numbers", it returns 0.)
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::TypeData::Textual::find_kind_variable_domains</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Phrases::TypeData::Textual::find_kind_variable_domains</span></span>:<br/><a href="3-dptd.html#SP20_3">§20.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> *</span><span class="identifier-syntax">usages</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> **</span><span class="identifier-syntax">declarations</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::TypeData::Textual::find_kind_variable_domains</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Phrases::TypeData::Textual::find_kind_variable_domains</span></span>:<br/><a href="3-dptd.html#SP20_3">§20.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> *</span><span class="identifier-syntax">usages</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> **</span><span class="identifier-syntax">declarations</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</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">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Kinds::get_variable_number</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
|
@ -1236,7 +1236,7 @@ in exactly one place: for example,
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-dptd.html#SP21">§21</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-ptd.html">❮</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-rls.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-itp.html">itp</a></li><li class="progresssection"><a href="3-phr.html">phr</a></li><li class="progresssection"><a href="3-prcd.html">prcd</a></li><li class="progresssection"><a href="3-ptd.html">ptd</a></li><li class="progresscurrent">dptd</li><li class="progresssection"><a href="3-po.html">po</a></li><li class="progresssection"><a href="3-pav.html">pav</a></li><li class="progresssection"><a href="3-tph.html">tph</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresschapter"><a href="4-lv.html">4</a></li><li class="progresschapter"><a href="5-cfs.html">5</a></li><li class="progresschapter"><a href="6-inv.html">6</a></li><li class="progressnext"><a href="3-po.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-ptd.html">❮</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-rls.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-itp.html">itp</a></li><li class="progresssection"><a href="3-phr.html">phr</a></li><li class="progresssection"><a href="3-prcd.html">prcd</a></li><li class="progresssection"><a href="3-ptd.html">ptd</a></li><li class="progresscurrent">dptd</li><li class="progresssection"><a href="3-po.html">po</a></li><li class="progresssection"><a href="3-tph.html">tph</a></li><li class="progresschapter"><a href="4-lv.html">4</a></li><li class="progresschapter"><a href="5-cfs.html">5</a></li><li class="progresschapter"><a href="6-inv.html">6</a></li><li class="progressnext"><a href="3-po.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -228,7 +228,7 @@ significant timing difficulties.
|
|||
</p>
|
||||
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-act.html">❮</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-rls.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresscurrent">itp</li><li class="progresssection"><a href="3-phr.html">phr</a></li><li class="progresssection"><a href="3-prcd.html">prcd</a></li><li class="progresssection"><a href="3-ptd.html">ptd</a></li><li class="progresssection"><a href="3-dptd.html">dptd</a></li><li class="progresssection"><a href="3-po.html">po</a></li><li class="progresssection"><a href="3-pav.html">pav</a></li><li class="progresssection"><a href="3-tph.html">tph</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresschapter"><a href="4-lv.html">4</a></li><li class="progresschapter"><a href="5-cfs.html">5</a></li><li class="progresschapter"><a href="6-inv.html">6</a></li><li class="progressnext"><a href="3-phr.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-act.html">❮</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-rls.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresscurrent">itp</li><li class="progresssection"><a href="3-phr.html">phr</a></li><li class="progresssection"><a href="3-prcd.html">prcd</a></li><li class="progresssection"><a href="3-ptd.html">ptd</a></li><li class="progresssection"><a href="3-dptd.html">dptd</a></li><li class="progresssection"><a href="3-po.html">po</a></li><li class="progresssection"><a href="3-tph.html">tph</a></li><li class="progresschapter"><a href="4-lv.html">4</a></li><li class="progresschapter"><a href="5-cfs.html">5</a></li><li class="progresschapter"><a href="6-inv.html">6</a></li><li class="progressnext"><a href="3-phr.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -1,323 +0,0 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Phrases as Values</title>
|
||||
<link href="../docs-assets/Breadcrumbs.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<meta name="viewport" content="width=device-width initial-scale=1">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en-gb">
|
||||
|
||||
<link href="../docs-assets/Contents.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Progress.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Navigation.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Fonts.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Base.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<script>
|
||||
function togglePopup(material_id) {
|
||||
var popup = document.getElementById(material_id);
|
||||
popup.classList.toggle("show");
|
||||
}
|
||||
</script>
|
||||
|
||||
<link href="../docs-assets/Popups.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
|
||||
</head>
|
||||
<body class="commentary-font">
|
||||
<nav role="navigation">
|
||||
<h1><a href="../index.html">
|
||||
<img src="../docs-assets/Inform.png" height=72">
|
||||
</a></h1>
|
||||
<ul><li><a href="../compiler.html">compiler tools</a></li>
|
||||
<li><a href="../other.html">other tools</a></li>
|
||||
<li><a href="../extensions.html">extensions and kits</a></li>
|
||||
<li><a href="../units.html">unit test tools</a></li>
|
||||
</ul><h2>Compiler Webs</h2><ul>
|
||||
<li><a href="../inbuild/index.html">inbuild</a></li>
|
||||
<li><a href="../inform7/index.html">inform7</a></li>
|
||||
<li><a href="../inter/index.html">inter</a></li>
|
||||
</ul><h2>Inbuild Modules</h2><ul>
|
||||
<li><a href="../supervisor-module/index.html">supervisor</a></li>
|
||||
</ul><h2>Inform7 Modules</h2><ul>
|
||||
<li><a href="../core-module/index.html">core</a></li>
|
||||
<li><a href="../assertions-module/index.html">assertions</a></li>
|
||||
<li><a href="../values-module/index.html">values</a></li>
|
||||
<li><a href="../knowledge-module/index.html">knowledge</a></li>
|
||||
<li><a href="index.html"><span class="selectedlink">imperative</span></a></li>
|
||||
<li><a href="../runtime-module/index.html">runtime</a></li>
|
||||
<li><a href="../if-module/index.html">if</a></li>
|
||||
<li><a href="../multimedia-module/index.html">multimedia</a></li>
|
||||
<li><a href="../index-module/index.html">index</a></li>
|
||||
</ul><h2>Inter Modules</h2><ul>
|
||||
<li><a href="../bytecode-module/index.html">bytecode</a></li>
|
||||
<li><a href="../building-module/index.html">building</a></li>
|
||||
<li><a href="../codegen-module/index.html">codegen</a></li>
|
||||
</ul><h2>Services</h2><ul>
|
||||
<li><a href="../arch-module/index.html">arch</a></li>
|
||||
<li><a href="../calculus-module/index.html">calculus</a></li>
|
||||
<li><a href="../html-module/index.html">html</a></li>
|
||||
<li><a href="../inflections-module/index.html">inflections</a></li>
|
||||
<li><a href="../kinds-module/index.html">kinds</a></li>
|
||||
<li><a href="../linguistics-module/index.html">linguistics</a></li>
|
||||
<li><a href="../problems-module/index.html">problems</a></li>
|
||||
<li><a href="../syntax-module/index.html">syntax</a></li>
|
||||
<li><a href="../words-module/index.html">words</a></li>
|
||||
<li><a href="../../../inweb/docs/foundation-module/index.html">foundation</a></li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
<main role="main">
|
||||
<!--Weave of 'Phrases as Values' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">imperative</a></li><li><a href="index.html#3">Chapter 3: Phrases</a></li><li><b>Phrases as Values</b></li></ul></div>
|
||||
<p class="purpose">To provide the names of phrases as first-class values.</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b>A few "To..." phrases have names, and can therefore be used as values in their
|
||||
own right, a functional-programming sort of device. For example:
|
||||
</p>
|
||||
|
||||
<blockquote>
|
||||
<p>To decide what number is double (N - a number) (this is doubling):</p>
|
||||
</blockquote>
|
||||
|
||||
<p class="commentary">has the name "doubling". Such a name is recorded here:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">typedef</span><span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">constant_phrase</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">noun</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">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phrase_meant</span><span class="plain-syntax">; </span><span class="comment-syntax"> if known at this point</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">cphr_kind</span><span class="plain-syntax">; </span><span class="comment-syntax"> ditto</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">cphr_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">associated_preamble_text</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">constant_phrase</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure constant_phrase is accessed in 2/rls, 2/fao, 2/act, 3/po, 4/sv, 6/cii, 6/cste and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b>Here we create a new named phrase ("doubling", say):
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">constant_phrase</span><span class="plain-syntax"> *</span><span class="function-syntax">Phrases::Constants::create</span><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">NW</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">RW</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">constant_phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cphr</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">constant_phrase</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="identifier-syntax">phrase_meant</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="comment-syntax"> we won't know until later</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="identifier-syntax">cphr_kind</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="comment-syntax"> nor this</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="identifier-syntax">associated_preamble_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RW</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="identifier-syntax">name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Nouns::new_proper_noun</span><span class="plain-syntax">(</span><span class="identifier-syntax">NW</span><span class="plain-syntax">, </span><span class="identifier-syntax">NEUTER_GENDER</span><span class="plain-syntax">, </span><span class="identifier-syntax">ADD_TO_LEXICON_NTOPT</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PHRASE_CONSTANT_MC</span><span class="plain-syntax">, </span><span class="identifier-syntax">Rvalues::from_constant_phrase</span><span class="plain-syntax">(</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">), </span><span class="identifier-syntax">Task::language_of_syntax</span><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="identifier-syntax">cphr_iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">cphr</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. </b>...and parse for an existing one:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">constant_phrase</span><span class="plain-syntax"> *</span><span class="function-syntax">Phrases::Constants::parse</span><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">NW</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><s-value></span><span class="plain-syntax">(</span><span class="identifier-syntax">NW</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">spec</span><span class="plain-syntax"> = </span><span class="function-syntax"><<rp>></span><span 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_construction</span><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">, </span><span class="identifier-syntax">CON_phrase</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">constant_phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cphr</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Rvalues::to_constant_phrase</span><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-pav.html#SP4" class="function-link"><span class="function-syntax">Phrases::Constants::kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cphr</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">cphr</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">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. </b>As often happens with Inform constants, the kind of a constant phrase can't
|
||||
be known when its name first comes up, and must be filled in later. (In
|
||||
particular, before the second traverse many kinds do not yet exist.) So
|
||||
the following takes a patch-it-later approach.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="function-syntax">Phrases::Constants::kind</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Phrases::Constants::kind</span></span>:<br/><a href="3-pav.html#SP3">§3</a>, <a href="3-pav.html#SP6">§6</a>, <a href="3-pav.html#SP7">§7</a>, <a href="3-pav.html#SP7_1">§7.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">constant_phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cphr</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">global_pass_state</span><span class="plain-syntax">.</span><span class="identifier-syntax">pass</span><span class="plain-syntax"> < </span><span class="constant-syntax">2</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">Kinds::binary_con</span><span class="plain-syntax">(</span><span class="identifier-syntax">CON_phrase</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="element-syntax">cphr_kind</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">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">OW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">ph_type_data</span><span class="plain-syntax"> </span><span class="identifier-syntax">phtd</span><span class="plain-syntax"> = </span><a href="3-ptd.html#SP9" class="function-link"><span class="function-syntax">Phrases::TypeData::new</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="3-dptd.html#SP8" class="function-link"><span class="function-syntax">Phrases::TypeData::Textual::parse</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">phtd</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="element-syntax">associated_preamble_text</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">cphr</span><span class="plain-syntax">-></span><span class="element-syntax">cphr_kind</span><span class="plain-syntax"> = </span><a href="3-ptd.html#SP12" class="function-link"><span class="function-syntax">Phrases::TypeData::kind</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">phtd</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">cphr</span><span class="plain-syntax">-></span><span class="element-syntax">cphr_kind</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. </b>And similarly for the <span class="extract"><span class="extract-syntax">phrase</span></span> structure this name corresponds to.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">phrase</span><span class="plain-syntax"> *</span><span class="function-syntax">Phrases::Constants::as_phrase</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">Phrases::Constants::as_phrase</span></span>:<br/><a href="3-pav.html#SP6">§6</a>, <a href="3-pav.html#SP7">§7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">constant_phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cphr</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">"null cphr"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="element-syntax">phrase_meant</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">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="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">imperative_defn</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ToPhraseFamily::constant_phrase</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">) == </span><span class="identifier-syntax">cphr</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="element-syntax">phrase_meant</span><span class="plain-syntax"> = </span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="identifier-syntax">body_of_defn</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="element-syntax">phrase_meant</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>§6. </b>So much for setting up constant phrases. Now we come to compilation, and
|
||||
a surprise. It might be expected that a constant phrase compiles simply to
|
||||
an I6 routine name, but no: it compiles to a small array called a "closure".
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Phrases::Constants::compile</span><span class="plain-syntax">(</span><span class="reserved-syntax">constant_phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</span><span class="plain-syntax"> = </span><a href="3-pav.html#SP5" class="function-link"><span class="function-syntax">Phrases::Constants::as_phrase</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ph</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">"cannot reconstruct phrase from cphr"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-phr.html#SP10" class="function-link"><span class="function-syntax">Phrases::compiled_inline</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="3-tph.html#SP6" class="function-link"><span class="function-syntax">Routines::ToPhrases::make_request</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="3-pav.html#SP4" class="function-link"><span class="function-syntax">Phrases::Constants::kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">), </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-pav.html#SP6" class="function-link"><span class="function-syntax">Phrases::Constants::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Phrases::Constants::iname</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">Phrases::Constants::iname</span></span>:<br/><a href="3-pav.html#SP7_1">§7.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">constant_phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="element-syntax">cphr_iname</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</span><span class="plain-syntax"> = </span><a href="3-pav.html#SP5" class="function-link"><span class="function-syntax">Phrases::Constants::as_phrase</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ph</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">"cannot reconstruct phrase from cphr"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Hierarchy::package_within</span><span class="plain-syntax">(</span><span class="identifier-syntax">CLOSURES_HAP</span><span class="plain-syntax">, </span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">requests_package</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="element-syntax">cphr_iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Hierarchy::make_iname_in</span><span class="plain-syntax">(</span><span class="identifier-syntax">CLOSURE_DATA_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="element-syntax">cphr_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>§7. </b>And this is where those arrays are made:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Constants::compile_closures</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">constant_phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cphr</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">cphr</span><span class="plain-syntax">, </span><span class="reserved-syntax">constant_phrase</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</span><span class="plain-syntax"> = </span><a href="3-pav.html#SP5" class="function-link"><span class="function-syntax">Phrases::Constants::as_phrase</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ph</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">"cannot reconstruct phrase from cphr"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-pav.html#SP4" class="function-link"><span class="function-syntax">Phrases::Constants::kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-pav.html#SP7_1" class="named-paragraph-link"><span class="named-paragraph">Compile the closure array for this constant phrase</span><span class="named-paragraph-number">7.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP7_1" class="paragraph-anchor"></a><b>§7.1. </b>The closure array consists of three words: the strong kind ID, the address
|
||||
of the routine, and the text of the name. (The latter enables us to print
|
||||
phrase values efficiently.) Note that we make a compilation request for the
|
||||
phrase in order to make sure somebody has actually compiled it: this is in
|
||||
case the phrase occurs as a constant but is never explicitly invoked.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile the closure array for this constant phrase</span><span class="named-paragraph-number">7.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="3-pav.html#SP6" class="function-link"><span class="function-syntax">Phrases::Constants::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Emit::named_array_begin</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">RTKinds::emit_strong_id</span><span class="plain-syntax">(</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="element-syntax">cphr_kind</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">RS</span><span class="plain-syntax"> = </span><a href="3-tph.html#SP7" class="function-link"><span class="function-syntax">Routines::ToPhrases::make_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="3-pav.html#SP4" class="function-link"><span class="function-syntax">Phrases::Constants::kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Emit::array_iname_entry</span><span class="plain-syntax">(</span><span class="identifier-syntax">RS</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">name</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">name</span><span class="plain-syntax">, </span><span class="string-syntax">"%W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Nouns::nominative_singular</span><span class="plain-syntax">(</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Emit::array_text_entry</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">)</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Emit::array_end</span><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-pav.html#SP7">§7</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>§8. </b>Now we come to something trickier. We want default values for kinds of phrases,
|
||||
because otherwise we can't have variables holding phrases unless they are
|
||||
always initialised explicitly, and so on. Clearly the default value for a
|
||||
phrase to nothing is one that does nothing, and for a phrase to some kind K
|
||||
is one that returns the default value of kind K. For example, the default
|
||||
value of
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> phrase (text, time) -> number</span>
|
||||
</pre>
|
||||
<p class="commentary">is the function which takes any pair of a text and a time, does nothing with
|
||||
them, and always returns 0. But this means we need to actually compile such
|
||||
routines. Since there are in principle an infinite number of distinct phrase
|
||||
kinds, we will only compile them for the phrase kinds which arise during
|
||||
compilation.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Constants::compile_default_closure</span><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">closure_identifier</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Kinds::Behaviour::package</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Hierarchy::make_iname_in</span><span class="plain-syntax">(</span><span class="identifier-syntax">DEFAULT_CLOSURE_FN_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-pav.html#SP8_2" class="named-paragraph-link"><span class="named-paragraph">Compile the default routine</span><span class="named-paragraph-number">8.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-pav.html#SP8_1" class="named-paragraph-link"><span class="named-paragraph">Compile the default closure</span><span class="named-paragraph-number">8.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP8_1" class="paragraph-anchor"></a><b>§8.1. </b>This must have exactly the same three-word form as the closure arrays
|
||||
made above.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile the default closure</span><span class="named-paragraph-number">8.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Emit::named_array_begin</span><span class="plain-syntax">(</span><span class="identifier-syntax">closure_identifier</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">RTKinds::emit_strong_id</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">Emit::array_iname_entry</span><span class="plain-syntax">(</span><span class="identifier-syntax">rname</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">DVT</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">DVT</span><span class="plain-syntax">, </span><span class="string-syntax">"default value of "</span><span class="plain-syntax">); </span><span class="identifier-syntax">Kinds::Textual::write</span><span class="plain-syntax">(</span><span class="identifier-syntax">DVT</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">Emit::array_text_entry</span><span class="plain-syntax">(</span><span class="identifier-syntax">DVT</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">DVT</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Emit::array_end</span><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-pav.html#SP8">§8</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP8_2" class="paragraph-anchor"></a><b>§8.2. </b>And here is the function that refers to:
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile the default routine</span><span class="named-paragraph-number">8.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">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Routines::begin</span><span class="plain-syntax">(</span><span class="identifier-syntax">rname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="4-lv.html#SP10" class="function-link"><span class="function-syntax">LocalVariables::add_named_call</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"a"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="4-lv.html#SP10" class="function-link"><span class="function-syntax">LocalVariables::add_named_call</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"b"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="4-lv.html#SP10" class="function-link"><span class="function-syntax">LocalVariables::add_named_call</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"c"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="4-lv.html#SP10" class="function-link"><span class="function-syntax">LocalVariables::add_named_call</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"d"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="4-lv.html#SP10" class="function-link"><span class="function-syntax">LocalVariables::add_named_call</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"e"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="4-lv.html#SP10" class="function-link"><span class="function-syntax">LocalVariables::add_named_call</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"f"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="4-lv.html#SP10" class="function-link"><span class="function-syntax">LocalVariables::add_named_call</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"g"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="4-lv.html#SP10" class="function-link"><span class="function-syntax">LocalVariables::add_named_call</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"h"</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">result</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">Kinds::binary_construction_material</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, &</span><span class="identifier-syntax">result</span><span 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::get_construct</span><span class="plain-syntax">(</span><span class="identifier-syntax">result</span><span class="plain-syntax">) != </span><span class="identifier-syntax">CON_NIL</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">RETURN_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">());</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::uses_pointer_values</span><span class="plain-syntax">(</span><span class="identifier-syntax">result</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Hierarchy::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">BLKVALUECREATE_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_call_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">RTKinds::emit_strong_id_as_val</span><span class="plain-syntax">(</span><span class="identifier-syntax">result</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</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">RTKinds::emit_default_value_as_val</span><span class="plain-syntax">(</span><span class="identifier-syntax">result</span><span class="plain-syntax">, </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</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">Produce::val</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Routines::end</span><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-pav.html#SP8">§8</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-po.html">❮</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-rls.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-itp.html">itp</a></li><li class="progresssection"><a href="3-phr.html">phr</a></li><li class="progresssection"><a href="3-prcd.html">prcd</a></li><li class="progresssection"><a href="3-ptd.html">ptd</a></li><li class="progresssection"><a href="3-dptd.html">dptd</a></li><li class="progresssection"><a href="3-po.html">po</a></li><li class="progresscurrent">pav</li><li class="progresssection"><a href="3-tph.html">tph</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresschapter"><a href="4-lv.html">4</a></li><li class="progresschapter"><a href="5-cfs.html">5</a></li><li class="progresschapter"><a href="6-inv.html">6</a></li><li class="progressnext"><a href="3-tph.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -73,7 +73,7 @@ function togglePopup(material_id) {
|
|||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">imperative</a></li><li><a href="index.html#3">Chapter 3: Phrases</a></li><li><b>Phrases</b></li></ul></div>
|
||||
<p class="purpose">To create one |phrase| object for each phrase declaration in the source text.</p>
|
||||
|
||||
<ul class="toc"><li><a href="3-phr.html#SP8">§8. Miscellaneous</a></li><li><a href="3-phr.html#SP11">§11. Compilation</a></li><li><a href="3-phr.html#SP12">§12. Basic mode main</a></li></ul><hr class="tocbar">
|
||||
<ul class="toc"><li><a href="3-phr.html#SP9">§9. Miscellaneous</a></li><li><a href="3-phr.html#SP12">§12. Compilation</a></li><li><a href="3-phr.html#SP13">§13. Basic mode main</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b>As noted in the introduction to this chapter, a <span class="extract"><span class="extract-syntax">phrase</span></span> structure is
|
||||
created for each "To..." definition and each rule in the source text. It is
|
||||
|
@ -111,7 +111,6 @@ code below.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_schema</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inter_tail_defn</span><span class="plain-syntax">; </span><span class="comment-syntax"> inline definition translated to inter, if possible</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_defn_converted</span><span class="plain-syntax">; </span><span class="comment-syntax"> has this been tried yet?</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">inline_mor</span><span class="plain-syntax">; </span><span class="comment-syntax"> manner of return for inline I6 definition, or </span><span class="extract"><span class="extract-syntax">UNKNOWN_NT</span></span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">ph_documentation_symbol</span><span class="plain-syntax">; </span><span class="comment-syntax"> cross-reference with documentation</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">compilation_unit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owning_module</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">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">requests_package</span><span class="plain-syntax">;</span>
|
||||
|
||||
|
@ -132,7 +131,7 @@ code below.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">phrase</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure phrase is accessed in 2/rls, 2/rb, 3/prcd, 3/ptd, 3/dptd, 3/po, 3/pav, 3/tph, 3/tp, 6/inv, 6/pi, 6/ci, 6/cii, 6/cp, 6/cste and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure phrase is accessed in 2/rls, 2/rb, 3/prcd, 3/ptd, 3/dptd, 3/po, 3/tph, 6/inv, 6/pi, 6/ci, 6/cii, 6/cp, 6/cste and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. </b>"To..." phrases, though no others, are listed in logical precedence order:
|
||||
</p>
|
||||
|
||||
|
@ -154,8 +153,6 @@ invocation which is given as verbatim I6.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"a phrase preamble should be at a IMPERATIVE_NT node"</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">inline_wn</span><span class="plain-syntax"> = -1; </span><span class="comment-syntax"> the word number of an inline I6 definition if any</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">mor</span><span class="plain-syntax"> = </span><span class="constant-syntax">DONT_KNOW_MOR</span><span class="plain-syntax">; </span><span class="comment-syntax"> and its manner of return</span>
|
||||
<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="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">; </span><span class="comment-syntax"> the text of the phrase options, if any</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">documentation_W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">; </span><span class="comment-syntax"> the documentation reference, if any</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-phr.html#SP5_1" class="named-paragraph-link"><span class="named-paragraph">Look for an inline definition</span><span class="named-paragraph-number">5.1</span></a></span><span class="plain-syntax">;</span>
|
||||
|
||||
|
@ -167,8 +164,8 @@ invocation which is given as verbatim I6.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">inline_wn</span><span class="plain-syntax"> >= </span><span class="constant-syntax">0</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">ImperativeDefinitionFamilies::allows_inline</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-phr.html#SP5_7" class="named-paragraph-link"><span class="named-paragraph">Inline is for To... phrases only</span><span class="named-paragraph-number">5.7</span></a></span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-phr.html#SP5_2" class="named-paragraph-link"><span class="named-paragraph">Construct the PHTD, find the phrase options, find the documentation reference</span><span class="named-paragraph-number">5.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-phr.html#SP5_3" class="named-paragraph-link"><span class="named-paragraph">Construct the PHOD</span><span class="named-paragraph-number">5.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-phr.html#SP5_2" class="named-paragraph-link"><span class="named-paragraph">Construct the PHOD</span><span class="named-paragraph-number">5.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-phr.html#SP5_3" class="named-paragraph-link"><span class="named-paragraph">Construct the PHTD, find the phrase options, find the documentation reference</span><span class="named-paragraph-number">5.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-phr.html#SP5_4" class="named-paragraph-link"><span class="named-paragraph">Construct the PHSF, using the PHTD and PHOD</span><span class="named-paragraph-number">5.4</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-phr.html#SP5_5" class="named-paragraph-link"><span class="named-paragraph">Construct the PHRCD</span><span class="named-paragraph-number">5.5</span></a></span><span class="plain-syntax">;</span>
|
||||
|
||||
|
@ -191,22 +188,19 @@ invocation which is given as verbatim I6.
|
|||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-phr.html#SP5">§5</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP5_2" class="paragraph-anchor"></a><b>§5.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Construct the PHTD, find the phrase options, find the documentation reference</span><span class="named-paragraph-number">5.2</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP5_2" class="paragraph-anchor"></a><b>§5.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Construct the PHOD</span><span class="named-paragraph-number">5.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">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">XW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ToPhraseFamily::get_prototype_text</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">documentation_W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Index::DocReferences::position_of_symbol</span><span class="plain-syntax">(&</span><span class="identifier-syntax">XW</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">phtd</span><span class="plain-syntax"> = </span><a href="3-ptd.html#SP9" class="function-link"><span class="function-syntax">Phrases::TypeData::new</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">inline_wn</span><span class="plain-syntax"> >= </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><a href="3-ptd.html#SP25" class="function-link"><span class="function-syntax">Phrases::TypeData::make_inline</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">phtd</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ImperativeDefinitionFamilies::to_phtd</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">, &</span><span class="identifier-syntax">phtd</span><span class="plain-syntax">, </span><span class="identifier-syntax">XW</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">phod</span><span class="plain-syntax"> = </span><a href="3-po.html#SP3" class="function-link"><span class="function-syntax">Phrases::Options::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-phr.html#SP5">§5</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP5_3" class="paragraph-anchor"></a><b>§5.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Construct the PHOD</span><span class="named-paragraph-number">5.3</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP5_3" class="paragraph-anchor"></a><b>§5.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Construct the PHTD, find the phrase options, find the documentation reference</span><span class="named-paragraph-number">5.3</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">phod</span><span class="plain-syntax"> = </span><a href="3-po.html#SP6" class="function-link"><span class="function-syntax">Phrases::Options::parse_declared_options</span></a><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">phtd</span><span class="plain-syntax"> = </span><a href="3-ptd.html#SP9" class="function-link"><span class="function-syntax">Phrases::TypeData::new</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">inline_wn</span><span class="plain-syntax"> >= </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><a href="3-ptd.html#SP25" class="function-link"><span class="function-syntax">Phrases::TypeData::make_inline</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">phtd</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-phr.html#SP5">§5</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP5_4" class="paragraph-anchor"></a><b>§5.4. </b>The stack frame needs to know the kind of this phrase — something like
|
||||
|
@ -226,10 +220,6 @@ inline definitions.
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">phsf</span><span class="plain-syntax"> = </span><a href="4-sf.html#SP4" class="function-link"><span class="function-syntax">Frames::new</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="3-ptd.html#SP19" class="function-link"><span class="function-syntax">Phrases::TypeData::into_stack_frame</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">phsf</span><span class="plain-syntax">, &</span><span class="identifier-syntax">phtd</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="3-ptd.html#SP12" class="function-link"><span class="function-syntax">Phrases::TypeData::kind</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">phtd</span><span class="plain-syntax">), </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-po.html#SP3" class="function-link"><span class="function-syntax">Phrases::Options::allows_options</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">phod</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><a href="4-lv.html#SP13" class="function-link"><span class="function-syntax">LocalVariables::options_parameter_is_needed</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">phsf</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-phr.html#SP5">§5</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP5_5" class="paragraph-anchor"></a><b>§5.5. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Construct the PHRCD</span><span class="named-paragraph-number">5.5</span></span><span class="comment-syntax"> =</span>
|
||||
|
@ -272,8 +262,6 @@ inline definitions.
|
|||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">new_ph</span><span class="plain-syntax">-></span><span class="element-syntax">next_in_logical_order</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">new_ph</span><span class="plain-syntax">-></span><span class="element-syntax">sequence_count</span><span class="plain-syntax"> = -1;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">new_ph</span><span class="plain-syntax">-></span><span class="element-syntax">ph_documentation_symbol</span><span class="plain-syntax"> = </span><span class="identifier-syntax">documentation_W</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-phr.html#SP5">§5</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP5_1_1" class="paragraph-anchor"></a><b>§5.1.1. </b>That just leaves two problem messages about inline definitions:
|
||||
|
@ -341,20 +329,30 @@ what number is...", for instance.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><inline-phrase-definition></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="function-syntax"><<inlinecode>></span><span class="plain-syntax">; *</span><span class="identifier-syntax">mor</span><span class="plain-syntax"> = </span><span class="function-syntax"><<r>></span><span class="plain-syntax">; }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>§8. Miscellaneous. </b>That completes the process of creation. Here's how we log them:
|
||||
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>§8. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::prepare_stack_frame</span><span class="plain-syntax">(</span><span class="reserved-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">body</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="3-ptd.html#SP19" class="function-link"><span class="function-syntax">Phrases::TypeData::into_stack_frame</span></a><span class="plain-syntax">(&(</span><span class="identifier-syntax">body</span><span class="plain-syntax">-></span><span class="element-syntax">stack_frame</span><span class="plain-syntax">), &(</span><span class="identifier-syntax">body</span><span class="plain-syntax">-></span><span class="element-syntax">type_data</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><a href="3-ptd.html#SP12" class="function-link"><span class="function-syntax">Phrases::TypeData::kind</span></a><span class="plain-syntax">(&(</span><span class="identifier-syntax">body</span><span class="plain-syntax">-></span><span class="element-syntax">type_data</span><span class="plain-syntax">)), </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-po.html#SP3" class="function-link"><span class="function-syntax">Phrases::Options::allows_options</span></a><span class="plain-syntax">(&(</span><span class="identifier-syntax">body</span><span class="plain-syntax">-></span><span class="element-syntax">options_data</span><span class="plain-syntax">)))</span>
|
||||
<span class="plain-syntax"> </span><a href="4-lv.html#SP13" class="function-link"><span class="function-syntax">LocalVariables::options_parameter_is_needed</span></a><span class="plain-syntax">(&(</span><span class="identifier-syntax">body</span><span class="plain-syntax">-></span><span class="element-syntax">stack_frame</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>§9. Miscellaneous. </b>That completes the process of creation. Here's how we log them:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::log</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">Phrases::log</span></span>:<br/>Imperative Module - <a href="1-im.html#SP2">§2</a><br/>To Phrases - <a href="3-tph.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ph</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) { </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"RULE:NULL"</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span class="plain-syntax">; }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"%n"</span><span class="plain-syntax">, </span><a href="3-phr.html#SP10" class="function-link"><span class="function-syntax">Phrases::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</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">"%n"</span><span class="plain-syntax">, </span><a href="3-phr.html#SP11" class="function-link"><span class="function-syntax">Phrases::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</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">Phrases::log_briefly</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">Phrases::log_briefly</span></span>:<br/>Invocations - <a href="6-inv.html#SP9">§9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="3-dptd.html#SP2" class="function-link"><span class="function-syntax">Phrases::TypeData::Textual::log_briefly</span></a><span class="plain-syntax">(&(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">type_data</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>§9. </b>Relatedly, for indexing purposes:
|
||||
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>§10. </b>Relatedly, for indexing purposes:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -362,11 +360,11 @@ what number is...", for instance.
|
|||
<span class="plain-syntax"> </span><a href="3-dptd.html#SP3" class="function-link"><span class="function-syntax">Phrases::TypeData::Textual::write_HTML_representation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, &(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">type_data</span><span class="plain-syntax">), </span><span class="identifier-syntax">format</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>§10. </b>Some access functions:
|
||||
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>§11. </b>Some access functions:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::compiled_inline</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Phrases::compiled_inline</span></span>:<br/><a href="3-phr.html#SP12">§12</a><br/>Phrases as Values - <a href="3-pav.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::compiled_inline</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Phrases::compiled_inline</span></span>:<br/><a href="3-phr.html#SP13">§13</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">inline_wn</span><span class="plain-syntax"> < </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -380,7 +378,7 @@ what number is...", for instance.
|
|||
<span class="identifier-syntax">inter_schema</span><span class="plain-syntax"> *</span><span class="function-syntax">Phrases::get_inter_head</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">Phrases::get_inter_head</span></span>:<br/>Compile Invocations Inline - <a href="6-cii.html#SP1_3">§1.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">inter_defn_converted</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">ph</span><span class="plain-syntax">-></span><span class="element-syntax">inline_wn</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">InterSchemas::from_inline_phrase_definition</span><span class="plain-syntax">(</span><a href="3-phr.html#SP10" class="function-link"><span class="function-syntax">Phrases::get_inline_definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">), &(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">inter_head_defn</span><span class="plain-syntax">), &(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">inter_tail_defn</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSchemas::from_inline_phrase_definition</span><span class="plain-syntax">(</span><a href="3-phr.html#SP11" class="function-link"><span class="function-syntax">Phrases::get_inline_definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">), &(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">inter_head_defn</span><span class="plain-syntax">), &(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">inter_tail_defn</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">inter_defn_converted</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -390,14 +388,14 @@ what number is...", for instance.
|
|||
<span class="identifier-syntax">inter_schema</span><span class="plain-syntax"> *</span><span class="function-syntax">Phrases::get_inter_tail</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Phrases::get_inter_tail</span></span>:<br/>Compile Invocations Inline - <a href="6-cii.html#SP1_3">§1.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">inter_defn_converted</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">ph</span><span class="plain-syntax">-></span><span class="element-syntax">inline_wn</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">InterSchemas::from_inline_phrase_definition</span><span class="plain-syntax">(</span><a href="3-phr.html#SP10" class="function-link"><span class="function-syntax">Phrases::get_inline_definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">), &(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">inter_head_defn</span><span class="plain-syntax">), &(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">inter_tail_defn</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSchemas::from_inline_phrase_definition</span><span class="plain-syntax">(</span><a href="3-phr.html#SP11" class="function-link"><span class="function-syntax">Phrases::get_inline_definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">), &(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">inter_head_defn</span><span class="plain-syntax">), &(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">inter_tail_defn</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">inter_defn_converted</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">ph</span><span class="plain-syntax">-></span><span class="element-syntax">inter_tail_defn</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Phrases::iname</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Phrases::iname</span></span>:<br/><a href="3-phr.html#SP8">§8</a><br/>Phrase Runtime Context Data - <a href="3-prcd.html#SP9">§9</a>, <a href="3-prcd.html#SP9_1">§9.1</a><br/>Timed Phrases - <a href="3-tp.html#SP3">§3</a><br/>Compile Phrases - <a href="6-cp.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Phrases::iname</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Phrases::iname</span></span>:<br/><a href="3-phr.html#SP9">§9</a><br/>Phrase Runtime Context Data - <a href="3-prcd.html#SP9">§9</a>, <a href="3-prcd.html#SP9_1">§9.1</a><br/>Compile Phrases - <a href="6-cp.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">ph_iname</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">PR</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Hierarchy::package</span><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">owning_module</span><span class="plain-syntax">, </span><span class="identifier-syntax">ADJECTIVE_PHRASES_HAP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">ph_iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Hierarchy::make_iname_in</span><span class="plain-syntax">(</span><span class="identifier-syntax">DEFINITION_FN_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">PR</span><span class="plain-syntax">);</span>
|
||||
|
@ -409,7 +407,7 @@ what number is...", for instance.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">from</span><span class="plain-syntax">-></span><span class="identifier-syntax">at</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>§11. Compilation. </b>The following is called to give us an opportunity to compile a routine defining
|
||||
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>§12. Compilation. </b>The following is called to give us an opportunity to compile a routine defining
|
||||
a phrase. As was mentioned in the introduction, "To..." phrases are sometimes
|
||||
compiled multiple times, for different kinds of tokens, and are compiled in
|
||||
response to "requests". All other phrases are compiled just once.
|
||||
|
@ -425,11 +423,11 @@ response to "requests". All other phrases are compiled just once.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">imported</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">req</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">at_least_one_compiled_form_needed</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><a href="6-cp.html#SP2" class="function-link"><span class="function-syntax">Routines::Compile::routine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">, </span><span class="identifier-syntax">legible</span><span class="plain-syntax">, </span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-phr.html#SP11_1" class="named-paragraph-link"><span class="named-paragraph">Move along the progress bar if it's this phrase's first compilation</span><span class="named-paragraph-number">11.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-phr.html#SP12_1" class="named-paragraph-link"><span class="named-paragraph">Move along the progress bar if it's this phrase's first compilation</span><span class="named-paragraph-number">12.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP11_1" class="paragraph-anchor"></a><b>§11.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Move along the progress bar if it's this phrase's first compilation</span><span class="named-paragraph-number">11.1</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP12_1" class="paragraph-anchor"></a><b>§12.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Move along the progress bar if it's this phrase's first compilation</span><span class="named-paragraph-number">12.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -439,8 +437,8 @@ response to "requests". All other phrases are compiled just once.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">ProgressBar::update</span><span class="plain-syntax">(4, ((</span><span class="reserved-syntax">float</span><span class="plain-syntax">) (*</span><span class="identifier-syntax">i</span><span class="plain-syntax">))/((</span><span class="reserved-syntax">float</span><span class="plain-syntax">) </span><span class="identifier-syntax">max_i</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-phr.html#SP11">§11</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>§12. Basic mode main. </b></p>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-phr.html#SP12">§12</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>§13. Basic mode main. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::invoke_to_begin</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
|
@ -458,7 +456,7 @@ response to "requests". All other phrases are compiled just once.
|
|||
<span class="plain-syntax"> </span><span class="string-syntax">"and in Basic mode, Inform expects to see exactly one of "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"these, specifying where execution should begin."</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><a href="3-phr.html#SP10" class="function-link"><span class="function-syntax">Phrases::compiled_inline</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-phr.html#SP11" class="function-link"><span class="function-syntax">Phrases::compiled_inline</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</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="plain-syntax"> </span><span class="string-syntax">"the 'to begin' phrase seems to be defined inline"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"which in Basic mode is not allowed."</span><span class="plain-syntax">);</span>
|
||||
|
@ -485,7 +483,7 @@ response to "requests". All other phrases are compiled just once.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-itp.html">❮</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-rls.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-itp.html">itp</a></li><li class="progresscurrent">phr</li><li class="progresssection"><a href="3-prcd.html">prcd</a></li><li class="progresssection"><a href="3-ptd.html">ptd</a></li><li class="progresssection"><a href="3-dptd.html">dptd</a></li><li class="progresssection"><a href="3-po.html">po</a></li><li class="progresssection"><a href="3-pav.html">pav</a></li><li class="progresssection"><a href="3-tph.html">tph</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresschapter"><a href="4-lv.html">4</a></li><li class="progresschapter"><a href="5-cfs.html">5</a></li><li class="progresschapter"><a href="6-inv.html">6</a></li><li class="progressnext"><a href="3-prcd.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-itp.html">❮</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-rls.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-itp.html">itp</a></li><li class="progresscurrent">phr</li><li class="progresssection"><a href="3-prcd.html">prcd</a></li><li class="progresssection"><a href="3-ptd.html">ptd</a></li><li class="progresssection"><a href="3-dptd.html">dptd</a></li><li class="progresssection"><a href="3-po.html">po</a></li><li class="progresssection"><a href="3-tph.html">tph</a></li><li class="progresschapter"><a href="4-lv.html">4</a></li><li class="progresschapter"><a href="5-cfs.html">5</a></li><li class="progresschapter"><a href="6-inv.html">6</a></li><li class="progressnext"><a href="3-prcd.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -108,12 +108,12 @@ valid as values, since a condition is not also a value in Inform 7.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">name</span><span class="plain-syntax">; </span><span class="comment-syntax"> text of name</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">phrase_option</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure phrase_option is accessed in 2/rls, 2/fao, 2/act, 3/pav, 4/sv, 6/cii, 6/cste and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure phrase_option is accessed in 2/rls, 2/fao, 2/act, 4/sv, 6/cii, 6/cste and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. Creation. </b>By default, a phrase has no options.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">ph_options_data</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Options::new</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Phrases::Options::new</span></span>:<br/><a href="3-po.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">ph_options_data</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Options::new</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Phrases::Options::new</span></span>:<br/>Phrases - <a href="3-phr.html#SP5_2">§5.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">ph_options_data</span><span class="plain-syntax"> </span><span class="identifier-syntax">phod</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">phod</span><span class="plain-syntax">.</span><span class="element-syntax">no_options_permitted</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">phod</span><span class="plain-syntax">.</span><span class="element-syntax">multiple_options_permitted</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
|
@ -121,7 +121,7 @@ valid as values, since a condition is not also a value in Inform 7.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">phod</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">Phrases::Options::allows_options</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">Phrases::Options::allows_options</span></span>:<br/>Phrases - <a href="3-phr.html#SP5_4">§5.4</a><br/>To Phrases - <a href="3-tph.html#SP11">§11</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">ph_options_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phod</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Options::allows_options</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">Phrases::Options::allows_options</span></span>:<br/>Phrases - <a href="3-phr.html#SP8">§8</a><br/>To Phrases - <a href="3-tph.html#SP11">§11</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">ph_options_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phod</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">phod</span><span class="plain-syntax">-></span><span class="element-syntax">no_options_permitted</span><span class="plain-syntax"> > </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -169,14 +169,13 @@ these are relatively rare in Inform source text.
|
|||
<span class="reserved-syntax">ph_options_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phod_being_parsed</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph_being_parsed</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="reserved-syntax">ph_options_data</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Options::parse_declared_options</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Phrases::Options::parse_declared_options</span></span>:<br/>Phrases - <a href="3-phr.html#SP5_3">§5.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">ph_options_data</span><span class="plain-syntax"> </span><span class="identifier-syntax">phod</span><span class="plain-syntax"> = </span><a href="3-po.html#SP3" class="function-link"><span class="function-syntax">Phrases::Options::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Options::parse_declared_options</span><span class="plain-syntax">(</span><span class="reserved-syntax">ph_options_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phod</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">phod_being_parsed</span><span class="plain-syntax"> = &</span><span class="identifier-syntax">phod</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">phod</span><span class="plain-syntax">-></span><span class="element-syntax">options_declaration</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">phod_being_parsed</span><span class="plain-syntax"> = </span><span class="identifier-syntax">phod</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="function-syntax"><phrase-option-declaration-list></span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><<r>></span><span class="plain-syntax">) </span><span class="identifier-syntax">phod</span><span class="plain-syntax">.</span><span class="element-syntax">multiple_options_permitted</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="function-syntax"><<r>></span><span class="plain-syntax">) </span><span class="identifier-syntax">phod</span><span class="plain-syntax">-></span><span class="element-syntax">multiple_options_permitted</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">phod</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>§7. </b>I have to say that I regret the syntax for phrase options, which makes
|
||||
|
@ -242,7 +241,7 @@ For example, in:
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">too_many_POs_error</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Options::phod_add_phrase_option</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Phrases::Options::phod_add_phrase_option</span></span>:<br/><a href="3-po.html#SP7_1">§7.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">ph_options_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phod</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Options::phod_add_phrase_option</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Phrases::Options::phod_add_phrase_option</span></span>:<br/><a href="3-po.html#SP7_1">§7.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">ph_options_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phod</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">PHRASE_CREATIONS</span><span class="plain-syntax">, </span><span class="string-syntax">"Adding phrase option <%W>\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">phod</span><span class="plain-syntax">-></span><span class="element-syntax">no_options_permitted</span><span class="plain-syntax"> >= </span><span class="constant-syntax">MAX_OPTIONS_PER_PHRASE</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">too_many_POs_error</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)</span>
|
||||
|
@ -407,7 +406,7 @@ by "and":
|
|||
</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>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-dptd.html">❮</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-rls.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-itp.html">itp</a></li><li class="progresssection"><a href="3-phr.html">phr</a></li><li class="progresssection"><a href="3-prcd.html">prcd</a></li><li class="progresssection"><a href="3-ptd.html">ptd</a></li><li class="progresssection"><a href="3-dptd.html">dptd</a></li><li class="progresscurrent">po</li><li class="progresssection"><a href="3-pav.html">pav</a></li><li class="progresssection"><a href="3-tph.html">tph</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresschapter"><a href="4-lv.html">4</a></li><li class="progresschapter"><a href="5-cfs.html">5</a></li><li class="progresschapter"><a href="6-inv.html">6</a></li><li class="progressnext"><a href="3-pav.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-dptd.html">❮</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-rls.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-itp.html">itp</a></li><li class="progresssection"><a href="3-phr.html">phr</a></li><li class="progresssection"><a href="3-prcd.html">prcd</a></li><li class="progresssection"><a href="3-ptd.html">ptd</a></li><li class="progresssection"><a href="3-dptd.html">dptd</a></li><li class="progresscurrent">po</li><li class="progresssection"><a href="3-tph.html">tph</a></li><li class="progresschapter"><a href="4-lv.html">4</a></li><li class="progresschapter"><a href="5-cfs.html">5</a></li><li class="progresschapter"><a href="6-inv.html">6</a></li><li class="progressnext"><a href="3-tph.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -114,7 +114,6 @@ rulebooks reach them.
|
|||
<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">ph_runtime_context_data</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">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">activity_context</span><span class="plain-syntax">; </span><span class="comment-syntax"> happens only while any activities go on?</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">activity_where</span><span class="plain-syntax">; </span><span class="comment-syntax"> and who says?</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">activity_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">avl</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">IF_MODULE</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">during_scene</span><span class="plain-syntax">; </span><span class="comment-syntax"> ...happens only during a scene matching this?</span>
|
||||
|
@ -123,7 +122,6 @@ rulebooks reach them.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">never_test_actor</span><span class="plain-syntax">; </span><span class="comment-syntax"> ...for instance, for a parametrised rather than action rulebook</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">marked_for_anyone</span><span class="plain-syntax">; </span><span class="comment-syntax"> any actor is allowed to perform this action</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">rulebook</span><span class="plain-syntax"> **</span><span class="identifier-syntax">compile_for_rulebook</span><span class="plain-syntax">; </span><span class="comment-syntax"> ...used for the default outcome</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">permit_all_outcomes</span><span class="plain-syntax">; </span><span class="comment-syntax"> waive the usual restrictions on rule outcomes</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">ph_runtime_context_data</span><span class="plain-syntax">;</span>
|
||||
|
||||
|
@ -185,7 +183,6 @@ the following only blanks out a PHRCD structure ready for that to happen.
|
|||
<span class="reserved-syntax">ph_runtime_context_data</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Context::new</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">Phrases::Context::new</span></span>:<br/>Phrases - <a href="3-phr.html#SP5_5">§5.5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">ph_runtime_context_data</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">phrcd</span><span class="plain-syntax">.</span><span class="identifier-syntax">activity_context</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">phrcd</span><span class="plain-syntax">.</span><span class="identifier-syntax">activity_where</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">phrcd</span><span class="plain-syntax">.</span><span class="identifier-syntax">avl</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">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">IF_MODULE</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">phrcd</span><span class="plain-syntax">.</span><span class="identifier-syntax">during_scene</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
@ -195,7 +192,6 @@ the following only blanks out a PHRCD structure ready for that to happen.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">phrcd</span><span class="plain-syntax">.</span><span class="identifier-syntax">marked_for_anyone</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">endif</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">phrcd</span><span class="plain-syntax">.</span><span class="identifier-syntax">permit_all_outcomes</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">phrcd</span><span class="plain-syntax">.</span><span class="identifier-syntax">compile_for_rulebook</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">phrcd</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
@ -450,7 +446,7 @@ process.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">ph_runtime_context_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rcd</span><span class="plain-syntax"> = &(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">runtime_context_data</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">rcd</span><span class="plain-syntax">-></span><span class="element-syntax">activity_context</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">current_sentence</span><span class="plain-syntax"> = </span><span class="identifier-syntax">rcd</span><span class="plain-syntax">-></span><span class="element-syntax">activity_where</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">id</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">ph_stack_frame</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phsf</span><span class="plain-syntax"> = &(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">stack_frame</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="4-sf.html#SP7" class="function-link"><span class="function-syntax">Frames::make_current</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">phsf</span><span class="plain-syntax">);</span>
|
||||
|
@ -487,7 +483,7 @@ much.
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Context::compile_test_head</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">Phrases::Context::compile_test_head</span></span>:<br/>Compile Phrases - <a href="6-cp.html#SP2_3">§2.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</span><span class="plain-syntax">, </span><span class="reserved-syntax">rule</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">identifier</span><span class="plain-syntax"> = </span><a href="3-phr.html#SP10" class="function-link"><span class="function-syntax">Phrases::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">identifier</span><span class="plain-syntax"> = </span><a href="3-phr.html#SP11" class="function-link"><span class="function-syntax">Phrases::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">ph_runtime_context_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phrcd</span><span class="plain-syntax"> = &(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">runtime_context_data</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">RTRules::compile_constraint</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">) == </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
|
@ -529,7 +525,7 @@ much.
|
|||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Context::actions_compile_test_tail</span><span class="plain-syntax">(</span><span class="reserved-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</span><span class="plain-syntax">, </span><span class="reserved-syntax">rule</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">identifier</span><span class="plain-syntax"> = </span><a href="3-phr.html#SP10" class="function-link"><span class="function-syntax">Phrases::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">identifier</span><span class="plain-syntax"> = </span><a href="3-phr.html#SP11" class="function-link"><span class="function-syntax">Phrases::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">ph_runtime_context_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phrcd</span><span class="plain-syntax"> = &(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">runtime_context_data</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">IF_MODULE</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">phrcd</span><span class="plain-syntax">-></span><span class="element-syntax">ap</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="3-prcd.html#SP9_6" class="named-paragraph-link"><span class="named-paragraph">Compile an action test tail</span><span class="named-paragraph-number">9.6</span></a></span>
|
||||
|
@ -545,15 +541,12 @@ with the default outcome return (see above).
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Context::compile_test_tail</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Phrases::Context::compile_test_tail</span></span>:<br/>Compile Phrases - <a href="6-cp.html#SP2_3">§2.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</span><span class="plain-syntax">, </span><span class="reserved-syntax">rule</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">identifier</span><span class="plain-syntax"> = </span><a href="3-phr.html#SP10" class="function-link"><span class="function-syntax">Phrases::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">identifier</span><span class="plain-syntax"> = </span><a href="3-phr.html#SP11" class="function-link"><span class="function-syntax">Phrases::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">ph_runtime_context_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phrcd</span><span class="plain-syntax"> = &(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">runtime_context_data</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">phrcd</span><span class="plain-syntax">-></span><span class="element-syntax">compile_for_rulebook</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">rulebook</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rb</span><span class="plain-syntax"> = *(</span><span class="identifier-syntax">phrcd</span><span class="plain-syntax">-></span><span class="element-syntax">compile_for_rulebook</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">rb</span><span class="plain-syntax">) </span><span class="identifier-syntax">RTRules::compile_default_outcome</span><span class="plain-syntax">(</span><a href="2-rlb.html#SP2_2" class="function-link"><span class="function-syntax">Rulebooks::get_outcomes</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">rb</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">phrcd</span><span class="plain-syntax">-></span><span class="element-syntax">activity_context</span><span class="plain-syntax">)) </span><span class="named-paragraph-container code-font"><a href="3-prcd.html#SP9_1_1" class="named-paragraph-link"><span class="named-paragraph">Compile an activity or explicit condition test tail</span><span class="named-paragraph-number">9.1.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">rulebook</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rb</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RuleFamily::get_rulebook</span><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-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">rb</span><span class="plain-syntax">) </span><span class="identifier-syntax">RTRules::compile_default_outcome</span><span class="plain-syntax">(</span><a href="2-rlb.html#SP2_2" class="function-link"><span class="function-syntax">Rulebooks::get_outcomes</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">rb</span><span 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">phrcd</span><span class="plain-syntax">-></span><span class="element-syntax">activity_context</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-prcd.html#SP9_1_1" class="named-paragraph-link"><span class="named-paragraph">Compile an activity or explicit condition test tail</span><span class="named-paragraph-number">9.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">PluginCalls::compile_test_tail</span><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</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">phrcd</span><span class="plain-syntax">-></span><span class="element-syntax">ap</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="3-prcd.html#SP9_6" class="named-paragraph-link"><span class="named-paragraph">Compile an action test tail</span><span class="named-paragraph-number">9.6</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -735,7 +728,7 @@ with the default outcome return (see above).
|
|||
<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>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure activity_list is accessed in 2/rlb, 2/act, 3/phr, 3/tph, 3/tp, 4/lv, 4/sv, 4/sf, 5/dtd, 5/cdp, 6/inv, 6/pi, 6/cii, 6/cp, 6/cste and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure activity_list is accessed in 2/rlb, 2/act, 3/phr, 3/tph, 4/lv, 4/sv, 4/sf, 5/dtd, 5/cdp, 6/inv, 6/pi, 6/cii, 6/cp, 6/cste and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>§11. </b>Run-time contexts are seen in the "while" clauses at the end of rules.
|
||||
For example:
|
||||
</p>
|
||||
|
@ -902,7 +895,7 @@ values, of the kind to which the activity applies.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-phr.html">❮</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-rls.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-itp.html">itp</a></li><li class="progresssection"><a href="3-phr.html">phr</a></li><li class="progresscurrent">prcd</li><li class="progresssection"><a href="3-ptd.html">ptd</a></li><li class="progresssection"><a href="3-dptd.html">dptd</a></li><li class="progresssection"><a href="3-po.html">po</a></li><li class="progresssection"><a href="3-pav.html">pav</a></li><li class="progresssection"><a href="3-tph.html">tph</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresschapter"><a href="4-lv.html">4</a></li><li class="progresschapter"><a href="5-cfs.html">5</a></li><li class="progresschapter"><a href="6-inv.html">6</a></li><li class="progressnext"><a href="3-ptd.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-phr.html">❮</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-rls.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-itp.html">itp</a></li><li class="progresssection"><a href="3-phr.html">phr</a></li><li class="progresscurrent">prcd</li><li class="progresssection"><a href="3-ptd.html">ptd</a></li><li class="progresssection"><a href="3-dptd.html">dptd</a></li><li class="progresssection"><a href="3-po.html">po</a></li><li class="progresssection"><a href="3-tph.html">tph</a></li><li class="progresschapter"><a href="4-lv.html">4</a></li><li class="progresschapter"><a href="5-cfs.html">5</a></li><li class="progresschapter"><a href="6-inv.html">6</a></li><li class="progressnext"><a href="3-ptd.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -296,7 +296,7 @@ whistles and doodads which regular phrases don't.
|
|||
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>§9. Creation. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">ph_type_data</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::TypeData::new</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Phrases::TypeData::new</span></span>:<br/>Phrases - <a href="3-phr.html#SP5_2">§5.2</a><br/>Phrases as Values - <a href="3-pav.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">ph_type_data</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::TypeData::new</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Phrases::TypeData::new</span></span>:<br/>Phrases - <a href="3-phr.html#SP5_3">§5.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">ph_type_data</span><span class="plain-syntax"> </span><span class="identifier-syntax">phtd</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">phtd</span><span class="plain-syntax">.</span><span class="element-syntax">registration_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">;</span>
|
||||
|
||||
|
@ -403,7 +403,7 @@ logic, since one argument is in effect a kind rather than a value.)
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="function-syntax">Phrases::TypeData::kind</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Phrases::TypeData::kind</span></span>:<br/><a href="3-ptd.html#SP13">§13</a><br/>Phrases - <a href="3-phr.html#SP5_4">§5.4</a><br/>Describing Phrase Type Data - <a href="3-dptd.html#SP6_5">§6.5</a><br/>Phrases as Values - <a href="3-pav.html#SP4">§4</a><br/>Parse Invocations - <a href="6-pi.html#SP3">§3</a><br/>Compile Phrases - <a href="6-cp.html#SP2_2">§2.2</a><br/>Compile Solutions to Equations - <a href="6-cste.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">ph_type_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phtd</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="function-syntax">Phrases::TypeData::kind</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Phrases::TypeData::kind</span></span>:<br/><a href="3-ptd.html#SP13">§13</a><br/>Phrases - <a href="3-phr.html#SP8">§8</a><br/>Describing Phrase Type Data - <a href="3-dptd.html#SP6_5">§6.5</a><br/>Parse Invocations - <a href="6-pi.html#SP3">§3</a><br/>Compile Phrases - <a href="6-cp.html#SP2_2">§2.2</a><br/>Compile Solutions to Equations - <a href="6-cste.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">ph_type_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phtd</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">argument_kinds</span><span class="plain-syntax">[</span><span class="constant-syntax">MAX_TOKENS_PER_PHRASE</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">j</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><phtd-></span><span class="element-syntax">no_tokens</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++)</span>
|
||||
|
@ -528,7 +528,7 @@ variables "new entry" and "L" with those kinds.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::TypeData::into_stack_frame</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Phrases::TypeData::into_stack_frame</span></span>:<br/>Phrases - <a href="3-phr.html#SP5_4">§5.4</a><br/>Compile Phrases - <a href="6-cp.html#SP2_2">§2.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">ph_stack_frame</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phsf</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::TypeData::into_stack_frame</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Phrases::TypeData::into_stack_frame</span></span>:<br/>Phrases - <a href="3-phr.html#SP8">§8</a><br/>Compile Phrases - <a href="6-cp.html#SP2_2">§2.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">ph_stack_frame</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phsf</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">ph_type_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phtd</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kind_in_this_compilation</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">first</span><span 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::get_construct</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_in_this_compilation</span><span class="plain-syntax">) != </span><span class="identifier-syntax">CON_phrase</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">"no function kind"</span><span class="plain-syntax">);</span>
|
||||
|
@ -914,7 +914,7 @@ by than name.
|
|||
<p class="commentary firstcommentary"><a id="SP25" class="paragraph-anchor"></a><b>§25. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::TypeData::make_inline</span><button class="popup" onclick="togglePopup('usagePopup23')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup23">Usage of <span class="code-font"><span class="function-syntax">Phrases::TypeData::make_inline</span></span>:<br/>Phrases - <a href="3-phr.html#SP5_2">§5.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">ph_type_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phtd</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::TypeData::make_inline</span><button class="popup" onclick="togglePopup('usagePopup23')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup23">Usage of <span class="code-font"><span class="function-syntax">Phrases::TypeData::make_inline</span></span>:<br/>Phrases - <a href="3-phr.html#SP5_3">§5.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">ph_type_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phtd</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">phtd</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_inline</span><span class="plain-syntax">.</span><span class="element-syntax">invoked_inline_not_as_call</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
|
@ -991,7 +991,7 @@ source text.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-prcd.html">❮</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-rls.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-itp.html">itp</a></li><li class="progresssection"><a href="3-phr.html">phr</a></li><li class="progresssection"><a href="3-prcd.html">prcd</a></li><li class="progresscurrent">ptd</li><li class="progresssection"><a href="3-dptd.html">dptd</a></li><li class="progresssection"><a href="3-po.html">po</a></li><li class="progresssection"><a href="3-pav.html">pav</a></li><li class="progresssection"><a href="3-tph.html">tph</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresschapter"><a href="4-lv.html">4</a></li><li class="progresschapter"><a href="5-cfs.html">5</a></li><li class="progresschapter"><a href="6-inv.html">6</a></li><li class="progressnext"><a href="3-dptd.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-prcd.html">❮</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-rls.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-itp.html">itp</a></li><li class="progresssection"><a href="3-phr.html">phr</a></li><li class="progresssection"><a href="3-prcd.html">prcd</a></li><li class="progresscurrent">ptd</li><li class="progresssection"><a href="3-dptd.html">dptd</a></li><li class="progresssection"><a href="3-po.html">po</a></li><li class="progresssection"><a href="3-tph.html">tph</a></li><li class="progresschapter"><a href="4-lv.html">4</a></li><li class="progresschapter"><a href="5-cfs.html">5</a></li><li class="progresschapter"><a href="6-inv.html">6</a></li><li class="progressnext"><a href="3-dptd.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -1,250 +0,0 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Timed Phrases</title>
|
||||
<link href="../docs-assets/Breadcrumbs.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<meta name="viewport" content="width=device-width initial-scale=1">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en-gb">
|
||||
|
||||
<link href="../docs-assets/Contents.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Progress.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Navigation.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Fonts.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Base.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<script>
|
||||
function togglePopup(material_id) {
|
||||
var popup = document.getElementById(material_id);
|
||||
popup.classList.toggle("show");
|
||||
}
|
||||
</script>
|
||||
|
||||
<link href="../docs-assets/Popups.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
|
||||
</head>
|
||||
<body class="commentary-font">
|
||||
<nav role="navigation">
|
||||
<h1><a href="../index.html">
|
||||
<img src="../docs-assets/Inform.png" height=72">
|
||||
</a></h1>
|
||||
<ul><li><a href="../compiler.html">compiler tools</a></li>
|
||||
<li><a href="../other.html">other tools</a></li>
|
||||
<li><a href="../extensions.html">extensions and kits</a></li>
|
||||
<li><a href="../units.html">unit test tools</a></li>
|
||||
</ul><h2>Compiler Webs</h2><ul>
|
||||
<li><a href="../inbuild/index.html">inbuild</a></li>
|
||||
<li><a href="../inform7/index.html">inform7</a></li>
|
||||
<li><a href="../inter/index.html">inter</a></li>
|
||||
</ul><h2>Inbuild Modules</h2><ul>
|
||||
<li><a href="../supervisor-module/index.html">supervisor</a></li>
|
||||
</ul><h2>Inform7 Modules</h2><ul>
|
||||
<li><a href="../core-module/index.html">core</a></li>
|
||||
<li><a href="../assertions-module/index.html">assertions</a></li>
|
||||
<li><a href="../values-module/index.html">values</a></li>
|
||||
<li><a href="../knowledge-module/index.html">knowledge</a></li>
|
||||
<li><a href="index.html"><span class="selectedlink">imperative</span></a></li>
|
||||
<li><a href="../runtime-module/index.html">runtime</a></li>
|
||||
<li><a href="../if-module/index.html">if</a></li>
|
||||
<li><a href="../multimedia-module/index.html">multimedia</a></li>
|
||||
<li><a href="../index-module/index.html">index</a></li>
|
||||
</ul><h2>Inter Modules</h2><ul>
|
||||
<li><a href="../bytecode-module/index.html">bytecode</a></li>
|
||||
<li><a href="../building-module/index.html">building</a></li>
|
||||
<li><a href="../codegen-module/index.html">codegen</a></li>
|
||||
</ul><h2>Services</h2><ul>
|
||||
<li><a href="../arch-module/index.html">arch</a></li>
|
||||
<li><a href="../calculus-module/index.html">calculus</a></li>
|
||||
<li><a href="../html-module/index.html">html</a></li>
|
||||
<li><a href="../inflections-module/index.html">inflections</a></li>
|
||||
<li><a href="../kinds-module/index.html">kinds</a></li>
|
||||
<li><a href="../linguistics-module/index.html">linguistics</a></li>
|
||||
<li><a href="../problems-module/index.html">problems</a></li>
|
||||
<li><a href="../syntax-module/index.html">syntax</a></li>
|
||||
<li><a href="../words-module/index.html">words</a></li>
|
||||
<li><a href="../../../inweb/docs/foundation-module/index.html">foundation</a></li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
<main role="main">
|
||||
<!--Weave of 'Timed Phrases' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">imperative</a></li><li><a href="index.html#3">Chapter 3: Phrases</a></li><li><b>Timed Phrases</b></li></ul></div>
|
||||
<p class="purpose">Another way phrases can be invoked is as timed events, which need no special Inform data structure and are simply compiled into a pair of timetable I6 arrays to be processed at run-time.</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b>The timing of an event records the time at which a phrase should
|
||||
spontaneously happen. This is ordinarily a time value, in minutes from 12
|
||||
midnight, for a phrase happening at a specific time — for instance, one
|
||||
defined as "At 9:00 AM: ..." But two values are special:
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">NOT_A_TIMED_EVENT</span><span class="plain-syntax"> -1 </span><span class="comment-syntax"> as for the vast majority of phrases</span>
|
||||
<span class="definition-keyword">define</span> <span class="constant-syntax">NO_FIXED_TIME</span><span class="plain-syntax"> -2 </span><span class="comment-syntax"> for phrases like "When the clock strikes: ..."</span>
|
||||
<span class="definition-keyword">define</span> <span class="constant-syntax">NOT_AN_EVENT</span><span class="plain-syntax"> -3 </span><span class="comment-syntax"> not even syntactically</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b>And here we record where events are used:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">typedef</span><span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">use_as_event</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">where_triggered</span><span class="plain-syntax">; </span><span class="comment-syntax"> sentence which specifies when this occurs</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">use_as_event</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">use_as_event</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure use_as_event is accessed in 2/rlb, 2/act, 3/phr, 3/prcd, 3/tph, 4/lv, 4/sv, 4/sf, 5/dtd, 5/cdp, 6/inv, 6/pi, 6/cii, 6/cp, 6/cste and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. </b>Timed events are stored in two simple arrays, processed by run-time code.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Timed::TimedEventsTable</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Hierarchy::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">TIMEDEVENTSTABLE_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Emit::named_table_array_begin</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">when_count</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</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">ph</span><span class="plain-syntax">, </span><span class="reserved-syntax">phrase</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RuleFamily::get_timing_of_event</span><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-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">t</span><span class="plain-syntax"> == </span><span class="constant-syntax">NOT_A_TIMED_EVENT</span><span class="plain-syntax">) </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">t</span><span class="plain-syntax"> == </span><span class="constant-syntax">NO_FIXED_TIME</span><span class="plain-syntax">) </span><span class="identifier-syntax">when_count</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">Emit::array_iname_entry</span><span class="plain-syntax">(</span><a href="3-phr.html#SP10" class="function-link"><span class="function-syntax">Phrases::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">when_count</span><span class="plain-syntax">+1; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Emit::array_numeric_entry</span><span class="plain-syntax">(0);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Emit::array_numeric_entry</span><span class="plain-syntax">(0);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Emit::array_end</span><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Hierarchy::make_available</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Timed::TimedEventTimesTable</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Hierarchy::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">TIMEDEVENTTIMESTABLE_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Emit::named_table_array_begin</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">when_count</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</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">ph</span><span class="plain-syntax">, </span><span class="reserved-syntax">phrase</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RuleFamily::get_timing_of_event</span><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-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">t</span><span class="plain-syntax"> == </span><span class="constant-syntax">NOT_A_TIMED_EVENT</span><span class="plain-syntax">) </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">t</span><span class="plain-syntax"> == </span><span class="constant-syntax">NO_FIXED_TIME</span><span class="plain-syntax">) </span><span class="identifier-syntax">when_count</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">Emit::array_numeric_entry</span><span class="plain-syntax">((</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">t</span><span class="plain-syntax">);</span>
|
||||
<span class="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"><</span><span class="identifier-syntax">when_count</span><span class="plain-syntax">+1; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Emit::array_numeric_entry</span><span class="plain-syntax">(0);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Emit::array_numeric_entry</span><span class="plain-syntax">(0);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Emit::array_end</span><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Hierarchy::make_available</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. </b>That's it, really: everything else is just indexing.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Timed::note_usage</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Phrases::Timed::note_usage</span></span>:<br/>Compile Invocations Inline - <a href="6-cii.html#SP3_1_1_4_12">§3.1.1.4.12</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">at</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RuleFamily::get_timing_of_event</span><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-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">t</span><span class="plain-syntax"> == </span><span class="constant-syntax">NO_FIXED_TIME</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">use_as_event</span><span class="plain-syntax"> *</span><span class="identifier-syntax">uae</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">use_as_event</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">uae</span><span class="plain-syntax">-></span><span class="element-syntax">where_triggered</span><span class="plain-syntax"> = </span><span class="identifier-syntax">at</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">uae</span><span class="plain-syntax">-></span><span class="element-syntax">next</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">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RuleFamily::get_uses_as_event</span><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-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">L</span><span class="plain-syntax">) </span><span class="identifier-syntax">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">uae</span><span class="plain-syntax">, </span><span class="reserved-syntax">use_as_event</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. </b>An interesting case where the Problem is arguably only a warning and
|
||||
arguably shouldn't block compilation. Then again...
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Timed::check_for_unused</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</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">ph</span><span class="plain-syntax">, </span><span class="reserved-syntax">phrase</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">RuleFamily::get_timing_of_event</span><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">from</span><span class="plain-syntax">) == </span><span class="constant-syntax">NO_FIXED_TIME</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RuleFamily::get_uses_as_event</span><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-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">LinkedLists::len</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="identifier-syntax">current_sentence</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">from</span><span class="plain-syntax">-></span><span class="identifier-syntax">at</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_UnusedTimedEvent</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"this sets up a timed event which is never used"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"since you never use any of the phrases which could cause it. "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"(A timed event is just a name, and it needs other instructions "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"elsewhere before it can have any effect.)"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>§6. </b>And here's the actual index segment.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Timed::index</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">when_count</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">tt_count</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-tp.html#SP6_1" class="named-paragraph-link"><span class="named-paragraph">Index events with no specific time</span><span class="named-paragraph-number">6.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-tp.html#SP6_2" class="named-paragraph-link"><span class="named-paragraph">Index timetabled events</span><span class="named-paragraph-number">6.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">when_count</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">tt_count</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">); </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<i>None.</i>"</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="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP6_1" class="paragraph-anchor"></a><b>§6.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Index events with no specific time</span><span class="named-paragraph-number">6.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</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">ph</span><span class="plain-syntax">, </span><span class="reserved-syntax">phrase</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RuleFamily::get_timing_of_event</span><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-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">t</span><span class="plain-syntax"> == </span><span class="constant-syntax">NO_FIXED_TIME</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">when_count</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<i>Events with no specific time</i>"</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="plain-syntax"> </span><span class="identifier-syntax">when_count</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">"p"</span><span class="plain-syntax">, </span><span class="string-syntax">"class=\"tightin2\""</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ImperativeDefinitions::index_preamble</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-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">ph</span><span class="plain-syntax">-></span><span class="element-syntax">from</span><span class="plain-syntax">-></span><span class="identifier-syntax">at</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">from</span><span class="plain-syntax">-></span><span class="identifier-syntax">at</span><span class="plain-syntax">))))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Index::link</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">from</span><span class="plain-syntax">-></span><span class="identifier-syntax">at</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">" (where triggered: "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RuleFamily::get_uses_as_event</span><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">from</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">use_as_event</span><span class="plain-syntax"> *</span><span class="identifier-syntax">uae</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">uae</span><span class="plain-syntax">, </span><span class="reserved-syntax">use_as_event</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Index::link</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">uae</span><span class="plain-syntax">-></span><span class="element-syntax">where_triggered</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">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="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-tp.html#SP6">§6</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP6_2" class="paragraph-anchor"></a><b>§6.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Index timetabled events</span><span class="named-paragraph-number">6.2</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</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">ph</span><span class="plain-syntax">, </span><span class="reserved-syntax">phrase</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RuleFamily::get_timing_of_event</span><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-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">t</span><span class="plain-syntax"> >= </span><span class="constant-syntax">0</span><span class="plain-syntax">) { </span><span class="comment-syntax"> i.e., an actual time of day in minutes since midnight</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">tt_count</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<i>Timetable</i>"</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="plain-syntax"> </span><span class="identifier-syntax">tt_count</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">"p"</span><span class="plain-syntax">, </span><span class="string-syntax">"class=\"in2\""</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ImperativeDefinitions::index_preamble</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-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">ph</span><span class="plain-syntax">-></span><span class="element-syntax">from</span><span class="plain-syntax">-></span><span class="identifier-syntax">at</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">from</span><span class="plain-syntax">-></span><span class="identifier-syntax">at</span><span class="plain-syntax">))))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Index::link</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">from</span><span class="plain-syntax">-></span><span class="identifier-syntax">at</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="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-tp.html#SP6">§6</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-tph.html">❮</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-rls.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-itp.html">itp</a></li><li class="progresssection"><a href="3-phr.html">phr</a></li><li class="progresssection"><a href="3-prcd.html">prcd</a></li><li class="progresssection"><a href="3-ptd.html">ptd</a></li><li class="progresssection"><a href="3-dptd.html">dptd</a></li><li class="progresssection"><a href="3-po.html">po</a></li><li class="progresssection"><a href="3-pav.html">pav</a></li><li class="progresssection"><a href="3-tph.html">tph</a></li><li class="progresscurrent">tp</li><li class="progresschapter"><a href="4-lv.html">4</a></li><li class="progresschapter"><a href="5-cfs.html">5</a></li><li class="progresschapter"><a href="6-inv.html">6</a></li><li class="progressnext"><a href="4-lv.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -124,7 +124,7 @@ variety of values:
|
|||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Log::aspect_switched_on</span><span class="plain-syntax">(</span><span class="constant-syntax">PHRASE_COMPARISONS_DA</span><span class="plain-syntax">)) || (</span><span class="identifier-syntax">r</span><span class="plain-syntax"> == </span><span class="constant-syntax">CONFLICTED_PH</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">"Phrase comparison ("</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-phr.html#SP9" class="function-link"><span class="function-syntax">Phrases::write_HTML_representation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">DL</span><span class="plain-syntax">, </span><span class="identifier-syntax">ph1</span><span class="plain-syntax">, </span><span class="constant-syntax">PASTE_PHRASE_FORMAT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-phr.html#SP10" class="function-link"><span class="function-syntax">Phrases::write_HTML_representation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">DL</span><span class="plain-syntax">, </span><span class="identifier-syntax">ph1</span><span class="plain-syntax">, </span><span class="constant-syntax">PASTE_PHRASE_FORMAT</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">") "</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">r</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">INCOMPARABLE_PH:</span><span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"~~"</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
|
@ -136,13 +136,13 @@ variety of values:
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">CONFLICTED_PH:</span><span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"!!"</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">" ("</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-phr.html#SP9" class="function-link"><span class="function-syntax">Phrases::write_HTML_representation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">DL</span><span class="plain-syntax">, </span><span class="identifier-syntax">ph2</span><span class="plain-syntax">, </span><span class="constant-syntax">PASTE_PHRASE_FORMAT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-phr.html#SP10" class="function-link"><span class="function-syntax">Phrases::write_HTML_representation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">DL</span><span class="plain-syntax">, </span><span class="identifier-syntax">ph2</span><span class="plain-syntax">, </span><span class="constant-syntax">PASTE_PHRASE_FORMAT</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">")\n"</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">r</span><span class="plain-syntax"> == </span><span class="constant-syntax">CONFLICTED_PH</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_source</span><span class="plain-syntax">(1, </span><a href="3-phr.html#SP10" class="function-link"><span class="function-syntax">Phrases::declaration_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph1</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_source</span><span class="plain-syntax">(2, </span><a href="3-phr.html#SP10" class="function-link"><span class="function-syntax">Phrases::declaration_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph2</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_source</span><span class="plain-syntax">(1, </span><a href="3-phr.html#SP11" class="function-link"><span class="function-syntax">Phrases::declaration_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph1</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_source</span><span class="plain-syntax">(2, </span><a href="3-phr.html#SP11" class="function-link"><span class="function-syntax">Phrases::declaration_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph2</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_ConflictedReturnKinds</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 two phrase definitions %1 and %2 make the same wording "</span>
|
||||
|
@ -202,7 +202,7 @@ reasons, that is, to make the compiled code more legible.
|
|||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Routines::ToPhrases::sequence_count</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">Routines::ToPhrases::sequence_count</span></span>:<br/>Invocations - <a href="6-inv.html#SP9">§9</a>, <a href="6-inv.html#SP26">§26</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ph</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="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">ph</span><span class="plain-syntax">-></span><span class="element-syntax">sequence_count</span><span class="plain-syntax"> == -1) {</span>
|
||||
<span class="plain-syntax"> </span><a href="3-phr.html#SP8" class="function-link"><span class="function-syntax">Phrases::log</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-phr.html#SP9" class="function-link"><span class="function-syntax">Phrases::log</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</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">"Sequence count not ready"</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">ph</span><span class="plain-syntax">-></span><span class="element-syntax">sequence_count</span><span class="plain-syntax">;</span>
|
||||
|
@ -234,7 +234,7 @@ values in force, so that there is no possible ambiguity in how we read K.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">to_phrase_request</span><span class="plain-syntax"> *</span><span class="function-syntax">Routines::ToPhrases::make_request</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">Routines::ToPhrases::make_request</span></span>:<br/><a href="3-tph.html#SP7">§7</a><br/>Phrases - <a href="3-phr.html#SP12">§12</a><br/>Phrases as Values - <a href="3-pav.html#SP6">§6</a><br/>Compile Invocations As Calls - <a href="6-ciac.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">to_phrase_request</span><span class="plain-syntax"> *</span><span class="function-syntax">Routines::ToPhrases::make_request</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">Routines::ToPhrases::make_request</span></span>:<br/><a href="3-tph.html#SP7">§7</a><br/>Phrases - <a href="3-phr.html#SP13">§13</a><br/>Compile Invocations As Calls - <a href="6-ciac.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind_variable_declaration</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kvd</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">ph</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">K</span><span class="plain-syntax"> == </span><span class="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">"bad request"</span><span class="plain-syntax">);</span>
|
||||
|
||||
|
@ -274,7 +274,7 @@ list is a list of. The result would be:
|
|||
</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><a href="3-phr.html#SP10" class="function-link"><span class="function-syntax">Phrases::declaration_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_source</span><span class="plain-syntax">(1, </span><a href="3-phr.html#SP11" class="function-link"><span class="function-syntax">Phrases::declaration_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</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_UndeterminedKind</span><span 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::empty</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">Problems::issue_problem_segment</span><span class="plain-syntax">(</span>
|
||||
|
@ -296,10 +296,10 @@ I6 routine.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Routines::ToPhrases::make_iname</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">Routines::ToPhrases::make_iname</span></span>:<br/>Phrases as Values - <a href="3-pav.html#SP7_1">§7.1</a><br/>Compile Solutions to Equations - <a href="6-cste.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">req_kind</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Routines::ToPhrases::make_iname</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">Routines::ToPhrases::make_iname</span></span>:<br/>Compile Solutions to Equations - <a href="6-cste.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">req_kind</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-ptd.html#SP25" class="function-link"><span class="function-syntax">Phrases::TypeData::invoked_inline</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</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">identifier</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">p</span><span class="plain-syntax"> = </span><a href="3-phr.html#SP10" class="function-link"><span class="function-syntax">Phrases::get_inline_definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</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">p</span><span class="plain-syntax"> = </span><a href="3-phr.html#SP11" class="function-link"><span class="function-syntax">Phrases::get_inline_definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</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">found</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">p</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">]; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Characters::isalpha</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">])) {</span>
|
||||
|
@ -310,7 +310,7 @@ I6 routine.
|
|||
<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">found</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">current_sentence</span><span class="plain-syntax"> = </span><a href="3-phr.html#SP10" class="function-link"><span class="function-syntax">Phrases::declaration_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax"> = </span><a href="3-phr.html#SP11" class="function-link"><span class="function-syntax">Phrases::declaration_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_source</span><span class="plain-syntax">(1, </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_phrase</span><span class="plain-syntax">(2, </span><span class="identifier-syntax">ph</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_PhraseNamedI6Failed</span><span class="plain-syntax">));</span>
|
||||
|
@ -347,7 +347,7 @@ since the last time it was called.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">req</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">latest_request_granted</span><span class="plain-syntax"> = </span><span class="identifier-syntax">req</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="3-phr.html#SP11" class="function-link"><span class="function-syntax">Phrases::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">latest_request_granted</span><span class="plain-syntax">-></span><span class="element-syntax">requested_phrase</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="3-phr.html#SP12" class="function-link"><span class="function-syntax">Phrases::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">latest_request_granted</span><span class="plain-syntax">-></span><span class="element-syntax">requested_phrase</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">max_i</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">latest_request_granted</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">N</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -403,7 +403,7 @@ is confined to the current Chapter.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-pav.html">❮</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-rls.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-itp.html">itp</a></li><li class="progresssection"><a href="3-phr.html">phr</a></li><li class="progresssection"><a href="3-prcd.html">prcd</a></li><li class="progresssection"><a href="3-ptd.html">ptd</a></li><li class="progresssection"><a href="3-dptd.html">dptd</a></li><li class="progresssection"><a href="3-po.html">po</a></li><li class="progresssection"><a href="3-pav.html">pav</a></li><li class="progresscurrent">tph</li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresschapter"><a href="4-lv.html">4</a></li><li class="progresschapter"><a href="5-cfs.html">5</a></li><li class="progresschapter"><a href="6-inv.html">6</a></li><li class="progressnext"><a href="3-tp.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-po.html">❮</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-rls.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-itp.html">itp</a></li><li class="progresssection"><a href="3-phr.html">phr</a></li><li class="progresssection"><a href="3-prcd.html">prcd</a></li><li class="progresssection"><a href="3-ptd.html">ptd</a></li><li class="progresssection"><a href="3-dptd.html">dptd</a></li><li class="progresssection"><a href="3-po.html">po</a></li><li class="progresscurrent">tph</li><li class="progresschapter"><a href="4-lv.html">4</a></li><li class="progresschapter"><a href="5-cfs.html">5</a></li><li class="progresschapter"><a href="6-inv.html">6</a></li><li class="progressnext"><a href="4-lv.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -148,7 +148,7 @@ marks it as deallocated.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">local_variable</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure local_variable is accessed in 2/rlb, 2/act, 3/phr, 3/prcd, 3/tph, 3/tp, 4/sv, 4/sf, 5/dtd, 5/cdp, 6/inv, 6/pi, 6/cii, 6/cp, 6/cste and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure local_variable is accessed in 2/rlb, 2/act, 3/phr, 3/prcd, 3/tph, 4/sv, 4/sf, 5/dtd, 5/cdp, 6/inv, 6/pi, 6/cii, 6/cp, 6/cste and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. </b>A local variable needs to be stored somewhere at run-time. The obvious
|
||||
correspondence is to put these into I6 local variables, which are, in effect,
|
||||
CPU registers. We won't need to do much in the way of register-allocation,
|
||||
|
@ -389,7 +389,7 @@ scratch work-space which can be used in the compiled code.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-lv.html#SP46" class="function-link"><span class="function-syntax">LocalVariables::declare_this</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">v</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="constant-syntax">8</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">local_variable</span><span class="plain-syntax"> *</span><span class="function-syntax">LocalVariables::add_named_call</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">LocalVariables::add_named_call</span></span>:<br/><a href="4-lv.html#SP46">§46</a><br/>Phrases as Values - <a href="3-pav.html#SP8_2">§8.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">local_variable</span><span class="plain-syntax"> *</span><span class="function-syntax">LocalVariables::add_named_call</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">LocalVariables::add_named_call</span></span>:<br/><a href="4-lv.html#SP46">§46</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">ph_stack_frame</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phsf</span><span class="plain-syntax"> = </span><a href="4-sf.html#SP7" class="function-link"><span class="function-syntax">Frames::current_stack_frame</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">phsf</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-lv.html#SP10" class="function-link"><span class="function-syntax">LocalVariables::add_internal</span></a><span class="plain-syntax">(&(</span><span class="identifier-syntax">phsf</span><span class="plain-syntax">-></span><span class="element-syntax">local_value_variables</span><span class="plain-syntax">), </span><span class="identifier-syntax">name</span><span class="plain-syntax">,</span>
|
||||
|
@ -456,7 +456,7 @@ passed to its I6 routine, and this occupies a pseudo-call-parameter:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">LocalVariables::options_parameter_is_needed</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">LocalVariables::options_parameter_is_needed</span></span>:<br/>Phrases - <a href="3-phr.html#SP5_4">§5.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">ph_stack_frame</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phsf</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">LocalVariables::options_parameter_is_needed</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">LocalVariables::options_parameter_is_needed</span></span>:<br/>Phrases - <a href="3-phr.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">ph_stack_frame</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phsf</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="4-lv.html#SP10" class="function-link"><span class="function-syntax">LocalVariables::add_internal</span></a><span class="plain-syntax">(&(</span><span class="identifier-syntax">phsf</span><span class="plain-syntax">-></span><span class="element-syntax">local_value_variables</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="string-syntax">"phrase_options"</span><span class="plain-syntax">, </span><span class="constant-syntax">OTHER_CALL_PARAMETER_LV</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -1368,7 +1368,7 @@ need in the compilation of any given routine:
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-tp.html">❮</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-rls.html">2</a></li><li class="progresschapter"><a href="3-itp.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresscurrent">lv</li><li class="progresssection"><a href="4-sv.html">sv</a></li><li class="progresssection"><a href="4-pb.html">pb</a></li><li class="progresssection"><a href="4-sf.html">sf</a></li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresschapter"><a href="5-cfs.html">5</a></li><li class="progresschapter"><a href="6-inv.html">6</a></li><li class="progressnext"><a href="4-sv.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-tph.html">❮</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-rls.html">2</a></li><li class="progresschapter"><a href="3-itp.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresscurrent">lv</li><li class="progresssection"><a href="4-sv.html">sv</a></li><li class="progresssection"><a href="4-pb.html">pb</a></li><li class="progresssection"><a href="4-sf.html">sf</a></li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresschapter"><a href="5-cfs.html">5</a></li><li class="progresschapter"><a href="6-inv.html">6</a></li><li class="progressnext"><a href="4-sv.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -107,7 +107,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">stacked_variable_owner_list</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure stacked_variable is accessed in 2/rls, 2/fao, 2/act, 3/po, 3/pav, 6/cii, 6/cste and here.</li><li>The structure stacked_variable_list is accessed in 2/rlb, 2/act, 3/phr, 3/prcd, 3/tph, 3/tp, 4/lv, 4/sf, 5/dtd, 5/cdp, 6/inv, 6/pi, 6/cii, 6/cp, 6/cste and here.</li><li>The structure stacked_variable_owner is private to this section.</li><li>The structure stacked_variable_owner_list is accessed in 2/rlb, 2/act, 3/phr, 3/prcd, 3/tph, 3/tp, 4/lv, 4/sf, 5/dtd, 5/cdp, 6/inv, 6/pi, 6/cii, 6/cp, 6/cste and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure stacked_variable is accessed in 2/rls, 2/fao, 2/act, 3/po, 6/cii, 6/cste and here.</li><li>The structure stacked_variable_list is accessed in 2/rlb, 2/act, 3/phr, 3/prcd, 3/tph, 4/lv, 4/sf, 5/dtd, 5/cdp, 6/inv, 6/pi, 6/cii, 6/cp, 6/cste and here.</li><li>The structure stacked_variable_owner is private to this section.</li><li>The structure stacked_variable_owner_list is accessed in 2/rlb, 2/act, 3/phr, 3/prcd, 3/tph, 4/lv, 4/sf, 5/dtd, 5/cdp, 6/inv, 6/pi, 6/cii, 6/cp, 6/cste and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
|
|
@ -210,8 +210,8 @@ head goes to <span class="extract"><span class="extract-syntax">OUT</span></span
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><a href="6-cii.html#SP2" class="function-link"><span class="function-syntax">Invocations::Inline::csi_inline_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">VH</span><span class="plain-syntax">, </span><a href="3-phr.html#SP10" class="function-link"><span class="function-syntax">Phrases::get_inter_head</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">), &</span><span class="identifier-syntax">CSIS</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-phr.html#SP10" class="function-link"><span class="function-syntax">Phrases::get_inter_tail</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">)) </span><span class="identifier-syntax">tail_schema</span><span class="plain-syntax"> = </span><a href="3-phr.html#SP10" class="function-link"><span class="function-syntax">Phrases::get_inter_tail</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="6-cii.html#SP2" class="function-link"><span class="function-syntax">Invocations::Inline::csi_inline_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">VH</span><span class="plain-syntax">, </span><a href="3-phr.html#SP11" class="function-link"><span class="function-syntax">Phrases::get_inter_head</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">), &</span><span class="identifier-syntax">CSIS</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-phr.html#SP11" class="function-link"><span class="function-syntax">Phrases::get_inter_tail</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">)) </span><span class="identifier-syntax">tail_schema</span><span class="plain-syntax"> = </span><a href="3-phr.html#SP11" class="function-link"><span class="function-syntax">Phrases::get_inter_tail</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="6-cii.html#SP1">§1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_4" class="paragraph-anchor"></a><b>§1.4. </b>Suppose there's a phrase with both head and tail. Then the tail won't appear
|
||||
|
@ -1220,43 +1220,14 @@ token, because that would be "property name". Instead:
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="6-cii.html#SP3_1_1_4">§3.1.1.4</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3_1_1_4_12" class="paragraph-anchor"></a><b>§3.1.1.4.12. </b>This little annotation is used for the phrases about timed rule firing:
|
||||
</p>
|
||||
|
||||
<blockquote>
|
||||
<p>To (R - rule) in (t - number) turn/turns from now: ...</p>
|
||||
</blockquote>
|
||||
|
||||
<p class="commentary">has the inline definition:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> SetTimedEvent({-mark-event-used:R}, {t}+1, 0);</span>
|
||||
</pre>
|
||||
<p class="commentary">The annotation makes no difference to how R is compiled, except that it
|
||||
sneaks in a sanity check (R must be explicitly named and must be an event
|
||||
rule), and also makes a note for indexing purposes.
|
||||
<p class="commentary firstcommentary"><a id="SP3_1_1_4_12" class="paragraph-anchor"></a><b>§3.1.1.4.12. </b>This little annotation is used in <a href="../if-module/3-tr.html" class="internal">Timed Rules (in if)</a>.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Inline annotation "mark-event-used"</span><span class="named-paragraph-number">3.1.1.4.12</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Rvalues::is_CONSTANT_construction</span><span class="plain-syntax">(</span><span class="identifier-syntax">supplied</span><span class="plain-syntax">, </span><span class="identifier-syntax">CON_rule</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">rule</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Rvalues::to_rule</span><span class="plain-syntax">(</span><span class="identifier-syntax">supplied</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">imperative_defn</span><span class="plain-syntax"> *</span><span class="identifier-syntax">id</span><span class="plain-syntax"> = </span><a href="2-rls.html#SP9" class="function-link"><span class="function-syntax">Rules::get_imperative_definition</span></a><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">id</span><span class="plain-syntax">) </span><a href="3-tp.html#SP4" class="function-link"><span class="function-syntax">Phrases::Timed::note_usage</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="identifier-syntax">body_of_defn</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="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_source</span><span class="plain-syntax">(1, </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_wording</span><span class="plain-syntax">(2, </span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">supplied</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_NonconstantEvent</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">"You wrote %1, but '%2' isn't the name of any timed event that "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"I know of. (These need to be set up in a special way, like so - "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"'At the time when stuff happens: ...' creates a timed event "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"called 'stuff happens'.)"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_end</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginCalls::nonstandard_inline_annotation</span><span class="plain-syntax">(</span><span class="identifier-syntax">sche</span><span class="plain-syntax">-></span><span class="identifier-syntax">inline_command</span><span class="plain-syntax">, </span><span class="identifier-syntax">supplied</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">valid_annotation</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="6-cii.html#SP3_1_1_4">§3.1.1.4</a>.</li></ul>
|
||||
|
|
|
@ -99,7 +99,7 @@ should always be supplied for "To..." phrases, but left null for rules.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Routines::Compile::routine</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Routines::Compile::routine</span></span>:<br/>Phrases - <a href="3-phr.html#SP11">§11</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Routines::Compile::routine</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Routines::Compile::routine</span></span>:<br/>Phrases - <a href="3-phr.html#SP12">§12</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">stacked_variable_owner_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">legible</span><span class="plain-syntax">, </span><span class="reserved-syntax">to_phrase_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">req</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">rule</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">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">code_at</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="element-syntax">from</span><span class="plain-syntax">-></span><span class="identifier-syntax">at</span><span class="plain-syntax">;</span>
|
||||
|
@ -205,9 +205,9 @@ phrase to be different from the number version, and so on.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Routines::Compile::iname</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">Routines::Compile::iname</span></span>:<br/><a href="6-cp.html#SP2">§2</a><br/>Phrases - <a href="3-phr.html#SP12">§12</a><br/>To Phrases - <a href="3-tph.html#SP7">§7</a><br/>Compile Invocations As Calls - <a href="6-ciac.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</span><span class="plain-syntax">, </span><span class="reserved-syntax">to_phrase_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">req</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Routines::Compile::iname</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">Routines::Compile::iname</span></span>:<br/><a href="6-cp.html#SP2">§2</a><br/>Phrases - <a href="3-phr.html#SP13">§13</a><br/>To Phrases - <a href="3-tph.html#SP7">§7</a><br/>Compile Invocations As Calls - <a href="6-ciac.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</span><span class="plain-syntax">, </span><span class="reserved-syntax">to_phrase_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">req</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">req</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">req</span><span class="plain-syntax">-></span><span class="element-syntax">req_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-phr.html#SP10" class="function-link"><span class="function-syntax">Phrases::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-phr.html#SP11" class="function-link"><span class="function-syntax">Phrases::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. </b></p>
|
||||
|
|
|
@ -268,7 +268,7 @@ for different invocations of, say, "+".
|
|||
<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">Node::get_say_adjective</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"adj:%d"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Node::get_say_adjective</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">)-></span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><a href="3-phr.html#SP8" class="function-link"><span class="function-syntax">Phrases::log_briefly</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_phrase_invoked</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="3-phr.html#SP9" class="function-link"><span class="function-syntax">Phrases::log_briefly</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_phrase_invoked</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><a href="6-inv.html#SP16" class="function-link"><span class="function-syntax">Invocations::get_no_tokens</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">" ($P"</span><span class="plain-syntax">, </span><a href="6-inv.html#SP16" class="function-link"><span class="function-syntax">Invocations::get_token_as_parsed</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="6-inv.html#SP16" class="function-link"><span class="function-syntax">Invocations::get_token_check_to_do</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">))</span>
|
||||
|
|
|
@ -156,21 +156,11 @@
|
|||
<spon class="sectiontitle">Phrase Options</span></a> -
|
||||
<span class="sectionpurpose">To create and subsequently parse against the list of phrase options with which the user can choose to invoke a To phrase.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="3-pav.html">
|
||||
<spon class="sectiontitle">Phrases as Values</span></a> -
|
||||
<span class="sectionpurpose">To provide the names of phrases as first-class values.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="3-tph.html">
|
||||
<spon class="sectiontitle">To Phrases</span></a> -
|
||||
<span class="sectionpurpose">To manage the sorting of To... phrases in logical precedence order, and keep track of which kinds they are being applied to.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="3-tp.html">
|
||||
<spon class="sectiontitle">Timed Phrases</span></a> -
|
||||
<span class="sectionpurpose">Another way phrases can be invoked is as timed events, which need no special Inform data structure and are simply compiled into a pair of timetable I6 arrays to be processed at run-time.</span></p>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
|
|
|
@ -818,7 +818,7 @@ to show, hide and colour things:
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Ev"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Phrases::Timed::index</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">); </span><span class="comment-syntax"> rules which happen at set times of day</span>
|
||||
<span class="plain-syntax"> </span><a href="2-rls.html#SP10" class="function-link"><span class="function-syntax">IXRules::index_timed_rules</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">); </span><span class="comment-syntax"> rules which happen at set times of day</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"RS"</span><span class="plain-syntax">)) {</span>
|
||||
|
@ -941,7 +941,7 @@ the source text in the application.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Index::link</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Index::link</span></span>:<br/>Lexicon Index - <a href="2-li.html#SP7_11_2">§7.11.2</a>, <a href="2-li.html#SP8">§8</a><br/>Index Physical World - <a href="2-ipw.html#SP3_5">§3.5</a>, <a href="2-ipw.html#SP3_8">§3.8</a>, <a href="2-ipw.html#SP4">§4</a><br/>Kinds Index - <a href="2-ki.html#SP6">§6</a><br/>Index Extensions - <a href="2-ie.html#SP1">§1</a><br/>Instances - <a href="2-ins.html#SP5">§5</a><br/>Adjectives - <a href="2-adj.html#SP1">§1</a><br/>Variables - <a href="2-vrb.html#SP3">§3</a><br/>Inferences - <a href="2-inf.html#SP3">§3</a><br/>Rules - <a href="2-rls.html#SP2_5">§2.5</a>, <a href="2-rls.html#SP2_7">§2.7</a>, <a href="2-rls.html#SP7_1">§7.1</a>, <a href="2-rls.html#SP9">§9</a><br/>Activities - <a href="2-act.html#SP2">§2</a><br/>Phrasebook Index - <a href="2-pi.html#SP1_3">§1.3</a><br/>Figures - <a href="3-fgr.html#SP1">§1</a><br/>Sound Effects - <a href="3-se.html#SP1">§1</a><br/>External Files - <a href="3-ef.html#SP1">§1</a><br/>Spatial - <a href="3-spt.html#SP4">§4</a><br/>Scenes - <a href="3-scn.html#SP1_5_1_1">§1.5.1.1</a>, <a href="3-scn.html#SP1_5_1_4_2">§1.5.1.4.2</a>, <a href="3-scn.html#SP1_5_1_4_3">§1.5.1.4.3</a><br/>Actions - <a href="3-act.html#SP1">§1</a><br/>Commands Index - <a href="3-ci.html#SP6">§6</a>, <a href="3-ci.html#SP7">§7</a>, <a href="3-ci.html#SP10">§10</a>, <a href="3-ci.html#SP11">§11</a><br/>Spatial Map - <a href="4-sm.html#SP44">§44</a><br/>HTML Map - <a href="4-hm.html#SP12">§12</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">wn</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Index::link</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Index::link</span></span>:<br/>Lexicon Index - <a href="2-li.html#SP7_11_2">§7.11.2</a>, <a href="2-li.html#SP8">§8</a><br/>Index Physical World - <a href="2-ipw.html#SP3_5">§3.5</a>, <a href="2-ipw.html#SP3_8">§3.8</a>, <a href="2-ipw.html#SP4">§4</a><br/>Kinds Index - <a href="2-ki.html#SP6">§6</a><br/>Index Extensions - <a href="2-ie.html#SP1">§1</a><br/>Instances - <a href="2-ins.html#SP5">§5</a><br/>Adjectives - <a href="2-adj.html#SP1">§1</a><br/>Variables - <a href="2-vrb.html#SP3">§3</a><br/>Inferences - <a href="2-inf.html#SP3">§3</a><br/>Rules - <a href="2-rls.html#SP2_5">§2.5</a>, <a href="2-rls.html#SP2_7">§2.7</a>, <a href="2-rls.html#SP7_1">§7.1</a>, <a href="2-rls.html#SP9">§9</a>, <a href="2-rls.html#SP10_1">§10.1</a>, <a href="2-rls.html#SP10_2">§10.2</a><br/>Activities - <a href="2-act.html#SP2">§2</a><br/>Phrasebook Index - <a href="2-pi.html#SP1_3">§1.3</a><br/>Figures - <a href="3-fgr.html#SP1">§1</a><br/>Sound Effects - <a href="3-se.html#SP1">§1</a><br/>External Files - <a href="3-ef.html#SP1">§1</a><br/>Spatial - <a href="3-spt.html#SP4">§4</a><br/>Scenes - <a href="3-scn.html#SP1_5_1_1">§1.5.1.1</a>, <a href="3-scn.html#SP1_5_1_4_2">§1.5.1.4.2</a>, <a href="3-scn.html#SP1_5_1_4_3">§1.5.1.4.3</a><br/>Actions - <a href="3-act.html#SP1">§1</a><br/>Commands Index - <a href="3-ci.html#SP6">§6</a>, <a href="3-ci.html#SP7">§7</a>, <a href="3-ci.html#SP10">§10</a>, <a href="3-ci.html#SP11">§11</a><br/>Spatial Map - <a href="4-sm.html#SP44">§44</a><br/>HTML Map - <a href="4-hm.html#SP12">§12</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">wn</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ifs.html#SP9" class="function-link"><span class="function-syntax">Index::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>
|
||||
|
||||
|
|
|
@ -309,10 +309,10 @@ a single shared reveal-box:
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Index::ph_same_doc</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">Phrases::Index::ph_same_doc</span></span>:<br/><a href="2-pi.html#SP1_3">§1.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p1</span><span class="plain-syntax">, </span><span class="identifier-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p2</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">p1</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">p2</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">Wordings::empty</span><span class="plain-syntax">(</span><span class="identifier-syntax">p1</span><span class="plain-syntax">-></span><span class="identifier-syntax">ph_documentation_symbol</span><span class="plain-syntax">)) ||</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::empty</span><span class="plain-syntax">(</span><span class="identifier-syntax">p2</span><span class="plain-syntax">-></span><span class="identifier-syntax">ph_documentation_symbol</span><span class="plain-syntax">)))</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::empty</span><span class="plain-syntax">(</span><span class="identifier-syntax">ToPhraseFamily::doc_ref</span><span class="plain-syntax">(</span><span class="identifier-syntax">p1</span><span class="plain-syntax">-></span><span class="identifier-syntax">from</span><span class="plain-syntax">))) ||</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::empty</span><span class="plain-syntax">(</span><span class="identifier-syntax">ToPhraseFamily::doc_ref</span><span class="plain-syntax">(</span><span class="identifier-syntax">p2</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::match</span><span class="plain-syntax">(</span><span class="identifier-syntax">p1</span><span class="plain-syntax">-></span><span class="identifier-syntax">ph_documentation_symbol</span><span class="plain-syntax">, </span><span class="identifier-syntax">p2</span><span class="plain-syntax">-></span><span class="identifier-syntax">ph_documentation_symbol</span><span 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::match</span><span class="plain-syntax">(</span><span class="identifier-syntax">ToPhraseFamily::doc_ref</span><span class="plain-syntax">(</span><span class="identifier-syntax">p1</span><span class="plain-syntax">-></span><span class="identifier-syntax">from</span><span class="plain-syntax">), </span><span class="identifier-syntax">ToPhraseFamily::doc_ref</span><span class="plain-syntax">(</span><span class="identifier-syntax">p2</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
|
|
@ -801,6 +801,72 @@ have affected it in this way:
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure rulebook_indexing_data is private to this section.</li><li>The structure placement_affecting is accessed in 2/ins, 2/act, 3/scn, 4/em and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>§10. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXRules::index_timed_rules</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">IXRules::index_timed_rules</span></span>:<br/>Index File Services - <a href="2-ifs.html#SP6">§6</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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">when_count</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">tt_count</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-rls.html#SP10_1" class="named-paragraph-link"><span class="named-paragraph">Index events with no specific time</span><span class="named-paragraph-number">10.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-rls.html#SP10_2" class="named-paragraph-link"><span class="named-paragraph">Index timetabled events</span><span class="named-paragraph-number">10.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">when_count</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">tt_count</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">); </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<i>None.</i>"</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="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP10_1" class="paragraph-anchor"></a><b>§10.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Index events with no specific time</span><span class="named-paragraph-number">10.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</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">ph</span><span class="plain-syntax">, </span><span class="identifier-syntax">phrase</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TimedRules::get_timing_of_event</span><span class="plain-syntax">(</span><span class="identifier-syntax">ph</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">t</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NO_FIXED_TIME</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">when_count</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<i>Events with no specific time</i>"</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="plain-syntax"> </span><span class="identifier-syntax">when_count</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">"p"</span><span class="plain-syntax">, </span><span class="string-syntax">"class=\"tightin2\""</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ImperativeDefinitions::index_preamble</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">ph</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">ph</span><span class="plain-syntax">-></span><span class="identifier-syntax">from</span><span class="plain-syntax">-></span><span class="identifier-syntax">at</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="identifier-syntax">from</span><span class="plain-syntax">-></span><span class="identifier-syntax">at</span><span class="plain-syntax">))))</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ifs.html#SP9" class="function-link"><span class="function-syntax">Index::link</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="identifier-syntax">from</span><span class="plain-syntax">-></span><span class="identifier-syntax">at</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">" (where triggered: "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TimedRules::get_uses_as_event</span><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="identifier-syntax">from</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="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ifs.html#SP9" class="function-link"><span class="function-syntax">Index::link</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::first_wn</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">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">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="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-rls.html#SP10">§10</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP10_2" class="paragraph-anchor"></a><b>§10.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Index timetabled events</span><span class="named-paragraph-number">10.2</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</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">ph</span><span class="plain-syntax">, </span><span class="identifier-syntax">phrase</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TimedRules::get_timing_of_event</span><span class="plain-syntax">(</span><span class="identifier-syntax">ph</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">t</span><span class="plain-syntax"> >= </span><span class="constant-syntax">0</span><span class="plain-syntax">) { </span><span class="comment-syntax"> i.e., an actual time of day in minutes since midnight</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">tt_count</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<i>Timetable</i>"</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="plain-syntax"> </span><span class="identifier-syntax">tt_count</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">"p"</span><span class="plain-syntax">, </span><span class="string-syntax">"class=\"in2\""</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ImperativeDefinitions::index_preamble</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">ph</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">ph</span><span class="plain-syntax">-></span><span class="identifier-syntax">from</span><span class="plain-syntax">-></span><span class="identifier-syntax">at</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="identifier-syntax">from</span><span class="plain-syntax">-></span><span class="identifier-syntax">at</span><span class="plain-syntax">))))</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ifs.html#SP9" class="function-link"><span class="function-syntax">Index::link</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="identifier-syntax">from</span><span class="plain-syntax">-></span><span class="identifier-syntax">at</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="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-rls.html#SP10">§10</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-inf.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-ifs.html">ifs</a></li><li class="progresssection"><a href="2-dr.html">dr</a></li><li class="progresssection"><a href="2-li.html">li</a></li><li class="progresssection"><a href="2-ipw.html">ipw</a></li><li class="progresssection"><a href="2-ki.html">ki</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-ih.html">ih</a></li><li class="progresssection"><a href="2-ins.html">ins</a></li><li class="progresssection"><a href="2-adj.html">adj</a></li><li class="progresssection"><a href="2-vrb.html">vrb</a></li><li class="progresssection"><a href="2-prp.html">prp</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresscurrent">rls</li><li class="progresssection"><a href="2-act.html">act</a></li><li class="progresssection"><a href="2-pi.html">pi</a></li><li class="progresschapter"><a href="3-fgr.html">3</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="2-act.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -225,7 +225,7 @@
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-rls.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresscurrent">act</li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-es.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-rls.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresscurrent">act</li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresssection"><a href="4-cls.html">cls</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-es.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -465,7 +465,7 @@ objects, if there is one; otherwise the first-declared meaning.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-ic.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresscurrent">adj</li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-rsfk.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-ic.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresscurrent">adj</li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresssection"><a href="4-cls.html">cls</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-rsfk.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -160,7 +160,7 @@ the list!);
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-ct.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresscurrent">cl</li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-rtn.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-ct.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresscurrent">cl</li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresssection"><a href="4-cls.html">cls</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-rtn.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
232
docs/runtime-module/4-cls.html
Normal file
232
docs/runtime-module/4-cls.html
Normal file
|
@ -0,0 +1,232 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Phrases as Values</title>
|
||||
<link href="../docs-assets/Breadcrumbs.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<meta name="viewport" content="width=device-width initial-scale=1">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en-gb">
|
||||
|
||||
<link href="../docs-assets/Contents.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Progress.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Navigation.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Fonts.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Base.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<script>
|
||||
function togglePopup(material_id) {
|
||||
var popup = document.getElementById(material_id);
|
||||
popup.classList.toggle("show");
|
||||
}
|
||||
</script>
|
||||
|
||||
<link href="../docs-assets/Popups.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
|
||||
</head>
|
||||
<body class="commentary-font">
|
||||
<nav role="navigation">
|
||||
<h1><a href="../index.html">
|
||||
<img src="../docs-assets/Inform.png" height=72">
|
||||
</a></h1>
|
||||
<ul><li><a href="../compiler.html">compiler tools</a></li>
|
||||
<li><a href="../other.html">other tools</a></li>
|
||||
<li><a href="../extensions.html">extensions and kits</a></li>
|
||||
<li><a href="../units.html">unit test tools</a></li>
|
||||
</ul><h2>Compiler Webs</h2><ul>
|
||||
<li><a href="../inbuild/index.html">inbuild</a></li>
|
||||
<li><a href="../inform7/index.html">inform7</a></li>
|
||||
<li><a href="../inter/index.html">inter</a></li>
|
||||
</ul><h2>Inbuild Modules</h2><ul>
|
||||
<li><a href="../supervisor-module/index.html">supervisor</a></li>
|
||||
</ul><h2>Inform7 Modules</h2><ul>
|
||||
<li><a href="../core-module/index.html">core</a></li>
|
||||
<li><a href="../assertions-module/index.html">assertions</a></li>
|
||||
<li><a href="../values-module/index.html">values</a></li>
|
||||
<li><a href="../knowledge-module/index.html">knowledge</a></li>
|
||||
<li><a href="../imperative-module/index.html">imperative</a></li>
|
||||
<li><a href="index.html"><span class="selectedlink">runtime</span></a></li>
|
||||
<li><a href="../if-module/index.html">if</a></li>
|
||||
<li><a href="../multimedia-module/index.html">multimedia</a></li>
|
||||
<li><a href="../index-module/index.html">index</a></li>
|
||||
</ul><h2>Inter Modules</h2><ul>
|
||||
<li><a href="../bytecode-module/index.html">bytecode</a></li>
|
||||
<li><a href="../building-module/index.html">building</a></li>
|
||||
<li><a href="../codegen-module/index.html">codegen</a></li>
|
||||
</ul><h2>Services</h2><ul>
|
||||
<li><a href="../arch-module/index.html">arch</a></li>
|
||||
<li><a href="../calculus-module/index.html">calculus</a></li>
|
||||
<li><a href="../html-module/index.html">html</a></li>
|
||||
<li><a href="../inflections-module/index.html">inflections</a></li>
|
||||
<li><a href="../kinds-module/index.html">kinds</a></li>
|
||||
<li><a href="../linguistics-module/index.html">linguistics</a></li>
|
||||
<li><a href="../problems-module/index.html">problems</a></li>
|
||||
<li><a href="../syntax-module/index.html">syntax</a></li>
|
||||
<li><a href="../words-module/index.html">words</a></li>
|
||||
<li><a href="../../../inweb/docs/foundation-module/index.html">foundation</a></li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
<main role="main">
|
||||
<!--Weave of 'Phrases as Values' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#4">Chapter 4: Compilation Utilities</a></li><li><b>Phrases as Values</b></li></ul></div>
|
||||
<p class="purpose">To provide the names of phrases as first-class values.</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b>So much for setting up constant phrases. Now we come to compilation, and
|
||||
a surprise. It might be expected that a constant phrase compiles simply to
|
||||
an I6 routine name, but no: it compiles to a small array called a "closure".
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Phrases::Constants::compile</span><span class="plain-syntax">(</span><span class="identifier-syntax">constant_phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ToPhraseFamily::body_of_constant</span><span class="plain-syntax">(</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ph</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">"cannot reconstruct phrase from cphr"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Phrases::compiled_inline</span><span class="plain-syntax">(</span><span class="identifier-syntax">ph</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">Routines::ToPhrases::make_request</span><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ToPhraseFamily::kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">), </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-cls.html#SP1" class="function-link"><span class="function-syntax">Phrases::Constants::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Phrases::Constants::iname</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Phrases::Constants::iname</span></span>:<br/><a href="4-cls.html#SP2_1">§2.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">constant_phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="identifier-syntax">cphr_iname</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ToPhraseFamily::body_of_constant</span><span class="plain-syntax">(</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ph</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">"cannot reconstruct phrase from cphr"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::package_within</span></a><span class="plain-syntax">(</span><span class="constant-syntax">CLOSURES_HAP</span><span class="plain-syntax">, </span><span class="identifier-syntax">ph</span><span class="plain-syntax">-></span><span class="identifier-syntax">requests_package</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="identifier-syntax">cphr_iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">CLOSURE_DATA_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="identifier-syntax">cphr_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b>And this is where those arrays are made:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Constants::compile_closures</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">constant_phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cphr</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">cphr</span><span class="plain-syntax">, </span><span class="identifier-syntax">constant_phrase</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ph</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ToPhraseFamily::body_of_constant</span><span class="plain-syntax">(</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ph</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">"cannot reconstruct phrase from cphr"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ToPhraseFamily::kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-cls.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">Compile the closure array for this constant phrase</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>
|
||||
<p class="commentary firstcommentary"><a id="SP2_1" class="paragraph-anchor"></a><b>§2.1. </b>The closure array consists of three words: the strong kind ID, the address
|
||||
of the routine, and the text of the name. (The latter enables us to print
|
||||
phrase values efficiently.) Note that we make a compilation request for the
|
||||
phrase in order to make sure somebody has actually compiled it: this is in
|
||||
case the phrase occurs as a constant but is never explicitly invoked.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile the closure array for this constant phrase</span><span class="named-paragraph-number">2.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="4-cls.html#SP1" class="function-link"><span class="function-syntax">Phrases::Constants::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cphr</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="2-emt.html#SP3" class="function-link"><span class="function-syntax">Emit::named_array_begin</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><a href="4-rsfk.html#SP15" class="function-link"><span class="function-syntax">RTKinds::emit_strong_id</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="identifier-syntax">cphr_kind</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">RS</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Routines::ToPhrases::make_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ToPhraseFamily::kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-emt.html#SP3" class="function-link"><span class="function-syntax">Emit::array_iname_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">RS</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">name</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">name</span><span class="plain-syntax">, </span><span class="string-syntax">"%W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Nouns::nominative_singular</span><span class="plain-syntax">(</span><span class="identifier-syntax">cphr</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-emt.html#SP3" class="function-link"><span class="function-syntax">Emit::array_text_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">)</span>
|
||||
|
||||
<span class="plain-syntax"> </span><a href="2-emt.html#SP3" class="function-link"><span class="function-syntax">Emit::array_end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="4-cls.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. </b>Now we come to something trickier. We want default values for kinds of phrases,
|
||||
because otherwise we can't have variables holding phrases unless they are
|
||||
always initialised explicitly, and so on. Clearly the default value for a
|
||||
phrase to nothing is one that does nothing, and for a phrase to some kind K
|
||||
is one that returns the default value of kind K. For example, the default
|
||||
value of
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> phrase (text, time) -> number</span>
|
||||
</pre>
|
||||
<p class="commentary">is the function which takes any pair of a text and a time, does nothing with
|
||||
them, and always returns 0. But this means we need to actually compile such
|
||||
routines. Since there are in principle an infinite number of distinct phrase
|
||||
kinds, we will only compile them for the phrase kinds which arise during
|
||||
compilation.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Constants::compile_default_closure</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">Phrases::Constants::compile_default_closure</span></span>:<br/>Runtime Support for Kinds - <a href="4-rsfk.html#SP19_2">§19.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">closure_identifier</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Kinds::Behaviour::package</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">DEFAULT_CLOSURE_FN_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-cls.html#SP3_2" class="named-paragraph-link"><span class="named-paragraph">Compile the default routine</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-cls.html#SP3_1" class="named-paragraph-link"><span class="named-paragraph">Compile the default closure</span><span class="named-paragraph-number">3.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP3_1" class="paragraph-anchor"></a><b>§3.1. </b>This must have exactly the same three-word form as the closure arrays
|
||||
made above.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile the default closure</span><span class="named-paragraph-number">3.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><a href="2-emt.html#SP3" class="function-link"><span class="function-syntax">Emit::named_array_begin</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">closure_identifier</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="4-rsfk.html#SP15" class="function-link"><span class="function-syntax">RTKinds::emit_strong_id</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-emt.html#SP3" class="function-link"><span class="function-syntax">Emit::array_iname_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">rname</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">DVT</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">DVT</span><span class="plain-syntax">, </span><span class="string-syntax">"default value of "</span><span class="plain-syntax">); </span><span class="identifier-syntax">Kinds::Textual::write</span><span class="plain-syntax">(</span><span class="identifier-syntax">DVT</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-emt.html#SP3" class="function-link"><span class="function-syntax">Emit::array_text_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">DVT</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">DVT</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="2-emt.html#SP3" class="function-link"><span class="function-syntax">Emit::array_end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="4-cls.html#SP3">§3</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3_2" class="paragraph-anchor"></a><b>§3.2. </b>And here is the function that refers to:
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile the default routine</span><span class="named-paragraph-number">3.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">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><a href="4-rtn.html#SP1" class="function-link"><span class="function-syntax">Routines::begin</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">rname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LocalVariables::add_named_call</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"a"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LocalVariables::add_named_call</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"b"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LocalVariables::add_named_call</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"c"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LocalVariables::add_named_call</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"d"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LocalVariables::add_named_call</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"e"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LocalVariables::add_named_call</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"f"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LocalVariables::add_named_call</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"g"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LocalVariables::add_named_call</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"h"</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">result</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">Kinds::binary_construction_material</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, &</span><span class="identifier-syntax">result</span><span 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::get_construct</span><span class="plain-syntax">(</span><span class="identifier-syntax">result</span><span class="plain-syntax">) != </span><span class="identifier-syntax">CON_NIL</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">RETURN_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</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::Behaviour::uses_pointer_values</span><span class="plain-syntax">(</span><span class="identifier-syntax">result</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">BLKVALUECREATE_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_call_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><a href="4-rsfk.html#SP15" class="function-link"><span class="function-syntax">RTKinds::emit_strong_id_as_val</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">result</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-rsfk.html#SP5" class="function-link"><span class="function-syntax">RTKinds::emit_default_value_as_val</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">result</span><span class="plain-syntax">, </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</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">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><a href="4-rtn.html#SP4" class="function-link"><span class="function-syntax">Routines::end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="4-cls.html#SP3">§3</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-rsft.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresscurrent">cls</li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="5-nmn.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -470,7 +470,7 @@ exceptional case.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-rsp.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresscurrent">ct</li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-cl.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-rsp.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresscurrent">ct</li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresssection"><a href="4-cls.html">cls</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-cl.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -178,7 +178,7 @@ and author.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-rsfk.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresscurrent">efart</li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-ni.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-rsfk.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresscurrent">efart</li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresssection"><a href="4-cls.html">cls</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-ni.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -387,7 +387,7 @@ the property-permission symbol accordingly:
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-msr.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresscurrent">epv</li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-ins.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-msr.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresscurrent">epv</li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresssection"><a href="4-cls.html">cls</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-ins.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -89,7 +89,7 @@ they provide values different from each other and from all other functions.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-act.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresscurrent">es</li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-iti.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-act.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresscurrent">es</li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresssection"><a href="4-cls.html">cls</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-iti.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -216,7 +216,7 @@ Inform's own version number), but it belongs nowhere else either, so:
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-abc.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresscurrent">fc</li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-i6i.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-abc.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresscurrent">fc</li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresssection"><a href="4-cls.html">cls</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-i6i.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -315,7 +315,7 @@ requests, which, again, we do by instructing the Template code.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-fc.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresscurrent">i6i</li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-lt.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-fc.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresscurrent">i6i</li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresssection"><a href="4-cls.html">cls</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-lt.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -502,7 +502,7 @@ constants, and use the Link constants to progress; we stop at <span class="extra
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-ins.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresscurrent">ic</li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-adj.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-ins.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresscurrent">ic</li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresssection"><a href="4-cls.html">cls</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-adj.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -158,7 +158,7 @@ declarations) and finally return <span class="extract"><span class="extract-synt
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-epv.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresscurrent">ins</li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-ic.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-epv.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresscurrent">ins</li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresssection"><a href="4-cls.html">cls</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-ic.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -648,7 +648,7 @@ only and may change at any time without notice.
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="4-itc.html#SP4">§4</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-ts2.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresscurrent">itc</li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-uoart.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-ts2.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresscurrent">itc</li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresssection"><a href="4-cls.html">cls</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-uoart.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -420,7 +420,7 @@ time.) <span class="extract"><span class="extract-syntax">{-index:name}</span></
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-es.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresscurrent">iti</li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-ts2.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-es.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresscurrent">iti</li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresssection"><a href="4-cls.html">cls</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-ts2.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -202,7 +202,7 @@ specification <span class="extract"><span class="extract-syntax">--> 0</span>
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-lt.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresscurrent">jl</li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-tl.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-lt.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresscurrent">jl</li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresssection"><a href="4-cls.html">cls</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-tl.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -1551,7 +1551,7 @@ the sorting measure.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-rart.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresscurrent">lpart</li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-rsft.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-rart.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresscurrent">lpart</li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresssection"><a href="4-cls.html">cls</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-rsft.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -182,7 +182,7 @@ is significant to the run-time list-printing code.
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="4-lt.html#SP3">§3</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-i6i.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresscurrent">lt</li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-jl.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-i6i.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresscurrent">lt</li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresssection"><a href="4-cls.html">cls</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-jl.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -128,7 +128,7 @@
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure measurement_compilation_data is private to this section.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-prp.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresscurrent">msr</li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-epv.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-prp.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresscurrent">msr</li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresssection"><a href="4-cls.html">cls</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-epv.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -159,7 +159,7 @@ instance, the Standard Rules want the player-character object to be called
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-efart.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresscurrent">ni</li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-vart.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-efart.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresscurrent">ni</li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresssection"><a href="4-cls.html">cls</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-vart.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -597,7 +597,7 @@ answer now.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-vrb.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresscurrent">prp</li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-msr.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-vrb.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresscurrent">prp</li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresssection"><a href="4-cls.html">cls</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-msr.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -2174,7 +2174,7 @@ matches the specific necessary kind of object if there is one.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-vart.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresscurrent">rart</li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-lpart.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-vart.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresscurrent">rart</li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresssection"><a href="4-cls.html">cls</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-lpart.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -113,6 +113,14 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> &(</span><span class="identifier-syntax">R</span><span class="plain-syntax">-></span><span class="identifier-syntax">defn_as_I7_source</span><span class="plain-syntax">-></span><span class="identifier-syntax">body_of_defn</span><span class="plain-syntax">-></span><span class="identifier-syntax">stack_frame</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">RTRules::prepare_rule</span><span class="plain-syntax">(</span><span class="identifier-syntax">imperative_defn</span><span class="plain-syntax"> *</span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">rule</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">rule_family_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rfd</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_rule_family_data</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="identifier-syntax">family_specific_data</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="4-rls.html#SP2" class="function-link"><span class="function-syntax">RTRules::package</span></a><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">Wordings::empty</span><span class="plain-syntax">(</span><span class="identifier-syntax">rfd</span><span class="plain-syntax">-></span><span class="identifier-syntax">constant_name</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::markup_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">RULE_NAME_HMD</span><span class="plain-syntax">, </span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="identifier-syntax">at</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="identifier-syntax">body_of_defn</span><span class="plain-syntax">-></span><span class="identifier-syntax">ph_iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::make_localised_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">RULE_FN_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">-></span><span class="identifier-syntax">body_of_defn</span><span class="plain-syntax">-></span><span class="identifier-syntax">owning_module</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">RTRules::package</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">RTRules::package</span></span>:<br/>Responses - <a href="4-rsp.html#SP4">§4</a>, <a href="4-rsp.html#SP6_1">§6.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">rule</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">R</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">rule_package</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -1093,7 +1101,7 @@ code are the real outcome of the code in this section.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-rtn.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresscurrent">rls</li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-act.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-rtn.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresscurrent">rls</li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresssection"><a href="4-cls.html">cls</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-act.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -174,7 +174,7 @@ chosen), but no problem message has been issued about this, or
|
|||
<span class="plain-syntax"> </span><a href="2-emt.html#SP3" class="function-link"><span class="function-syntax">Emit::array_generic_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">v1</span><span class="plain-syntax">, </span><span class="identifier-syntax">v2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">RTKinds::emit_default_value_as_val</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">RTKinds::emit_default_value_as_val</span></span>:<br/><a href="4-rsfk.html#SP27_6_2">§27.6.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">storage_name</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">RTKinds::emit_default_value_as_val</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">RTKinds::emit_default_value_as_val</span></span>:<br/><a href="4-rsfk.html#SP27_6_2">§27.6.2</a><br/>Phrases as Values - <a href="4-cls.html#SP3_2">§3.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">storage_name</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">value_holster</span><span class="plain-syntax"> </span><span class="identifier-syntax">VH</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Holsters::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">INTER_DATA_VHMODE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax"> = </span><a href="4-rsfk.html#SP5" class="function-link"><span class="function-syntax">RTKinds::compile_default_value_vh</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">VH</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">storage_name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Holsters::to_val_mode</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), &</span><span class="identifier-syntax">VH</span><span class="plain-syntax">);</span>
|
||||
|
@ -677,7 +677,7 @@ turns up. This means remembering everything we've seen, using a new structure:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTKinds::emit_strong_id</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">RTKinds::emit_strong_id</span></span>:<br/><a href="4-rsfk.html#SP19_1_1">§19.1.1</a>, <a href="4-rsfk.html#SP19_1_1_1">§19.1.1.1</a>, <a href="4-rsfk.html#SP19_1_1_2">§19.1.1.2</a><br/>Constant Lists - <a href="4-cl.html#SP2_1">§2.1</a>, <a href="4-cl.html#SP3">§3</a><br/>Relations at Run Time - <a href="4-rart.html#SP4_1_4">§4.1.4</a>, <a href="4-rart.html#SP5">§5</a><br/>Actions - <a href="5-act.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTKinds::emit_strong_id</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">RTKinds::emit_strong_id</span></span>:<br/><a href="4-rsfk.html#SP19_1_1">§19.1.1</a>, <a href="4-rsfk.html#SP19_1_1_1">§19.1.1.1</a>, <a href="4-rsfk.html#SP19_1_1_2">§19.1.1.2</a><br/>Constant Lists - <a href="4-cl.html#SP2_1">§2.1</a>, <a href="4-cl.html#SP3">§3</a><br/>Relations at Run Time - <a href="4-rart.html#SP4_1_4">§4.1.4</a>, <a href="4-rart.html#SP5">§5</a><br/>Phrases as Values - <a href="4-cls.html#SP2_1">§2.1</a>, <a href="4-cls.html#SP3_1">§3.1</a><br/>Actions - <a href="5-act.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">runtime_kind_structure</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rks</span><span class="plain-syntax"> = </span><a href="4-rsfk.html#SP16" class="function-link"><span class="function-syntax">RTKinds::get_rks</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">rks</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-emt.html#SP3" class="function-link"><span class="function-syntax">Emit::array_iname_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">rks</span><span class="plain-syntax">-></span><span class="element-syntax">rks_iname</span><span class="plain-syntax">);</span>
|
||||
|
@ -686,7 +686,7 @@ turns up. This means remembering everything we've seen, using a new structure:
|
|||
<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">RTKinds::emit_strong_id_as_val</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">RTKinds::emit_strong_id_as_val</span></span>:<br/><a href="4-rsfk.html#SP19_3">§19.3</a>, <a href="4-rsfk.html#SP22">§22</a><br/>Relations at Run Time - <a href="4-rart.html#SP4">§4</a>, <a href="4-rart.html#SP4_2_9_1">§4.2.9.1</a><br/>Runtime Support for Tables - <a href="4-rsft.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTKinds::emit_strong_id_as_val</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">RTKinds::emit_strong_id_as_val</span></span>:<br/><a href="4-rsfk.html#SP19_3">§19.3</a>, <a href="4-rsfk.html#SP22">§22</a><br/>Relations at Run Time - <a href="4-rart.html#SP4">§4</a>, <a href="4-rart.html#SP4_2_9_1">§4.2.9.1</a><br/>Runtime Support for Tables - <a href="4-rsft.html#SP2">§2</a><br/>Phrases as Values - <a href="4-cls.html#SP3_2">§3.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">runtime_kind_structure</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rks</span><span class="plain-syntax"> = </span><a href="4-rsfk.html#SP16" class="function-link"><span class="function-syntax">RTKinds::get_rks</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">rks</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">rks</span><span class="plain-syntax">-></span><span class="element-syntax">rks_iname</span><span class="plain-syntax">);</span>
|
||||
|
@ -920,7 +920,7 @@ recursively scanned through for us, so that if we have seen a construction
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">identifier</span><span class="plain-syntax"> = </span><span class="identifier-syntax">rks</span><span class="plain-syntax">-></span><span class="element-syntax">rks_dv_iname</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">rks</span><span class="plain-syntax">-></span><span class="element-syntax">default_requested_here</span><span 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::get_construct</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">CON_phrase</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Phrases::Constants::compile_default_closure</span><span class="plain-syntax">(</span><span class="identifier-syntax">identifier</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="4-cls.html#SP3" class="function-link"><span class="function-syntax">Phrases::Constants::compile_default_closure</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">identifier</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::get_construct</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">CON_relation</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="4-rart.html#SP5" class="function-link"><span class="function-syntax">RTRelations::compile_default_relation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">identifier</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::get_construct</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">CON_list_of</span><span class="plain-syntax">) {</span>
|
||||
|
@ -2285,7 +2285,7 @@ and it seems best to reject the extra complexity needed.
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="4-rsfk.html#SP32">§32</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-adj.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresscurrent">rsfk</li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-efart.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-adj.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresscurrent">rsfk</li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresssection"><a href="4-cls.html">cls</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-efart.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -542,7 +542,7 @@ should return <span class="extract"><span class="extract-syntax">FALSE</span></s
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-lpart.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresscurrent">rsft</li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="5-nmn.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-lpart.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresscurrent">rsft</li><li class="progresssection"><a href="4-cls.html">cls</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-cls.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -697,7 +697,7 @@ text needs to be printed in a particular way.
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="4-rsp.html#SP11_1">§11.1</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-ts.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresscurrent">rsp</li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-ct.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-ts.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresscurrent">rsp</li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresssection"><a href="4-cls.html">cls</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-ct.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -81,7 +81,7 @@ already been set up, or not. Here's not:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="function-syntax">Routines::begin</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Routines::begin</span></span>:<br/>List Together - <a href="4-lt.html#SP3_1">§3.1</a><br/>Text Literals - <a href="4-tl.html#SP13_2">§13.2</a><br/>Text Substitutions - <a href="4-ts.html#SP11">§11</a><br/>Responses - <a href="4-rsp.html#SP5_1">§5.1</a>, <a href="4-rsp.html#SP5_2">§5.2</a>, <a href="4-rsp.html#SP6_2">§6.2</a><br/>Rules - <a href="4-rls.html#SP3_1">§3.1</a>, <a href="4-rls.html#SP5">§5</a>, <a href="4-rls.html#SP7">§7</a>, <a href="4-rls.html#SP8_1_1">§8.1.1</a>, <a href="4-rls.html#SP12_1">§12.1</a>, <a href="4-rls.html#SP14">§14</a><br/>Equations Support - <a href="4-es.html#SP1">§1</a><br/>Test Scripts - <a href="4-ts2.html#SP3">§3</a><br/>Internal Test Cases - <a href="4-itc.html#SP4">§4</a><br/>Use Options at Run Time - <a href="4-uoart.html#SP1_1">§1.1</a>, <a href="4-uoart.html#SP1_2">§1.2</a><br/>Variables - <a href="4-vrb.html#SP5_1">§5.1</a><br/>Measurements - <a href="4-msr.html#SP1">§1</a><br/>Adjectives - <a href="4-adj.html#SP3_2">§3.2</a>, <a href="4-adj.html#SP5">§5</a><br/>Runtime Support for Kinds - <a href="4-rsfk.html#SP19_3">§19.3</a>, <a href="4-rsfk.html#SP27_1">§27.1</a>, <a href="4-rsfk.html#SP27_2">§27.2</a>, <a href="4-rsfk.html#SP27_3">§27.3</a>, <a href="4-rsfk.html#SP27_4">§27.4</a>, <a href="4-rsfk.html#SP27_5">§27.5</a>, <a href="4-rsfk.html#SP27_6_1">§27.6.1</a>, <a href="4-rsfk.html#SP27_6_2">§27.6.2</a>, <a href="4-rsfk.html#SP27_6_3">§27.6.3</a>, <a href="4-rsfk.html#SP27_6_4">§27.6.4</a>, <a href="4-rsfk.html#SP27_6_5">§27.6.5</a>, <a href="4-rsfk.html#SP27_6_6">§27.6.6</a>, <a href="4-rsfk.html#SP28">§28</a><br/>Extension Files at Run Time - <a href="4-efart.html#SP1">§1</a><br/>Verbs at Run Time - <a href="4-vart.html#SP4_1">§4.1</a>, <a href="4-vart.html#SP4_2">§4.2</a><br/>Relations at Run Time - <a href="4-rart.html#SP4">§4</a>, <a href="4-rart.html#SP4_2">§4.2</a>, <a href="4-rart.html#SP6">§6</a>, <a href="4-rart.html#SP18_1">§18.1</a>, <a href="4-rart.html#SP18_2">§18.2</a>, <a href="4-rart.html#SP18_3">§18.3</a>, <a href="4-rart.html#SP18_4">§18.4</a>, <a href="4-rart.html#SP18_5">§18.5</a>, <a href="4-rart.html#SP18_6">§18.6</a>, <a href="4-rart.html#SP19">§19</a>, <a href="4-rart.html#SP23">§23</a><br/>Literal Patterns at Run Time - <a href="4-lpart.html#SP2">§2</a><br/>Runtime Support for Tables - <a href="4-rsft.html#SP2">§2</a>, <a href="4-rsft.html#SP5">§5</a><br/>Naming - <a href="5-nmn.html#SP2">§2</a><br/>Backdrops - <a href="5-bck.html#SP2_1">§2.1</a>, <a href="5-bck.html#SP2_2">§2.2</a><br/>Regions - <a href="5-rgn.html#SP2">§2</a><br/>The Map - <a href="5-tm.html#SP4">§4</a><br/>Showme Command - <a href="5-sc.html#SP2">§2</a><br/>Scenes - <a href="5-scn.html#SP2">§2</a>, <a href="5-scn.html#SP6">§6</a><br/>Actions - <a href="5-act.html#SP2">§2</a><br/>Looping Over Scope - <a href="5-los.html#SP2_1">§2.1</a><br/>Named Action Patterns - <a href="5-nap.html#SP1">§1</a><br/>Command Grammars - <a href="5-cg.html#SP7">§7</a><br/>Command Grammar Lines - <a href="5-cgl.html#SP2">§2</a>, <a href="5-cgl.html#SP8">§8</a><br/>Noun Filter Tokens - <a href="5-nft.html#SP2">§2</a><br/>Tokens Parsing Values - <a href="5-tpv.html#SP1">§1</a><br/>General Parsing Routines - <a href="5-gpr.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="function-syntax">Routines::begin</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Routines::begin</span></span>:<br/>List Together - <a href="4-lt.html#SP3_1">§3.1</a><br/>Text Literals - <a href="4-tl.html#SP13_2">§13.2</a><br/>Text Substitutions - <a href="4-ts.html#SP11">§11</a><br/>Responses - <a href="4-rsp.html#SP5_1">§5.1</a>, <a href="4-rsp.html#SP5_2">§5.2</a>, <a href="4-rsp.html#SP6_2">§6.2</a><br/>Rules - <a href="4-rls.html#SP3_1">§3.1</a>, <a href="4-rls.html#SP5">§5</a>, <a href="4-rls.html#SP7">§7</a>, <a href="4-rls.html#SP8_1_1">§8.1.1</a>, <a href="4-rls.html#SP12_1">§12.1</a>, <a href="4-rls.html#SP14">§14</a><br/>Equations Support - <a href="4-es.html#SP1">§1</a><br/>Test Scripts - <a href="4-ts2.html#SP3">§3</a><br/>Internal Test Cases - <a href="4-itc.html#SP4">§4</a><br/>Use Options at Run Time - <a href="4-uoart.html#SP1_1">§1.1</a>, <a href="4-uoart.html#SP1_2">§1.2</a><br/>Variables - <a href="4-vrb.html#SP5_1">§5.1</a><br/>Measurements - <a href="4-msr.html#SP1">§1</a><br/>Adjectives - <a href="4-adj.html#SP3_2">§3.2</a>, <a href="4-adj.html#SP5">§5</a><br/>Runtime Support for Kinds - <a href="4-rsfk.html#SP19_3">§19.3</a>, <a href="4-rsfk.html#SP27_1">§27.1</a>, <a href="4-rsfk.html#SP27_2">§27.2</a>, <a href="4-rsfk.html#SP27_3">§27.3</a>, <a href="4-rsfk.html#SP27_4">§27.4</a>, <a href="4-rsfk.html#SP27_5">§27.5</a>, <a href="4-rsfk.html#SP27_6_1">§27.6.1</a>, <a href="4-rsfk.html#SP27_6_2">§27.6.2</a>, <a href="4-rsfk.html#SP27_6_3">§27.6.3</a>, <a href="4-rsfk.html#SP27_6_4">§27.6.4</a>, <a href="4-rsfk.html#SP27_6_5">§27.6.5</a>, <a href="4-rsfk.html#SP27_6_6">§27.6.6</a>, <a href="4-rsfk.html#SP28">§28</a><br/>Extension Files at Run Time - <a href="4-efart.html#SP1">§1</a><br/>Verbs at Run Time - <a href="4-vart.html#SP4_1">§4.1</a>, <a href="4-vart.html#SP4_2">§4.2</a><br/>Relations at Run Time - <a href="4-rart.html#SP4">§4</a>, <a href="4-rart.html#SP4_2">§4.2</a>, <a href="4-rart.html#SP6">§6</a>, <a href="4-rart.html#SP18_1">§18.1</a>, <a href="4-rart.html#SP18_2">§18.2</a>, <a href="4-rart.html#SP18_3">§18.3</a>, <a href="4-rart.html#SP18_4">§18.4</a>, <a href="4-rart.html#SP18_5">§18.5</a>, <a href="4-rart.html#SP18_6">§18.6</a>, <a href="4-rart.html#SP19">§19</a>, <a href="4-rart.html#SP23">§23</a><br/>Literal Patterns at Run Time - <a href="4-lpart.html#SP2">§2</a><br/>Runtime Support for Tables - <a href="4-rsft.html#SP2">§2</a>, <a href="4-rsft.html#SP5">§5</a><br/>Phrases as Values - <a href="4-cls.html#SP3_2">§3.2</a><br/>Naming - <a href="5-nmn.html#SP2">§2</a><br/>Backdrops - <a href="5-bck.html#SP2_1">§2.1</a>, <a href="5-bck.html#SP2_2">§2.2</a><br/>Regions - <a href="5-rgn.html#SP2">§2</a><br/>The Map - <a href="5-tm.html#SP4">§4</a><br/>Showme Command - <a href="5-sc.html#SP2">§2</a><br/>Scenes - <a href="5-scn.html#SP2">§2</a>, <a href="5-scn.html#SP6">§6</a><br/>Actions - <a href="5-act.html#SP2">§2</a><br/>Looping Over Scope - <a href="5-los.html#SP2_1">§2.1</a><br/>Named Action Patterns - <a href="5-nap.html#SP1">§1</a><br/>Command Grammars - <a href="5-cg.html#SP7">§7</a><br/>Command Grammar Lines - <a href="5-cgl.html#SP2">§2</a>, <a href="5-cgl.html#SP8">§8</a><br/>Noun Filter Tokens - <a href="5-nft.html#SP2">§2</a><br/>Tokens Parsing Values - <a href="5-tpv.html#SP1">§1</a><br/>General Parsing Routines - <a href="5-gpr.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</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-rtn.html#SP3" class="function-link"><span class="function-syntax">Routines::begin_framed</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
@ -140,7 +140,7 @@ did not.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Routines::end</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">Routines::end</span></span>:<br/>List Together - <a href="4-lt.html#SP3_1">§3.1</a><br/>Text Literals - <a href="4-tl.html#SP13_2">§13.2</a><br/>Text Substitutions - <a href="4-ts.html#SP11">§11</a><br/>Responses - <a href="4-rsp.html#SP5_1">§5.1</a>, <a href="4-rsp.html#SP5_2">§5.2</a>, <a href="4-rsp.html#SP6_2">§6.2</a><br/>Rules - <a href="4-rls.html#SP3_1">§3.1</a>, <a href="4-rls.html#SP5">§5</a>, <a href="4-rls.html#SP7">§7</a>, <a href="4-rls.html#SP8_1_5">§8.1.5</a>, <a href="4-rls.html#SP12_1">§12.1</a>, <a href="4-rls.html#SP14">§14</a><br/>Equations Support - <a href="4-es.html#SP1">§1</a><br/>Test Scripts - <a href="4-ts2.html#SP3">§3</a><br/>Internal Test Cases - <a href="4-itc.html#SP4">§4</a><br/>Use Options at Run Time - <a href="4-uoart.html#SP1_1">§1.1</a>, <a href="4-uoart.html#SP1_2">§1.2</a><br/>Variables - <a href="4-vrb.html#SP5_1">§5.1</a><br/>Measurements - <a href="4-msr.html#SP1">§1</a><br/>Adjectives - <a href="4-adj.html#SP3_2">§3.2</a>, <a href="4-adj.html#SP5">§5</a><br/>Runtime Support for Kinds - <a href="4-rsfk.html#SP19_3">§19.3</a>, <a href="4-rsfk.html#SP27_1">§27.1</a>, <a href="4-rsfk.html#SP27_2">§27.2</a>, <a href="4-rsfk.html#SP27_3">§27.3</a>, <a href="4-rsfk.html#SP27_4">§27.4</a>, <a href="4-rsfk.html#SP27_5">§27.5</a>, <a href="4-rsfk.html#SP27_6_1">§27.6.1</a>, <a href="4-rsfk.html#SP27_6_2">§27.6.2</a>, <a href="4-rsfk.html#SP27_6_3">§27.6.3</a>, <a href="4-rsfk.html#SP27_6_4">§27.6.4</a>, <a href="4-rsfk.html#SP27_6_5">§27.6.5</a>, <a href="4-rsfk.html#SP27_6_6">§27.6.6</a>, <a href="4-rsfk.html#SP28">§28</a><br/>Extension Files at Run Time - <a href="4-efart.html#SP1">§1</a><br/>Verbs at Run Time - <a href="4-vart.html#SP4_1">§4.1</a>, <a href="4-vart.html#SP4_2">§4.2</a><br/>Relations at Run Time - <a href="4-rart.html#SP4">§4</a>, <a href="4-rart.html#SP4_2">§4.2</a>, <a href="4-rart.html#SP6">§6</a>, <a href="4-rart.html#SP18_1">§18.1</a>, <a href="4-rart.html#SP18_2">§18.2</a>, <a href="4-rart.html#SP18_3">§18.3</a>, <a href="4-rart.html#SP18_4">§18.4</a>, <a href="4-rart.html#SP18_5">§18.5</a>, <a href="4-rart.html#SP18_6">§18.6</a>, <a href="4-rart.html#SP19">§19</a>, <a href="4-rart.html#SP23">§23</a><br/>Literal Patterns at Run Time - <a href="4-lpart.html#SP2">§2</a><br/>Runtime Support for Tables - <a href="4-rsft.html#SP2">§2</a>, <a href="4-rsft.html#SP5">§5</a><br/>Naming - <a href="5-nmn.html#SP2">§2</a><br/>Backdrops - <a href="5-bck.html#SP2_1">§2.1</a>, <a href="5-bck.html#SP2_2">§2.2</a><br/>Regions - <a href="5-rgn.html#SP2">§2</a><br/>The Map - <a href="5-tm.html#SP4">§4</a><br/>Showme Command - <a href="5-sc.html#SP2">§2</a><br/>Scenes - <a href="5-scn.html#SP2">§2</a>, <a href="5-scn.html#SP6">§6</a><br/>Actions - <a href="5-act.html#SP2">§2</a><br/>Looping Over Scope - <a href="5-los.html#SP2_1">§2.1</a><br/>Named Action Patterns - <a href="5-nap.html#SP1">§1</a><br/>Command Grammars - <a href="5-cg.html#SP7">§7</a><br/>Command Grammar Lines - <a href="5-cgl.html#SP2">§2</a>, <a href="5-cgl.html#SP8">§8</a><br/>Noun Filter Tokens - <a href="5-nft.html#SP2">§2</a><br/>Tokens Parsing Values - <a href="5-tpv.html#SP1">§1</a><br/>General Parsing Routines - <a href="5-gpr.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Routines::end</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">Routines::end</span></span>:<br/>List Together - <a href="4-lt.html#SP3_1">§3.1</a><br/>Text Literals - <a href="4-tl.html#SP13_2">§13.2</a><br/>Text Substitutions - <a href="4-ts.html#SP11">§11</a><br/>Responses - <a href="4-rsp.html#SP5_1">§5.1</a>, <a href="4-rsp.html#SP5_2">§5.2</a>, <a href="4-rsp.html#SP6_2">§6.2</a><br/>Rules - <a href="4-rls.html#SP3_1">§3.1</a>, <a href="4-rls.html#SP5">§5</a>, <a href="4-rls.html#SP7">§7</a>, <a href="4-rls.html#SP8_1_5">§8.1.5</a>, <a href="4-rls.html#SP12_1">§12.1</a>, <a href="4-rls.html#SP14">§14</a><br/>Equations Support - <a href="4-es.html#SP1">§1</a><br/>Test Scripts - <a href="4-ts2.html#SP3">§3</a><br/>Internal Test Cases - <a href="4-itc.html#SP4">§4</a><br/>Use Options at Run Time - <a href="4-uoart.html#SP1_1">§1.1</a>, <a href="4-uoart.html#SP1_2">§1.2</a><br/>Variables - <a href="4-vrb.html#SP5_1">§5.1</a><br/>Measurements - <a href="4-msr.html#SP1">§1</a><br/>Adjectives - <a href="4-adj.html#SP3_2">§3.2</a>, <a href="4-adj.html#SP5">§5</a><br/>Runtime Support for Kinds - <a href="4-rsfk.html#SP19_3">§19.3</a>, <a href="4-rsfk.html#SP27_1">§27.1</a>, <a href="4-rsfk.html#SP27_2">§27.2</a>, <a href="4-rsfk.html#SP27_3">§27.3</a>, <a href="4-rsfk.html#SP27_4">§27.4</a>, <a href="4-rsfk.html#SP27_5">§27.5</a>, <a href="4-rsfk.html#SP27_6_1">§27.6.1</a>, <a href="4-rsfk.html#SP27_6_2">§27.6.2</a>, <a href="4-rsfk.html#SP27_6_3">§27.6.3</a>, <a href="4-rsfk.html#SP27_6_4">§27.6.4</a>, <a href="4-rsfk.html#SP27_6_5">§27.6.5</a>, <a href="4-rsfk.html#SP27_6_6">§27.6.6</a>, <a href="4-rsfk.html#SP28">§28</a><br/>Extension Files at Run Time - <a href="4-efart.html#SP1">§1</a><br/>Verbs at Run Time - <a href="4-vart.html#SP4_1">§4.1</a>, <a href="4-vart.html#SP4_2">§4.2</a><br/>Relations at Run Time - <a href="4-rart.html#SP4">§4</a>, <a href="4-rart.html#SP4_2">§4.2</a>, <a href="4-rart.html#SP6">§6</a>, <a href="4-rart.html#SP18_1">§18.1</a>, <a href="4-rart.html#SP18_2">§18.2</a>, <a href="4-rart.html#SP18_3">§18.3</a>, <a href="4-rart.html#SP18_4">§18.4</a>, <a href="4-rart.html#SP18_5">§18.5</a>, <a href="4-rart.html#SP18_6">§18.6</a>, <a href="4-rart.html#SP19">§19</a>, <a href="4-rart.html#SP23">§23</a><br/>Literal Patterns at Run Time - <a href="4-lpart.html#SP2">§2</a><br/>Runtime Support for Tables - <a href="4-rsft.html#SP2">§2</a>, <a href="4-rsft.html#SP5">§5</a><br/>Phrases as Values - <a href="4-cls.html#SP3_2">§3.2</a><br/>Naming - <a href="5-nmn.html#SP2">§2</a><br/>Backdrops - <a href="5-bck.html#SP2_1">§2.1</a>, <a href="5-bck.html#SP2_2">§2.2</a><br/>Regions - <a href="5-rgn.html#SP2">§2</a><br/>The Map - <a href="5-tm.html#SP4">§4</a><br/>Showme Command - <a href="5-sc.html#SP2">§2</a><br/>Scenes - <a href="5-scn.html#SP2">§2</a>, <a href="5-scn.html#SP6">§6</a><br/>Actions - <a href="5-act.html#SP2">§2</a><br/>Looping Over Scope - <a href="5-los.html#SP2_1">§2.1</a><br/>Named Action Patterns - <a href="5-nap.html#SP1">§1</a><br/>Command Grammars - <a href="5-cg.html#SP7">§7</a><br/>Command Grammar Lines - <a href="5-cgl.html#SP2">§2</a>, <a href="5-cgl.html#SP8">§8</a><br/>Noun Filter Tokens - <a href="5-nft.html#SP2">§2</a><br/>Tokens Parsing Values - <a href="5-tpv.html#SP1">§1</a><br/>General Parsing Routines - <a href="5-gpr.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R_kind</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::deduced_function_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">currently_compiling_in_frame</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kernel_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, *</span><span class="identifier-syntax">public_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">currently_compiling_iname</span><span class="plain-syntax">;</span>
|
||||
|
@ -307,7 +307,7 @@ after the call parameters, and is used only as a scratch variable.
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="4-rtn.html#SP4">§4</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-cl.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresscurrent">rtn</li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-rls.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-cl.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresscurrent">rtn</li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresssection"><a href="4-cls.html">cls</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-rls.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -445,7 +445,7 @@ number <span class="extract"><span class="extract-syntax">-1</span></span>).
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-jl.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresscurrent">tl</li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-ts.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-jl.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresscurrent">tl</li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresssection"><a href="4-cls.html">cls</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-ts.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -460,7 +460,7 @@ we aren't doing very much; most TSs will be passed quickly over.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-tl.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresscurrent">ts</li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-rsp.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-tl.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresscurrent">ts</li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresssection"><a href="4-cls.html">cls</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-rsp.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -92,7 +92,7 @@ stipulations on place and possessions attached.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">test_scenario</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure test_scenario is accessed in 4/rsp, 4/rls, 4/act, 4/uoart, 4/vrb, 4/prp, 5/sc, 5/gpr and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure test_scenario is accessed in 4/rsp, 4/rls, 4/act, 4/uoart, 4/vrb, 4/prp, 4/cls, 5/sc, 5/gpr and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -297,7 +297,7 @@ stipulations on place and possessions attached.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-iti.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresscurrent">ts2</li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-itc.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-iti.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresscurrent">ts2</li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresssection"><a href="4-cls.html">cls</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-itc.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -169,7 +169,7 @@ hacky constructs which only the SR should ever refer to.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-uoart.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresscurrent">tv</li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-vrb.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-uoart.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresscurrent">tv</li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresssection"><a href="4-cls.html">cls</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-vrb.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -205,7 +205,7 @@ source code: see the DM4 for details.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-itc.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresscurrent">uoart</li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-tv.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-itc.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresscurrent">uoart</li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresssection"><a href="4-cls.html">cls</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-tv.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -649,7 +649,7 @@ usages to the debugging log.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-ni.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresscurrent">vart</li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-rart.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-ni.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresscurrent">vart</li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresssection"><a href="4-cls.html">cls</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-rart.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -476,7 +476,7 @@ which makes its kind safe. Hence the error messages.
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="4-vrb.html#SP6">§6</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-tv.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresscurrent">vrb</li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-prp.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-tv.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-i6i.html">i6i</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-jl.html">jl</a></li><li class="progresssection"><a href="4-tl.html">tl</a></li><li class="progresssection"><a href="4-ts.html">ts</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-ct.html">ct</a></li><li class="progresssection"><a href="4-cl.html">cl</a></li><li class="progresssection"><a href="4-rtn.html">rtn</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-es.html">es</a></li><li class="progresssection"><a href="4-iti.html">iti</a></li><li class="progresssection"><a href="4-ts2.html">ts2</a></li><li class="progresssection"><a href="4-itc.html">itc</a></li><li class="progresssection"><a href="4-uoart.html">uoart</a></li><li class="progresssection"><a href="4-tv.html">tv</a></li><li class="progresscurrent">vrb</li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-msr.html">msr</a></li><li class="progresssection"><a href="4-epv.html">epv</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-ic.html">ic</a></li><li class="progresssection"><a href="4-adj.html">adj</a></li><li class="progresssection"><a href="4-rsfk.html">rsfk</a></li><li class="progresssection"><a href="4-efart.html">efart</a></li><li class="progresssection"><a href="4-ni.html">ni</a></li><li class="progresssection"><a href="4-vart.html">vart</a></li><li class="progresssection"><a href="4-rart.html">rart</a></li><li class="progresssection"><a href="4-lpart.html">lpart</a></li><li class="progresssection"><a href="4-rsft.html">rsft</a></li><li class="progresssection"><a href="4-cls.html">cls</a></li><li class="progresschapter"><a href="5-nmn.html">5</a></li><li class="progressnext"><a href="4-prp.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -502,7 +502,7 @@ infrastructure, and we access it with a single call.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-scn.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progresscurrent">act</li><li class="progresssection"><a href="5-los.html">los</a></li><li class="progresssection"><a href="5-nap.html">nap</a></li><li class="progresssection"><a href="5-ap.html">ap</a></li><li class="progresssection"><a href="5-gng.html">gng</a></li><li class="progresssection"><a href="5-cg.html">cg</a></li><li class="progresssection"><a href="5-cgl.html">cgl</a></li><li class="progresssection"><a href="5-nft.html">nft</a></li><li class="progresssection"><a href="5-tpv.html">tpv</a></li><li class="progresssection"><a href="5-gpr.html">gpr</a></li><li class="progressnext"><a href="5-los.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-scn.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-tr.html">tr</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progresscurrent">act</li><li class="progresssection"><a href="5-los.html">los</a></li><li class="progresssection"><a href="5-nap.html">nap</a></li><li class="progresssection"><a href="5-ap.html">ap</a></li><li class="progresssection"><a href="5-gng.html">gng</a></li><li class="progresssection"><a href="5-cg.html">cg</a></li><li class="progresssection"><a href="5-cgl.html">cgl</a></li><li class="progresssection"><a href="5-nft.html">nft</a></li><li class="progresssection"><a href="5-tpv.html">tpv</a></li><li class="progresssection"><a href="5-gpr.html">gpr</a></li><li class="progressnext"><a href="5-los.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -911,7 +911,7 @@ and in this case we therefore ignore <span class="extract"><span class="extract-
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-ap.html#SP7">§7</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-nap.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-los.html">los</a></li><li class="progresssection"><a href="5-nap.html">nap</a></li><li class="progresscurrent">ap</li><li class="progresssection"><a href="5-gng.html">gng</a></li><li class="progresssection"><a href="5-cg.html">cg</a></li><li class="progresssection"><a href="5-cgl.html">cgl</a></li><li class="progresssection"><a href="5-nft.html">nft</a></li><li class="progresssection"><a href="5-tpv.html">tpv</a></li><li class="progresssection"><a href="5-gpr.html">gpr</a></li><li class="progressnext"><a href="5-gng.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-nap.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-tr.html">tr</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-los.html">los</a></li><li class="progresssection"><a href="5-nap.html">nap</a></li><li class="progresscurrent">ap</li><li class="progresssection"><a href="5-gng.html">gng</a></li><li class="progresssection"><a href="5-cg.html">cg</a></li><li class="progresssection"><a href="5-cgl.html">cgl</a></li><li class="progresssection"><a href="5-nft.html">nft</a></li><li class="progresssection"><a href="5-tpv.html">tpv</a></li><li class="progresssection"><a href="5-gpr.html">gpr</a></li><li class="progressnext"><a href="5-gng.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -142,7 +142,7 @@
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-bck.html#SP2">§2</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-tp.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresscurrent">bck</li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-los.html">los</a></li><li class="progresssection"><a href="5-nap.html">nap</a></li><li class="progresssection"><a href="5-ap.html">ap</a></li><li class="progresssection"><a href="5-gng.html">gng</a></li><li class="progresssection"><a href="5-cg.html">cg</a></li><li class="progresssection"><a href="5-cgl.html">cgl</a></li><li class="progresssection"><a href="5-nft.html">nft</a></li><li class="progresssection"><a href="5-tpv.html">tpv</a></li><li class="progresssection"><a href="5-gpr.html">gpr</a></li><li class="progressnext"><a href="5-rgn.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-tp.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresscurrent">bck</li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-tr.html">tr</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-los.html">los</a></li><li class="progresssection"><a href="5-nap.html">nap</a></li><li class="progresssection"><a href="5-ap.html">ap</a></li><li class="progresssection"><a href="5-gng.html">gng</a></li><li class="progresssection"><a href="5-cg.html">cg</a></li><li class="progresssection"><a href="5-cgl.html">cgl</a></li><li class="progresssection"><a href="5-nft.html">nft</a></li><li class="progresssection"><a href="5-tpv.html">tpv</a></li><li class="progresssection"><a href="5-gpr.html">gpr</a></li><li class="progressnext"><a href="5-rgn.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -211,7 +211,7 @@ around it, in byte-accessible memory.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-ef.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresscurrent">bd</li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-los.html">los</a></li><li class="progresssection"><a href="5-nap.html">nap</a></li><li class="progresssection"><a href="5-ap.html">ap</a></li><li class="progresssection"><a href="5-gng.html">gng</a></li><li class="progresssection"><a href="5-cg.html">cg</a></li><li class="progresssection"><a href="5-cgl.html">cgl</a></li><li class="progresssection"><a href="5-nft.html">nft</a></li><li class="progresssection"><a href="5-tpv.html">tpv</a></li><li class="progresssection"><a href="5-gpr.html">gpr</a></li><li class="progressnext"><a href="5-spt.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-ef.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresscurrent">bd</li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-tr.html">tr</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-los.html">los</a></li><li class="progresssection"><a href="5-nap.html">nap</a></li><li class="progresssection"><a href="5-ap.html">ap</a></li><li class="progresssection"><a href="5-gng.html">gng</a></li><li class="progresssection"><a href="5-cg.html">cg</a></li><li class="progresssection"><a href="5-cgl.html">cgl</a></li><li class="progresssection"><a href="5-nft.html">nft</a></li><li class="progresssection"><a href="5-tpv.html">tpv</a></li><li class="progresssection"><a href="5-gpr.html">gpr</a></li><li class="progressnext"><a href="5-spt.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -455,7 +455,7 @@ next priority, and so on up the hierarchy.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-gng.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-los.html">los</a></li><li class="progresssection"><a href="5-nap.html">nap</a></li><li class="progresssection"><a href="5-ap.html">ap</a></li><li class="progresssection"><a href="5-gng.html">gng</a></li><li class="progresscurrent">cg</li><li class="progresssection"><a href="5-cgl.html">cgl</a></li><li class="progresssection"><a href="5-nft.html">nft</a></li><li class="progresssection"><a href="5-tpv.html">tpv</a></li><li class="progresssection"><a href="5-gpr.html">gpr</a></li><li class="progressnext"><a href="5-cgl.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-gng.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-tr.html">tr</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-los.html">los</a></li><li class="progresssection"><a href="5-nap.html">nap</a></li><li class="progresssection"><a href="5-ap.html">ap</a></li><li class="progresssection"><a href="5-gng.html">gng</a></li><li class="progresscurrent">cg</li><li class="progresssection"><a href="5-cgl.html">cgl</a></li><li class="progresssection"><a href="5-nft.html">nft</a></li><li class="progresssection"><a href="5-tpv.html">tpv</a></li><li class="progresssection"><a href="5-gpr.html">gpr</a></li><li class="progressnext"><a href="5-cgl.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -1635,7 +1635,7 @@ nothing else.
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-cgl.html#SP10">§10</a> (four times), <a href="5-cgl.html#SP10_1">§10.1</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-cg.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-los.html">los</a></li><li class="progresssection"><a href="5-nap.html">nap</a></li><li class="progresssection"><a href="5-ap.html">ap</a></li><li class="progresssection"><a href="5-gng.html">gng</a></li><li class="progresssection"><a href="5-cg.html">cg</a></li><li class="progresscurrent">cgl</li><li class="progresssection"><a href="5-nft.html">nft</a></li><li class="progresssection"><a href="5-tpv.html">tpv</a></li><li class="progresssection"><a href="5-gpr.html">gpr</a></li><li class="progressnext"><a href="5-nft.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-cg.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-tr.html">tr</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-los.html">los</a></li><li class="progresssection"><a href="5-nap.html">nap</a></li><li class="progresssection"><a href="5-ap.html">ap</a></li><li class="progresssection"><a href="5-gng.html">gng</a></li><li class="progresssection"><a href="5-cg.html">cg</a></li><li class="progresscurrent">cgl</li><li class="progresssection"><a href="5-nft.html">nft</a></li><li class="progresssection"><a href="5-tpv.html">tpv</a></li><li class="progresssection"><a href="5-gpr.html">gpr</a></li><li class="progressnext"><a href="5-nft.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -129,7 +129,7 @@
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure external_file_compilation_data is private to this section.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-se.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresscurrent">ef</li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-los.html">los</a></li><li class="progresssection"><a href="5-nap.html">nap</a></li><li class="progresssection"><a href="5-ap.html">ap</a></li><li class="progresssection"><a href="5-gng.html">gng</a></li><li class="progresssection"><a href="5-cg.html">cg</a></li><li class="progresssection"><a href="5-cgl.html">cgl</a></li><li class="progresssection"><a href="5-nft.html">nft</a></li><li class="progresssection"><a href="5-tpv.html">tpv</a></li><li class="progresssection"><a href="5-gpr.html">gpr</a></li><li class="progressnext"><a href="5-bd.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-se.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresscurrent">ef</li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-tr.html">tr</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-los.html">los</a></li><li class="progresssection"><a href="5-nap.html">nap</a></li><li class="progresssection"><a href="5-ap.html">ap</a></li><li class="progresssection"><a href="5-gng.html">gng</a></li><li class="progresssection"><a href="5-cg.html">cg</a></li><li class="progresssection"><a href="5-cgl.html">cgl</a></li><li class="progresssection"><a href="5-nft.html">nft</a></li><li class="progresssection"><a href="5-tpv.html">tpv</a></li><li class="progresssection"><a href="5-gpr.html">gpr</a></li><li class="progressnext"><a href="5-bd.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -77,7 +77,7 @@
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-prs.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresscurrent">fgr</li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-los.html">los</a></li><li class="progresssection"><a href="5-nap.html">nap</a></li><li class="progresssection"><a href="5-ap.html">ap</a></li><li class="progresssection"><a href="5-gng.html">gng</a></li><li class="progresssection"><a href="5-cg.html">cg</a></li><li class="progresssection"><a href="5-cgl.html">cgl</a></li><li class="progresssection"><a href="5-nft.html">nft</a></li><li class="progresssection"><a href="5-tpv.html">tpv</a></li><li class="progresssection"><a href="5-gpr.html">gpr</a></li><li class="progressnext"><a href="5-se.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-prs.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresscurrent">fgr</li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-tr.html">tr</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-los.html">los</a></li><li class="progresssection"><a href="5-nap.html">nap</a></li><li class="progresssection"><a href="5-ap.html">ap</a></li><li class="progresssection"><a href="5-gng.html">gng</a></li><li class="progresssection"><a href="5-cg.html">cg</a></li><li class="progresssection"><a href="5-cgl.html">cgl</a></li><li class="progresssection"><a href="5-nft.html">nft</a></li><li class="progresssection"><a href="5-tpv.html">tpv</a></li><li class="progresssection"><a href="5-gpr.html">gpr</a></li><li class="progressnext"><a href="5-se.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -134,7 +134,7 @@
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-ap.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-los.html">los</a></li><li class="progresssection"><a href="5-nap.html">nap</a></li><li class="progresssection"><a href="5-ap.html">ap</a></li><li class="progresscurrent">gng</li><li class="progresssection"><a href="5-cg.html">cg</a></li><li class="progresssection"><a href="5-cgl.html">cgl</a></li><li class="progresssection"><a href="5-nft.html">nft</a></li><li class="progresssection"><a href="5-tpv.html">tpv</a></li><li class="progresssection"><a href="5-gpr.html">gpr</a></li><li class="progressnext"><a href="5-cg.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-ap.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-tr.html">tr</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-los.html">los</a></li><li class="progresssection"><a href="5-nap.html">nap</a></li><li class="progresssection"><a href="5-ap.html">ap</a></li><li class="progresscurrent">gng</li><li class="progresssection"><a href="5-cg.html">cg</a></li><li class="progresssection"><a href="5-cgl.html">cgl</a></li><li class="progresssection"><a href="5-nft.html">nft</a></li><li class="progresssection"><a href="5-tpv.html">tpv</a></li><li class="progresssection"><a href="5-gpr.html">gpr</a></li><li class="progressnext"><a href="5-cg.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -1326,7 +1326,7 @@ alter the value of <span class="extract"><span class="extract-syntax">self</span
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-tpv.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-los.html">los</a></li><li class="progresssection"><a href="5-nap.html">nap</a></li><li class="progresssection"><a href="5-ap.html">ap</a></li><li class="progresssection"><a href="5-gng.html">gng</a></li><li class="progresssection"><a href="5-cg.html">cg</a></li><li class="progresssection"><a href="5-cgl.html">cgl</a></li><li class="progresssection"><a href="5-nft.html">nft</a></li><li class="progresssection"><a href="5-tpv.html">tpv</a></li><li class="progresscurrent">gpr</li><li class="progressnextoff">❯</li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-tpv.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-tr.html">tr</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-los.html">los</a></li><li class="progresssection"><a href="5-nap.html">nap</a></li><li class="progresssection"><a href="5-ap.html">ap</a></li><li class="progresssection"><a href="5-gng.html">gng</a></li><li class="progresssection"><a href="5-cg.html">cg</a></li><li class="progresssection"><a href="5-cgl.html">cgl</a></li><li class="progresssection"><a href="5-nft.html">nft</a></li><li class="progresssection"><a href="5-tpv.html">tpv</a></li><li class="progresscurrent">gpr</li><li class="progressnextoff">❯</li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -149,7 +149,7 @@ function togglePopup(material_id) {
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-los.html#SP2">§2</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-act.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresscurrent">los</li><li class="progresssection"><a href="5-nap.html">nap</a></li><li class="progresssection"><a href="5-ap.html">ap</a></li><li class="progresssection"><a href="5-gng.html">gng</a></li><li class="progresssection"><a href="5-cg.html">cg</a></li><li class="progresssection"><a href="5-cgl.html">cgl</a></li><li class="progresssection"><a href="5-nft.html">nft</a></li><li class="progresssection"><a href="5-tpv.html">tpv</a></li><li class="progresssection"><a href="5-gpr.html">gpr</a></li><li class="progressnext"><a href="5-nap.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-act.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-tr.html">tr</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresscurrent">los</li><li class="progresssection"><a href="5-nap.html">nap</a></li><li class="progresssection"><a href="5-ap.html">ap</a></li><li class="progresssection"><a href="5-gng.html">gng</a></li><li class="progresssection"><a href="5-cg.html">cg</a></li><li class="progresssection"><a href="5-cgl.html">cgl</a></li><li class="progresssection"><a href="5-nft.html">nft</a></li><li class="progresssection"><a href="5-tpv.html">tpv</a></li><li class="progresssection"><a href="5-gpr.html">gpr</a></li><li class="progressnext"><a href="5-nap.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -112,7 +112,7 @@ function togglePopup(material_id) {
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure nap_compilation_data is private to this section.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-los.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-los.html">los</a></li><li class="progresscurrent">nap</li><li class="progresssection"><a href="5-ap.html">ap</a></li><li class="progresssection"><a href="5-gng.html">gng</a></li><li class="progresssection"><a href="5-cg.html">cg</a></li><li class="progresssection"><a href="5-cgl.html">cgl</a></li><li class="progresssection"><a href="5-nft.html">nft</a></li><li class="progresssection"><a href="5-tpv.html">tpv</a></li><li class="progresssection"><a href="5-gpr.html">gpr</a></li><li class="progressnext"><a href="5-ap.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-los.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-tr.html">tr</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-los.html">los</a></li><li class="progresscurrent">nap</li><li class="progresssection"><a href="5-ap.html">ap</a></li><li class="progresssection"><a href="5-gng.html">gng</a></li><li class="progresssection"><a href="5-cg.html">cg</a></li><li class="progresssection"><a href="5-cgl.html">cgl</a></li><li class="progresssection"><a href="5-nft.html">nft</a></li><li class="progresssection"><a href="5-tpv.html">tpv</a></li><li class="progresssection"><a href="5-gpr.html">gpr</a></li><li class="progressnext"><a href="5-ap.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -352,7 +352,7 @@ that's why.)
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-cgl.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-los.html">los</a></li><li class="progresssection"><a href="5-nap.html">nap</a></li><li class="progresssection"><a href="5-ap.html">ap</a></li><li class="progresssection"><a href="5-gng.html">gng</a></li><li class="progresssection"><a href="5-cg.html">cg</a></li><li class="progresssection"><a href="5-cgl.html">cgl</a></li><li class="progresscurrent">nft</li><li class="progresssection"><a href="5-tpv.html">tpv</a></li><li class="progresssection"><a href="5-gpr.html">gpr</a></li><li class="progressnext"><a href="5-tpv.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-cgl.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-tr.html">tr</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-los.html">los</a></li><li class="progresssection"><a href="5-nap.html">nap</a></li><li class="progresssection"><a href="5-ap.html">ap</a></li><li class="progresssection"><a href="5-gng.html">gng</a></li><li class="progresssection"><a href="5-cg.html">cg</a></li><li class="progresssection"><a href="5-cgl.html">cgl</a></li><li class="progresscurrent">nft</li><li class="progresssection"><a href="5-tpv.html">tpv</a></li><li class="progresssection"><a href="5-gpr.html">gpr</a></li><li class="progressnext"><a href="5-tpv.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -186,7 +186,7 @@ function togglePopup(material_id) {
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure short_name_notice is private to this section.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-rsft.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresscurrent">nmn</li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-los.html">los</a></li><li class="progresssection"><a href="5-nap.html">nap</a></li><li class="progresssection"><a href="5-ap.html">ap</a></li><li class="progresssection"><a href="5-gng.html">gng</a></li><li class="progresssection"><a href="5-cg.html">cg</a></li><li class="progresssection"><a href="5-cgl.html">cgl</a></li><li class="progresssection"><a href="5-nft.html">nft</a></li><li class="progresssection"><a href="5-tpv.html">tpv</a></li><li class="progresssection"><a href="5-gpr.html">gpr</a></li><li class="progressnext"><a href="5-prs.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-cls.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresscurrent">nmn</li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-tr.html">tr</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-los.html">los</a></li><li class="progresssection"><a href="5-nap.html">nap</a></li><li class="progresssection"><a href="5-ap.html">ap</a></li><li class="progresssection"><a href="5-gng.html">gng</a></li><li class="progresssection"><a href="5-cg.html">cg</a></li><li class="progresssection"><a href="5-cgl.html">cgl</a></li><li class="progresssection"><a href="5-nft.html">nft</a></li><li class="progresssection"><a href="5-tpv.html">tpv</a></li><li class="progresssection"><a href="5-gpr.html">gpr</a></li><li class="progressnext"><a href="5-prs.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue