1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-06-16 23:30:44 +03:00

Further resequencing of early compilation

This commit is contained in:
Graham Nelson 2020-08-01 11:35:56 +01:00
parent efd193fe2e
commit 17381751e8
124 changed files with 1016 additions and 1018 deletions

View file

@ -1,6 +1,6 @@
# Inform 7
v10.1.0-alpha.1+6Q84 'Krypton' (31 July 2020)
v10.1.0-alpha.1+6Q85 'Krypton' (1 August 2020)
## About Inform 7

View file

@ -1,3 +1,3 @@
Prerelease: alpha.1
Build Date: 31 July 2020
Build Number: 6Q84
Build Date: 1 August 2020
Build Number: 6Q85

View file

@ -76,7 +76,7 @@
<span class="definition-keyword">enum</span> <span class="constant-syntax">module_package_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">submodule_identity_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">submodule_request_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">compilation_module_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">compilation_unit_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_schema_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_schema_node_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_schema_token_CLASS</span>
@ -92,7 +92,7 @@
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">module_package</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">submodule_identity</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">submodule_request</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">compilation_module</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">compilation_unit</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_schema</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_schema_node</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_schema_token</span><span class="plain-syntax">)</span>
@ -102,7 +102,7 @@
<span class="plain-syntax">#</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">CORE_MODULE</span>
<span class="identifier-syntax">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">explicit_iname</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_name</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">module</span><span class="plain-syntax">, </span><span class="reserved-syntax">compilation_module</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">unit</span><span class="plain-syntax">, </span><span class="reserved-syntax">compilation_unit</span><span class="plain-syntax">)</span>
<span class="plain-syntax">#</span><span class="identifier-syntax">endif</span>
</pre>
<p class="commentary firstcommentary"><a id="SP4"></a><b>&#167;4. The beginning. </b>(The client doesn't need to call the start and end routines, because the

View file

@ -275,7 +275,7 @@ itself during compilation.
<span class="reserved-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">Site::connectors_request</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">Site::connectors_request</span></span>:<br/>Inter Namespace - <a href="1-in.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">site</span><span class="plain-syntax">.</span><span class="element-syntax">connectors_pr</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">module_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax"> = </span><a href="1-pck.html#SP15" class="function-link"><span class="function-syntax">Packaging::get_module</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"connectors"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">module_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax"> = </span><a href="1-pck.html#SP15" class="function-link"><span class="function-syntax">Packaging::get_unit</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"connectors"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">site</span><span class="plain-syntax">.</span><span class="element-syntax">connectors_pr</span><span class="plain-syntax"> = </span><span class="identifier-syntax">T</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">the_package</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">I</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">site</span><span class="plain-syntax">.</span><span class="element-syntax">connectors_pr</span><span class="plain-syntax">;</span>
@ -283,7 +283,7 @@ itself during compilation.
<span class="reserved-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">Site::veneer_request</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">Site::veneer_request</span></span>:<br/>The Veneer - <a href="1-tv.html#SP1">&#167;1</a><br/>Emitting Inter Schemas - <a href="2-eis.html#SP2_1">&#167;2.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">site</span><span class="plain-syntax">.</span><span class="element-syntax">veneer_pr</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">module_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax"> = </span><a href="1-pck.html#SP15" class="function-link"><span class="function-syntax">Packaging::get_module</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"veneer"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">module_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax"> = </span><a href="1-pck.html#SP15" class="function-link"><span class="function-syntax">Packaging::get_unit</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"veneer"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">site</span><span class="plain-syntax">.</span><span class="element-syntax">veneer_pr</span><span class="plain-syntax"> = </span><span class="identifier-syntax">T</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">the_package</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><a href="1-pck.html#SP12" class="function-link"><span class="function-syntax">Packaging::enter</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">site</span><span class="plain-syntax">.</span><span class="element-syntax">veneer_pr</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">site</span><span class="plain-syntax">.</span><span class="element-syntax">veneer_bookmark</span><span class="plain-syntax"> = </span><a href="1-pck.html#SP10" class="function-link"><span class="function-syntax">Packaging::bubble</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>

View file

@ -398,7 +398,7 @@ following fields set.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">hap</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">HierarchyLocations::attach_new_package</span><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">compilation_module</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">hap_id</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">HierarchyLocations::attach_new_package</span><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">compilation_unit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">hap_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">hap_id</span><span class="plain-syntax"> &lt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">hap_id</span><span class="plain-syntax"> &gt;= </span><span class="identifier-syntax">NO_DEFINED_HAP_VALUES</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">site</span><span class="plain-syntax">.</span><span class="element-syntax">haps_indexed_by_id</span><span class="plain-syntax">[</span><span class="identifier-syntax">hap_id</span><span class="plain-syntax">] == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"invalid HAP request"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">hierarchy_attachment_point</span><span class="plain-syntax"> *</span><span class="identifier-syntax">hap</span><span class="plain-syntax"> = </span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">site</span><span class="plain-syntax">.</span><span class="element-syntax">haps_indexed_by_id</span><span class="plain-syntax">[</span><span class="identifier-syntax">hap_id</span><span class="plain-syntax">];</span>

View file

@ -355,17 +355,17 @@ specification.
<p class="commentary firstcommentary"><a id="SP14"></a><b>&#167;14. Compilation modules. </b></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">compilation_module</span><span class="plain-syntax"> {</span>
<span class="reserved-syntax">typedef</span><span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">compilation_unit</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">module_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inter_presence</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">hanging_from</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">compilation_module</span><span class="plain-syntax">;</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">compilation_unit</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">compilation_module</span><span class="plain-syntax"> *</span><span class="function-syntax">Packaging::new_cm</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">compilation_module</span><span class="plain-syntax">);</span>
<span class="reserved-syntax">compilation_unit</span><span class="plain-syntax"> *</span><span class="function-syntax">Packaging::new_cu</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">compilation_unit</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<ul class="endnotetexts"><li>The structure compilation_module is private to this section.</li></ul>
<ul class="endnotetexts"><li>The structure compilation_unit is private to this section.</li></ul>
<p class="commentary firstcommentary"><a id="SP15"></a><b>&#167;15. Modules. </b>With the code above, then, we can get the Inter hierarchy of packages set up
as far as creating <span class="extract"><span class="extract-syntax">main</span></span>. After that the Hierarchy code takes over, but it
calls the routines below to assist. It will want to create a number of "modules"
@ -383,7 +383,7 @@ following creates modules on demand.
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">module_package</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">module_package</span><span class="plain-syntax"> *</span><span class="function-syntax">Packaging::get_module</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">Packaging::get_module</span></span>:<br/><a href="1-pck.html#SP17">&#167;17</a><br/>Building Site - <a href="1-bs.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">module_package</span><span class="plain-syntax"> *</span><span class="function-syntax">Packaging::get_unit</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">Packaging::get_unit</span></span>:<br/><a href="1-pck.html#SP17">&#167;17</a><br/>Building Site - <a href="1-bs.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Dictionaries::find</span><span class="plain-syntax">(</span><a href="1-bs.html#SP2" class="function-link"><span class="function-syntax">Site::modules_dictionary</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">name</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> (</span><span class="reserved-syntax">module_package</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">Dictionaries::read_value</span><span class="plain-syntax">(</span><a href="1-bs.html#SP2" class="function-link"><span class="function-syntax">Site::modules_dictionary</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
@ -428,26 +428,26 @@ module to have this submodule. It should call one of the following four function
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">#</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">CORE_MODULE</span>
<span class="reserved-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">Packaging::request_submodule</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">Packaging::request_submodule</span></span>:<br/>Hierarchy Locations - <a href="1-hl.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">compilation_module</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">submodule_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sid</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">Packaging::request_submodule</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">Packaging::request_submodule</span></span>:<br/>Hierarchy Locations - <a href="1-hl.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">compilation_unit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">submodule_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sid</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">C</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="1-pck.html#SP17" class="function-link"><span class="function-syntax">Packaging::generic_submodule</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">sid</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="1-pck.html#SP18" class="function-link"><span class="function-syntax">Packaging::new_submodule_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">Modules::inter_presence</span><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">), </span><span class="identifier-syntax">sid</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="1-pck.html#SP18" class="function-link"><span class="function-syntax">Packaging::new_submodule_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">CompilationUnits::inter_presence</span><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">), </span><span class="identifier-syntax">sid</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">Packaging::local_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">submodule_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sid</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="1-pck.html#SP17" class="function-link"><span class="function-syntax">Packaging::request_submodule</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">Modules::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">), </span><span class="identifier-syntax">sid</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="1-pck.html#SP17" class="function-link"><span class="function-syntax">Packaging::request_submodule</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">CompilationUnits::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">), </span><span class="identifier-syntax">sid</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="plain-syntax">#</span><span class="identifier-syntax">endif</span>
<span class="reserved-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">Packaging::generic_submodule</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">Packaging::generic_submodule</span></span>:<br/>Hierarchy Locations - <a href="1-hl.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">submodule_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sid</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="1-pck.html#SP18" class="function-link"><span class="function-syntax">Packaging::new_submodule_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><a href="1-pck.html#SP15" class="function-link"><span class="function-syntax">Packaging::get_module</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"generic"</span><span class="plain-syntax">), </span><span class="identifier-syntax">sid</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="1-pck.html#SP18" class="function-link"><span class="function-syntax">Packaging::new_submodule_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><a href="1-pck.html#SP15" class="function-link"><span class="function-syntax">Packaging::get_unit</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"generic"</span><span class="plain-syntax">), </span><span class="identifier-syntax">sid</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">Packaging::synoptic_submodule</span><button class="popup" onclick="togglePopup('usagePopup19')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup19">Usage of <span class="code-font"><span class="function-syntax">Packaging::synoptic_submodule</span></span>:<br/>Hierarchy Locations - <a href="1-hl.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">submodule_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sid</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="1-pck.html#SP18" class="function-link"><span class="function-syntax">Packaging::new_submodule_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><a href="1-pck.html#SP15" class="function-link"><span class="function-syntax">Packaging::get_module</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"synoptic"</span><span class="plain-syntax">), </span><span class="identifier-syntax">sid</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="1-pck.html#SP18" class="function-link"><span class="function-syntax">Packaging::new_submodule_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><a href="1-pck.html#SP15" class="function-link"><span class="function-syntax">Packaging::get_unit</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"synoptic"</span><span class="plain-syntax">), </span><span class="identifier-syntax">sid</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">Packaging::template_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">submodule_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sid</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="1-pck.html#SP18" class="function-link"><span class="function-syntax">Packaging::new_submodule_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><a href="1-pck.html#SP15" class="function-link"><span class="function-syntax">Packaging::get_module</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"template"</span><span class="plain-syntax">), </span><span class="identifier-syntax">sid</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="1-pck.html#SP18" class="function-link"><span class="function-syntax">Packaging::new_submodule_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><a href="1-pck.html#SP15" class="function-link"><span class="function-syntax">Packaging::get_unit</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"template"</span><span class="plain-syntax">), </span><span class="identifier-syntax">sid</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP18"></a><b>&#167;18. </b>Those in turn all make use of this back-end function:

View file

@ -563,7 +563,6 @@ tree; though it's a little like itemising the baubles on a Christmas tree.
<span class="definition-keyword">enum</span> <span class="constant-syntax">rule_placement_sense_ANNOT</span><span class="plain-syntax"> </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">int</span></span><span class="comment-syntax">: are we listing a rule into something, or out of it?</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">lpe_options_ANNOT</span><span class="plain-syntax"> </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">int</span></span><span class="comment-syntax">: options set for a literal pattern part</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">modal_verb_ANNOT</span><span class="plain-syntax"> </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">verb_conjugation</span></span><span class="comment-syntax">: relevant only for that: e.g., "might"</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">module_ANNOT</span><span class="plain-syntax"> </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">compilation_module</span></span><span class="comment-syntax">: set only for headings, routines and sentences</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">multiplicity_ANNOT</span><span class="plain-syntax"> </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">int</span></span><span class="comment-syntax">: e.g., 5 for "five gold rings"</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">negated_boolean_ANNOT</span><span class="plain-syntax"> </span><span class="comment-syntax"> int: set if adjective/verb meant negatively</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">new_relation_here_ANNOT</span><span class="plain-syntax"> </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">binary_predicate</span></span><span class="comment-syntax">: new relation as subject of "relates" sentence</span>
@ -601,6 +600,7 @@ tree; though it's a little like itemising the baubles on a Christmas tree.
<span class="definition-keyword">enum</span> <span class="constant-syntax">token_check_to_do_ANNOT</span><span class="plain-syntax"> </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">parse_node</span></span><span class="comment-syntax">: what if anything is returned</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">token_to_be_parsed_against_ANNOT</span><span class="plain-syntax"> </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">parse_node</span></span><span class="comment-syntax">: what if anything is returned</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">turned_already_ANNOT</span><span class="plain-syntax"> </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">int</span></span><span class="comment-syntax">: aliasing like "player" to "yourself" performed already</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">unit_ANNOT</span><span class="plain-syntax"> </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">compilation_unit</span></span><span class="comment-syntax">: set only for headings, routines and sentences</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">unproven_ANNOT</span><span class="plain-syntax"> </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">int</span></span><span class="comment-syntax">: this invocation needs run-time typechecking</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">verb_problem_issued_ANNOT</span><span class="plain-syntax"> </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">int</span></span><span class="comment-syntax">: has a problem message about the primary verb been issued already?</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">vu_ANNOT</span><span class="plain-syntax"> </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">verb_usage</span></span><span class="comment-syntax">: for e.g. "does not carry"</span>
@ -642,7 +642,6 @@ tree; though it's a little like itemising the baubles on a Christmas tree.
<span class="identifier-syntax">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_variable_declarations</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind_variable_declaration</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">explicit_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">modal_verb</span><span class="plain-syntax">, </span><span class="identifier-syntax">verb_conjugation</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">module</span><span class="plain-syntax">, </span><span class="identifier-syntax">compilation_module</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">new_relation_here</span><span class="plain-syntax">, </span><span class="reserved-syntax">binary_predicate</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">phrase_invoked</span><span class="plain-syntax">, </span><span class="reserved-syntax">phrase</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">phrase_options_invoked</span><span class="plain-syntax">, </span><span class="reserved-syntax">invocation_options</span><span class="plain-syntax">)</span>
@ -657,6 +656,7 @@ tree; though it's a little like itemising the baubles on a Christmas tree.
<span class="identifier-syntax">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">token_as_parsed</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">token_check_to_do</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">token_to_be_parsed_against</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">unit</span><span class="plain-syntax">, </span><span class="identifier-syntax">compilation_unit</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">vu</span><span class="plain-syntax">, </span><span class="identifier-syntax">verb_usage</span><span class="plain-syntax">)</span>
</pre>
<p class="commentary firstcommentary"><a id="SP9"></a><b>&#167;9. </b>So we itemise the pointer-valued annotations below, and the macro expands

View file

@ -77,11 +77,9 @@ on to the next.
in order of when they work:
</p>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">STARTED_CSEQ</span><span class="plain-syntax"> </span><span class="identifier-syntax">from</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SEMANTIC_LANGUAGE_CSEQ</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SEMANTIC_I_CSEQ</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SEMANTIC_II_CSEQ</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SEMANTIC_III_CSEQ</span>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">SUBDIVIDING_CSEQ</span><span class="plain-syntax"> </span><span class="identifier-syntax">from</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BUILT_IN_STUFF_CSEQ</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SEMANTIC_ANALYSIS_CSEQ</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ASSERTIONS_PASS_1_CSEQ</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ASSERTIONS_PASS_2_CSEQ</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MODEL_CSEQ</span>
@ -102,24 +100,19 @@ is active.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">compiler_booted_up</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Sequence::carry_out</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">Sequence::carry_out</span></span>:<br/>What To Compile - <a href="1-wtc.html#SP2">&#167;2</a></span></button><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="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="identifier-syntax">Time::start_stopwatch</span><span class="plain-syntax">(</span><span class="identifier-syntax">inform7_timer</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"compilation to Inter"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="1-wtc.html#SP4" class="function-link"><span class="function-syntax">Task::advance_stage_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">STARTED_CSEQ</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Starting"</span><span class="plain-syntax">, -1);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">compiler_booted_up</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="1-htc.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Boot up the compiler</span><span class="named-paragraph-number">2.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">compiler_booted_up</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="named-paragraph-container code-font"><a href="1-htc.html#SP2_3" class="named-paragraph-link"><span class="named-paragraph">Perform textual analysis</span><span class="named-paragraph-number">2.3</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-htc.html#SP2_4" class="named-paragraph-link"><span class="named-paragraph">Read the assertions in two passes</span><span class="named-paragraph-number">2.4</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-htc.html#SP2_5" class="named-paragraph-link"><span class="named-paragraph">Make the model world</span><span class="named-paragraph-number">2.5</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-htc.html#SP2_6" class="named-paragraph-link"><span class="named-paragraph">Tables and grammar</span><span class="named-paragraph-number">2.6</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-htc.html#SP2_7" class="named-paragraph-link"><span class="named-paragraph">Phrases and rules</span><span class="named-paragraph-number">2.7</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-htc.html#SP2_8" class="named-paragraph-link"><span class="named-paragraph">Generate inter</span><span class="named-paragraph-number">2.8</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-htc.html#SP2_9" class="named-paragraph-link"><span class="named-paragraph">Generate index and bibliographic file</span><span class="named-paragraph-number">2.9</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-htc.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Divide into compilation units</span><span class="named-paragraph-number">2.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-htc.html#SP2_3" class="named-paragraph-link"><span class="named-paragraph">Build a rudimentary set of kinds, relations, verbs and inference subjects</span><span class="named-paragraph-number">2.3</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-htc.html#SP2_4" class="named-paragraph-link"><span class="named-paragraph">Find the major declarations at non-SENTENCE nodes</span><span class="named-paragraph-number">2.4</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-htc.html#SP2_5" class="named-paragraph-link"><span class="named-paragraph">Diagram the SENTENCE nodes and act on them</span><span class="named-paragraph-number">2.5</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-htc.html#SP2_6" class="named-paragraph-link"><span class="named-paragraph">Make the model world</span><span class="named-paragraph-number">2.6</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-htc.html#SP2_7" class="named-paragraph-link"><span class="named-paragraph">Tables and grammar</span><span class="named-paragraph-number">2.7</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-htc.html#SP2_8" class="named-paragraph-link"><span class="named-paragraph">Phrases and rules</span><span class="named-paragraph-number">2.8</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-htc.html#SP2_9" class="named-paragraph-link"><span class="named-paragraph">Generate inter</span><span class="named-paragraph-number">2.9</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-htc.html#SP2_10" class="named-paragraph-link"><span class="named-paragraph">Generate index and bibliographic file</span><span class="named-paragraph-number">2.10</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="1-wtc.html#SP4" class="function-link"><span class="function-syntax">Task::advance_stage_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">FINISHED_CSEQ</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Ccmplete"</span><span class="plain-syntax">, -1);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">cpu_time_used</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Time::stop_stopwatch</span><span class="plain-syntax">(</span><span class="identifier-syntax">sequence_timer</span><span class="plain-syntax">);</span>
@ -184,60 +177,74 @@ commentary. For what they do, see the relevant sections. Note that although
most of these worker functions are in the <span class="extract"><span class="extract-syntax">core</span></span> module, some are not.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Boot up the compiler</span><span class="named-paragraph-number">2.2</span></span><span class="comment-syntax"> =</span>
<p class="commentary">Before anything else can be done, we must create an empty Inter hierarchy
into which we will "emit" an Inter program. No actual code will be emitted for
some time yet, but identifier names and type declarations need somewhere to go.
We then break the source into "compilation units" &mdash; basically, one for the
main source text and one for each extension &mdash; because the Inter hierarchy
will divide according to these units.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Divide into compilation units</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><a href="1-wtc.html#SP4" class="function-link"><span class="function-syntax">Task::advance_stage_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SUBDIVIDING_CSEQ</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Dividing source into compilation units"</span><span class="plain-syntax">, -1);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="27-em.html#SP2" class="function-link"><span class="function-syntax">Emit::begin</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="16-is.html#SP8" class="function-link"><span class="function-syntax">InferenceSubjects::begin</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">Index::DocReferences::read_xrefs</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="1-htc.html#SP2">&#167;2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_3"></a><b>&#167;2.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Perform textual analysis</span><span class="named-paragraph-number">2.3</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="1-wtc.html#SP4" class="function-link"><span class="function-syntax">Task::advance_stage_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SEMANTIC_LANGUAGE_CSEQ</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Semantic analysis Ia"</span><span class="plain-syntax">, -1);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="26-pl.html#SP11" class="function-link"><span class="function-syntax">Plugins::Manage::start_plugins</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP8" class="function-link"><span class="function-syntax">Task::load_types</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="6-bp.html#SP45" class="function-link"><span class="function-syntax">BinaryPredicates::make_built_in</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="1-wtc.html#SP4" class="function-link"><span class="function-syntax">Task::advance_stage_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SEMANTIC_I_CSEQ</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Semantic analysis Ib"</span><span class="plain-syntax">, -1);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="3-bv.html#SP1" class="function-link"><span class="function-syntax">BootVerbs::bootstrap</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="3-cs.html#SP1" class="function-link"><span class="function-syntax">Classifying::traverse</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="7-rs.html#SP3" class="function-link"><span class="function-syntax">Sentences::RuleSubtrees::register_recently_lexed_phrases</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="7-ptu.html#SP15" class="function-link"><span class="function-syntax">ParseTreeUsage::verify</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="1-wtc.html#SP4" class="function-link"><span class="function-syntax">Task::advance_stage_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SEMANTIC_II_CSEQ</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Semantic analysis II"</span><span class="plain-syntax">, -1);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="7-hdn.html#SP8" class="function-link"><span class="function-syntax">Sentences::Headings::make_the_tree</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="7-hdn.html#SP17" class="function-link"><span class="function-syntax">Sentences::Headings::write_as_xml</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="27-cm.html#SP2" class="function-link"><span class="function-syntax">Modules::traverse_to_define</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="27-cm.html#SP2" class="function-link"><span class="function-syntax">CompilationUnits::determine</span></a><span class="plain-syntax">)</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="1-htc.html#SP2">&#167;2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_3"></a><b>&#167;2.3. </b>Most of the conceptual infrastructure in Inform is created by Inform source
text in the Basic Inform or Standard Rules extensions, but not basic kinds of
value such as "number", or the verb "to mean", or the meaning relation, and
so on. Those absolute basics are made here.
</p>
<span class="plain-syntax"> </span><a href="1-wtc.html#SP4" class="function-link"><span class="function-syntax">Task::advance_stage_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SEMANTIC_III_CSEQ</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Semantic analysis III"</span><span class="plain-syntax">, -1);</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Build a rudimentary set of kinds, relations, verbs and inference subjects</span><span class="named-paragraph-number">2.3</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="1-wtc.html#SP4" class="function-link"><span class="function-syntax">Task::advance_stage_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">BUILT_IN_STUFF_CSEQ</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Making built in infrastructure"</span><span class="plain-syntax">, -1);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="16-is.html#SP8" class="function-link"><span class="function-syntax">InferenceSubjects::make_built_in</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP8" class="function-link"><span class="function-syntax">Task::make_built_in_kind_constructors</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="6-bp.html#SP45" class="function-link"><span class="function-syntax">BinaryPredicates::make_built_in</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="3-bv.html#SP1" class="function-link"><span class="function-syntax">BootVerbs::make_built_in</span></a><span class="plain-syntax">)</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="1-htc.html#SP2">&#167;2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_4"></a><b>&#167;2.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Find the major declarations at non-SENTENCE nodes</span><span class="named-paragraph-number">2.4</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="1-wtc.html#SP4" class="function-link"><span class="function-syntax">Task::advance_stage_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SEMANTIC_ANALYSIS_CSEQ</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Semantic analysis"</span><span class="plain-syntax">, -1);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="7-rs.html#SP3" class="function-link"><span class="function-syntax">RuleSubtrees::register_recently_lexed_phrases</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="23-ad.html#SP5" class="function-link"><span class="function-syntax">Phrases::Adjectives::traverse</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="20-eq.html#SP9" class="function-link"><span class="function-syntax">Equations::traverse_to_create</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="19-tb.html#SP6" class="function-link"><span class="function-syntax">Tables::traverse_to_create</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="22-cs.html#SP2" class="function-link"><span class="function-syntax">Phrases::Manager::traverse_for_names</span></a><span class="plain-syntax">)</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="1-htc.html#SP2">&#167;2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_4"></a><b>&#167;2.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Read the assertions in two passes</span><span class="named-paragraph-number">2.4</span></span><span class="comment-syntax"> =</span>
<p class="commentary firstcommentary"><a id="SP2_5"></a><b>&#167;2.5. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Diagram the SENTENCE nodes and act on them</span><span class="named-paragraph-number">2.5</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">BENCH</span><span class="plain-syntax">(</span><a href="3-cs.html#SP1" class="function-link"><span class="function-syntax">Classifying::traverse</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="1-wtc.html#SP4" class="function-link"><span class="function-syntax">Task::advance_stage_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">ASSERTIONS_PASS_1_CSEQ</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"First pass through assertions"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="9-tfa.html#SP7" class="function-link"><span class="function-syntax">Assertions::Traverse::traverse1</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="19-tb.html#SP7" class="function-link"><span class="function-syntax">Tables::traverse_to_stock</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="1-wtc.html#SP4" class="function-link"><span class="function-syntax">Task::advance_stage_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">ASSERTIONS_PASS_2_CSEQ</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Second pass through assertions"</span><span class="plain-syntax">, -1);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="9-tfa.html#SP7" class="function-link"><span class="function-syntax">Assertions::Traverse::traverse2</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="13-rsfk.html#SP24" class="function-link"><span class="function-syntax">Kinds::RunTime::kind_declarations</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="26-uo.html#SP18" class="function-link"><span class="function-syntax">UseOptions::compile</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="7-ptu.html#SP15" class="function-link"><span class="function-syntax">ParseTreeUsage::verify</span></a><span class="plain-syntax">)</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="1-htc.html#SP2">&#167;2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_5"></a><b>&#167;2.5. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Make the model world</span><span class="named-paragraph-number">2.5</span></span><span class="comment-syntax"> =</span>
<p class="commentary firstcommentary"><a id="SP2_6"></a><b>&#167;2.6. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Make the model world</span><span class="named-paragraph-number">2.6</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="1-wtc.html#SP4" class="function-link"><span class="function-syntax">Task::advance_stage_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">MODEL_CSEQ</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Making the model world"</span><span class="plain-syntax">, -1);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="26-uo.html#SP18" class="function-link"><span class="function-syntax">UseOptions::compile</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="15-pr.html#SP27" class="function-link"><span class="function-syntax">Properties::emit</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="15-epv.html#SP3" class="function-link"><span class="function-syntax">Properties::Emit::allocate_attributes</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">PL::Actions::name_all</span><span class="plain-syntax">)</span>
@ -247,7 +254,7 @@ most of these worker functions are in the <span class="extract"><span class="ext
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="16-cmw.html#SP1" class="function-link"><span class="function-syntax">World::complete</span></a><span class="plain-syntax">)</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="1-htc.html#SP2">&#167;2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_6"></a><b>&#167;2.6. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Tables and grammar</span><span class="named-paragraph-number">2.6</span></span><span class="comment-syntax"> =</span>
<p class="commentary firstcommentary"><a id="SP2_7"></a><b>&#167;2.7. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Tables and grammar</span><span class="named-paragraph-number">2.7</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -264,7 +271,7 @@ most of these worker functions are in the <span class="extract"><span class="ext
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="16-cmw.html#SP2" class="function-link"><span class="function-syntax">World::complete_additions</span></a><span class="plain-syntax">)</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="1-htc.html#SP2">&#167;2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_7"></a><b>&#167;2.7. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Phrases and rules</span><span class="named-paragraph-number">2.7</span></span><span class="comment-syntax"> =</span>
<p class="commentary firstcommentary"><a id="SP2_8"></a><b>&#167;2.8. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Phrases and rules</span><span class="named-paragraph-number">2.8</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -282,7 +289,7 @@ most of these worker functions are in the <span class="extract"><span class="ext
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="13-rsfk.html#SP24" class="function-link"><span class="function-syntax">Kinds::RunTime::compile_instance_counts</span></a><span class="plain-syntax">)</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="1-htc.html#SP2">&#167;2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_8"></a><b>&#167;2.8. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Generate inter</span><span class="named-paragraph-number">2.8</span></span><span class="comment-syntax"> =</span>
<p class="commentary firstcommentary"><a id="SP2_9"></a><b>&#167;2.9. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Generate inter</span><span class="named-paragraph-number">2.9</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -381,7 +388,7 @@ most of these worker functions are in the <span class="extract"><span class="ext
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="26-uo.html#SP24" class="function-link"><span class="function-syntax">UseOptions::configure_template</span></a><span class="plain-syntax">)</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="1-htc.html#SP2">&#167;2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_9"></a><b>&#167;2.9. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Generate index and bibliographic file</span><span class="named-paragraph-number">2.9</span></span><span class="comment-syntax"> =</span>
<p class="commentary firstcommentary"><a id="SP2_10"></a><b>&#167;2.10. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Generate index and bibliographic file</span><span class="named-paragraph-number">2.10</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">

File diff suppressed because one or more lines are too long

View file

@ -118,7 +118,7 @@ which create routines which... and so on.
</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">Calculus::Propositions::Deferred::compile_remaining_deferred</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">Calculus::Propositions::Deferred::compile_remaining_deferred</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Calculus::Propositions::Deferred::compile_remaining_deferred</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">Calculus::Propositions::Deferred::compile_remaining_deferred</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="12-cdp.html#SP2" class="function-link"><span class="function-syntax">Calculus::Propositions::Deferred::compilation_coroutine</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax">}</span>

View file

@ -122,7 +122,7 @@ all deferral requests are redeemed &mdash; they would then never be reached.
<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_further_deferrals</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">Calculus::Deferrals::allow_no_further_deferrals</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">Calculus::Deferrals::allow_no_further_deferrals</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Calculus::Deferrals::allow_no_further_deferrals</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">Calculus::Deferrals::allow_no_further_deferrals</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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">no_further_deferrals</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>

View file

@ -781,7 +781,7 @@ recursively scanned through for us, so that if we have seen a construction
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::RunTime::compile_structures</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">Kinds::RunTime::compile_structures</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::RunTime::compile_structures</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">Kinds::RunTime::compile_structures</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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">runtime_kind_structure</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">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">rks</span><span class="plain-syntax">, </span><span class="reserved-syntax">runtime_kind_structure</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">rks</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kind_described</span><span class="plain-syntax">;</span>
@ -941,7 +941,7 @@ property values, table entries, list items) of pointer-value 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">Kinds::RunTime::compile_heap_allocator</span><button class="popup" onclick="togglePopup('usagePopup20')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup20">Usage of <span class="code-font"><span class="function-syntax">Kinds::RunTime::compile_heap_allocator</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::RunTime::compile_heap_allocator</span><button class="popup" onclick="togglePopup('usagePopup20')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup20">Usage of <span class="code-font"><span class="function-syntax">Kinds::RunTime::compile_heap_allocator</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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="named-paragraph-container code-font"><a href="13-rsfk.html#SP18_1" class="named-paragraph-link"><span class="named-paragraph">Compile a constant for the heap size needed</span><span class="named-paragraph-number">18.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
@ -1242,7 +1242,7 @@ each such kind, and needed at run-time.
<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">Kinds::RunTime::kind_declarations</span><button class="popup" onclick="togglePopup('usagePopup28')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup28">Usage of <span class="code-font"><span class="function-syntax">Kinds::RunTime::kind_declarations</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_4">&#167;2.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::RunTime::kind_declarations</span><button class="popup" onclick="togglePopup('usagePopup28')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup28">Usage of <span class="code-font"><span class="function-syntax">Kinds::RunTime::kind_declarations</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_5">&#167;2.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">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">; </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_BASE_KINDS</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="13-rsfk.html#SP21" class="function-link"><span class="function-syntax">Kinds::RunTime::base_represented_in_inter</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) {</span>
@ -1258,7 +1258,7 @@ each such kind, and needed at run-time.
<span class="plain-syntax"> </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><a href="27-em.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::RunTime::compile_instance_counts</span><button class="popup" onclick="togglePopup('usagePopup30')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup30">Usage of <span class="code-font"><span class="function-syntax">Kinds::RunTime::compile_instance_counts</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_7">&#167;2.7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::RunTime::compile_instance_counts</span><button class="popup" onclick="togglePopup('usagePopup30')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup30">Usage of <span class="code-font"><span class="function-syntax">Kinds::RunTime::compile_instance_counts</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</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">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_BASE_KINDS</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Kinds::Behaviour::is_an_enumeration</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) || (</span><span class="identifier-syntax">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">))) {</span>
@ -1287,7 +1287,7 @@ each such kind, and needed at run-time.
<span class="plain-syntax"> </span><a href="13-rsfk.html#SP24" class="function-link"><span class="function-syntax">Kinds::RunTime::compile_nnci</span></a><span class="plain-syntax">(</span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">RNG_SEED_AT_START_OF_PLAY_HL</span><span class="plain-syntax">), </span><a href="1-wtc.html#SP7" class="function-link"><span class="function-syntax">Task::rng_seed</span></a><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">Kinds::RunTime::compile_data_type_support_routines</span><button class="popup" onclick="togglePopup('usagePopup31')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup31">Usage of <span class="code-font"><span class="function-syntax">Kinds::RunTime::compile_data_type_support_routines</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::RunTime::compile_data_type_support_routines</span><button class="popup" onclick="togglePopup('usagePopup31')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup31">Usage of <span class="code-font"><span class="function-syntax">Kinds::RunTime::compile_data_type_support_routines</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_BASE_KINDS</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Compare::lt</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">)) </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span>
@ -2050,7 +2050,7 @@ Z-machine array space.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::RunTime::I7_Kind_Name_routine</span><button class="popup" onclick="togglePopup('usagePopup32')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup32">Usage of <span class="code-font"><span class="function-syntax">Kinds::RunTime::I7_Kind_Name_routine</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::RunTime::I7_Kind_Name_routine</span><button class="popup" onclick="togglePopup('usagePopup32')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup32">Usage of <span class="code-font"><span class="function-syntax">Kinds::RunTime::I7_Kind_Name_routine</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">I7_KIND_NAME_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><a href="26-rt.html#SP1" class="function-link"><span class="function-syntax">Routines::begin</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">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">k_s</span><span class="plain-syntax"> = </span><a href="24-lv.html#SP11" class="function-link"><span class="function-syntax">LocalVariables::add_named_call_as_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"k"</span><span class="plain-syntax">);</span>

View file

@ -245,7 +245,7 @@ For now, though, we make a parallel decision here.
</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">Properties::Emit::allocate_attributes</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">Properties::Emit::allocate_attributes</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_5">&#167;2.5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Properties::Emit::allocate_attributes</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">Properties::Emit::allocate_attributes</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_6">&#167;2.6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">slots_given_away</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">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="reserved-syntax">property</span><span class="plain-syntax">) {</span>

View file

@ -218,7 +218,7 @@ definition structure stands incomplete for a while. Filling it in is called
</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">Properties::Measurement::validate_definitions</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">Properties::Measurement::validate_definitions</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_6">&#167;2.6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Properties::Measurement::validate_definitions</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">Properties::Measurement::validate_definitions</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_7">&#167;2.7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">measurement_definition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">mdef</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">mdef</span><span class="plain-syntax">, </span><span class="reserved-syntax">measurement_definition</span><span class="plain-syntax">) </span><a href="15-ma.html#SP8" class="function-link"><span class="function-syntax">Properties::Measurement::validate</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">mdef</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
@ -468,7 +468,7 @@ can't normally be unravelled at compile time.
<span class="plain-syntax"> </span><span class="identifier-syntax">mdef</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">superlative</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">; </span><span class="comment-syntax"> but it may be set below</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">mdef</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">headword_as_adjective</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="comment-syntax"> but it will certainly be set below</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="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::package</span></a><span class="plain-syntax">(</span><a href="27-cm.html#SP6" class="function-link"><span class="function-syntax">Modules::current</span></a><span class="plain-syntax">(), </span><span class="constant-syntax">ADJECTIVE_MEANINGS_HAP</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="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::package</span></a><span class="plain-syntax">(</span><a href="27-cm.html#SP6" class="function-link"><span class="function-syntax">CompilationUnits::current</span></a><span class="plain-syntax">(), </span><span class="constant-syntax">ADJECTIVE_MEANINGS_HAP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">mdef</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">mdef_iname</span><span class="plain-syntax"> = </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">MEASUREMENT_FN_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="15-ma.html#SP11">&#167;11</a>.</li></ul>
@ -480,7 +480,7 @@ can't normally be unravelled at compile time.
<span class="plain-syntax"> </span><span class="identifier-syntax">Grading::make_superlative</span><span class="plain-syntax">(</span><span class="identifier-syntax">mdef</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">headword</span><span class="plain-syntax">, </span><a href="1-wtc.html#SP5" class="function-link"><span class="function-syntax">Task::language_of_syntax</span></a><span class="plain-syntax">());</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="15-ma.html#SP11_4_1" class="named-paragraph-link"><span class="named-paragraph">Feed the preamble for the superlative phrase into the lexer</span><span class="named-paragraph-number">11.4.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="15-ma.html#SP11_4_2" class="named-paragraph-link"><span class="named-paragraph">Feed the body of the superlative phrase into the lexer</span><span class="named-paragraph-number">11.4.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="7-rs.html#SP3" class="function-link"><span class="function-syntax">Sentences::RuleSubtrees::register_recently_lexed_phrases</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="7-rs.html#SP3" class="function-link"><span class="function-syntax">RuleSubtrees::register_recently_lexed_phrases</span></a><span class="plain-syntax">();</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="15-ma.html#SP11">&#167;11</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP11_4_1"></a><b>&#167;11.4.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Feed the preamble for the superlative phrase into the lexer</span><span class="named-paragraph-number">11.4.1</span></span><span class="comment-syntax"> =</span>
@ -559,7 +559,7 @@ can't normally be unravelled at compile time.
<p class="commentary firstcommentary"><a id="SP13"></a><b>&#167;13. Support routines for measurement. </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">Properties::Measurement::compile_MADJ_routines</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">Properties::Measurement::compile_MADJ_routines</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Properties::Measurement::compile_MADJ_routines</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">Properties::Measurement::compile_MADJ_routines</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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">measurement_definition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">mdef</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">mdef</span><span class="plain-syntax">, </span><span class="reserved-syntax">measurement_definition</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">mdef</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">property_schema_written</span><span class="plain-syntax">) {</span>

View file

@ -94,7 +94,7 @@ a value with the owner; it isn't that either/or properties are unloved.)
<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">property</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">name</span><span class="plain-syntax">; </span><span class="comment-syntax"> name of property</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">ambiguous_name</span><span class="plain-syntax">; </span><span class="comment-syntax"> does this look like a property test, e.g., "point of view"?</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">compilation_module</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owning_module</span><span class="plain-syntax">; </span><span class="comment-syntax"> where defined</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="comment-syntax"> where defined</span>
<span class="plain-syntax"> </span><span class="comment-syntax"> the basic nature of this property</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">either_or</span><span class="plain-syntax">; </span><span class="comment-syntax"> is this an either/or property? if not, it is a valued one</span>
@ -277,7 +277,7 @@ something.
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">prn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">name</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">prn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">owning_module</span><span class="plain-syntax"> = </span><a href="27-cm.html#SP5" class="function-link"><span class="function-syntax">Modules::find</span></a><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">prn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">owning_module</span><span class="plain-syntax"> = </span><a href="27-cm.html#SP5" class="function-link"><span class="function-syntax">CompilationUnits::find</span></a><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">prn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ambiguous_name</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;name-looking-like-property-test&gt;</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">prn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">applicable_to</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">prn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">either_or</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
@ -855,7 +855,7 @@ we find it, we compile it and return <span class="extract"><span class="extract-
<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">Properties::emit</span><button class="popup" onclick="togglePopup('usagePopup27')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup27">Usage of <span class="code-font"><span class="function-syntax">Properties::emit</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_5">&#167;2.5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Properties::emit</span><button class="popup" onclick="togglePopup('usagePopup27')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup27">Usage of <span class="code-font"><span class="function-syntax">Properties::emit</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_6">&#167;2.6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="reserved-syntax">property</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">prn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">property_value_kind</span><span class="plain-syntax">;</span>
@ -887,7 +887,7 @@ we find it, we compile it and return <span class="extract"><span class="extract-
<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">Properties::annotate_attributes</span><button class="popup" onclick="togglePopup('usagePopup28')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup28">Usage of <span class="code-font"><span class="function-syntax">Properties::annotate_attributes</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_7">&#167;2.7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Properties::annotate_attributes</span><button class="popup" onclick="togglePopup('usagePopup28')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup28">Usage of <span class="code-font"><span class="function-syntax">Properties::annotate_attributes</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</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">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="reserved-syntax">property</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="15-pr.html#SP16" class="function-link"><span class="function-syntax">Properties::is_either_or</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">)) {</span>

View file

@ -104,7 +104,7 @@ aren't allowed to add I7-accessible properties.)
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">World::complete</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">World::complete</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_5">&#167;2.5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">World::complete</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">World::complete</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_6">&#167;2.6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="16-cmw.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Stages II and III of the completion process</span><span class="named-paragraph-number">1.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="16-cmw.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Stage IV of the completion process</span><span class="named-paragraph-number">1.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
@ -290,7 +290,7 @@ about the Portal, to stand.
</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">World::complete_additions</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">World::complete_additions</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_6">&#167;2.6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">World::complete_additions</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">World::complete_additions</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_7">&#167;2.7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="26-pc.html#SP6" class="function-link"><span class="function-syntax">Plugins::Call::complete_model</span></a><span class="plain-syntax">(5);</span>
<span class="plain-syntax">}</span>
</pre>

View file

@ -92,7 +92,7 @@ to write anything, then put the same question to the subjects.
</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">World::Compile::compile</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">World::Compile::compile</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">World::Compile::compile</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">World::Compile::compile</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="26-pc.html#SP6" class="function-link"><span class="function-syntax">Plugins::Call::compile_model_tables</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="identifier-syntax">nc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NUMBER_CREATED</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_constructor</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">rough_array_memory_used</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> *)</span>

View file

@ -220,11 +220,12 @@ following.
</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">InferenceSubjects::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">InferenceSubjects::begin</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_2">&#167;2.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">InferenceSubjects::make_built_in</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">InferenceSubjects::make_built_in</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_3">&#167;2.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="identifier-syntax">model_world</span><span class="plain-syntax"> = </span><a href="16-is.html#SP8" class="function-link"><span class="function-syntax">InferenceSubjects::new_fundamental</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="string-syntax">"model-world"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">nonlocal_variables</span><span class="plain-syntax"> = </span><a href="16-is.html#SP8" class="function-link"><span class="function-syntax">InferenceSubjects::new_fundamental</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">model_world</span><span class="plain-syntax">, </span><span class="string-syntax">"global-variables"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">global_constants</span><span class="plain-syntax"> = </span><a href="16-is.html#SP8" class="function-link"><span class="function-syntax">InferenceSubjects::new_fundamental</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">model_world</span><span class="plain-syntax">, </span><span class="string-syntax">"global-constants"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">relations</span><span class="plain-syntax"> = </span><a href="16-is.html#SP8" class="function-link"><span class="function-syntax">InferenceSubjects::new_fundamental</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">model_world</span><span class="plain-syntax">, </span><span class="string-syntax">"relations"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="26-pc.html#SP6" class="function-link"><span class="function-syntax">Plugins::Call::create_inference_subjects</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="function-syntax">InferenceSubjects::new_fundamental</span><span class="plain-syntax">(</span><span class="reserved-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lname</span><span class="plain-syntax">) {</span>

View file

@ -389,7 +389,7 @@ track of the content of each response.
</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">Strings::compile_responses</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">Strings::compile_responses</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Strings::compile_responses</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">Strings::compile_responses</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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="named-paragraph-container code-font"><a href="17-rs.html#SP7_1" class="named-paragraph-link"><span class="named-paragraph">Compile the array holding the current text of each response</span><span class="named-paragraph-number">7.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="17-rs.html#SP7_2" class="named-paragraph-link"><span class="named-paragraph">Compile the PrintResponse routine</span><span class="named-paragraph-number">7.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="17-rs.html#SP7_3" class="named-paragraph-link"><span class="named-paragraph">Compile the Response Divisions array</span><span class="named-paragraph-number">7.3</span></a></span><span class="plain-syntax">;</span>

View file

@ -375,7 +375,7 @@ number <span class="extract"><span class="extract-syntax">-1</span></span>).
</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">Strings::TextLiterals::compile</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">Strings::TextLiterals::compile</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Strings::TextLiterals::compile</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">Strings::TextLiterals::compile</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">root_of_literal_text</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="17-tl.html#SP14" class="function-link"><span class="function-syntax">Strings::TextLiterals::traverse_lts</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">root_of_literal_text</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>

View file

@ -95,7 +95,7 @@ don't exist, and ignore them until they come up later.
<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">ts_iname</span><span class="plain-syntax">; </span><span class="comment-syntax"> the I6 array for this</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ts_routine_iname</span><span class="plain-syntax">; </span><span class="comment-syntax"> the routine to implement it</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">ts_sb_needed</span><span class="plain-syntax">; </span><span class="comment-syntax"> reference copy of small block needed as a constant?</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">compilation_module</span><span class="plain-syntax"> *</span><span class="identifier-syntax">belongs_to_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">compilation_unit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">belongs_to_module</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">text_substitution</span><span class="plain-syntax">;</span>
</pre>
@ -159,7 +159,7 @@ to the same routines to print them.
<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><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::package_within</span></a><span class="plain-syntax">(</span><span class="constant-syntax">LITERALS_HAP</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">ts</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ts_iname</span><span class="plain-syntax"> = </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">TEXT_SUBSTITUTION_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">PR</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">ts</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ts_routine_iname</span><span class="plain-syntax"> = </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">TEXT_SUBSTITUTION_FN_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">PR</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">ts</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">belongs_to_module</span><span class="plain-syntax"> = </span><a href="27-cm.html#SP6" class="function-link"><span class="function-syntax">Modules::current</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">ts</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">belongs_to_module</span><span class="plain-syntax"> = </span><a href="27-cm.html#SP6" class="function-link"><span class="function-syntax">CompilationUnits::current</span></a><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">TEXT_SUBSTITUTIONS</span><span class="plain-syntax">, </span><span class="string-syntax">"Requesting text routine %d %08x %W %08x\n"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">ts</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">, (</span><span class="reserved-syntax">int</span><span class="plain-syntax">) </span><span class="identifier-syntax">phsf</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</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">ts</span><span class="plain-syntax">;</span>
@ -182,7 +182,7 @@ to do but panic.
</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">Strings::TextSubstitutions::allow_no_further_text_subs</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">Strings::TextSubstitutions::allow_no_further_text_subs</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Strings::TextSubstitutions::allow_no_further_text_subs</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">Strings::TextSubstitutions::allow_no_further_text_subs</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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">no_further_text_subs</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
@ -426,20 +426,20 @@ a request for a new text substitution to be compiled later...
<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">ts_code_block</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">RULE_NT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::set_module</span><span class="plain-syntax">(</span><span class="identifier-syntax">ts_code_block</span><span class="plain-syntax">, </span><span class="identifier-syntax">ts</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">belongs_to_module</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">compilation_module</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cm</span><span class="plain-syntax"> = </span><a href="27-cm.html#SP6" class="function-link"><span class="function-syntax">Modules::current</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="27-cm.html#SP6" class="function-link"><span class="function-syntax">Modules::set_current_to</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ts</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">belongs_to_module</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::set_unit</span><span class="plain-syntax">(</span><span class="identifier-syntax">ts_code_block</span><span class="plain-syntax">, </span><span class="identifier-syntax">ts</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">belongs_to_module</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">compilation_unit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cm</span><span class="plain-syntax"> = </span><a href="27-cm.html#SP6" class="function-link"><span class="function-syntax">CompilationUnits::current</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="27-cm.html#SP6" class="function-link"><span class="function-syntax">CompilationUnits::set_current_to</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ts</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">belongs_to_module</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">ts_code_block</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">INVOCATION_LIST_NT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::set_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">ts_code_block</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">, </span><span class="identifier-syntax">ts</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">unsubstituted_text</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::write_int</span><span class="plain-syntax">(</span><span class="identifier-syntax">ts_code_block</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">, </span><span class="constant-syntax">from_text_substitution_ANNOT</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="7-rs.html#SP6" class="function-link"><span class="function-syntax">Sentences::RuleSubtrees::parse_routine_structure</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ts_code_block</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="7-rs.html#SP6" class="function-link"><span class="function-syntax">RuleSubtrees::parse_routine_structure</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ts_code_block</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="25-cp.html#SP5" class="function-link"><span class="function-syntax">Routines::Compile::code_block_outer</span></a><span class="plain-syntax">(0, </span><span class="identifier-syntax">ts_code_block</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::rtrue</span><span class="plain-syntax">(</span><a href="27-em.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="constant-syntax">END_COMPILATION_MODE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="27-cm.html#SP6" class="function-link"><span class="function-syntax">Modules::set_current_to</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cm</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="27-cm.html#SP6" class="function-link"><span class="function-syntax">CompilationUnits::set_current_to</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cm</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="17-ts.html#SP12">&#167;12</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP13"></a><b>&#167;13. </b>See the "Responses" section for why, but we sometimes want to force

View file

@ -345,7 +345,7 @@ problem messages out into the open &mdash;
</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">Lists::check</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">Lists::check</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Lists::check</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">Lists::check</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">problem_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">literal_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ll</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">ll</span><span class="plain-syntax">, </span><span class="reserved-syntax">literal_list</span><span class="plain-syntax">)</span>
@ -387,7 +387,7 @@ so there was once a two-page explanation here, but it is now blessedly 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">Lists::compile</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">Lists::compile</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Lists::compile</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">Lists::compile</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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">literal_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ll</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">problem_count</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">)</span>

View file

@ -71,7 +71,7 @@ function togglePopup(material_id) {
<p class="commentary firstcommentary"><a id="SP1"></a><b>&#167;1. Compiling tables. </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">Tables::Support::compile</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Tables::Support::compile</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Tables::Support::compile</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Tables::Support::compile</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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="named-paragraph-container code-font"><a href="19-rsft.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Compile the data structures for entry storage</span><span class="named-paragraph-number">1.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="19-rsft.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Compile the blanks bitmap table</span><span class="named-paragraph-number">1.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="19-rsft.html#SP1_3" class="named-paragraph-link"><span class="named-paragraph">Compile the Table of Tables</span><span class="named-paragraph-number">1.3</span></a></span><span class="plain-syntax">;</span>
@ -390,7 +390,7 @@ table values and prints the (title-cased) name of the one which matches.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Tables::Support::compile_print_table_names</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">Tables::Support::compile_print_table_names</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_6">&#167;2.6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Tables::Support::compile_print_table_names</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">Tables::Support::compile_print_table_names</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_7">&#167;2.7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Kinds::Behaviour::get_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_table</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="26-rt.html#SP1" class="function-link"><span class="function-syntax">Routines::begin</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>

View file

@ -145,7 +145,7 @@ established names of tables and columns:
</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">Tables::traverse_to_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">Tables::traverse_to_create</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_3">&#167;2.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Tables::traverse_to_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">Tables::traverse_to_create</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_4">&#167;2.4</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">SyntaxTree::traverse</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP5" class="function-link"><span class="function-syntax">Task::syntax_tree</span></a><span class="plain-syntax">(), </span><a href="19-tb.html#SP6" class="function-link"><span class="function-syntax">Tables::visit_to_create</span></a><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">Tables::visit_to_create</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>
@ -161,7 +161,7 @@ see below.
</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">Tables::traverse_to_stock</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">Tables::traverse_to_stock</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_4">&#167;2.4</a>, <a href="1-htc.html#SP2_7">&#167;2.7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Tables::traverse_to_stock</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">Tables::traverse_to_stock</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_5">&#167;2.5</a>, <a href="1-htc.html#SP2_8">&#167;2.8</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">phase</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">phase</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">; </span><span class="identifier-syntax">phase</span><span class="plain-syntax"> &lt;= </span><span class="constant-syntax">3</span><span class="plain-syntax">; </span><span class="identifier-syntax">phase</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">;</span>
@ -178,7 +178,7 @@ suggests is never a good idea.
</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">Tables::check_tables_for_kind_clashes</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">Tables::check_tables_for_kind_clashes</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_6">&#167;2.6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Tables::check_tables_for_kind_clashes</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">Tables::check_tables_for_kind_clashes</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_7">&#167;2.7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="reserved-syntax">table</span><span 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">t</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">table_name_text</span><span class="plain-syntax">)) &amp;&amp; (</span><span class="function-syntax">&lt;k-kind-articled&gt;(t-&gt;</span><span class="element-syntax">table_name_text</span><span class="plain-syntax">)) &amp;&amp;</span>
@ -216,7 +216,7 @@ some of these fields have been properly filled in.
<span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">preserve_row_order_at_run_time</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">t</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">amendment_of</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">t</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">has_been_amended</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">t</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">table_package</span><span class="plain-syntax"> = </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::package</span></a><span class="plain-syntax">(</span><a href="27-cm.html#SP5" class="function-link"><span class="function-syntax">Modules::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">PN</span><span class="plain-syntax">), </span><span class="constant-syntax">TABLES_HAP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">table_package</span><span class="plain-syntax"> = </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::package</span></a><span class="plain-syntax">(</span><a href="27-cm.html#SP5" class="function-link"><span class="function-syntax">CompilationUnits::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">PN</span><span class="plain-syntax">), </span><span class="constant-syntax">TABLES_HAP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">table_identifier</span><span class="plain-syntax"> = </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">TABLE_DATA_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">table_package</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">approximate_array_space_needed</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">t</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">disable_block_constant_correction</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
@ -1276,7 +1276,7 @@ people &mdash; it needs to be "yourself" instead, since "player" is a variable.
</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">Tables::complete</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">Tables::complete</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Tables::complete</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">Tables::complete</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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="named-paragraph-container code-font"><a href="19-tb.html#SP26_1" class="named-paragraph-link"><span class="named-paragraph">Finally make any table amendments which have been called for</span><span class="named-paragraph-number">26.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="19-tb.html#SP26_2" class="named-paragraph-link"><span class="named-paragraph">Create blank rows described textually, if they were</span><span class="named-paragraph-number">26.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="19-tb.html#SP26_3" class="named-paragraph-link"><span class="named-paragraph">Create blank rows for each instance of a kind, if requested</span><span class="named-paragraph-number">26.3</span></a></span><span class="plain-syntax">;</span>

View file

@ -210,7 +210,7 @@ value <span class="extract"><span class="extract-syntax">pi</span></span>.
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">sentence_handler</span><span class="plain-syntax"> </span><span class="identifier-syntax">EQUATION_SH_handler</span><span class="plain-syntax"> = { </span><span class="identifier-syntax">EQUATION_NT</span><span class="plain-syntax">, -1, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax"> };</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Equations::traverse_to_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">Equations::traverse_to_create</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_3">&#167;2.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Equations::traverse_to_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">Equations::traverse_to_create</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_4">&#167;2.4</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">SyntaxTree::traverse</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP5" class="function-link"><span class="function-syntax">Task::syntax_tree</span></a><span class="plain-syntax">(), </span><a href="20-eq.html#SP9" class="function-link"><span class="function-syntax">Equations::visit_to_create</span></a><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">Equations::visit_to_create</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>
@ -392,7 +392,7 @@ source text:
</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">Equations::traverse_to_stock</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">Equations::traverse_to_stock</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_7">&#167;2.7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Equations::traverse_to_stock</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">Equations::traverse_to_stock</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</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">equation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eqn</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">eqn</span><span class="plain-syntax">, </span><span class="reserved-syntax">equation</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">eqn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">equation_created_at</span><span class="plain-syntax">;</span>
@ -1815,7 +1815,7 @@ for equations a value; they are never called.
</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">Equations::compile</span><button class="popup" onclick="togglePopup('usagePopup38')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup38">Usage of <span class="code-font"><span class="function-syntax">Equations::compile</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Equations::compile</span><button class="popup" onclick="togglePopup('usagePopup38')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup38">Usage of <span class="code-font"><span class="function-syntax">Equations::compile</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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">equation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eqn</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">eqn</span><span class="plain-syntax">, </span><span class="reserved-syntax">equation</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="26-rt.html#SP1" class="function-link"><span class="function-syntax">Routines::begin</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">eqn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">eqn_iname</span><span class="plain-syntax">);</span>

View file

@ -435,7 +435,7 @@ noun for it; for example, the "announcing activity".
<span class="plain-syntax"> </span><a href="14-sp.html#SP1" class="function-link"><span class="function-syntax">Specifications::to_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">));</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Activities::activity_var_creators</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">Activities::activity_var_creators</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Activities::activity_var_creators</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">Activities::activity_var_creators</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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">activity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">av</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">av</span><span class="plain-syntax">, </span><span class="reserved-syntax">activity</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="21-sv.html#SP3" class="function-link"><span class="function-syntax">StackedVariables::owner_empty</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">av</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">owned_by_av</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>
@ -732,10 +732,10 @@ values, of the kind to which the activity applies.
<span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> (</span><span class="identifier-syntax">downs</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) { </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="27-em.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">()); </span><span class="identifier-syntax">downs</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">Activities::compile_activity_constants</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">Activities::compile_activity_constants</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Activities::compile_activity_constants</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">Activities::compile_activity_constants</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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">void</span><span class="plain-syntax"> </span><span class="function-syntax">Activities::Activity_before_rulebooks_array</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">Activities::Activity_before_rulebooks_array</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Activities::Activity_before_rulebooks_array</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">Activities::Activity_before_rulebooks_array</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">ACTIVITY_BEFORE_RULEBOOKS_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><a href="27-em.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_number</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">activity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">av</span><span class="plain-syntax">; </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
@ -749,7 +749,7 @@ values, of the kind to which the activity applies.
<span class="plain-syntax"> </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><a href="27-em.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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Activities::Activity_for_rulebooks_array</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">Activities::Activity_for_rulebooks_array</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Activities::Activity_for_rulebooks_array</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">Activities::Activity_for_rulebooks_array</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">ACTIVITY_FOR_RULEBOOKS_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><a href="27-em.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_number</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">activity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">av</span><span class="plain-syntax">; </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
@ -763,7 +763,7 @@ values, of the kind to which the activity applies.
<span class="plain-syntax"> </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><a href="27-em.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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Activities::Activity_after_rulebooks_array</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">Activities::Activity_after_rulebooks_array</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Activities::Activity_after_rulebooks_array</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">Activities::Activity_after_rulebooks_array</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">ACTIVITY_AFTER_RULEBOOKS_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><a href="27-em.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_number</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">activity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">av</span><span class="plain-syntax">; </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
@ -777,7 +777,7 @@ values, of the kind to which the activity applies.
<span class="plain-syntax"> </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><a href="27-em.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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Activities::Activity_atb_rulebooks_array</span><button class="popup" onclick="togglePopup('usagePopup19')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup19">Usage of <span class="code-font"><span class="function-syntax">Activities::Activity_atb_rulebooks_array</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Activities::Activity_atb_rulebooks_array</span><button class="popup" onclick="togglePopup('usagePopup19')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup19">Usage of <span class="code-font"><span class="function-syntax">Activities::Activity_atb_rulebooks_array</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">ACTIVITY_ATB_RULEBOOKS_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><a href="27-em.html#SP3" class="function-link"><span class="function-syntax">Emit::named_byte_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_number</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">activity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">av</span><span class="plain-syntax">; </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>

View file

@ -527,7 +527,7 @@ can be used in a void context as a sort of return-from-rule phrase.
<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">Rulebooks::Outcomes::RulebookOutcomePrintingRule</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">Rulebooks::Outcomes::RulebookOutcomePrintingRule</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_7">&#167;2.7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Rulebooks::Outcomes::RulebookOutcomePrintingRule</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">Rulebooks::Outcomes::RulebookOutcomePrintingRule</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</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">named_rulebook_outcome</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rbno</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">rbno</span><span class="plain-syntax">, </span><span class="reserved-syntax">named_rulebook_outcome</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">RV</span><span class="plain-syntax">)</span>

View file

@ -1083,7 +1083,7 @@ rules with I6 definitions, i.e., where <span class="extract"><span class="extrac
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">R</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">lettered_responses</span><span class="plain-syntax">[</span><span class="identifier-syntax">code</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">Rules::check_response_usages</span><button class="popup" onclick="togglePopup('usagePopup35')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup35">Usage of <span class="code-font"><span class="function-syntax">Rules::check_response_usages</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Rules::check_response_usages</span><button class="popup" onclick="togglePopup('usagePopup35')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup35">Usage of <span class="code-font"><span class="function-syntax">Rules::check_response_usages</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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">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">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="reserved-syntax">rule</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">l</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">l</span><span class="plain-syntax">&lt;26; </span><span class="identifier-syntax">l</span><span class="plain-syntax">++) {</span>
@ -1143,15 +1143,6 @@ rules with I6 definitions, i.e., where <span class="extract"><span class="extrac
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> &amp;(</span><span class="identifier-syntax">R</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">defn_as_phrase</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">stack_frame</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">Rules::portable</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="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">R</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">name</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">R</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">first_applicability_condition</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">R</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">rule_extern_iname</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="27-cm.html#SP5" class="function-link"><span class="function-syntax">Modules::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">defn_as_phrase</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">declaration_node</span><span class="plain-syntax">) == </span><a href="27-cm.html#SP1" class="function-link"><span class="function-syntax">Modules::SR</span></a><span class="plain-syntax">()))</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">Rules::package</span><button class="popup" onclick="togglePopup('usagePopup40')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup40">Usage of <span class="code-font"><span class="function-syntax">Rules::package</span></span>:<br/>Responses - <a href="17-rs.html#SP5">&#167;5</a>, <a href="17-rs.html#SP7_1">&#167;7.1</a><br/>Phrase Usage - <a href="22-pu.html#SP6">&#167;6</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">R</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">rule_package</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>

View file

@ -603,7 +603,7 @@ built (for instance, scene endings).
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">rb</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">stv_creator_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">Rulebooks::rulebook_var_creators</span><button class="popup" onclick="togglePopup('usagePopup20')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup20">Usage of <span class="code-font"><span class="function-syntax">Rulebooks::rulebook_var_creators</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Rulebooks::rulebook_var_creators</span><button class="popup" onclick="togglePopup('usagePopup20')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup20">Usage of <span class="code-font"><span class="function-syntax">Rulebooks::rulebook_var_creators</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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">rulebook</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rb</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">rb</span><span class="plain-syntax">, </span><span class="reserved-syntax">rulebook</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="21-sv.html#SP3" class="function-link"><span class="function-syntax">StackedVariables::owner_empty</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">rb</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">owned_by_rb</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)</span>

View file

@ -121,7 +121,7 @@ name of a new constant.
</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::Manager::traverse_for_names</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::Manager::traverse_for_names</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_3">&#167;2.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Manager::traverse_for_names</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::Manager::traverse_for_names</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_4">&#167;2.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="22-cs.html#SP1" class="function-link"><span class="function-syntax">Phrases::Manager::advance_phrase_time_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">EARLY_MORNING_PHT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">SyntaxTree::traverse</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP5" class="function-link"><span class="function-syntax">Task::syntax_tree</span></a><span class="plain-syntax">(), </span><a href="22-cs.html#SP2" class="function-link"><span class="function-syntax">Phrases::Manager::visit_for_names</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
@ -204,7 +204,7 @@ placement later on.
</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::Manager::traverse</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::Manager::traverse</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_7">&#167;2.7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Manager::traverse</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::Manager::traverse</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="22-cs.html#SP1" class="function-link"><span class="function-syntax">Phrases::Manager::advance_phrase_time_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">LATE_MORNING_PHT</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">progress_target</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">progress_made</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
@ -238,7 +238,7 @@ counting local variables, whose names only exist fleetingly).
</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::Manager::register_meanings</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::Manager::register_meanings</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_7">&#167;2.7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Manager::register_meanings</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::Manager::register_meanings</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="22-cs.html#SP1" class="function-link"><span class="function-syntax">Phrases::Manager::advance_phrase_time_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">PRE_NOON_PHT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="22-tp.html#SP6" class="function-link"><span class="function-syntax">Routines::ToPhrases::register_all</span></a><span class="plain-syntax">();</span>
@ -274,7 +274,7 @@ correctly refer to the most recently mentioned action.
</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::Manager::parse_rule_parameters</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::Manager::parse_rule_parameters</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_7">&#167;2.7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Manager::parse_rule_parameters</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::Manager::parse_rule_parameters</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="22-cs.html#SP1" class="function-link"><span class="function-syntax">Phrases::Manager::advance_phrase_time_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">EARLY_AFTERNOON_PHT</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>
@ -293,7 +293,7 @@ PHRCDs are used to make sure it appears in the right position.
</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::Manager::add_rules_to_rulebooks</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::Manager::add_rules_to_rulebooks</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_7">&#167;2.7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Manager::add_rules_to_rulebooks</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::Manager::add_rules_to_rulebooks</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="22-cs.html#SP1" class="function-link"><span class="function-syntax">Phrases::Manager::advance_phrase_time_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">EARLY_AFTERNOON_PHT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="21-rb.html#SP8" class="function-link"><span class="function-syntax">Rules::Bookings::make_automatic_placements</span></a><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="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">NUMBER_RULEBOOKS_CREATED_HL</span><span class="plain-syntax">);</span>
@ -315,7 +315,7 @@ only conditionally, or substituted by other 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">Phrases::Manager::parse_rule_placements</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::Manager::parse_rule_placements</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_7">&#167;2.7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Manager::parse_rule_placements</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::Manager::parse_rule_placements</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="22-cs.html#SP1" class="function-link"><span class="function-syntax">Phrases::Manager::advance_phrase_time_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">EARLY_AFTERNOON_PHT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">SyntaxTree::traverse</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP5" class="function-link"><span class="function-syntax">Task::syntax_tree</span></a><span class="plain-syntax">(), </span><a href="22-cs.html#SP9" class="function-link"><span class="function-syntax">Phrases::Manager::visit_to_parse_placements</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
@ -341,7 +341,7 @@ adjective definitions.
<pre class="displayed-code all-displayed-code code-font">
<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="constant-syntax">0</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="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Manager::compile_first_block</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::Manager::compile_first_block</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Manager::compile_first_block</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::Manager::compile_first_block</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="22-cs.html#SP1" class="function-link"><span class="function-syntax">Phrases::Manager::advance_phrase_time_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">MID_AFTERNOON_PHT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="22-cs.html#SP10_1" class="named-paragraph-link"><span class="named-paragraph">Count up the scale of the task</span><span class="named-paragraph-number">10.1</span></a></span><span class="plain-syntax">;</span>
@ -515,17 +515,17 @@ noted down:
</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::Manager::rulebooks_array</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Phrases::Manager::rulebooks_array</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Manager::rulebooks_array</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Phrases::Manager::rulebooks_array</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="22-cs.html#SP1" class="function-link"><span class="function-syntax">Phrases::Manager::advance_phrase_time_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">LATE_AFTERNOON_PHT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="21-rl2.html#SP20" class="function-link"><span class="function-syntax">Rulebooks::rulebooks_array_array</span></a><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::Manager::compile_rulebooks</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::Manager::compile_rulebooks</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Manager::compile_rulebooks</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::Manager::compile_rulebooks</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="22-cs.html#SP1" class="function-link"><span class="function-syntax">Phrases::Manager::advance_phrase_time_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">LATE_AFTERNOON_PHT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="21-rl2.html#SP20" class="function-link"><span class="function-syntax">Rulebooks::compile_rulebooks</span></a><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::Manager::RulebookNames_array</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">Phrases::Manager::RulebookNames_array</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Manager::RulebookNames_array</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">Phrases::Manager::RulebookNames_array</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="22-cs.html#SP1" class="function-link"><span class="function-syntax">Phrases::Manager::advance_phrase_time_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">LATE_AFTERNOON_PHT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="21-rl2.html#SP20" class="function-link"><span class="function-syntax">Rulebooks::RulebookNames_array</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax">}</span>
@ -537,7 +537,7 @@ printing out "fire alarm rule".
</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::Manager::RulePrintingRule_routine</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">Phrases::Manager::RulePrintingRule_routine</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Manager::RulePrintingRule_routine</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">Phrases::Manager::RulePrintingRule_routine</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="22-cs.html#SP1" class="function-link"><span class="function-syntax">Phrases::Manager::advance_phrase_time_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">LATE_AFTERNOON_PHT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="21-rl.html#SP20" class="function-link"><span class="function-syntax">Rules::RulePrintingRule_routine</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax">}</span>
@ -582,7 +582,7 @@ can be called multiple times in the course of the evening.)
</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::Manager::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">Phrases::Manager::compile_as_needed</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Manager::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">Phrases::Manager::compile_as_needed</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="22-cs.html#SP1" class="function-link"><span class="function-syntax">Phrases::Manager::advance_phrase_time_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">EVENING_PHT</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">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="reserved-syntax">rule</span><span class="plain-syntax">)</span>

View file

@ -190,7 +190,7 @@ 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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Constants::compile_closures</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::Constants::compile_closures</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Constants::compile_closures</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::Constants::compile_closures</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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">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="22-pav.html#SP6" 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>

View file

@ -120,7 +120,7 @@ code below.
<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_module</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">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>
<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">rule_package</span><span class="plain-syntax">;</span>
@ -348,7 +348,7 @@ of it:
<span class="plain-syntax"> </span><span class="identifier-syntax">new_ph</span><span class="plain-syntax">-&gt;</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">new_ph</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">to_begin</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">new_ph</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">imported</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">new_ph</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">owning_module</span><span class="plain-syntax"> = </span><a href="27-cm.html#SP5" class="function-link"><span class="function-syntax">Modules::find</span></a><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">new_ph</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">owning_module</span><span class="plain-syntax"> = </span><a href="27-cm.html#SP5" class="function-link"><span class="function-syntax">CompilationUnits::find</span></a><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">new_ph</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">requests_package</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">inline_wn</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">new_ph</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">at_least_one_compiled_form_needed</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
@ -547,7 +547,7 @@ response to "requests". All other phrases are compiled just once.
<p class="commentary firstcommentary"><a id="SP13"></a><b>&#167;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><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::invoke_to_begin</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::invoke_to_begin</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::invoke_to_begin</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="1-wtc.html#SP8" class="function-link"><span class="function-syntax">Task::begin_execution_at_to_begin</span></a><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="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SUBMAIN_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><a href="26-rt.html#SP1" class="function-link"><span class="function-syntax">Routines::begin</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>

View file

@ -247,8 +247,8 @@ values in force, so that there is no possible ambiguity in how we read K.
<span class="plain-syntax"> </span><span class="identifier-syntax">req</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">to_phrase_request</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">req</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">requested_exact_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">req</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">requested_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">compilation_module</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cm</span><span class="plain-syntax"> = </span><a href="27-cm.html#SP6" class="function-link"><span class="function-syntax">Modules::current</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">ph</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">declaration_node</span><span class="plain-syntax">) </span><span class="identifier-syntax">cm</span><span class="plain-syntax"> = </span><a href="27-cm.html#SP5" class="function-link"><span class="function-syntax">Modules::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">declaration_node</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">compilation_unit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cm</span><span class="plain-syntax"> = </span><a href="27-cm.html#SP6" class="function-link"><span class="function-syntax">CompilationUnits::current</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">ph</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">declaration_node</span><span class="plain-syntax">) </span><span class="identifier-syntax">cm</span><span class="plain-syntax"> = </span><a href="27-cm.html#SP5" class="function-link"><span class="function-syntax">CompilationUnits::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">declaration_node</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="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::package_within</span></a><span class="plain-syntax">(</span><span class="constant-syntax">REQUESTS_HAP</span><span class="plain-syntax">, </span><span class="identifier-syntax">ph</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">requests_package</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">req</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">req_iname</span><span class="plain-syntax"> = </span><a href="27-hr.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">PHRASE_FN_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">cm</span><span class="plain-syntax">);</span>

View file

@ -95,7 +95,7 @@ defined as "At 9:00 AM: ..." But two values are special:
</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><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::TimedEventsTable</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a><br/>Construction Sequence - <a href="22-cs.html#SP11">&#167;11</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Timed::TimedEventsTable</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::TimedEventsTable</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</a><br/>Construction Sequence - <a href="22-cs.html#SP11">&#167;11</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">TIMEDEVENTSTABLE_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><a href="27-em.html#SP3" class="function-link"><span class="function-syntax">Emit::named_table_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><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>
@ -115,7 +115,7 @@ defined as "At 9:00 AM: ..." But two values are special:
<span class="plain-syntax"> </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><a href="27-em.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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Timed::TimedEventTimesTable</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::Timed::TimedEventTimesTable</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a><br/>Construction Sequence - <a href="22-cs.html#SP11">&#167;11</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Timed::TimedEventTimesTable</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::Timed::TimedEventTimesTable</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</a><br/>Construction Sequence - <a href="22-cs.html#SP11">&#167;11</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">TIMEDEVENTTIMESTABLE_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><a href="27-em.html#SP3" class="function-link"><span class="function-syntax">Emit::named_table_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_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>
@ -159,7 +159,7 @@ 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><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::Timed::check_for_unused</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Timed::check_for_unused</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::Timed::check_for_unused</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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">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><a href="22-pu.html#SP16" class="function-link"><span class="function-syntax">Phrases::Usage::get_timing_of_event</span></a><span class="plain-syntax">(&amp;(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">usage_data</span><span class="plain-syntax">)) == </span><span class="constant-syntax">NO_FIXED_TIME</span><span class="plain-syntax">) {</span>

View file

@ -185,15 +185,15 @@ the doubled use of colons is unfortunate.)
<span class="definition-keyword">define</span> <span class="Preform-constant-syntax">DEFINED_IN_SOME_WAY_NOT_YET_KNOWN</span><span class="Preform-plain-syntax"> -2</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::Adjectives::traverse</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::Adjectives::traverse</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_3">&#167;2.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Phrases::Adjectives::traverse</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::Adjectives::traverse</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_4">&#167;2.4</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">SyntaxTree::traverse</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP5" class="function-link"><span class="function-syntax">Task::syntax_tree</span></a><span class="plain-syntax">(), </span><a href="23-ad.html#SP5" class="function-link"><span class="function-syntax">Phrases::Adjectives::look_for_headers</span></a><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::Adjectives::look_for_headers</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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">) == </span><span class="identifier-syntax">RULE_NT</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;definition-header&gt;</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">compilation_module</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cm</span><span class="plain-syntax"> = </span><a href="27-cm.html#SP6" class="function-link"><span class="function-syntax">Modules::current</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="27-cm.html#SP6" class="function-link"><span class="function-syntax">Modules::set_current</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">compilation_unit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cm</span><span class="plain-syntax"> = </span><a href="27-cm.html#SP6" class="function-link"><span class="function-syntax">CompilationUnits::current</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="27-cm.html#SP6" class="function-link"><span class="function-syntax">CompilationUnits::set_current</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">q</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">)?(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">-&gt;</span><span class="element-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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">q</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="23-ad.html#SP5_1" class="named-paragraph-link"><span class="named-paragraph">Futz with the parse tree, trying right not down</span><span class="named-paragraph-number">5.1</span></a></span><span class="plain-syntax">;</span>
@ -210,7 +210,7 @@ the doubled use of colons is unfortunate.)
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">the_format</span><span class="plain-syntax"> != </span><span class="constant-syntax">DEFINED_PHRASALLY</span><span class="plain-syntax">) </span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-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="27-cm.html#SP6" class="function-link"><span class="function-syntax">Modules::set_current_to</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cm</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="27-cm.html#SP6" class="function-link"><span class="function-syntax">CompilationUnits::set_current_to</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cm</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
</pre>

View file

@ -350,7 +350,7 @@ late to create any further past tense references, so:
</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">Chronology::allow_no_further_past_tenses</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">Chronology::allow_no_further_past_tenses</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Chronology::allow_no_further_past_tenses</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">Chronology::allow_no_further_past_tenses</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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">too_late_for_past_tenses</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
@ -384,7 +384,7 @@ ever tampered with.
</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">Chronology::past_actions_i6_routines</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">Chronology::past_actions_i6_routines</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Chronology::past_actions_i6_routines</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">Chronology::past_actions_i6_routines</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">IF_MODULE</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">once_only</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">past_tense_action_record</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pta</span><span class="plain-syntax">;</span>
@ -430,7 +430,7 @@ ever tampered with.
<p class="commentary firstcommentary"><a id="SP7"></a><b>&#167;7. </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">Chronology::past_tenses_i6_escape</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">Chronology::past_tenses_i6_escape</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Chronology::past_tenses_i6_escape</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">Chronology::past_tenses_i6_escape</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">once_only</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">past_tense_condition_record</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ptc</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">TIME_PERIODS</span><span class="plain-syntax">,</span>
@ -895,7 +895,7 @@ times".
</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">Chronology::chronology_extents_i6_escape</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">Chronology::chronology_extents_i6_escape</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Chronology::chronology_extents_i6_escape</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">Chronology::chronology_extents_i6_escape</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname1</span><span class="plain-syntax"> = </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">NO_PAST_TENSE_CONDS_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><a href="27-em.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">iname1</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="27-em.html#SP3" class="function-link"><span class="function-syntax">Emit::named_numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname1</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">no_past_tenses</span><span class="plain-syntax">);</span>

View file

@ -105,7 +105,7 @@ should always be supplied for "To..." phrases, but left null for rules.
<span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"tried to compile phrase with bad ROUTINE node"</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_COMPILATION</span><span class="plain-syntax">, </span><span class="string-syntax">"Compiling phrase:\n$T"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ph</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">declaration_node</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="27-cm.html#SP6" class="function-link"><span class="function-syntax">Modules::set_current</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">declaration_node</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="27-cm.html#SP6" class="function-link"><span class="function-syntax">CompilationUnits::set_current</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">declaration_node</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">phrase_being_compiled</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ph</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="25-cp.html#SP3_2" class="named-paragraph-link"><span class="named-paragraph">Set up the stack frame for this compilation request</span><span class="named-paragraph-number">3.2</span></a></span><span class="plain-syntax">;</span>
@ -119,7 +119,7 @@ should always be supplied for "To..." phrases, but left null for rules.
<span class="plain-syntax"> </span><span class="identifier-syntax">phrase_being_compiled</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">current_sentence</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="27-cm.html#SP6" class="function-link"><span class="function-syntax">Modules::set_current</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="27-cm.html#SP6" class="function-link"><span class="function-syntax">CompilationUnits::set_current</span></a><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="SP3_1"></a><b>&#167;3.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile some commentary about the routine to follow</span><span class="named-paragraph-number">3.1</span></span><span class="comment-syntax"> =</span>

View file

@ -184,7 +184,7 @@ Inform's own version number), but it belongs nowhere else either, so:
</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">FundamentalConstants::emit_build_number</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">FundamentalConstants::emit_build_number</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">FundamentalConstants::emit_build_number</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">FundamentalConstants::emit_build_number</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">build</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">build</span><span class="plain-syntax">, </span><span class="string-syntax">"%B"</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">NI_BUILD_COUNT_HL</span><span class="plain-syntax">);</span>

View file

@ -387,7 +387,7 @@ time.) <span class="extract"><span class="extract-syntax">{-index:name}</span></
</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">I6T::produce_index</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">I6T::produce_index</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">I6T::produce_index</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">I6T::produce_index</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_10">&#167;2.10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">project</span><span class="plain-syntax"> = </span><a href="1-wtc.html#SP5" class="function-link"><span class="function-syntax">Task::project</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="26-iti.html#SP1" class="function-link"><span class="function-syntax">I6T::interpret_indext</span></a><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Filenames::in</span><span class="plain-syntax">(</span>

View file

@ -92,7 +92,7 @@ generates labels <span class="extract"><span class="extract-syntax">L_0</span></
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">label_counter</span><span class="plain-syntax">; </span><span class="comment-syntax"> next free ID number for this label namespace</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">allocate_storage</span><span class="plain-syntax">; </span><span class="comment-syntax"> number of words of memory to reserve for each label</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">label_storage_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">compilation_module</span><span class="plain-syntax"> *</span><span class="identifier-syntax">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">compilation_unit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">module</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">label_namespace</span><span class="plain-syntax">;</span>
</pre>
@ -102,7 +102,7 @@ reserves no memory.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">label_namespace</span><span class="plain-syntax"> *</span><span class="function-syntax">JumpLabels::new_namespace</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">JumpLabels::new_namespace</span></span>:<br/><a href="26-jl.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">compilation_module</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cm</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">label_namespace</span><span class="plain-syntax"> *</span><span class="function-syntax">JumpLabels::new_namespace</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">JumpLabels::new_namespace</span></span>:<br/><a href="26-jl.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">compilation_unit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cm</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">) &gt; </span><span class="constant-syntax">MAX_NAMESPACE_PREFIX_LENGTH</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="constant-syntax">CORE_MODULE</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">StandardProblems::sentence_problem</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP5" class="function-link"><span class="function-syntax">Task::syntax_tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_LabelNamespaceTooLong</span><span class="plain-syntax">),</span>
@ -131,7 +131,7 @@ optimising.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">label_namespace</span><span class="plain-syntax"> *</span><span class="function-syntax">JumpLabels::namespace_by_prefix</span><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">compilation_module</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cm</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">label_namespace</span><span class="plain-syntax"> *</span><span class="function-syntax">JumpLabels::namespace_by_prefix</span><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">compilation_unit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cm</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">label_namespace</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lns</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">lns</span><span class="plain-syntax">, </span><span class="reserved-syntax">label_namespace</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">lns</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">module</span><span class="plain-syntax"> == </span><span class="identifier-syntax">cm</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">lns</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">label_prefix</span><span class="plain-syntax">)))</span>
@ -140,7 +140,7 @@ optimising.
<span class="plain-syntax">}</span>
<span class="reserved-syntax">label_namespace</span><span class="plain-syntax"> *</span><span class="function-syntax">JumpLabels::read_or_create_namespace</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">JumpLabels::read_or_create_namespace</span></span>:<br/><a href="26-jl.html#SP5">&#167;5</a>, <a href="26-jl.html#SP6">&#167;6</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="identifier-syntax">compilation_module</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cm</span><span class="plain-syntax"> = </span><a href="27-cm.html#SP6" class="function-link"><span class="function-syntax">Modules::current</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">compilation_unit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cm</span><span class="plain-syntax"> = </span><a href="27-cm.html#SP6" class="function-link"><span class="function-syntax">CompilationUnits::current</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">label_namespace</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lns</span><span class="plain-syntax"> = </span><a href="26-jl.html#SP4" class="function-link"><span class="function-syntax">JumpLabels::namespace_by_prefix</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">cm</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">lns</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">lns</span><span class="plain-syntax"> = </span><a href="26-jl.html#SP3" class="function-link"><span class="function-syntax">JumpLabels::new_namespace</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">cm</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">lns</span><span class="plain-syntax">;</span>
@ -188,7 +188,7 @@ specification <span class="extract"><span class="extract-syntax">--&gt; 0</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">multiplier</span><span class="plain-syntax"> &gt; </span><span class="identifier-syntax">lns</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">allocate_storage</span><span class="plain-syntax">) </span><span class="identifier-syntax">lns</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">allocate_storage</span><span class="plain-syntax"> = </span><span class="identifier-syntax">multiplier</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">JumpLabels::compile_necessary_storage</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">JumpLabels::compile_necessary_storage</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">JumpLabels::compile_necessary_storage</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">JumpLabels::compile_necessary_storage</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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">label_namespace</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lns</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">lns</span><span class="plain-syntax">, </span><span class="reserved-syntax">label_namespace</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">lns</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">allocate_storage</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>

View file

@ -106,6 +106,7 @@ function togglePopup(material_id) {
<span class="definition-keyword">define</span> <span class="constant-syntax">PLUGIN_ADD_TO_WORLD_INDEX</span><span class="plain-syntax"> </span><span class="constant-syntax">40</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">PLUGIN_ANNOTATE_IN_WORLD_INDEX</span><span class="plain-syntax"> </span><span class="constant-syntax">41</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">PLUGIN_SET_SUBKIND_NOTIFY</span><span class="plain-syntax"> </span><span class="constant-syntax">42</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">PLUGIN_CREATE_INFERENCES</span><span class="plain-syntax"> </span><span class="constant-syntax">43</span>
</pre>
<p class="commentary firstcommentary"><a id="SP3"></a><b>&#167;3. </b></p>
@ -307,6 +308,10 @@ function togglePopup(material_id) {
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Plugins::Call::annotate_in_World_index</span><button class="popup" onclick="togglePopup('usagePopup30')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup30">Usage of <span class="code-font"><span class="function-syntax">Plugins::Call::annotate_in_World_index</span></span>:<br/>Index Physical World - <a href="5-ipw.html#SP3_4">&#167;3.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">O</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">PLUGIN_ANNOTATE_IN_WORLD_INDEX</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>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Plugins::Call::create_inference_subjects</span><button class="popup" onclick="togglePopup('usagePopup31')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup31">Usage of <span class="code-font"><span class="function-syntax">Plugins::Call::create_inference_subjects</span></span>:<br/>Inference Subjects - <a href="16-is.html#SP8">&#167;8</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">PLUGINS_CALLV</span><span class="plain-syntax">(</span><span class="constant-syntax">PLUGIN_CREATE_INFERENCES</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="26-pl.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-up.html">2</a></li><li class="progresschapter"><a href="3-bv.html">3</a></li><li class="progresschapter"><a href="4-its.html">4</a></li><li class="progresschapter"><a href="5-lp.html">5</a></li><li class="progresschapter"><a href="6-up.html">6</a></li><li class="progresschapter"><a href="7-ptu.html">7</a></li><li class="progresschapter"><a href="8-ef.html">8</a></li><li class="progresschapter"><a href="9-ita.html">9</a></li><li class="progresschapter"><a href="10-aots.html">10</a></li><li class="progresschapter"><a href="11-itpc.html">11</a></li><li class="progresschapter"><a href="12-ter.html">12</a></li><li class="progresschapter"><a href="13-kak.html">13</a></li><li class="progresschapter"><a href="14-sp.html">14</a></li><li class="progresschapter"><a href="15-pr.html">15</a></li><li class="progresschapter"><a href="16-is.html">16</a></li><li class="progresschapter"><a href="17-tl.html">17</a></li><li class="progresschapter"><a href="18-lc.html">18</a></li><li class="progresschapter"><a href="19-tc.html">19</a></li><li class="progresschapter"><a href="20-eq.html">20</a></li><li class="progresschapter"><a href="21-rl.html">21</a></li><li class="progresschapter"><a href="22-itp.html">22</a></li><li class="progresschapter"><a href="23-ad.html">23</a></li><li class="progresschapter"><a href="24-lv.html">24</a></li><li class="progresschapter"><a href="25-in.html">25</a></li><li class="progresscurrentchapter">26</li><li class="progresssection"><a href="26-fc.html">fc</a></li><li class="progresssection"><a href="26-i6i.html">i6i</a></li><li class="progresssection"><a href="26-uo.html">uo</a></li><li class="progresssection"><a href="26-lt.html">lt</a></li><li class="progresssection"><a href="26-jl.html">jl</a></li><li class="progresssection"><a href="26-ct.html">ct</a></li><li class="progresssection"><a href="26-rt.html">rt</a></li><li class="progresssection"><a href="26-tti.html">tti</a></li><li class="progresssection"><a href="26-iti.html">iti</a></li><li class="progresssection"><a href="26-pl.html">pl</a></li><li class="progresscurrent">pc</li><li class="progresssection"><a href="26-ts.html">ts</a></li><li class="progresssection"><a href="26-shr.html">shr</a></li><li class="progresschapter"><a href="27-hr.html">27</a></li><li class="progressnext"><a href="26-ts.html">&#10095;</a></li></ul></div>

View file

@ -374,7 +374,7 @@ with the following.
</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">Plugins::Manage::start_plugins</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">Plugins::Manage::start_plugins</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_3">&#167;2.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Plugins::Manage::start_plugins</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">Plugins::Manage::start_plugins</span></span>:<br/>What To Compile - <a href="1-wtc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">plugin</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</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">plugin</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">now_plugged_in</span><span class="plain-syntax">) {</span>

View file

@ -389,7 +389,7 @@ without notice.
<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">PL::Parsing::TestScripts::write_text</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">PL::Parsing::TestScripts::write_text</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PL::Parsing::TestScripts::write_text</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">PL::Parsing::TestScripts::write_text</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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">test_scenario</span><span class="plain-syntax"> *</span><span class="identifier-syntax">test</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">test</span><span class="plain-syntax">, </span><span class="reserved-syntax">test_scenario</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="27-em.html#SP3" class="function-link"><span class="function-syntax">Emit::named_byte_array_begin</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">test</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">text_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_text</span><span class="plain-syntax">);</span>
@ -413,7 +413,7 @@ without notice.
<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">PL::Parsing::TestScripts::TestScriptSub_stub_routine</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">PL::Parsing::TestScripts::TestScriptSub_stub_routine</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PL::Parsing::TestScripts::TestScriptSub_stub_routine</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">PL::Parsing::TestScripts::TestScriptSub_stub_routine</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">TESTSCRIPTSUB_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><a href="27-em.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">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><a href="26-rt.html#SP1" class="function-link"><span class="function-syntax">Routines::begin</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
@ -421,7 +421,7 @@ without notice.
<span class="plain-syntax"> </span><a href="26-rt.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>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PL::Parsing::TestScripts::TestScriptSub_routine</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">PL::Parsing::TestScripts::TestScriptSub_routine</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PL::Parsing::TestScripts::TestScriptSub_routine</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">PL::Parsing::TestScripts::TestScriptSub_routine</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">TESTSCRIPTSUB_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><a href="27-em.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">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><a href="26-rt.html#SP1" class="function-link"><span class="function-syntax">Routines::begin</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
@ -503,7 +503,7 @@ without notice.
<span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">itc_save_DL</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, *</span><span class="identifier-syntax">itc_save_OUT</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PL::Parsing::TestScripts::InternalTestCases_routine</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">PL::Parsing::TestScripts::InternalTestCases_routine</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PL::Parsing::TestScripts::InternalTestCases_routine</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">PL::Parsing::TestScripts::InternalTestCases_routine</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">INTERNALTESTCASES_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><a href="26-rt.html#SP1" class="function-link"><span class="function-syntax">Routines::begin</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="reserved-syntax">internal_test_case</span><span class="plain-syntax"> *</span><span class="identifier-syntax">itc</span><span class="plain-syntax">; </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">n</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>

View file

@ -565,7 +565,7 @@ source code: see the DM4 for details.
</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">UseOptions::compile_icl_commands</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">UseOptions::compile_icl_commands</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">UseOptions::compile_icl_commands</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">UseOptions::compile_icl_commands</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="27-em.html#SP3" class="function-link"><span class="function-syntax">Emit::pragma</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"-s"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">i6_memory_setting</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ms</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">ms</span><span class="plain-syntax">, </span><span class="reserved-syntax">i6_memory_setting</span><span class="plain-syntax">) {</span>
@ -700,7 +700,7 @@ one to test them, one to print 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">UseOptions::TestUseOption_routine</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">UseOptions::TestUseOption_routine</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">UseOptions::TestUseOption_routine</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">UseOptions::TestUseOption_routine</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">NO_USE_OPTIONS_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="27-em.html#SP3" class="function-link"><span class="function-syntax">Emit::named_numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">NUMBER_CREATED</span><span class="plain-syntax">(</span><span class="reserved-syntax">use_option</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="26-uo.html#SP22_1" class="named-paragraph-link"><span class="named-paragraph">Compile the TestUseOption routine</span><span class="named-paragraph-number">22.1</span></a></span><span class="plain-syntax">;</span>
@ -791,7 +791,7 @@ one to test them, one to print them.
<span class="plain-syntax"> </span><span class="identifier-syntax">ranking_table_given</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">UseOptions::configure_template</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">UseOptions::configure_template</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">UseOptions::configure_template</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">UseOptions::configure_template</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">bitmap</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">scoring_option_set</span><span class="plain-syntax"> == </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">) </span><span class="identifier-syntax">bitmap</span><span class="plain-syntax"> += </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">undo_prevention</span><span class="plain-syntax">) </span><span class="identifier-syntax">bitmap</span><span class="plain-syntax"> += </span><span class="constant-syntax">2</span><span class="plain-syntax">;</span>

View file

@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Compilation Modules</title>
<title>Compilation Units</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">
@ -61,14 +61,14 @@ function togglePopup(material_id) {
</ul>
</nav>
<main role="main">
<!--Weave of 'Compilation Modules' generated by Inweb-->
<!--Weave of 'Compilation Units' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7 Modules</a></li><li><a href="index.html">core</a></li><li><a href="index.html#27">Chapter 27: Bridge to Inter Module</a></li><li><b>Compilation Modules</b></li></ul></div>
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7 Modules</a></li><li><a href="index.html">core</a></li><li><a href="index.html#27">Chapter 27: Bridge to Inter Module</a></li><li><b>Compilation Units</b></li></ul></div>
<p class="purpose">To identify which parts of the source text come from which source (the main source text, the Standard Rules, or another extension).</p>
<ul class="toc"><li><a href="27-cm.html#SP1">&#167;1. Compilation modules</a></li><li><a href="27-cm.html#SP6">&#167;6. Current module</a></li><li><a href="27-cm.html#SP7">&#167;7. Relating to Inter</a></li></ul><hr class="tocbar">
<ul class="toc"><li><a href="27-cm.html#SP6">&#167;6. Current unit</a></li><li><a href="27-cm.html#SP7">&#167;7. Relating to Inter</a></li></ul><hr class="tocbar">
<p class="commentary firstcommentary"><a id="SP1"></a><b>&#167;1. Compilation modules. </b>Inform is a language in which it is semantically relevant which source file the
<p class="commentary firstcommentary"><a id="SP1"></a><b>&#167;1. </b>Inform is a language in which it is semantically relevant which source file the
source text is coming from: unlike, say, C, where <span class="extract"><span class="extract-syntax">#include</span></span> allows files to include
each other in arbitrary ways. In Inform, all source text comes from one of the
following places:
@ -78,49 +78,44 @@ following places:
</li><li>(b) An extension file, including the Standard Rules extension;
</li><li>(c) Invented text created by the compiler itself.
</li></ul>
<p class="commentary">The Inter hierarchy also splits, with named modules representing each possibility
in (a) or (b) above. This section of code determines to which module any new
<p class="commentary">The Inter hierarchy also splits, with named units representing each possibility
in (a) or (b) above. This section of code determines to which unit any new
definition (of, say, a property or kind) belongs.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">compilation_module</span><span class="plain-syntax"> *</span><span class="identifier-syntax">source_text_module</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="comment-syntax"> the one for the main text</span>
<span class="identifier-syntax">compilation_module</span><span class="plain-syntax"> *</span><span class="identifier-syntax">SR_module</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="comment-syntax"> the one for the Standard Rules</span>
<span class="identifier-syntax">compilation_module</span><span class="plain-syntax"> *</span><span class="function-syntax">Modules::SR</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">Modules::SR</span></span>:<br/>Rules - <a href="21-rl.html#SP26">&#167;26</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">SR_module</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="identifier-syntax">compilation_unit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">source_text_unit</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="comment-syntax"> the one for the main text</span>
</pre>
<p class="commentary firstcommentary"><a id="SP2"></a><b>&#167;2. </b>We find these by performing a traverse of the parse tree, and looking for
level-0 headings, which are the nodes from which these blocks of source text hang:
</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">Modules::traverse_to_define</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">Modules::traverse_to_define</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_3">&#167;2.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="identifier-syntax">SyntaxTree::traverse</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP5" class="function-link"><span class="function-syntax">Task::syntax_tree</span></a><span class="plain-syntax">(), </span><a href="27-cm.html#SP2" class="function-link"><span class="function-syntax">Modules::look_for_cu</span></a><span class="plain-syntax">);</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CompilationUnits::determine</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">CompilationUnits::determine</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_2">&#167;2.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">SyntaxTree::traverse</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP5" class="function-link"><span class="function-syntax">Task::syntax_tree</span></a><span class="plain-syntax">(), </span><a href="27-cm.html#SP2" class="function-link"><span class="function-syntax">CompilationUnits::look_for_cu</span></a><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">Modules::look_for_cu</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">CompilationUnits::look_for_cu</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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">) == </span><span class="identifier-syntax">HEADING_NT</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">heading</span><span class="plain-syntax"> *</span><span class="identifier-syntax">h</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Headings::from_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="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">h</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">h</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">level</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">)) </span><a href="27-cm.html#SP2" class="function-link"><span class="function-syntax">Modules::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">h</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">h</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">level</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">)) </span><a href="27-cm.html#SP2" class="function-link"><span class="function-syntax">CompilationUnits::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
<span class="identifier-syntax">compilation_module</span><span class="plain-syntax"> *</span><span class="function-syntax">Modules::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">compilation_unit</span><span class="plain-syntax"> *</span><span class="function-syntax">CompilationUnits::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</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">source_location</span><span class="plain-syntax"> </span><span class="identifier-syntax">sl</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Wordings::location</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</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">sl</span><span class="plain-syntax">.</span><span class="identifier-syntax">file_of_origin</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Extensions::corresponding_to</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Lexer::file_of_origin</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">from</span><span class="plain-syntax">))));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">compilation_module</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Packaging::new_cm</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">compilation_unit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Packaging::new_cu</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">hanging_from</span><span class="plain-syntax"> = </span><span class="identifier-syntax">from</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::set_module</span><span class="plain-syntax">(</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="27-cm.html#SP4" class="function-link"><span class="function-syntax">Modules::propagate_downwards</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">from</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::set_unit</span><span class="plain-syntax">(</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="27-cm.html#SP4" class="function-link"><span class="function-syntax">CompilationUnits::propagate_downwards</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">from</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">pname</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="27-cm.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">Compose a name for the module package this will lead to</span><span class="named-paragraph-number">2.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">inter_presence</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Packaging::get_module</span><span class="plain-syntax">(</span><a href="27-em.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">pname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="27-cm.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">Compose a name for the unit package this will lead to</span><span class="named-paragraph-number">2.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">inter_presence</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Packaging::get_unit</span><span class="plain-syntax">(</span><a href="27-em.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">pname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">pname</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">owner</span><span class="plain-syntax">) {</span>
@ -133,16 +128,15 @@ level-0 headings, which are the nodes from which these blocks of source text han
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">V</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">Extensions::is_standard</span><span class="plain-syntax">(</span><span class="identifier-syntax">owner</span><span class="plain-syntax">)) </span><span class="identifier-syntax">SR_module</span><span class="plain-syntax"> = </span><span class="identifier-syntax">C</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">owner</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">source_text_module</span><span class="plain-syntax"> = </span><span class="identifier-syntax">C</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">owner</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">source_text_unit</span><span class="plain-syntax"> = </span><span class="identifier-syntax">C</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP2_1"></a><b>&#167;2.1. </b>Here we must find a unique name, valid as an Inter identifier: the code
compiled from the compilation module will go into a package of that name.
compiled from the compilation unit will go into a package of that name.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compose a name for the module package this will lead to</span><span class="named-paragraph-number">2.1</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compose a name for the unit package this will lead to</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">
@ -159,51 +153,51 @@ compiled from the compilation module will go into a package of that name.
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="27-cm.html#SP2">&#167;2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP3"></a><b>&#167;3. </b>We are eventually going to need to be able to look at a given node in the parse
tree and say which compilation module it belongs to. If there were a fast way
tree and say which compilation unit it belongs to. If there were a fast way
to go up in the tree, that would be easy &mdash; we could simply run upward until we
reach a level-0 heading. But the node links all run downwards. Instead, we'll
"mark" nodes in the tree, annotating them with the compilation module which owns
"mark" nodes in the tree, annotating them with the compilation unit which owns
them. This is done by "propagating downwards", as follows.
</p>
<p class="commentary firstcommentary"><a id="SP4"></a><b>&#167;4. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Modules::propagate_downwards</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">Modules::propagate_downwards</span></span>:<br/><a href="27-cm.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">compilation_module</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CompilationUnits::propagate_downwards</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">CompilationUnits::propagate_downwards</span></span>:<br/><a href="27-cm.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">compilation_unit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">while</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">Node::set_module</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="27-cm.html#SP4" class="function-link"><span class="function-syntax">Modules::propagate_downwards</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::set_unit</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="27-cm.html#SP4" class="function-link"><span class="function-syntax">CompilationUnits::propagate_downwards</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP5"></a><b>&#167;5. </b>As promised, then, given a parse node, we have to return its compilation module:
<p class="commentary firstcommentary"><a id="SP5"></a><b>&#167;5. </b>As promised, then, given a parse node, we have to return its compilation unit:
but that's now easy, as we just have to read off the annotation made above &mdash;
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">compilation_module</span><span class="plain-syntax"> *</span><span class="function-syntax">Modules::find</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">Modules::find</span></span>:<br/><a href="27-cm.html#SP6">&#167;6</a><br/>Nonlocal Variables - <a href="5-nv.html#SP16">&#167;16</a><br/>Binary Predicates - <a href="6-bp.html#SP31">&#167;31</a><br/>New Verbs - <a href="6-nv.html#SP4">&#167;4</a><br/>Properties - <a href="15-pr.html#SP5_3">&#167;5.3</a><br/>Tables - <a href="19-tb.html#SP9">&#167;9</a><br/>Rules - <a href="21-rl.html#SP26">&#167;26</a><br/>Phrases - <a href="22-ph.html#SP6_8">&#167;6.8</a><br/>To Phrases - <a href="22-tp.html#SP7">&#167;7</a><br/>Hierarchy - <a href="27-hr.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">compilation_unit</span><span class="plain-syntax"> *</span><span class="function-syntax">CompilationUnits::find</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">CompilationUnits::find</span></span>:<br/><a href="27-cm.html#SP6">&#167;6</a><br/>Nonlocal Variables - <a href="5-nv.html#SP16">&#167;16</a><br/>Binary Predicates - <a href="6-bp.html#SP31">&#167;31</a><br/>New Verbs - <a href="6-nv.html#SP4">&#167;4</a><br/>Properties - <a href="15-pr.html#SP5_3">&#167;5.3</a><br/>Tables - <a href="19-tb.html#SP9">&#167;9</a><br/>Phrases - <a href="22-ph.html#SP6_8">&#167;6.8</a><br/>To Phrases - <a href="22-tp.html#SP7">&#167;7</a><br/>Hierarchy - <a href="27-hr.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</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">from</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">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">Node::get_module</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">Node::get_unit</span><span class="plain-syntax">(</span><span class="identifier-syntax">from</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP6"></a><b>&#167;6. Current module. </b>Inform has a concept of the "current module" it's working on, much as it has
<p class="commentary firstcommentary"><a id="SP6"></a><b>&#167;6. Current unit. </b>Inform has a concept of the "current unit" it's working on, much as it has
a concept of "current sentence".
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">compilation_module</span><span class="plain-syntax"> *</span><span class="identifier-syntax">current_CM</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">compilation_unit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">current_CM</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">compilation_module</span><span class="plain-syntax"> *</span><span class="function-syntax">Modules::current</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">Modules::current</span></span>:<br/>Adjective Meanings - <a href="4-am.html#SP7">&#167;7</a><br/>Traverse for Assertions - <a href="9-tfa.html#SP7_2">&#167;7.2</a><br/>Measurement Adjectives - <a href="15-ma.html#SP11_3">&#167;11.3</a><br/>Text Substitutions - <a href="17-ts.html#SP5">&#167;5</a>, <a href="17-ts.html#SP12_1">&#167;12.1</a><br/>To Phrases - <a href="22-tp.html#SP7">&#167;7</a><br/>Adjectival Definitions - <a href="23-ad.html#SP5">&#167;5</a><br/>Jump Labels - <a href="26-jl.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">compilation_unit</span><span class="plain-syntax"> *</span><span class="function-syntax">CompilationUnits::current</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">CompilationUnits::current</span></span>:<br/>Adjective Meanings - <a href="4-am.html#SP7">&#167;7</a><br/>Traverse for Assertions - <a href="9-tfa.html#SP7_2">&#167;7.2</a><br/>Measurement Adjectives - <a href="15-ma.html#SP11_3">&#167;11.3</a><br/>Text Substitutions - <a href="17-ts.html#SP5">&#167;5</a>, <a href="17-ts.html#SP12_1">&#167;12.1</a><br/>To Phrases - <a href="22-tp.html#SP7">&#167;7</a><br/>Adjectival Definitions - <a href="23-ad.html#SP5">&#167;5</a><br/>Jump Labels - <a href="26-jl.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">current_CM</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">Modules::set_current_to</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">Modules::set_current_to</span></span>:<br/>Traverse for Assertions - <a href="9-tfa.html#SP7_2">&#167;7.2</a><br/>Text Substitutions - <a href="17-ts.html#SP12_1">&#167;12.1</a><br/>Adjectival Definitions - <a href="23-ad.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">compilation_module</span><span class="plain-syntax"> *</span><span class="identifier-syntax">CM</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CompilationUnits::set_current_to</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">CompilationUnits::set_current_to</span></span>:<br/>Traverse for Assertions - <a href="9-tfa.html#SP7_2">&#167;7.2</a><br/>Text Substitutions - <a href="17-ts.html#SP12_1">&#167;12.1</a><br/>Adjectival Definitions - <a href="23-ad.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">compilation_unit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">CM</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">current_CM</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CM</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">Modules::set_current</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">Modules::set_current</span></span>:<br/>Traverse for Assertions - <a href="9-tfa.html#SP7_2">&#167;7.2</a><br/>Adjectival Definitions - <a href="23-ad.html#SP5">&#167;5</a><br/>Compile Phrases - <a href="25-cp.html#SP3">&#167;3</a></span></button><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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">) </span><span class="identifier-syntax">current_CM</span><span class="plain-syntax"> = </span><a href="27-cm.html#SP5" class="function-link"><span class="function-syntax">Modules::find</span></a><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">CompilationUnits::set_current</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">CompilationUnits::set_current</span></span>:<br/>Traverse for Assertions - <a href="9-tfa.html#SP7_2">&#167;7.2</a><br/>Adjectival Definitions - <a href="23-ad.html#SP5">&#167;5</a><br/>Compile Phrases - <a href="25-cp.html#SP3">&#167;3</a></span></button><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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">) </span><span class="identifier-syntax">current_CM</span><span class="plain-syntax"> = </span><a href="27-cm.html#SP5" class="function-link"><span class="function-syntax">CompilationUnits::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">current_CM</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
@ -212,8 +206,8 @@ Packaging code.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">module_package</span><span class="plain-syntax"> *</span><span class="function-syntax">Modules::inter_presence</span><span class="plain-syntax">(</span><span class="identifier-syntax">compilation_module</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">C</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"no module"</span><span class="plain-syntax">);</span>
<span class="identifier-syntax">module_package</span><span class="plain-syntax"> *</span><span class="function-syntax">CompilationUnits::inter_presence</span><span class="plain-syntax">(</span><span class="identifier-syntax">compilation_unit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">C</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"no unit"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">inter_presence</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>

File diff suppressed because one or more lines are too long

View file

@ -1730,7 +1730,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Connectors::socket</span><span class="plain-syntax">(</span><a href="27-em.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">ma_as</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">Hierarchy::package</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">Hierarchy::package</span></span>:<br/>Adjective Meanings - <a href="4-am.html#SP7">&#167;7</a><br/>Nonlocal Variables - <a href="5-nv.html#SP16">&#167;16</a><br/>Binary Predicates - <a href="6-bp.html#SP31">&#167;31</a><br/>New Verbs - <a href="6-nv.html#SP4">&#167;4</a><br/>Properties - <a href="15-pr.html#SP27">&#167;27</a><br/>Measurement Adjectives - <a href="15-ma.html#SP11_3">&#167;11.3</a><br/>Tables - <a href="19-tb.html#SP9">&#167;9</a><br/>Phrases - <a href="22-ph.html#SP11">&#167;11</a><br/>To Phrases - <a href="22-tp.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">compilation_module</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">hap_id</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">Hierarchy::package</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">Hierarchy::package</span></span>:<br/>Adjective Meanings - <a href="4-am.html#SP7">&#167;7</a><br/>Nonlocal Variables - <a href="5-nv.html#SP16">&#167;16</a><br/>Binary Predicates - <a href="6-bp.html#SP31">&#167;31</a><br/>New Verbs - <a href="6-nv.html#SP4">&#167;4</a><br/>Properties - <a href="15-pr.html#SP27">&#167;27</a><br/>Measurement Adjectives - <a href="15-ma.html#SP11_3">&#167;11.3</a><br/>Tables - <a href="19-tb.html#SP9">&#167;9</a><br/>Phrases - <a href="22-ph.html#SP11">&#167;11</a><br/>To Phrases - <a href="22-tp.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">compilation_unit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">hap_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">HierarchyLocations::attach_new_package</span><span class="plain-syntax">(</span><a href="27-em.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">hap_id</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
@ -1739,7 +1739,7 @@ function togglePopup(material_id) {
<span class="plain-syntax">}</span>
<span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">Hierarchy::local_package</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">Hierarchy::local_package</span></span>:<br/>Instances - <a href="5-ins.html#SP14">&#167;14</a><br/>The Creator - <a href="9-tc.html#SP5_4_2_4">&#167;5.4.2.4</a><br/>Equations - <a href="20-eq.html#SP10_1">&#167;10.1</a><br/>Rules - <a href="21-rl.html#SP5">&#167;5</a><br/>Focus and Outcome - <a href="21-fao.html#SP10">&#167;10</a><br/>Activities - <a href="21-ac.html#SP6">&#167;6</a><br/>Chronology - <a href="24-ch.html#SP3">&#167;3</a><br/>List Together - <a href="26-lt.html#SP3">&#167;3</a><br/>Test Scripts - <a href="26-ts.html#SP9_1">&#167;9.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">hap_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">HierarchyLocations::attach_new_package</span><span class="plain-syntax">(</span><a href="27-em.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><a href="27-cm.html#SP5" class="function-link"><span class="function-syntax">Modules::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">), </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">hap_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">HierarchyLocations::attach_new_package</span><span class="plain-syntax">(</span><a href="27-em.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><a href="27-cm.html#SP5" class="function-link"><span class="function-syntax">CompilationUnits::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">), </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">hap_id</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">Hierarchy::package_in_enclosure</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">Hierarchy::package_in_enclosure</span></span>:<br/>Deciding to Defer - <a href="12-dtd.html#SP4">&#167;4</a><br/>Runtime Support for Kinds - <a href="13-rsfk.html#SP4">&#167;4</a><br/>Text Literals - <a href="17-tl.html#SP7">&#167;7</a>, <a href="17-tl.html#SP10_2_1">&#167;10.2.1</a>, <a href="17-tl.html#SP14_2">&#167;14.2</a>, <a href="17-tl.html#SP16">&#167;16</a><br/>Text Substitutions - <a href="17-ts.html#SP8_1">&#167;8.1</a><br/>List Constants - <a href="18-lc.html#SP11">&#167;11</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">hap_id</span><span class="plain-syntax">) {</span>
@ -1762,7 +1762,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">HierarchyLocations::find_in_package</span><span class="plain-syntax">(</span><a href="27-em.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">, </span><span class="identifier-syntax">derive_from</span><span class="plain-syntax">, -1, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Hierarchy::make_localised_iname_in</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">Hierarchy::make_localised_iname_in</span></span>:<br/>Phrase Usage - <a href="22-pu.html#SP6">&#167;6</a><br/>To Phrases - <a href="22-tp.html#SP7">&#167;7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">compilation_module</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Hierarchy::make_localised_iname_in</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">Hierarchy::make_localised_iname_in</span></span>:<br/>Phrase Usage - <a href="22-pu.html#SP6">&#167;6</a><br/>To Phrases - <a href="22-tp.html#SP7">&#167;7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">compilation_unit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">HierarchyLocations::find_in_package</span><span class="plain-syntax">(</span><a href="27-em.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</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">, -1, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
@ -1780,7 +1780,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">HierarchyLocations::package_in_package</span><span class="plain-syntax">(</span><a href="27-em.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Hierarchy::markup</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">Hierarchy::markup</span></span>:<br/>Valued Properties - <a href="15-vp.html#SP3">&#167;3</a><br/>Compilation Modules - <a href="27-cm.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">hm_id</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">value</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Hierarchy::markup</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">Hierarchy::markup</span></span>:<br/>Valued Properties - <a href="15-vp.html#SP3">&#167;3</a><br/>Compilation Units - <a href="27-cm.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">hm_id</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">value</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HierarchyLocations::markup</span><span class="plain-syntax">(</span><a href="27-em.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-syntax">hm_id</span><span class="plain-syntax">, </span><span class="identifier-syntax">value</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>

View file

@ -87,7 +87,7 @@ means? We break this circularity by hard-wiring it, as follows.
</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">BootVerbs::bootstrap</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">BootVerbs::bootstrap</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_3">&#167;2.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">BootVerbs::make_built_in</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">BootVerbs::make_built_in</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_3">&#167;2.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="identifier-syntax">verb</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to_mean</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">special_meaning_holder</span><span class="plain-syntax"> *</span><span class="identifier-syntax">meaning_of_mean</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-bv.html#SP1_3" class="named-paragraph-link"><span class="named-paragraph">Create the special meanings</span><span class="named-paragraph-number">1.3</span></a></span><span class="plain-syntax">;</span>

View file

@ -86,7 +86,7 @@ on, placing them in a subtree.
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">classification_traverse_done</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">Classifying::traverse</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">Classifying::traverse</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_3">&#167;2.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Classifying::traverse</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">Classifying::traverse</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_5">&#167;2.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">SyntaxTree::traverse</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP5" class="function-link"><span class="function-syntax">Task::syntax_tree</span></a><span class="plain-syntax">(), </span><a href="3-cs.html#SP1" class="function-link"><span class="function-syntax">Classifying::visit</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">classification_traverse_done</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>

View file

@ -259,7 +259,7 @@ adjectival phrase in sorted order, so:
</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">Adjectives::Meanings::initialise</span><span class="plain-syntax">(</span><span class="identifier-syntax">adjective</span><span class="plain-syntax"> *</span><span class="identifier-syntax">adj</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">adj</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">adjective_compilation</span><span class="plain-syntax">.</span><span class="element-syntax">aph_package</span><span class="plain-syntax"> = </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::package</span></a><span class="plain-syntax">(</span><a href="27-cm.html#SP6" class="function-link"><span class="function-syntax">Modules::current</span></a><span class="plain-syntax">(), </span><span class="constant-syntax">ADJECTIVES_HAP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">adj</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">adjective_compilation</span><span class="plain-syntax">.</span><span class="element-syntax">aph_package</span><span class="plain-syntax"> = </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::package</span></a><span class="plain-syntax">(</span><a href="27-cm.html#SP6" class="function-link"><span class="function-syntax">CompilationUnits::current</span></a><span class="plain-syntax">(), </span><span class="constant-syntax">ADJECTIVES_HAP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">adj</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">adjective_compilation</span><span class="plain-syntax">.</span><span class="element-syntax">aph_iname</span><span class="plain-syntax"> = </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">ADJECTIVE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">adj</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">adjective_compilation</span><span class="plain-syntax">.</span><span class="element-syntax">aph_package</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
@ -1579,7 +1579,7 @@ prefaced "(of a rulebook)", "(of an activity)", and so on.
</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">Adjectives::Meanings::agreements</span><button class="popup" onclick="togglePopup('usagePopup38')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup38">Usage of <span class="code-font"><span class="function-syntax">Adjectives::Meanings::agreements</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Adjectives::Meanings::agreements</span><button class="popup" onclick="togglePopup('usagePopup38')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup38">Usage of <span class="code-font"><span class="function-syntax">Adjectives::Meanings::agreements</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Projects::get_language_of_play</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP5" class="function-link"><span class="function-syntax">Task::project</span></a><span class="plain-syntax">()) == </span><span class="identifier-syntax">DefaultLanguage::get</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="plain-syntax"> </span><span class="identifier-syntax">adjective</span><span class="plain-syntax"> *</span><span class="identifier-syntax">aph</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">aph</span><span class="plain-syntax">, </span><span class="identifier-syntax">adjective</span><span class="plain-syntax">) {</span>

View file

@ -813,7 +813,7 @@ Note that only instances, not kinds, appear.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Instances::place_objects_in_definition_sequence</span><button class="popup" onclick="togglePopup('usagePopup33')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup33">Usage of <span class="code-font"><span class="function-syntax">Instances::place_objects_in_definition_sequence</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_5">&#167;2.5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Instances::place_objects_in_definition_sequence</span><button class="popup" onclick="togglePopup('usagePopup33')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup33">Usage of <span class="code-font"><span class="function-syntax">Instances::place_objects_in_definition_sequence</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_6">&#167;2.6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="5-ins.html#SP30" class="function-link"><span class="function-syntax">Instances::begin_sequencing_objects</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_OBJECT_INSTANCES</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)</span>

View file

@ -3383,7 +3383,7 @@ are declared.
</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">LiteralPatterns::define_named_phrases</span><button class="popup" onclick="togglePopup('usagePopup24')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup24">Usage of <span class="code-font"><span class="function-syntax">LiteralPatterns::define_named_phrases</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_7">&#167;2.7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">LiteralPatterns::define_named_phrases</span><button class="popup" onclick="togglePopup('usagePopup24')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup24">Usage of <span class="code-font"><span class="function-syntax">LiteralPatterns::define_named_phrases</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</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">literal_pattern_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lpn</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">lpn</span><span class="plain-syntax">, </span><span class="reserved-syntax">literal_pattern_name</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">lpn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">lpn_compiled_already</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
@ -3395,7 +3395,7 @@ are declared.
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-lp.html#SP40_1" class="named-paragraph-link"><span class="named-paragraph">Compile the printing phrase for this and perhaps subsequent LPs</span><span class="named-paragraph-number">40.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><a href="7-rs.html#SP3" class="function-link"><span class="function-syntax">Sentences::RuleSubtrees::register_recently_lexed_phrases</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="7-rs.html#SP3" class="function-link"><span class="function-syntax">RuleSubtrees::register_recently_lexed_phrases</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP40_1"></a><b>&#167;40.1. </b>These text substitutions correspond exactly neither to the LPs nor to the
@ -3458,7 +3458,7 @@ the LPs under each named possibility.
<span class="plain-syntax"> </span><span class="identifier-syntax">Kinds::Textual::write</span><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-lp.html#SP41_1" class="named-paragraph-link"><span class="named-paragraph">Define phrases to convert from a packed value to individual parts</span><span class="named-paragraph-number">41.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-lp.html#SP41_2" class="named-paragraph-link"><span class="named-paragraph">Define a phrase to convert from numerical parts to a packed value</span><span class="named-paragraph-number">41.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="7-rs.html#SP3" class="function-link"><span class="function-syntax">Sentences::RuleSubtrees::register_recently_lexed_phrases</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="7-rs.html#SP3" class="function-link"><span class="function-syntax">RuleSubtrees::register_recently_lexed_phrases</span></a><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>
</pre>

View file

@ -515,7 +515,7 @@ there's very little to say.
<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">NonlocalVariables::iname</span><button class="popup" onclick="togglePopup('usagePopup25')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup25">Usage of <span class="code-font"><span class="function-syntax">NonlocalVariables::iname</span></span>:<br/><a href="5-nv.html#SP12">&#167;12</a><br/>Compile Invocations Inline - <a href="25-cii.html#SP8">&#167;8</a><br/>Routines - <a href="26-rt.html#SP4_1_2">&#167;4.1.2</a>, <a href="26-rt.html#SP4_1_4">&#167;4.1.4</a><br/>Hierarchy - <a href="27-hr.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">nlv_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">R</span><span class="plain-syntax"> = </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::package</span></a><span class="plain-syntax">(</span><a href="27-cm.html#SP5" class="function-link"><span class="function-syntax">Modules::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">nlv_created_at</span><span class="plain-syntax">), </span><span class="constant-syntax">VARIABLES_HAP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax"> = </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::package</span></a><span class="plain-syntax">(</span><a href="27-cm.html#SP5" class="function-link"><span class="function-syntax">CompilationUnits::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">nlv_created_at</span><span class="plain-syntax">), </span><span class="constant-syntax">VARIABLES_HAP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::markup_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="constant-syntax">VARIABLE_NAME_HMD</span><span class="plain-syntax">, </span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">nlv_iname</span><span class="plain-syntax"> = </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::make_iname_with_memo</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VARIABLE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>

View file

@ -140,7 +140,7 @@ instance, the Standard Rules want the player-character object to be called
</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">UseNouns::name_all</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">UseNouns::name_all</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_5">&#167;2.5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">UseNouns::name_all</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">UseNouns::name_all</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_6">&#167;2.6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_BASE_KINDS</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="13-rsfk.html#SP23" class="function-link"><span class="function-syntax">Kinds::RunTime::assure_iname_exists</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>

View file

@ -776,7 +776,7 @@ would always be <span class="extract"><span class="extract-syntax">NULL</span></
<span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">BinaryPredicates::package</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">BinaryPredicates::package</span></span>:<br/><a href="6-bp.html#SP32">&#167;32</a>, <a href="6-bp.html#SP42">&#167;42</a><br/>Relations - <a href="6-rlt.html#SP9">&#167;9</a>, <a href="6-rlt.html#SP9_13">&#167;9.13</a>, <a href="6-rlt.html#SP20">&#167;20</a>, <a href="6-rlt.html#SP20_3">&#167;20.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bp</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">bp</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 bp"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">bp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">bp_package</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">bp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">bp_package</span><span class="plain-syntax"> = </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::package</span></a><span class="plain-syntax">(</span><a href="27-cm.html#SP5" class="function-link"><span class="function-syntax">Modules::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">bp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">bp_created_at</span><span class="plain-syntax">), </span><span class="constant-syntax">RELATIONS_HAP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">bp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">bp_package</span><span class="plain-syntax"> = </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::package</span></a><span class="plain-syntax">(</span><a href="27-cm.html#SP5" class="function-link"><span class="function-syntax">CompilationUnits::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">bp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">bp_created_at</span><span class="plain-syntax">), </span><span class="constant-syntax">RELATIONS_HAP</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">bp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">bp_package</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
@ -1139,7 +1139,7 @@ above. This happens very early in compilation.
<p class="commentary firstcommentary"><a id="SP46"></a><b>&#167;46. Other property-based relations. </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">BinaryPredicates::make_built_in_further</span><button class="popup" onclick="togglePopup('usagePopup46')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup46">Usage of <span class="code-font"><span class="function-syntax">BinaryPredicates::make_built_in_further</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_6">&#167;2.6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">BinaryPredicates::make_built_in_further</span><button class="popup" onclick="togglePopup('usagePopup46')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup46">Usage of <span class="code-font"><span class="function-syntax">BinaryPredicates::make_built_in_further</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_7">&#167;2.7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="12-ter.html#SP4" class="function-link"><span class="function-syntax">Calculus::Equality::REL_create_second_stock</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="15-tpr.html#SP4" class="function-link"><span class="function-syntax">Properties::ProvisionRelation::REL_create_second_stock</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="6-tur.html#SP4" class="function-link"><span class="function-syntax">Relations::Universal::REL_create_second_stock</span></a><span class="plain-syntax">();</span>

View file

@ -112,7 +112,7 @@ implementation of it. But in practice they should never be reached.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">V</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"no verb identity"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">V</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">verb_compilation</span><span class="plain-syntax">.</span><span class="element-syntax">verb_package</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">V</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">verb_compilation</span><span class="plain-syntax">.</span><span class="element-syntax">verb_package</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::package</span></a><span class="plain-syntax">(</span><a href="27-cm.html#SP5" class="function-link"><span class="function-syntax">Modules::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">where</span><span class="plain-syntax">), </span><span class="constant-syntax">VERBS_HAP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::package</span></a><span class="plain-syntax">(</span><a href="27-cm.html#SP5" class="function-link"><span class="function-syntax">CompilationUnits::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">where</span><span class="plain-syntax">), </span><span class="constant-syntax">VERBS_HAP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">verb_compilation</span><span class="plain-syntax">.</span><span class="element-syntax">verb_package</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
@ -827,7 +827,7 @@ foreign verbs (4).
<span class="plain-syntax"> </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><a href="27-em.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">CV_MEANING_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">NewVerbs::ConjugateVerb</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">NewVerbs::ConjugateVerb</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">NewVerbs::ConjugateVerb</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">NewVerbs::ConjugateVerb</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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">verb_conjugation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vc</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">vc</span><span class="plain-syntax">, </span><span class="identifier-syntax">verb_conjugation</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-nv.html#SP17_1" class="named-paragraph-link"><span class="named-paragraph">Compile ConjugateVerb routine</span><span class="named-paragraph-number">17.1</span></a></span><span class="plain-syntax">;</span>

View file

@ -1068,7 +1068,7 @@ combinations.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">iname</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Relations::compile_defined_relation_constants</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">Relations::compile_defined_relation_constants</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Relations::compile_defined_relation_constants</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">Relations::compile_defined_relation_constants</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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">RELS_SYMMETRIC_iname</span><span class="plain-syntax"> = </span><a href="6-rlt.html#SP14" class="function-link"><span class="function-syntax">Relations::compile_defined_relation_constant</span></a><span class="plain-syntax">(</span><span class="constant-syntax">RELS_SYMMETRIC_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">0x8000</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RELS_EQUIVALENCE_iname</span><span class="plain-syntax"> = </span><a href="6-rlt.html#SP14" class="function-link"><span class="function-syntax">Relations::compile_defined_relation_constant</span></a><span class="plain-syntax">(</span><span class="constant-syntax">RELS_EQUIVALENCE_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">0x4000</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RELS_X_UNIQUE_iname</span><span class="plain-syntax"> = </span><a href="6-rlt.html#SP14" class="function-link"><span class="function-syntax">Relations::compile_defined_relation_constant</span></a><span class="plain-syntax">(</span><span class="constant-syntax">RELS_X_UNIQUE_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">0x2000</span><span class="plain-syntax">);</span>
@ -2056,7 +2056,7 @@ between numbers and texts.
<p class="commentary firstcommentary"><a id="SP17"></a><b>&#167;17. Support for the RELATIONS command. </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">Relations::IterateRelations</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">Relations::IterateRelations</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Relations::IterateRelations</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">Relations::IterateRelations</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">ITERATERELATIONS_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><a href="26-rt.html#SP1" class="function-link"><span class="function-syntax">Routines::begin</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">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">callback_s</span><span class="plain-syntax"> = </span><a href="24-lv.html#SP11" class="function-link"><span class="function-syntax">LocalVariables::add_named_call_as_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"callback"</span><span class="plain-syntax">);</span>
@ -2678,7 +2678,7 @@ whether or not $R(<span class="extract"><span class="extract-syntax">t_0</span><
</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">Relations::compile_defined_relations</span><button class="popup" onclick="togglePopup('usagePopup27')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup27">Usage of <span class="code-font"><span class="function-syntax">Relations::compile_defined_relations</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Relations::compile_defined_relations</span><button class="popup" onclick="togglePopup('usagePopup27')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup27">Usage of <span class="code-font"><span class="function-syntax">Relations::compile_defined_relations</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="6-rlt.html#SP15" class="function-link"><span class="function-syntax">Relations::compile_relation_records</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bp</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">bp</span><span class="plain-syntax">, </span><span class="reserved-syntax">binary_predicate</span><span class="plain-syntax">)</span>

View file

@ -257,7 +257,7 @@ and has no "level" or "indentation" as such.
</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">Sentences::Headings::make_the_tree</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">Sentences::Headings::make_the_tree</span></span>:<br/><a href="7-hdn.html#SP9_3">&#167;9.3</a><br/>How To Compile - <a href="1-htc.html#SP2_3">&#167;2.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Sentences::Headings::make_the_tree</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">Sentences::Headings::make_the_tree</span></span>:<br/><a href="7-hdn.html#SP9_3">&#167;9.3</a><br/>How To Compile - <a href="1-htc.html#SP2_2">&#167;2.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">Headings::assemble_tree</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP5" class="function-link"><span class="function-syntax">Task::syntax_tree</span></a><span class="plain-syntax">());</span>
<span class="plain-syntax">}</span>
@ -674,7 +674,7 @@ Version", contains the Inform build number in its usual form: "4Q34", for instan
</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">Sentences::Headings::write_as_xml</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">Sentences::Headings::write_as_xml</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_3">&#167;2.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Sentences::Headings::write_as_xml</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">Sentences::Headings::write_as_xml</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_2">&#167;2.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">text_stream</span><span class="plain-syntax"> </span><span class="identifier-syntax">xf_struct</span><span class="plain-syntax">; </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">xf</span><span class="plain-syntax"> = &amp;</span><span class="identifier-syntax">xf_struct</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><a href="1-wtc.html#SP13" class="function-link"><span class="function-syntax">Task::xml_headings_file</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">STREAM_OPEN_TO_FILE</span><span class="plain-syntax">(</span><span class="identifier-syntax">xf</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">UTF8_ENC</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)</span>

View file

@ -245,7 +245,7 @@ also makes it easier for us to manipulate the results.
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow</span><span class="plain-syntax">(</span><span class="identifier-syntax">HEADING_NT</span><span class="plain-syntax">, </span><span class="constant-syntax">interpretation_of_subject_ANNOT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow</span><span class="plain-syntax">(</span><span class="identifier-syntax">HEADING_NT</span><span class="plain-syntax">, </span><span class="identifier-syntax">suppress_heading_dependencies_ANNOT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow</span><span class="plain-syntax">(</span><span class="identifier-syntax">HEADING_NT</span><span class="plain-syntax">, </span><span class="identifier-syntax">implied_heading_ANNOT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow_for_category</span><span class="plain-syntax">(</span><span class="identifier-syntax">L1_NCAT</span><span class="plain-syntax">, </span><span class="constant-syntax">module_ANNOT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow_for_category</span><span class="plain-syntax">(</span><span class="identifier-syntax">L1_NCAT</span><span class="plain-syntax">, </span><span class="constant-syntax">unit_ANNOT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow_for_category</span><span class="plain-syntax">(</span><span class="identifier-syntax">L2_NCAT</span><span class="plain-syntax">, </span><span class="constant-syntax">clears_pronouns_ANNOT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow_for_category</span><span class="plain-syntax">(</span><span class="identifier-syntax">L2_NCAT</span><span class="plain-syntax">, </span><span class="constant-syntax">interpretation_of_subject_ANNOT</span><span class="plain-syntax">);</span>
@ -254,12 +254,12 @@ also makes it easier for us to manipulate the results.
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow</span><span class="plain-syntax">(</span><span class="identifier-syntax">SENTENCE_NT</span><span class="plain-syntax">, </span><span class="constant-syntax">implicit_in_creation_of_ANNOT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow</span><span class="plain-syntax">(</span><span class="identifier-syntax">SENTENCE_NT</span><span class="plain-syntax">, </span><span class="constant-syntax">implicitness_count_ANNOT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow</span><span class="plain-syntax">(</span><span class="identifier-syntax">SENTENCE_NT</span><span class="plain-syntax">, </span><span class="constant-syntax">you_can_ignore_ANNOT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow_for_category</span><span class="plain-syntax">(</span><span class="identifier-syntax">L2_NCAT</span><span class="plain-syntax">, </span><span class="constant-syntax">module_ANNOT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow_for_category</span><span class="plain-syntax">(</span><span class="identifier-syntax">L2_NCAT</span><span class="plain-syntax">, </span><span class="constant-syntax">unit_ANNOT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_ENUMERATED_NTS</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">NodeType::has_flag</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="identifier-syntax">ASSERT_NFLAG</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="constant-syntax">resolved_ANNOT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow_for_category</span><span class="plain-syntax">(</span><span class="identifier-syntax">L3_NCAT</span><span class="plain-syntax">, </span><span class="constant-syntax">module_ANNOT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow_for_category</span><span class="plain-syntax">(</span><span class="identifier-syntax">L3_NCAT</span><span class="plain-syntax">, </span><span class="constant-syntax">unit_ANNOT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow_for_category</span><span class="plain-syntax">(</span><span class="identifier-syntax">L3_NCAT</span><span class="plain-syntax">, </span><span class="constant-syntax">creation_proposition_ANNOT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow_for_category</span><span class="plain-syntax">(</span><span class="identifier-syntax">L3_NCAT</span><span class="plain-syntax">, </span><span class="constant-syntax">evaluation_ANNOT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow_for_category</span><span class="plain-syntax">(</span><span class="identifier-syntax">L3_NCAT</span><span class="plain-syntax">, </span><span class="constant-syntax">subject_ANNOT</span><span class="plain-syntax">);</span>
@ -309,7 +309,7 @@ also makes it easier for us to manipulate the results.
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow_for_category</span><span class="plain-syntax">(</span><span class="identifier-syntax">L4_NCAT</span><span class="plain-syntax">, </span><span class="constant-syntax">token_to_be_parsed_against_ANNOT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow_for_category</span><span class="plain-syntax">(</span><span class="identifier-syntax">L4_NCAT</span><span class="plain-syntax">, </span><span class="constant-syntax">verb_problem_issued_ANNOT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow_for_category</span><span class="plain-syntax">(</span><span class="identifier-syntax">L4_NCAT</span><span class="plain-syntax">, </span><span class="identifier-syntax">problem_falls_under_ANNOT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow_for_category</span><span class="plain-syntax">(</span><span class="identifier-syntax">L4_NCAT</span><span class="plain-syntax">, </span><span class="constant-syntax">module_ANNOT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow_for_category</span><span class="plain-syntax">(</span><span class="identifier-syntax">L4_NCAT</span><span class="plain-syntax">, </span><span class="constant-syntax">unit_ANNOT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow</span><span class="plain-syntax">(</span><span class="identifier-syntax">INVOCATION_LIST_NT</span><span class="plain-syntax">, </span><span class="constant-syntax">from_text_substitution_ANNOT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow</span><span class="plain-syntax">(</span><span class="constant-syntax">INVOCATION_LIST_SAY_NT</span><span class="plain-syntax">, </span><span class="constant-syntax">suppress_newlines_ANNOT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow</span><span class="plain-syntax">(</span><span class="constant-syntax">INVOCATION_NT</span><span class="plain-syntax">, </span><span class="constant-syntax">epistemological_status_ANNOT</span><span class="plain-syntax">);</span>
@ -553,7 +553,7 @@ be such that their head nodes each pass this test:
<p class="commentary firstcommentary"><a id="SP15"></a><b>&#167;15. </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">ParseTreeUsage::verify</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">ParseTreeUsage::verify</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_3">&#167;2.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ParseTreeUsage::verify</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">ParseTreeUsage::verify</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_5">&#167;2.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">VerifyTree::verify_integrity</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP5" class="function-link"><span class="function-syntax">Task::syntax_tree</span></a><span class="plain-syntax">());</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">VerifyTree::verify_structure</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP5" class="function-link"><span class="function-syntax">Task::syntax_tree</span></a><span class="plain-syntax">());</span>
<span class="plain-syntax">}</span>

View file

@ -103,17 +103,17 @@ on childless nodes, it cannot ever act on the same node twice.
</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">Sentences::RuleSubtrees::register_recently_lexed_phrases</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">Sentences::RuleSubtrees::register_recently_lexed_phrases</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_3">&#167;2.3</a><br/>Literal Patterns - <a href="5-lp.html#SP40">&#167;40</a>, <a href="5-lp.html#SP41">&#167;41</a><br/>Measurement Adjectives - <a href="15-ma.html#SP11_4">&#167;11.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RuleSubtrees::register_recently_lexed_phrases</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">RuleSubtrees::register_recently_lexed_phrases</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_4">&#167;2.4</a><br/>Literal Patterns - <a href="5-lp.html#SP40">&#167;40</a>, <a href="5-lp.html#SP41">&#167;41</a><br/>Measurement Adjectives - <a href="15-ma.html#SP11_4">&#167;11.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">problem_count</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">; </span><span class="comment-syntax"> for then the tree is perhaps broken anyway</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">SyntaxTree::traverse</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP5" class="function-link"><span class="function-syntax">Task::syntax_tree</span></a><span class="plain-syntax">(), </span><a href="7-rs.html#SP4" class="function-link"><span class="function-syntax">Sentences::RuleSubtrees::demote_command_nodes</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">SyntaxTree::traverse</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP5" class="function-link"><span class="function-syntax">Task::syntax_tree</span></a><span class="plain-syntax">(), </span><a href="7-rs.html#SP5" class="function-link"><span class="function-syntax">Sentences::RuleSubtrees::detect_loose_command_nodes</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">SyntaxTree::traverse</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP5" class="function-link"><span class="function-syntax">Task::syntax_tree</span></a><span class="plain-syntax">(), </span><a href="7-rs.html#SP4" class="function-link"><span class="function-syntax">RuleSubtrees::demote_command_nodes</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">SyntaxTree::traverse</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP5" class="function-link"><span class="function-syntax">Task::syntax_tree</span></a><span class="plain-syntax">(), </span><a href="7-rs.html#SP5" class="function-link"><span class="function-syntax">RuleSubtrees::detect_loose_command_nodes</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP4"></a><b>&#167;4. </b>Command nodes are demoted to be children of routine nodes:
</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">Sentences::RuleSubtrees::demote_command_nodes</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">Sentences::RuleSubtrees::demote_command_nodes</span></span>:<br/><a href="7-rs.html#SP3">&#167;3</a></span></button><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">RuleSubtrees::demote_command_nodes</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">RuleSubtrees::demote_command_nodes</span></span>:<br/><a href="7-rs.html#SP3">&#167;3</a></span></button><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="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">) == </span><span class="identifier-syntax">RULE_NT</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-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">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">end_def</span><span class="plain-syntax"> = </span><span class="identifier-syntax">p</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">end_def</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">end_def</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">) == </span><span class="identifier-syntax">INVOCATION_LIST_NT</span><span class="plain-syntax">))</span>
@ -123,7 +123,7 @@ on childless nodes, it cannot ever act on the same node twice.
<span class="plain-syntax"> </span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">down</span><span class="plain-syntax"> = </span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">next</span><span class="plain-syntax"> = </span><span class="identifier-syntax">end_def</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">end_def</span><span class="plain-syntax">-&gt;</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><a href="7-rs.html#SP6" class="function-link"><span class="function-syntax">Sentences::RuleSubtrees::parse_routine_structure</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="7-rs.html#SP6" class="function-link"><span class="function-syntax">RuleSubtrees::parse_routine_structure</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
</pre>
@ -131,7 +131,7 @@ on childless nodes, it cannot ever act on the same node twice.
</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">Sentences::RuleSubtrees::detect_loose_command_nodes</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">Sentences::RuleSubtrees::detect_loose_command_nodes</span></span>:<br/><a href="7-rs.html#SP3">&#167;3</a></span></button><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">RuleSubtrees::detect_loose_command_nodes</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">RuleSubtrees::detect_loose_command_nodes</span></span>:<br/><a href="7-rs.html#SP3">&#167;3</a></span></button><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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">) == </span><span class="identifier-syntax">INVOCATION_LIST_NT</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">"loose COMMAND node outside of rule definition"</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
@ -156,7 +156,7 @@ indentation difficult to manage with screen-readers.
</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">Sentences::RuleSubtrees::parse_routine_structure</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">Sentences::RuleSubtrees::parse_routine_structure</span></span>:<br/><a href="7-rs.html#SP4">&#167;4</a><br/>Text Substitutions - <a href="17-ts.html#SP12_1">&#167;12.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">routine_node</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RuleSubtrees::parse_routine_structure</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">RuleSubtrees::parse_routine_structure</span></span>:<br/><a href="7-rs.html#SP4">&#167;4</a><br/>Text Substitutions - <a href="17-ts.html#SP12_1">&#167;12.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">routine_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">initial_problem_count</span><span class="plain-syntax"> = </span><span class="identifier-syntax">problem_count</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">uses_colon_syntax</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
@ -410,7 +410,7 @@ to break this up.
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-rs.html#SP6_5_1_1" class="named-paragraph-link"><span class="named-paragraph">Deal with an immediately following otherwise node, if there is one</span><span class="named-paragraph-number">6.5.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">uses_colon_syntax</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">last_node_of_if_construction</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax"> = </span><a href="7-rs.html#SP9" class="function-link"><span class="function-syntax">Sentences::RuleSubtrees::end_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">last_node_of_if_construction</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax"> = </span><a href="7-rs.html#SP9" class="function-link"><span class="function-syntax">RuleSubtrees::end_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">last_node_of_if_construction</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax"> = </span><span class="identifier-syntax">rest_of_routine</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">last_node_of_if_construction</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax"> = </span><span class="identifier-syntax">rest_of_routine</span><span class="plain-syntax">;</span>
@ -711,7 +711,7 @@ indentation implicitly requires it.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">implicit_end</span><span class="plain-syntax"> = </span><a href="7-rs.html#SP9" class="function-link"><span class="function-syntax">Sentences::RuleSubtrees::end_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">opening</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">implicit_end</span><span class="plain-syntax"> = </span><a href="7-rs.html#SP9" class="function-link"><span class="function-syntax">RuleSubtrees::end_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">opening</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">implicit_end</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax"> = </span><span class="identifier-syntax">prev</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">; </span><span class="identifier-syntax">prev</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax"> = </span><span class="identifier-syntax">implicit_end</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">prev</span><span class="plain-syntax"> = </span><span class="identifier-syntax">implicit_end</span><span class="plain-syntax">;</span>
</pre>
@ -1030,7 +1030,7 @@ where we look for such mistakes.
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">n</span><span class="plain-syntax"> = </span><span class="identifier-syntax">problem_count</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="7-rs.html#SP7" class="function-link"><span class="function-syntax">Sentences::RuleSubtrees::police_code_block</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">routine_node</span><span class="plain-syntax">-&gt;</span><span class="element-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="7-rs.html#SP7" class="function-link"><span class="function-syntax">RuleSubtrees::police_code_block</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">routine_node</span><span class="plain-syntax">-&gt;</span><span class="element-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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">problem_count</span><span class="plain-syntax"> &gt; </span><span class="identifier-syntax">n</span><span class="plain-syntax">) </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"Local parse tree: $T\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">routine_node</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="7-rs.html#SP6">&#167;6</a>.</li></ul>
@ -1038,7 +1038,7 @@ where we look for such mistakes.
</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">Sentences::RuleSubtrees::police_code_block</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">Sentences::RuleSubtrees::police_code_block</span></span>:<br/><a href="7-rs.html#SP6_8">&#167;6.8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">block</span><span class="plain-syntax">, </span><span class="identifier-syntax">control_structure_phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">context</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RuleSubtrees::police_code_block</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">RuleSubtrees::police_code_block</span></span>:<br/><a href="7-rs.html#SP6_8">&#167;6.8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">block</span><span class="plain-syntax">, </span><span class="identifier-syntax">control_structure_phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">context</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">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">block</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">, *</span><span class="identifier-syntax">prev_p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="identifier-syntax">p</span><span class="plain-syntax">; </span><span class="identifier-syntax">prev_p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax"> = </span><span class="identifier-syntax">p</span><span class="plain-syntax">;</span>
@ -1068,7 +1068,7 @@ where we look for such mistakes.
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">) </span><a href="7-rs.html#SP7" class="function-link"><span class="function-syntax">Sentences::RuleSubtrees::police_code_block</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">csp</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">) </span><a href="7-rs.html#SP7" class="function-link"><span class="function-syntax">RuleSubtrees::police_code_block</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">csp</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
</pre>
@ -1214,7 +1214,7 @@ can now become "otherwise: if whatever: ...".
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">n</span><span class="plain-syntax"> = </span><span class="identifier-syntax">problem_count</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="7-rs.html#SP6_10" class="function-link"><span class="function-syntax">Sentences::RuleSubtrees::purge_otherwise_if</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">routine_node</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="7-rs.html#SP6_10" class="function-link"><span class="function-syntax">RuleSubtrees::purge_otherwise_if</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">routine_node</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">problem_count</span><span class="plain-syntax"> &gt; </span><span class="identifier-syntax">n</span><span class="plain-syntax">) </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"Local parse tree: $T\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">routine_node</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="7-rs.html#SP6">&#167;6</a>.</li></ul>
@ -1225,7 +1225,7 @@ to issue good problem messages for failures to use "otherwise if" correctly.
</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">Sentences::RuleSubtrees::purge_otherwise_if</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">Sentences::RuleSubtrees::purge_otherwise_if</span></span>:<br/><a href="7-rs.html#SP6_9">&#167;6.9</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">block</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RuleSubtrees::purge_otherwise_if</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">RuleSubtrees::purge_otherwise_if</span></span>:<br/><a href="7-rs.html#SP6_9">&#167;6.9</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">block</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">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">block</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">, *</span><span class="identifier-syntax">prev_p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="identifier-syntax">p</span><span class="plain-syntax">; </span><span class="identifier-syntax">prev_p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Node::get_control_structure_used</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">) == </span><span class="identifier-syntax">otherwise_if_CSP</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">former_contents</span><span class="plain-syntax"> = </span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">;</span>
@ -1252,7 +1252,7 @@ to issue good problem messages for failures to use "otherwise if" correctly.
<span class="plain-syntax"> </span><span class="comment-syntax"> any further "otherwise if" or "otherwise" nodes after p follow</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax"> = </span><span class="identifier-syntax">former_successors</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">) </span><a href="7-rs.html#SP6_10" class="function-link"><span class="function-syntax">Sentences::RuleSubtrees::purge_otherwise_if</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">) </span><a href="7-rs.html#SP6_10" class="function-link"><span class="function-syntax">RuleSubtrees::purge_otherwise_if</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
</pre>
@ -1266,18 +1266,18 @@ We remove them.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="7-rs.html#SP6_12" class="function-link"><span class="function-syntax">Sentences::RuleSubtrees::purge_end_markers</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">routine_node</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="7-rs.html#SP6_12" class="function-link"><span class="function-syntax">RuleSubtrees::purge_end_markers</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">routine_node</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="7-rs.html#SP6">&#167;6</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP6_12"></a><b>&#167;6.12. </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">Sentences::RuleSubtrees::purge_end_markers</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">Sentences::RuleSubtrees::purge_end_markers</span></span>:<br/><a href="7-rs.html#SP6_11">&#167;6.11</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">block</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RuleSubtrees::purge_end_markers</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">RuleSubtrees::purge_end_markers</span></span>:<br/><a href="7-rs.html#SP6_11">&#167;6.11</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">block</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">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">block</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">, *</span><span class="identifier-syntax">prev_p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="identifier-syntax">p</span><span class="plain-syntax">; </span><span class="identifier-syntax">prev_p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Node::get_end_control_structure_used</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">prev_p</span><span class="plain-syntax">) </span><span class="identifier-syntax">prev_p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax"> = </span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">; </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">block</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax"> = </span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">) </span><a href="7-rs.html#SP6_12" class="function-link"><span class="function-syntax">Sentences::RuleSubtrees::purge_end_markers</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">) </span><a href="7-rs.html#SP6_12" class="function-link"><span class="function-syntax">RuleSubtrees::purge_end_markers</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
</pre>
@ -1289,18 +1289,18 @@ can now be removed, too.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="7-rs.html#SP6_14" class="function-link"><span class="function-syntax">Sentences::RuleSubtrees::purge_begin_markers</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">routine_node</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="7-rs.html#SP6_14" class="function-link"><span class="function-syntax">RuleSubtrees::purge_begin_markers</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">routine_node</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="7-rs.html#SP6">&#167;6</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP6_14"></a><b>&#167;6.14. </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">Sentences::RuleSubtrees::purge_begin_markers</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">Sentences::RuleSubtrees::purge_begin_markers</span></span>:<br/><a href="7-rs.html#SP6_13">&#167;6.13</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">block</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RuleSubtrees::purge_begin_markers</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">RuleSubtrees::purge_begin_markers</span></span>:<br/><a href="7-rs.html#SP6_13">&#167;6.13</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">block</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">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">block</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">, *</span><span class="identifier-syntax">prev_p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="identifier-syntax">p</span><span class="plain-syntax">; </span><span class="identifier-syntax">prev_p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Node::get_control_structure_used</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;phrase-beginning-block&gt;</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">Node::set_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax">&lt;phrase-beginning-block&gt;</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">) </span><a href="7-rs.html#SP6_14" class="function-link"><span class="function-syntax">Sentences::RuleSubtrees::purge_begin_markers</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">) </span><a href="7-rs.html#SP6_14" class="function-link"><span class="function-syntax">RuleSubtrees::purge_begin_markers</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
</pre>
@ -1316,13 +1316,13 @@ annotations to them.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="7-rs.html#SP6_16" class="function-link"><span class="function-syntax">Sentences::RuleSubtrees::insert_cb_nodes</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">routine_node</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="7-rs.html#SP6_16" class="function-link"><span class="function-syntax">RuleSubtrees::insert_cb_nodes</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">routine_node</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="7-rs.html#SP6">&#167;6</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP6_16"></a><b>&#167;6.16. </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">Sentences::RuleSubtrees::insert_cb_nodes</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">Sentences::RuleSubtrees::insert_cb_nodes</span></span>:<br/><a href="7-rs.html#SP6_15">&#167;6.15</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">block</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RuleSubtrees::insert_cb_nodes</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">RuleSubtrees::insert_cb_nodes</span></span>:<br/><a href="7-rs.html#SP6_15">&#167;6.15</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">block</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">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">block</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">, *</span><span class="identifier-syntax">prev_p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="identifier-syntax">p</span><span class="plain-syntax">; </span><span class="identifier-syntax">prev_p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ControlStructures::opens_block</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_control_structure_used</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">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">blank_cb_node</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::new</span><span class="plain-syntax">(</span><span class="constant-syntax">CODE_BLOCK_NT</span><span class="plain-syntax">);</span>
@ -1336,7 +1336,7 @@ annotations to them.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">prev_p</span><span class="plain-syntax">) </span><span class="identifier-syntax">prev_p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax"> = </span><span class="identifier-syntax">blank_cb_node</span><span class="plain-syntax">; </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">block</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax"> = </span><span class="identifier-syntax">blank_cb_node</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">blank_cb_node</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">) </span><a href="7-rs.html#SP6_16" class="function-link"><span class="function-syntax">Sentences::RuleSubtrees::insert_cb_nodes</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">) </span><a href="7-rs.html#SP6_16" class="function-link"><span class="function-syntax">RuleSubtrees::insert_cb_nodes</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
</pre>
@ -1347,13 +1347,13 @@ annotations to them.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="7-rs.html#SP6_18" class="function-link"><span class="function-syntax">Sentences::RuleSubtrees::read_instead_markers</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">routine_node</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="7-rs.html#SP6_18" class="function-link"><span class="function-syntax">RuleSubtrees::read_instead_markers</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">routine_node</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="7-rs.html#SP6">&#167;6</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP6_18"></a><b>&#167;6.18. </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">Sentences::RuleSubtrees::read_instead_markers</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">Sentences::RuleSubtrees::read_instead_markers</span></span>:<br/><a href="7-rs.html#SP6_17">&#167;6.17</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">block</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RuleSubtrees::read_instead_markers</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">RuleSubtrees::read_instead_markers</span></span>:<br/><a href="7-rs.html#SP6_17">&#167;6.17</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">block</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">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">block</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">, *</span><span class="identifier-syntax">prev_p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="identifier-syntax">p</span><span class="plain-syntax">; </span><span class="identifier-syntax">prev_p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;instead-keyword&gt;</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">Node::set_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax">&lt;instead-keyword&gt;</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">));</span>
@ -1362,7 +1362,7 @@ annotations to them.
<span class="plain-syntax"> </span><span class="identifier-syntax">instead_node</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax"> = </span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax"> = </span><span class="identifier-syntax">instead_node</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">) </span><a href="7-rs.html#SP6_18" class="function-link"><span class="function-syntax">Sentences::RuleSubtrees::read_instead_markers</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">) </span><a href="7-rs.html#SP6_18" class="function-link"><span class="function-syntax">RuleSubtrees::read_instead_markers</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
</pre>
@ -1373,13 +1373,13 @@ annotations to them.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="7-rs.html#SP8" class="function-link"><span class="function-syntax">Sentences::RuleSubtrees::break_up_says</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">routine_node</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="7-rs.html#SP8" class="function-link"><span class="function-syntax">RuleSubtrees::break_up_says</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">routine_node</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="7-rs.html#SP6">&#167;6</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP8"></a><b>&#167;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">Sentences::RuleSubtrees::break_up_says</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">Sentences::RuleSubtrees::break_up_says</span></span>:<br/><a href="7-rs.html#SP6_19">&#167;6.19</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">block</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RuleSubtrees::break_up_says</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">RuleSubtrees::break_up_says</span></span>:<br/><a href="7-rs.html#SP6_19">&#167;6.19</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">block</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">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">block</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">, *</span><span class="identifier-syntax">prev_p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="identifier-syntax">p</span><span class="plain-syntax">; </span><span class="identifier-syntax">prev_p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">sf</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NO_SIGF</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">p</span><span class="plain-syntax">);</span>
@ -1397,7 +1397,7 @@ annotations to them.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">prev_p</span><span class="plain-syntax">) </span><span class="identifier-syntax">prev_p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax"> = </span><span class="identifier-syntax">blank_cb_node</span><span class="plain-syntax">; </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">block</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax"> = </span><span class="identifier-syntax">blank_cb_node</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">p</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="7-rs.html#SP8" class="function-link"><span class="function-syntax">Sentences::RuleSubtrees::unroll_says</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">blank_cb_node</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="7-rs.html#SP8" class="function-link"><span class="function-syntax">RuleSubtrees::unroll_says</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">blank_cb_node</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</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">p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">blank_cb_node</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>
@ -1409,11 +1409,11 @@ annotations to them.
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">) </span><a href="7-rs.html#SP8" class="function-link"><span class="function-syntax">Sentences::RuleSubtrees::break_up_says</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">) </span><a href="7-rs.html#SP8" class="function-link"><span class="function-syntax">RuleSubtrees::break_up_says</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Sentences::RuleSubtrees::unroll_says</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">Sentences::RuleSubtrees::unroll_says</span></span>:<br/><a href="7-rs.html#SP8_1">&#167;8.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cb_node</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">depth</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RuleSubtrees::unroll_says</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">RuleSubtrees::unroll_says</span></span>:<br/><a href="7-rs.html#SP8_1">&#167;8.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cb_node</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">depth</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;phrase-with-comma-notation&gt;</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">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">AW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax">&lt;phrase-with-comma-notation&gt;</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">BW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax">&lt;phrase-with-comma-notation&gt;</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
@ -1434,7 +1434,7 @@ annotations to them.
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-rs.html#SP8_1_1" class="named-paragraph-link"><span class="named-paragraph">Check that substitution does not contain suspicious punctuation</span><span class="named-paragraph-number">8.1.1</span></a></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">A</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Feeds::feed_C_string_expanding_strings</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;verify-expanded-text-substitution&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">A</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><a href="7-rs.html#SP8" class="function-link"><span class="function-syntax">Sentences::RuleSubtrees::unroll_says</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cb_node</span><span class="plain-syntax">, </span><span class="identifier-syntax">A</span><span class="plain-syntax">, </span><span class="identifier-syntax">depth</span><span class="plain-syntax">+1);</span>
<span class="plain-syntax"> </span><a href="7-rs.html#SP8" class="function-link"><span class="function-syntax">RuleSubtrees::unroll_says</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cb_node</span><span class="plain-syntax">, </span><span class="identifier-syntax">A</span><span class="plain-syntax">, </span><span class="identifier-syntax">depth</span><span class="plain-syntax">+1);</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">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">say_term_node</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::new</span><span class="plain-syntax">(</span><span class="constant-syntax">INVOCATION_LIST_SAY_NT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::set_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">say_term_node</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
@ -1602,7 +1602,7 @@ match a given begin node.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Sentences::RuleSubtrees::end_node</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">Sentences::RuleSubtrees::end_node</span></span>:<br/><a href="7-rs.html#SP6_5_1">&#167;6.5.1</a>, <a href="7-rs.html#SP6_6_5_1">&#167;6.6.5.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">opening</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">RuleSubtrees::end_node</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">RuleSubtrees::end_node</span></span>:<br/><a href="7-rs.html#SP6_5_1">&#167;6.5.1</a>, <a href="7-rs.html#SP6_6_5_1">&#167;6.6.5.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">opening</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">implicit_end</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">INVOCATION_LIST_NT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::set_end_control_structure_used</span><span class="plain-syntax">(</span><span class="identifier-syntax">implicit_end</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::get_control_structure_used</span><span class="plain-syntax">(</span><span class="identifier-syntax">opening</span><span class="plain-syntax">));</span>

View file

@ -228,7 +228,7 @@ feelings of modesty.
</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">Extensions::Files::ShowExtensionVersions_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">Extensions::Files::ShowExtensionVersions_routine</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Extensions::Files::ShowExtensionVersions_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">Extensions::Files::ShowExtensionVersions_routine</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_9">&#167;2.9</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SHOWEXTENSIONVERSIONS_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><a href="26-rt.html#SP1" class="function-link"><span class="function-syntax">Routines::begin</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">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">;</span>

View file

@ -176,10 +176,10 @@ we don't bother to print details of the closing <span class="extract"><span clas
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">sentence_handlers_initialised</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">assembly_position</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="comment-syntax"> where assembled sentences are added</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Traverse::traverse1</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">Assertions::Traverse::traverse1</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_4">&#167;2.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Traverse::traverse1</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">Assertions::Traverse::traverse1</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_5">&#167;2.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><a href="9-tfa.html#SP7" class="function-link"><span class="function-syntax">Assertions::Traverse::traverse</span></a><span class="plain-syntax">(1);</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Traverse::traverse2</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">Assertions::Traverse::traverse2</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_4">&#167;2.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Traverse::traverse2</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">Assertions::Traverse::traverse2</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_5">&#167;2.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><a href="9-tfa.html#SP7" class="function-link"><span class="function-syntax">Assertions::Traverse::traverse</span></a><span class="plain-syntax">(2);</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Traverse::traverse</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">pass</span><span class="plain-syntax">) {</span>
@ -240,12 +240,12 @@ artificially to run through those sentences.
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Traverse::visit</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">Assertions::Traverse::visit</span></span>:<br/><a href="9-tfa.html#SP7">&#167;7</a>, <a href="9-tfa.html#SP7_1">&#167;7.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> **</span><span class="identifier-syntax">last</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">assembly_position</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">compilation_module</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cm</span><span class="plain-syntax"> = </span><a href="27-cm.html#SP6" class="function-link"><span class="function-syntax">Modules::current</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="27-cm.html#SP6" class="function-link"><span class="function-syntax">Modules::set_current</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">compilation_unit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cm</span><span class="plain-syntax"> = </span><a href="27-cm.html#SP6" class="function-link"><span class="function-syntax">CompilationUnits::current</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="27-cm.html#SP6" class="function-link"><span class="function-syntax">CompilationUnits::set_current</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-tfa.html#SP7_2_1" class="named-paragraph-link"><span class="named-paragraph">Take a sceptical look at WITH nodes in the light of subsequent knowledge</span><span class="named-paragraph-number">7.2.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> *</span><span class="identifier-syntax">last</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="9-tfa.html#SP7_2_2" class="named-paragraph-link"><span class="named-paragraph">Deal with an individual sentence</span><span class="named-paragraph-number">7.2.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="27-cm.html#SP6" class="function-link"><span class="function-syntax">Modules::set_current_to</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cm</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="27-cm.html#SP6" class="function-link"><span class="function-syntax">CompilationUnits::set_current_to</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cm</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP7_3"></a><b>&#167;7.3. </b>If this hasn't already been done:

View file

@ -1041,7 +1041,7 @@
</li>
<li>
<p class="sectionentry"><a href="27-cm.html">
<spon class="sectiontitle">Compilation Modules</span></a> -
<spon class="sectiontitle">Compilation Units</span></a> -
<span class="sectionpurpose">To identify which parts of the source text come from which source (the main source text, the Standard Rules, or another extension).</span></p>
</li>
<li>

View file

@ -157,7 +157,7 @@ Standard Rules. (So there is no need to translate this to other languages.)
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">PL::Backdrops::object_is_scenery</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">PL::Backdrops::object_is_scenery</span></span>:<br/>Spatial Model - <a href="3-sm.html#SP19">&#167;19</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">PL::Backdrops::object_is_scenery</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">PL::Backdrops::object_is_scenery</span></span>:<br/>Spatial Model - <a href="3-sm.html#SP20">&#167;20</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">World::Inferences::get_EO_state</span><span class="plain-syntax">(</span><span class="identifier-syntax">Instances::as_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">P_scenery</span><span class="plain-syntax">) &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">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>
@ -235,7 +235,7 @@ is <span class="extract"><span class="extract-syntax">NULL</span></span>.
</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">PL::Backdrops::index_object_further</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">PL::Backdrops::index_object_further</span></span>:<br/>Spatial Model - <a href="3-sm.html#SP44">&#167;44</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">loc</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">depth</span><span class="plain-syntax">,</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PL::Backdrops::index_object_further</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">PL::Backdrops::index_object_further</span></span>:<br/>Spatial Model - <a href="3-sm.html#SP45">&#167;45</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">loc</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">depth</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">details</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">how</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">discoveries</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bd</span><span class="plain-syntax">;</span>

View file

@ -284,7 +284,7 @@ If all are null, then the global scope is used.
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PL::EPSMap::put_mp</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">PL::EPSMap::put_mp</span></span>:<br/><a href="3-em.html#SP23_4_2">&#167;23.4.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="reserved-syntax">map_parameter_scope</span><span class="plain-syntax"> *</span><span class="identifier-syntax">scope</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">scope_I</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">scope_k</span><span class="plain-syntax">, </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">put_string</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">put_integer</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">scope_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="3-sm.html#SP15" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">scope_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="3-sm.html#SP16" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">scope_I</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">scope</span><span class="plain-syntax"> = </span><a href="3-em.html#SP11" class="function-link"><span class="function-syntax">PL::EPSMap::scope_for_single_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">scope_I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-rgn.html#SP9" class="function-link"><span class="function-syntax">PL::Regions::object_is_a_region</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">scope_I</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rm</span><span class="plain-syntax">;</span>
@ -712,12 +712,12 @@ the following:
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I2</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;instance:y&gt;&gt;</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">exit</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PF_I</span><span class="plain-syntax">(</span><span class="identifier-syntax">map</span><span class="plain-syntax">, </span><span class="function-syntax">&lt;&lt;instance:dir&gt;&gt;)-&gt;</span><span class="element-syntax">direction_index</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">I</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><a href="3-sm.html#SP15" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">I</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><a href="3-sm.html#SP16" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">pass</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><span class="identifier-syntax">StandardProblems::map_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_MapFromNonRoom</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="string-syntax">"The first-named thing must be a room (beware ambiguities!)."</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">I2</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><a href="3-sm.html#SP15" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I2</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">I2</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><a href="3-sm.html#SP16" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I2</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">pass</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><span class="identifier-syntax">StandardProblems::map_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_MapToNonRoom</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="string-syntax">"The second-named thing must be a room (beware ambiguities!)."</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
@ -862,7 +862,7 @@ the following:
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">bad_scope</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">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">INSTANCE_MAP_SCOPE:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="3-sm.html#SP15" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="function-syntax">&lt;&lt;instance:iscope&gt;&gt;</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-sm.html#SP16" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="function-syntax">&lt;&lt;instance:iscope&gt;&gt;</span><span class="plain-syntax">)) ||</span>
<span class="plain-syntax"> (</span><a href="3-rgn.html#SP9" class="function-link"><span class="function-syntax">PL::Regions::object_is_a_region</span></a><span class="plain-syntax">(</span><span class="function-syntax">&lt;&lt;instance:iscope&gt;&gt;</span><span class="plain-syntax">)))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">scope_I</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;instance:iscope&gt;&gt;</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">scope_I</span><span class="plain-syntax">) {</span>
@ -1220,7 +1220,7 @@ rectangle around the whole thing...
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_STORY_DIRECTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">dir</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax"> = </span><a href="3-sm2.html#SP8_16" class="function-link"><span class="function-syntax">PL::SpatialMap::room_exit</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-syntax">dir</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">exit</span><span class="plain-syntax"> = </span><span class="identifier-syntax">story_dir_to_page_dir</span><span class="plain-syntax">[</span><span class="identifier-syntax">dir</span><span class="plain-syntax">];</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-sm.html#SP15" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-sm.html#SP16" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-em.html#SP26_6_1" class="named-paragraph-link"><span class="named-paragraph">Draw a single map connection as an EPS arrow</span><span class="named-paragraph-number">26.6.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><a href="3-em.html#SP35" class="function-link"><span class="function-syntax">PL::EPSMap::EPS_compile_line_width_unsetting</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>

View file

@ -106,6 +106,7 @@ following minimal structure, though it will only be relevant for instances of
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PL::Regions::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">PLUGIN_REGISTER</span><span class="plain-syntax">(</span><span class="identifier-syntax">PLUGIN_CREATE_INFERENCES</span><span class="plain-syntax">, </span><a href="3-rgn.html#SP5" class="function-link"><span class="function-syntax">PL::Regions::create_inference_subjects</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGIN_REGISTER</span><span class="plain-syntax">(</span><span class="identifier-syntax">PLUGIN_NEW_BASE_KIND_NOTIFY</span><span class="plain-syntax">, </span><a href="3-rgn.html#SP7" class="function-link"><span class="function-syntax">PL::Regions::regions_new_base_kind_notify</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGIN_REGISTER</span><span class="plain-syntax">(</span><span class="identifier-syntax">PLUGIN_SET_SUBKIND_NOTIFY</span><span class="plain-syntax">, </span><a href="3-rgn.html#SP8" class="function-link"><span class="function-syntax">PL::Regions::regions_set_subkind_notify</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGIN_REGISTER</span><span class="plain-syntax">(</span><span class="identifier-syntax">PLUGIN_NEW_SUBJECT_NOTIFY</span><span class="plain-syntax">, </span><a href="3-rgn.html#SP7" class="function-link"><span class="function-syntax">PL::Regions::regions_new_subject_notify</span></a><span class="plain-syntax">);</span>
@ -116,6 +117,9 @@ following minimal structure, though it will only be relevant for instances of
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGIN_REGISTER</span><span class="plain-syntax">(</span><span class="identifier-syntax">PLUGIN_INTERVENE_IN_ASSERTION</span><span class="plain-syntax">, </span><a href="3-rgn.html#SP14" class="function-link"><span class="function-syntax">PL::Regions::regions_intervene_in_assertion</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGIN_REGISTER</span><span class="plain-syntax">(</span><span class="identifier-syntax">PLUGIN_NAME_TO_EARLY_INFS</span><span class="plain-syntax">, </span><a href="3-rgn.html#SP15" class="function-link"><span class="function-syntax">PL::Regions::regions_name_to_early_infs</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGIN_REGISTER</span><span class="plain-syntax">(</span><span class="identifier-syntax">PLUGIN_ADD_TO_WORLD_INDEX</span><span class="plain-syntax">, </span><a href="3-rgn.html#SP21" class="function-link"><span class="function-syntax">PL::Regions::regions_add_to_World_index</span></a><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">PL::Regions::create_inference_subjects</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">infs_region</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InferenceSubjects::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">global_constants</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FUND_SUB</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL_GENERAL_POINTER</span><span class="plain-syntax">, </span><span class="identifier-syntax">LIKELY_CE</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
@ -179,7 +183,7 @@ there is no need to translate this to other languages.)
<p class="commentary firstcommentary"><a id="SP9"></a><b>&#167;9. </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">PL::Regions::object_is_a_region</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">PL::Regions::object_is_a_region</span></span>:<br/><a href="3-rgn.html#SP18">&#167;18</a><br/>Spatial Model - <a href="3-sm.html#SP32_2">&#167;32.2</a><br/>EPS Map - <a href="3-em.html#SP11">&#167;11</a>, <a href="3-em.html#SP23_4_1">&#167;23.4.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">PL::Regions::object_is_a_region</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">PL::Regions::object_is_a_region</span></span>:<br/><a href="3-rgn.html#SP18">&#167;18</a><br/>Spatial Model - <a href="3-sm.html#SP33_2">&#167;33.2</a><br/>EPS Map - <a href="3-em.html#SP11">&#167;11</a>, <a href="3-em.html#SP23_4_1">&#167;23.4.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Plugins::Manage::plugged_in</span><span class="plain-syntax">(</span><span class="identifier-syntax">regions_plugin</span><span class="plain-syntax">)) &amp;&amp; (</span><span class="identifier-syntax">K_region</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">I</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Instances::of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_region</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>
@ -200,8 +204,8 @@ domains.)
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">r1</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">reg2</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">reg1</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">r2</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> -1;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">reg1</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">reg2</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-sm.html#SP37" class="function-link"><span class="function-syntax">PL::Spatial::encloses</span></a><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="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-sm.html#SP37" class="function-link"><span class="function-syntax">PL::Spatial::encloses</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I2</span><span class="plain-syntax">, </span><span class="identifier-syntax">I1</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> -1;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-sm.html#SP38" class="function-link"><span class="function-syntax">PL::Spatial::encloses</span></a><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="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-sm.html#SP38" class="function-link"><span class="function-syntax">PL::Spatial::encloses</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I2</span><span class="plain-syntax">, </span><span class="identifier-syntax">I1</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> -1;</span>
<span class="plain-syntax"> }</span>
<span class="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>
@ -387,8 +391,8 @@ region is either the next broadest region containing it, or else <span class="ex
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">PL::Regions::enclosing</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">PL::Regions::enclosing</span></span>:<br/><a href="3-rgn.html#SP21">&#167;21</a><br/>Spatial Map - <a href="3-sm2.html#SP38">&#167;38</a>, <a href="3-sm2.html#SP42_1">&#167;42.1</a>, <a href="3-sm2.html#SP43_2">&#167;43.2</a><br/>HTML Map - <a href="3-hm.html#SP6_2">&#167;6.2</a>, <a href="3-hm.html#SP13">&#167;13</a><br/>EPS Map - <a href="3-em.html#SP11">&#167;11</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">reg</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-sm.html#SP15" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">reg</span><span class="plain-syntax">)) </span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PF_I</span><span class="plain-syntax">(</span><span class="identifier-syntax">regions</span><span class="plain-syntax">, </span><span class="identifier-syntax">reg</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">in_region</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-rgn.html#SP9" class="function-link"><span class="function-syntax">PL::Regions::object_is_a_region</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">reg</span><span class="plain-syntax">)) </span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="3-sm.html#SP30" class="function-link"><span class="function-syntax">PL::Spatial::progenitor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">reg</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-sm.html#SP16" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">reg</span><span class="plain-syntax">)) </span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PF_I</span><span class="plain-syntax">(</span><span class="identifier-syntax">regions</span><span class="plain-syntax">, </span><span class="identifier-syntax">reg</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">in_region</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-rgn.html#SP9" class="function-link"><span class="function-syntax">PL::Regions::object_is_a_region</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">reg</span><span class="plain-syntax">)) </span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="3-sm.html#SP31" class="function-link"><span class="function-syntax">PL::Spatial::progenitor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">reg</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-rgn.html#SP9" class="function-link"><span class="function-syntax">PL::Regions::object_is_a_region</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>

View file

@ -391,7 +391,7 @@ ends merrily" and "when the Banquet Entertainment ends merrily".
<span class="plain-syntax"> </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">, </span><span class="identifier-syntax">end</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Feeds::feed_text_expanding_strings</span><span class="plain-syntax">(</span><span class="identifier-syntax">i6_code</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Sentences::make_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">Feeds::end</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">), </span><span class="character-syntax">'.'</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Sentences::RuleSubtrees::register_recently_lexed_phrases</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RuleSubtrees::register_recently_lexed_phrases</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">i6_code</span><span class="plain-syntax">)</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP15">&#167;15</a>.</li></ul>

File diff suppressed because it is too large Load diff

View file

@ -186,7 +186,7 @@ than the number of rooms in the submap; this is why we keep the linked list.
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="identifier-syntax">LOOP_OVER_ROOMS</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">LOOP_OVER_OBJECT_INSTANCES</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><a href="3-sm.html#SP15" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</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><a href="3-sm.html#SP16" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">))</span>
<span class="definition-keyword">define</span> <span class="identifier-syntax">LOOP_OVER_SUBMAP</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-syntax">sub</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">R</span><span class="plain-syntax"> = </span><span class="identifier-syntax">sub</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">first_room_in_submap</span><span class="plain-syntax">; </span><span class="identifier-syntax">R</span><span class="plain-syntax">; </span><span class="identifier-syntax">R</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PF_I</span><span class="plain-syntax">(</span><span class="identifier-syntax">map</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">next_room_in_submap</span><span class="plain-syntax">)</span>
</pre>
@ -565,12 +565,12 @@ door, which we take a note of if asked to do so.
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">PL::SpatialMap::room_exit</span><button class="popup" onclick="togglePopup('usagePopup19')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup19">Usage of <span class="code-font"><span class="function-syntax">PL::SpatialMap::room_exit</span></span>:<br/><a href="3-sm2.html#SP10">&#167;10</a>, <a href="3-sm2.html#SP43_3">&#167;43.3</a>, <a href="3-sm2.html#SP45">&#167;45</a><br/>HTML Map - <a href="3-hm.html#SP1_3">&#167;1.3</a>, <a href="3-hm.html#SP10_2_2">&#167;10.2.2</a><br/>EPS Map - <a href="3-em.html#SP26_6">&#167;26.6</a>, <a href="3-em.html#SP26_6_1">&#167;26.6.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">origin</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">dir_num</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> **</span><span class="identifier-syntax">via</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">via</span><span class="plain-syntax">) *</span><span class="identifier-syntax">via</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">origin</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><a href="3-sm.html#SP15" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">origin</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">origin</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><a href="3-sm.html#SP16" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">origin</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">dir_num</span><span class="plain-syntax"> &lt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">dir_num</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">MAX_DIRECTIONS</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">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ultimate_destination</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">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">immediate_destination</span><span class="plain-syntax"> = </span><span class="identifier-syntax">MAP_EXIT</span><span class="plain-syntax">(</span><span class="identifier-syntax">origin</span><span class="plain-syntax">, </span><span class="identifier-syntax">dir_num</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">immediate_destination</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-sm.html#SP15" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">immediate_destination</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-sm.html#SP16" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">immediate_destination</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">ultimate_destination</span><span class="plain-syntax"> = </span><span class="identifier-syntax">immediate_destination</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-tm.html#SP17" class="function-link"><span class="function-syntax">PL::Map::object_is_a_door</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">immediate_destination</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">via</span><span class="plain-syntax">) *</span><span class="identifier-syntax">via</span><span class="plain-syntax"> = </span><span class="identifier-syntax">immediate_destination</span><span class="plain-syntax">;</span>

View file

@ -347,7 +347,7 @@ Rules. (So there is no need to translate this to other languages.)
<p class="commentary firstcommentary"><a id="SP17"></a><b>&#167;17. </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">PL::Map::object_is_a_door</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">PL::Map::object_is_a_door</span></span>:<br/><a href="3-tm.html#SP37_2">&#167;37.2</a>, <a href="3-tm.html#SP37_3">&#167;37.3</a>, <a href="3-tm.html#SP37_4">&#167;37.4</a>, <a href="3-tm.html#SP37_5">&#167;37.5</a>, <a href="3-tm.html#SP37_6">&#167;37.6</a>, <a href="3-tm.html#SP37_7">&#167;37.7</a>, <a href="3-tm.html#SP37_8">&#167;37.8</a><br/>Spatial Model - <a href="3-sm.html#SP32_3_3">&#167;32.3.3</a>, <a href="3-sm.html#SP44">&#167;44</a><br/>Spatial Map - <a href="3-sm2.html#SP8_16">&#167;8.16</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">PL::Map::object_is_a_door</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">PL::Map::object_is_a_door</span></span>:<br/><a href="3-tm.html#SP37_2">&#167;37.2</a>, <a href="3-tm.html#SP37_3">&#167;37.3</a>, <a href="3-tm.html#SP37_4">&#167;37.4</a>, <a href="3-tm.html#SP37_5">&#167;37.5</a>, <a href="3-tm.html#SP37_6">&#167;37.6</a>, <a href="3-tm.html#SP37_7">&#167;37.7</a>, <a href="3-tm.html#SP37_8">&#167;37.8</a><br/>Spatial Model - <a href="3-sm.html#SP33_3_3">&#167;33.3.3</a>, <a href="3-sm.html#SP45">&#167;45</a><br/>Spatial Map - <a href="3-sm2.html#SP8_16">&#167;8.16</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Plugins::Manage::plugged_in</span><span class="plain-syntax">(</span><span class="identifier-syntax">map_plugin</span><span class="plain-syntax">)) &amp;&amp; (</span><span class="identifier-syntax">K_door</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">I</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Instances::of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_door</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>
@ -536,7 +536,7 @@ at run-time, so we can't know now how many we will need.
<span class="plain-syntax"> </span><span class="identifier-syntax">Emit::array_divider</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"one row per room"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_OBJECT_INSTANCES</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="3-sm.html#SP15" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-sm.html#SP16" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">registered_directions</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">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to</span><span class="plain-syntax"> = </span><span class="identifier-syntax">MAP_EXIT</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>
@ -565,7 +565,7 @@ object has four pieces of data attached:
</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">PL::Map::get_door_data</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">PL::Map::get_door_data</span></span>:<br/><a href="3-tm.html#SP39">&#167;39</a><br/>Spatial Model - <a href="3-sm.html#SP44">&#167;44</a><br/>Spatial Map - <a href="3-sm2.html#SP8_16">&#167;8.16</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">door</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> **</span><span class="identifier-syntax">c1</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> **</span><span class="identifier-syntax">c2</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PL::Map::get_door_data</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">PL::Map::get_door_data</span></span>:<br/><a href="3-tm.html#SP39">&#167;39</a><br/>Spatial Model - <a href="3-sm.html#SP45">&#167;45</a><br/>Spatial Map - <a href="3-sm2.html#SP8_16">&#167;8.16</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">door</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> **</span><span class="identifier-syntax">c1</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> **</span><span class="identifier-syntax">c2</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">c1</span><span class="plain-syntax">) *</span><span class="identifier-syntax">c1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PF_I</span><span class="plain-syntax">(</span><span class="identifier-syntax">map</span><span class="plain-syntax">, </span><span class="identifier-syntax">door</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">map_connection_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">c2</span><span class="plain-syntax">) *</span><span class="identifier-syntax">c2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PF_I</span><span class="plain-syntax">(</span><span class="identifier-syntax">map</span><span class="plain-syntax">, </span><span class="identifier-syntax">door</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">map_connection_b</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
@ -874,7 +874,7 @@ accommodate it.)
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_OBJECT_INSTANCES</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="3-sm.html#SP15" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-sm.html#SP16" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Properties::Valued::assert</span><span class="plain-syntax">(</span><span class="identifier-syntax">P_room_index</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Instances::as_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">minus_one</span><span class="plain-syntax">, </span><span class="identifier-syntax">CERTAIN_CE</span><span class="plain-syntax">);</span>
</pre>
@ -894,9 +894,9 @@ checks that various mapping impossibilities do not occur.
<span class="plain-syntax"> </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">infs1</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">World::Inferences::get_references</span><span class="plain-syntax">(</span><span class="identifier-syntax">inf</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">infs1</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">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InferenceSubjects::as_object_instance</span><span class="plain-syntax">(</span><span class="identifier-syntax">infs1</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-sm.html#SP15" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)) &amp;&amp; (</span><span class="identifier-syntax">to</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="3-sm.html#SP16" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)) &amp;&amp; (</span><span class="identifier-syntax">to</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="3-tm.html#SP17" class="function-link"><span class="function-syntax">PL::Map::object_is_a_door</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">to</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="3-sm.html#SP15" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">to</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-sm.html#SP16" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">to</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::contradiction_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_BadMapCell</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Instances::get_creating_sentence</span><span class="plain-syntax">(</span><span class="identifier-syntax">to</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">World::Inferences::where_inferred</span><span class="plain-syntax">(</span><span class="identifier-syntax">inf</span><span class="plain-syntax">), </span><span class="identifier-syntax">to</span><span class="plain-syntax">,</span>
@ -904,7 +904,7 @@ checks that various mapping impossibilities do not occur.
<span class="plain-syntax"> </span><span class="string-syntax">"connection, but it seems to be neither a room nor a door"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"and these are the only possibilities allowed by Inform."</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-tm.html#SP17" class="function-link"><span class="function-syntax">PL::Map::object_is_a_door</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="3-sm.html#SP15" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">to</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-sm.html#SP16" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">to</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::object_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_DoorToNonRoom</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"seems to be a door opening on something not a room"</span><span class="plain-syntax">,</span>
@ -1010,7 +1010,7 @@ from which there's no way back.)
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_OBJECT_INSTANCES</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="3-sm.html#SP15" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-sm.html#SP16" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inference</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inf</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">POSITIVE_KNOWLEDGE_LOOP</span><span class="plain-syntax">(</span><span class="identifier-syntax">inf</span><span class="plain-syntax">, </span><span class="identifier-syntax">Instances::as_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="constant-syntax">DIRECTION_INF</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">infs1</span><span class="plain-syntax">;</span>
@ -1083,9 +1083,9 @@ model at run-time.) This is where we apply the kill-joy rule in question:
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_OBJECT_INSTANCES</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="3-tm.html#SP17" class="function-link"><span class="function-syntax">PL::Map::object_is_a_door</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="3-sm.html#SP30" class="function-link"><span class="function-syntax">PL::Spatial::progenitor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="3-sm.html#SP30" class="function-link"><span class="function-syntax">PL::Spatial::progenitor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">) != </span><span class="identifier-syntax">PF_I</span><span class="plain-syntax">(</span><span class="identifier-syntax">map</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">map_connection_a</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="3-sm.html#SP30" class="function-link"><span class="function-syntax">PL::Spatial::progenitor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">) != </span><span class="identifier-syntax">PF_I</span><span class="plain-syntax">(</span><span class="identifier-syntax">map</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">map_connection_b</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> (</span><a href="3-sm.html#SP31" class="function-link"><span class="function-syntax">PL::Spatial::progenitor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="3-sm.html#SP31" class="function-link"><span class="function-syntax">PL::Spatial::progenitor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">) != </span><span class="identifier-syntax">PF_I</span><span class="plain-syntax">(</span><span class="identifier-syntax">map</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">map_connection_a</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="3-sm.html#SP31" class="function-link"><span class="function-syntax">PL::Spatial::progenitor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">) != </span><span class="identifier-syntax">PF_I</span><span class="plain-syntax">(</span><span class="identifier-syntax">map</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">map_connection_b</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">StandardProblems::object_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_DoorInThirdRoom</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="string-syntax">"seems to be a door which is present in a room to which it is not connected"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"but this is not allowed. A door must be in one or both of the rooms it is "</span>
@ -1105,8 +1105,8 @@ to them.
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_OBJECT_INSTANCES</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="3-tm.html#SP17" class="function-link"><span class="function-syntax">PL::Map::object_is_a_door</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">PF_I</span><span class="plain-syntax">(</span><span class="identifier-syntax">map</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">map_connection_b</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="3-sm.html#SP30" class="function-link"><span class="function-syntax">PL::Spatial::progenitor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">) == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><a href="3-sm.html#SP30" class="function-link"><span class="function-syntax">PL::Spatial::set_progenitor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">PF_I</span><span class="plain-syntax">(</span><span class="identifier-syntax">map</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">map_connection_a</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> (</span><a href="3-sm.html#SP31" class="function-link"><span class="function-syntax">PL::Spatial::progenitor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">) == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><a href="3-sm.html#SP31" class="function-link"><span class="function-syntax">PL::Spatial::set_progenitor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">PF_I</span><span class="plain-syntax">(</span><span class="identifier-syntax">map</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">map_connection_a</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-tm.html#SP37">&#167;37</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP37_8"></a><b>&#167;37.8. </b>At this point we know that the doors are correctly plumbed in, and all we

View file

@ -257,7 +257,7 @@ from sentences, and this can include I6 properties with no I7 analogue.
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_OBJECT_INSTANCES</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">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::get_name_in_play</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">subj</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::as_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">this_is_a_room</span><span class="plain-syntax"> = </span><a href="3-sm.html#SP15" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">this_is_a_room</span><span class="plain-syntax"> = </span><a href="3-sm.html#SP16" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">this_has_a_printed_name</span><span class="plain-syntax"> = </span><a href="3-tnt.html#SP12" class="function-link"><span class="function-syntax">PL::Naming::look_for_printed_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">subj</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">this_is_named_for_something_with_a_printed_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-tnt.html#SP9" class="function-link"><span class="function-syntax">PL::Naming::object_this_is_named_after</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">))</span>

View file

@ -387,11 +387,11 @@ we assume he is freestanding in the earliest defined room.
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_OBJECT_INSTANCES</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="3-sm.html#SP15" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)) &amp;&amp; (</span><span class="identifier-syntax">start_room</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="3-sm.html#SP16" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)) &amp;&amp; (</span><span class="identifier-syntax">start_room</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> &amp;&amp; (</span><span class="identifier-syntax">Projects::draws_from_source_file</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::project</span><span class="plain-syntax">(), </span><span class="identifier-syntax">Instances::get_creating_file</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">start_room</span><span class="plain-syntax"> = </span><span class="identifier-syntax">I</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_OBJECT_INSTANCES</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="3-sm.html#SP15" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)) &amp;&amp; (</span><span class="identifier-syntax">start_room</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="3-sm.html#SP16" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)) &amp;&amp; (</span><span class="identifier-syntax">start_room</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">start_room</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">start_object</span><span class="plain-syntax"> = </span><span class="identifier-syntax">start_room</span><span class="plain-syntax">;</span>
</pre>
@ -423,12 +423,12 @@ will do. But otherwise:
<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">player_character_object</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">start_object</span><span class="plain-syntax"> = </span><a href="3-sm.html#SP30" class="function-link"><span class="function-syntax">PL::Spatial::progenitor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">player_character_object</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">start_object</span><span class="plain-syntax"> = </span><a href="3-sm.html#SP31" class="function-link"><span class="function-syntax">PL::Spatial::progenitor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">player_character_object</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">start_object</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">start_room</span><span class="plain-syntax"> = </span><span class="identifier-syntax">start_object</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">start_room</span><span class="plain-syntax">) &amp;&amp; (</span><a href="3-sm.html#SP30" class="function-link"><span class="function-syntax">PL::Spatial::progenitor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">start_room</span><span class="plain-syntax">)))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">start_room</span><span class="plain-syntax"> = </span><a href="3-sm.html#SP30" class="function-link"><span class="function-syntax">PL::Spatial::progenitor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">start_room</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">start_room</span><span class="plain-syntax">) &amp;&amp; (</span><a href="3-sm.html#SP15" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">start_room</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">start_room</span><span class="plain-syntax">) &amp;&amp; (</span><a href="3-sm.html#SP31" class="function-link"><span class="function-syntax">PL::Spatial::progenitor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">start_room</span><span class="plain-syntax">)))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">start_room</span><span class="plain-syntax"> = </span><a href="3-sm.html#SP31" class="function-link"><span class="function-syntax">PL::Spatial::progenitor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">start_room</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">start_room</span><span class="plain-syntax">) &amp;&amp; (</span><a href="3-sm.html#SP16" class="function-link"><span class="function-syntax">PL::Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">start_room</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::object_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_StartsOutsideRooms</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">start_object</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"seems to be where the player is supposed to begin"</span><span class="plain-syntax">,</span>
@ -489,7 +489,7 @@ usually appear anywhere.
</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">PL::Player::index_object_further</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">PL::Player::index_object_further</span></span>:<br/>Spatial Model - <a href="3-sm.html#SP44">&#167;44</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">depth</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">details</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PL::Player::index_object_further</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">PL::Player::index_object_further</span></span>:<br/>Spatial Model - <a href="3-sm.html#SP45">&#167;45</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">depth</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">details</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">I</span><span class="plain-syntax"> == </span><span class="identifier-syntax">start_room</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">I_yourself</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Instances::indexed_yet</span><span class="plain-syntax">(</span><span class="identifier-syntax">I_yourself</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">Data::Objects::index</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">I_yourself</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">depth</span><span class="plain-syntax">+1, </span><span class="identifier-syntax">details</span><span class="plain-syntax">);</span>

View file

@ -156,7 +156,7 @@ will simply compile a <span class="extract"><span class="extract-syntax">parse_n
<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">PL::Parsing::Tokens::General::get_gv_parse_name</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">PL::Parsing::Tokens::General::get_gv_parse_name</span></span>:<br/><a href="5-gpr.html#SP6">&#167;6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">grammar_verb</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gv</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">gv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">gv_parse_name_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">compilation_module</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Modules::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">gv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">where_gv_created</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">compilation_unit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CompilationUnits::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">gv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">where_gv_created</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">C</span><span class="plain-syntax">, </span><span class="identifier-syntax">PARSE_NAMES_HAP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">gv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">gv_parse_name_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">PARSE_NAME_FN_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">PR</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
@ -171,7 +171,7 @@ will simply compile a <span class="extract"><span class="extract-syntax">parse_n
<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="5-gp.html#SP11" class="function-link"><span class="function-syntax">PL::Parsing::Visibility::any_property_visible_to_subject</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">subj</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">parse_name_notice</span><span class="plain-syntax"> *</span><span class="identifier-syntax">notice</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">parse_name_notice</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">compilation_module</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Modules::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">subj</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">infs_created_at</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">compilation_unit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CompilationUnits::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">subj</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">infs_created_at</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">C</span><span class="plain-syntax">, </span><span class="identifier-syntax">PARSE_NAMES_HAP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">notice</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">pnn_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">PARSE_NAME_DASH_FN_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">PR</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">notice</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">parse_subject</span><span class="plain-syntax"> = </span><span class="identifier-syntax">subj</span><span class="plain-syntax">;</span>

View file

@ -421,7 +421,7 @@ values representing verbs in story files compiled by Inform.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">vc_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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">vc_conjugates</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">R</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Hierarchy::package</span><span class="plain-syntax">(</span><span class="identifier-syntax">Modules::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">where_vc_created</span><span class="plain-syntax">), </span><span class="identifier-syntax">MVERBS_HAP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Hierarchy::package</span><span class="plain-syntax">(</span><span class="identifier-syntax">CompilationUnits::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">where_vc_created</span><span class="plain-syntax">), </span><span class="identifier-syntax">MVERBS_HAP</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">ANT</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">ANT</span><span class="plain-syntax">, </span><span class="string-syntax">"%A (modal)"</span><span class="plain-syntax">, &amp;(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">tabulations</span><span class="plain-syntax">[</span><span class="constant-syntax">ACTIVE_VOICE</span><span class="plain-syntax">].</span><span class="element-syntax">vc_text</span><span class="plain-syntax">[</span><span class="constant-syntax">IS_TENSE</span><span class="plain-syntax">][</span><span class="constant-syntax">POSITIVE_SENSE</span><span class="plain-syntax">][</span><span class="constant-syntax">THIRD_PERSON</span><span class="plain-syntax">]));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Hierarchy::markup</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-syntax">MVERB_NAME_HMD</span><span class="plain-syntax">, </span><span class="identifier-syntax">ANT</span><span class="plain-syntax">);</span>

View file

@ -74,7 +74,6 @@ which use this module:
<span class="definition-keyword">enum</span> <span class="constant-syntax">kind_constructor_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">kind_template_definition_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">kind_macro_definition_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">kind_template_obligation_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">kind_constructor_comparison_schema_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">kind_constructor_casting_rule_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">kind_constructor_instance_CLASS</span>
@ -87,7 +86,6 @@ which use this module:
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind_macro_definition</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind_template_definition</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind_template_obligation</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS_ALLOCATED_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor_casting_rule</span><span class="plain-syntax">, </span><span class="constant-syntax">100</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS_ALLOCATED_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor_comparison_schema</span><span class="plain-syntax">, </span><span class="constant-syntax">100</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS_ALLOCATED_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor_instance</span><span class="plain-syntax">, </span><span class="constant-syntax">100</span><span class="plain-syntax">)</span>

View file

@ -491,10 +491,10 @@ of the kind which the constructor makes:
<span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">Kinds::Constructors::package</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Kinds::Constructors::package</span></span>:<br/><a href="2-kc2.html#SP7_1">&#167;7.1</a><br/>Using Kinds - <a href="2-uk.html#SP32">&#167;32</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">con</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kc_package</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">con</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">defined_in_source_text</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">compilation_module</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Modules::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">where_defined_in_source_text</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">compilation_unit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CompilationUnits::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">where_defined_in_source_text</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">con</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kc_package</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Hierarchy::package</span><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="identifier-syntax">KIND_HAP</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">con</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">superkind_set_at</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">compilation_module</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Modules::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">superkind_set_at</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">compilation_unit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CompilationUnits::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">superkind_set_at</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">con</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kc_package</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Hierarchy::package</span><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="identifier-syntax">KIND_HAP</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">con</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kc_package</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Hierarchy::synoptic_package</span><span class="plain-syntax">(</span><span class="identifier-syntax">KIND_HAP</span><span class="plain-syntax">);</span>

View file

@ -322,7 +322,7 @@ loads the base kinds in a kit <span class="extract"><span class="extract-syntax"
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">#</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">CORE_MODULE</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Kits::load_types</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">Kits::load_types</span></span>:<br/>Project Services - <a href="5-ps2.html#SP18">&#167;18</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_kit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Kits::load_built_in_kind_constructors</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">Kits::load_built_in_kind_constructors</span></span>:<br/>Project Services - <a href="5-ps2.html#SP18">&#167;18</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_kit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">segment</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">segment</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kind_definitions</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Pathnames::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">location_if_path</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"kinds"</span><span class="plain-syntax">);</span>

View file

@ -526,10 +526,10 @@ reads them in for every kit which is included in the project.
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">#</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">CORE_MODULE</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Projects::load_types</span><span class="plain-syntax">(</span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">project</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Projects::load_built_in_kind_constructors</span><span class="plain-syntax">(</span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">project</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">kit_dependency</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kd</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">kd</span><span class="plain-syntax">, </span><span class="reserved-syntax">kit_dependency</span><span class="plain-syntax">, </span><span class="identifier-syntax">project</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kits_to_include</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="5-ks.html#SP10" class="function-link"><span class="function-syntax">Kits::load_types</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kd</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kit</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-ks.html#SP10" class="function-link"><span class="function-syntax">Kits::load_built_in_kind_constructors</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kd</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kit</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="plain-syntax">#</span><span class="identifier-syntax">endif</span>
</pre>

View file

@ -216,7 +216,7 @@ loads the base kinds in a kit |K|:
=
#ifdef CORE_MODULE
void Kits::load_types(inform_kit *K) {
void Kits::load_built_in_kind_constructors(inform_kit *K) {
text_stream *segment;
LOOP_OVER_LINKED_LIST(segment, text_stream, K->kind_definitions) {
pathname *P = Pathnames::down(K->as_copy->location_if_path, I"kinds");

View file

@ -408,10 +408,10 @@ reads them in for every kit which is included in the project.
=
#ifdef CORE_MODULE
void Projects::load_types(inform_project *project) {
void Projects::load_built_in_kind_constructors(inform_project *project) {
kit_dependency *kd;
LOOP_OVER_LINKED_LIST(kd, kit_dependency, project->kits_to_include)
Kits::load_types(kd->kit);
Kits::load_built_in_kind_constructors(kd->kit);
}
#endif

View file

@ -16,7 +16,7 @@
<any-integer> internal nti 20 constraint (none) extremes [1, 1]
<quoted-text> internal hits 2894/22706 nti 21 constraint (none) extremes [1, 1]
<quoted-text> internal hits 2894/22710 nti 21 constraint (none) extremes [1, 1]
<quoted-text-with-subs> internal nti 22 constraint (none) extremes [1, 1]
@ -4728,7 +4728,7 @@
twelfth
constraint CS = {27} extremes [1, 1]
<cardinal-number> internal hits 200/24206 nti r0 constraint CS = {r0} extremes [1, 1]
<cardinal-number> internal hits 200/24210 nti r0 constraint CS = {r0} extremes [1, 1]
<ordinal-number> internal nti r1 constraint CS = {r1} extremes [1, 1]
@ -4750,23 +4750,23 @@
{...}
constraint (none) extremes [1, infinity)
<optional-article> hits 81340/162680 nti 13 constraint (none) extremes [1, infinity)
<optional-article> hits 81344/162688 nti 13 constraint (none) extremes [1, infinity)
English:
<article> {...}
(hits 15779/46514) (matched long text) constraint (none) extremes [2, infinity)
(hits 15781/46516) (matched long text) constraint (none) extremes [2, infinity)
{...}
(hits 65561/65561) (matched long text) constraint (none) extremes [1, infinity)
(hits 65563/65563) (matched long text) constraint (none) extremes [1, infinity)
<compulsory-article> nti 14 constraint (none) extremes [2, infinity)
English:
<article> {...}
constraint (none) extremes [2, infinity)
<article> internal hits 16202/96550 nti r2 constraint (none) extremes [1, 1]
<article> internal hits 16205/96556 nti r2 constraint (none) extremes [1, 1]
<definite-article> internal hits 21519/254248 nti r2 constraint (none) extremes [1, 1]
<definite-article> internal hits 21519/254264 nti r2 constraint (none) extremes [1, 1]
<indefinite-article> internal hits 2597/41498 nti r2 constraint (none) extremes [1, 1]
<indefinite-article> internal hits 2599/41502 nti r2 constraint (none) extremes [1, 1]
<definite-article-table> nti r2 constraint CS = {r2} extremes [6, 6]
English:
@ -4827,7 +4827,7 @@
other than
constraint CS = {28} extremes [2, 2]
<negated-clause> hits 16/21706 nti 29 constraint DS = {29} extremes [2, infinity)
<negated-clause> hits 16/21710 nti 29 constraint DS = {29} extremes [2, infinity)
English:
not {...}
(hits 16/6041) (matched long text) constraint DS = {29} extremes [2, infinity)
@ -4841,7 +4841,7 @@
{...}
(hits 79/79) (matched: 'dvd carried by the person asked') constraint (none) extremes [1, infinity)
<excluded-from-determiners> hits 0/21422 nti 31 constraint DS = {31} extremes [2, infinity)
<excluded-from-determiners> hits 0/21426 nti 31 constraint DS = {31} extremes [2, infinity)
English:
no one {***}
(hits 0/3663) constraint DS = {31} extremes [2, infinity)
@ -5123,7 +5123,7 @@
thing/something
(hits 61/61) (matched: 'thing') constraint CS = {29} extremes [1, 1]
<probable-participle> internal hits 388/16706 nti 14 constraint (none) extremes [1, 1]
<probable-participle> internal hits 388/16708 nti 14 constraint (none) extremes [1, 1]
<np-relative-phrase-implicit> hits 0/6 nti 22 constraint CS = {22} extremes [1, 2]
English:
@ -5292,7 +5292,7 @@
<k-kind>
(hits 5/5) (matched: 'value of kind k') constraint (none) extremes [1, infinity)
<k-kind> hits 5771/102258 nti r5 constraint (none) extremes [1, infinity)
<k-kind> hits 5771/102278 nti r5 constraint (none) extremes [1, infinity)
English:
( <k-kind> )
(hits 0/2032) constraint DS = {r5} & CW = {r2, r5} extremes [3, infinity)
@ -5303,7 +5303,7 @@
<k-base-kind>
(hits 3626/9236) (matched: 'an ice cream cone') constraint CW = {r2, r5} extremes [1, infinity)
<k-irregular-kind-construction>
(hits 2/15787) (matched: 'object-based rulebook') constraint DS = {r5} extremes [2, infinity)
(hits 2/15790) (matched: 'object-based rulebook') constraint DS = {r5} extremes [2, infinity)
<k-kind-construction>
(hits 353/5608) (matched long text) constraint CW = {r2, r5} extremes [1, infinity)
@ -5323,7 +5323,7 @@
<k-base-kind> internal hits 3626/18472 nti r5 constraint CW = {r2, r5} extremes [1, infinity)
<k-irregular-kind-construction> hits 2/31574 nti r5 constraint DS = {r5} extremes [2, infinity)
<k-irregular-kind-construction> hits 2/31580 nti r5 constraint DS = {r5} extremes [2, infinity)
English:
indexed text
(hits 0/976) constraint CS = {r5} extremes [2, 2]
@ -5699,14 +5699,14 @@
<phrase-with-comma-notation> hits 2306/7528 nti 6 constraint DS = {6} extremes [3, infinity)
English:
{......} , {......}
(hits 2306/2583) (matched long text) constraint DS = {6} extremes [3, infinity)
(hits 2306/2582) (matched long text) constraint DS = {6} extremes [3, infinity)
<instead-keyword> hits 30/9858 nti 7 constraint DS = {7} extremes [2, infinity)
English:
instead {...}
(hits 0/2252) constraint DS = {7} extremes [2, infinity)
(hits 0/1922) constraint DS = {7} extremes [2, infinity)
{...} instead
(hits 30/2252) (matched long text) constraint DS = {7} extremes [2, infinity)
(hits 30/1922) (matched long text) constraint DS = {7} extremes [2, infinity)
<phrase-beginning-block> hits 0/880 nti 8 constraint DS = {8} extremes [2, infinity)
English:
@ -5967,16 +5967,16 @@
<continental-clock-time> internal nti 20 constraint (none) extremes [1, 1]
<event-rule-preamble> hits 0/3368 nti 8 constraint DS = {8} extremes [2, infinity)
<event-rule-preamble> hits 0/3332 nti 8 constraint DS = {8} extremes [2, infinity)
English:
at <clock-time>
(hits 0/70) constraint DS = {8, 30} extremes [3, 3]
at the time when {...}
(hits 0/1570) constraint DS = {8} extremes [5, infinity)
(hits 0/1562) constraint DS = {8} extremes [5, infinity)
at the time that {...}
(hits 0/1570) constraint DS = {8} extremes [5, infinity)
(hits 0/1562) constraint DS = {8} extremes [5, infinity)
at {...}
(hits 0/1684) constraint DS = {8} extremes [2, infinity)
(hits 0/1666) constraint DS = {8} extremes [2, infinity)
<translates-into-unicode-sentence-subject> nti 21 constraint (none) extremes [1, infinity)
English:
@ -6306,9 +6306,9 @@
<article>
(hits 0/73) constraint (none) extremes [1, 1]
(/)/(- {***}
(hits 0/63) constraint DS = {7} extremes [1, infinity)
(hits 0/62) constraint DS = {7} extremes [1, infinity)
{***} (/)/(-
(hits 0/63) constraint DS = {7} extremes [1, infinity)
(hits 0/62) constraint DS = {7} extremes [1, infinity)
{...} (/)/(- {...}
(hits 0/55) constraint DS = {7} extremes [3, infinity)
ni--crash--1
@ -6318,9 +6318,9 @@
ni--crash--11
constraint CS = {7} extremes [1, 1]
, {...}
(hits 0/63) constraint DS = {7} extremes [2, infinity)
(hits 0/62) constraint DS = {7} extremes [2, infinity)
{...} ,
(hits 0/63) constraint DS = {7} extremes [2, infinity)
(hits 0/62) constraint DS = {7} extremes [2, infinity)
{...} when/while {...}
(hits 0/55) constraint DS = {7} extremes [3, infinity)
{***} <quoted-text> {***}
@ -6367,7 +6367,7 @@
<article>
(hits 0/156) constraint (none) extremes [1, 1]
{***} (/)/{/}/,/./(- {***}
(hits 0/286) constraint DS = {10} extremes [1, infinity)
(hits 0/201) constraint DS = {10} extremes [1, infinity)
{***} <quoted-text> {***}
(hits 0/667) constraint (none) extremes [1, infinity)
@ -6450,7 +6450,7 @@
<s-non-action-condition> internal hits 4/8 nti 14 constraint (none) extremes [1, infinity)
<s-type-expression> internal hits 1945/5100 nti 15 constraint (none) extremes [1, infinity)
<s-type-expression> internal hits 1945/5102 nti 15 constraint (none) extremes [1, infinity)
<s-descriptive-type-expression> internal hits 1272/3058 nti 16 constraint (none) extremes [1, infinity)
@ -6467,33 +6467,33 @@
<s-constant-action> internal hits 0/244 nti 20 constraint (none) extremes [1, infinity)
<s-literal> hits 2097/23834 nti 6 constraint (none) extremes [1, infinity)
<s-literal> hits 2097/23842 nti 6 constraint (none) extremes [1, infinity)
English:
<cardinal-number>
(hits 171/171) (matched: '100') constraint CS = {r0} extremes [1, 1]
minus <cardinal-number>
(hits 0/479) constraint DS = {6} extremes [2, 2]
(hits 0/478) constraint DS = {6} extremes [2, 2]
<quoted-text> ( <response-letter> )
(hits 273/620) (matched: '"[current item from the multiple object list]: [run paragraph on]" ( a )') constraint DS = {6} extremes [4, 4]
<quoted-text>
(hits 1564/5548) (matched: 'Represents geographical locations, both indoor
(hits 1564/5550) (matched: 'Represents geographical locations, both indoor
and outdoor, which are not necessarily areas in a building. A player in one
room is mostly unable to sense, or interact with, anything in a different room.
Rooms are arranged in a map.') constraint (none) extremes [1, 1]
<s-literal-real-number>
(hits 11/9909) (matched: 'plus infinity') constraint (none) extremes [1, infinity)
(hits 11/9913) (matched: 'plus infinity') constraint (none) extremes [1, infinity)
<s-literal-truth-state>
(hits 78/379) (matched: 'false') constraint CS = {26} extremes [1, 1]
<s-literal-list>
(hits 0/3663) constraint DS = {28} extremes [2, infinity)
(hits 0/3665) constraint DS = {28} extremes [2, infinity)
unicode <s-unicode-character>
(hits 0/1924) constraint DS = {6} extremes [2, infinity)
(hits 0/1923) constraint DS = {6} extremes [2, infinity)
<s-literal-time>
(hits 0/3211) constraint DW = {29, 30, 31} extremes [2, 5]
<s-literal-unit-notation>
(hits 0/9820) constraint (none) extremes [1, infinity)
(hits 0/9824) constraint (none) extremes [1, infinity)
<s-literal-unit-notation> internal hits 0/19640 nti 21 constraint (none) extremes [1, infinity)
<s-literal-unit-notation> internal hits 0/19648 nti 21 constraint (none) extremes [1, infinity)
<response-letter> internal hits 680/1360 nti 22 constraint (none) extremes [1, 1]
@ -6504,29 +6504,29 @@
true
(hits 49/350) (matched: 'true') constraint CS = {26} extremes [1, 1]
<s-literal-real-number> hits 11/19818 nti 24 constraint (none) extremes [1, infinity)
<s-literal-real-number> hits 11/19826 nti 24 constraint (none) extremes [1, infinity)
English:
_pi
(hits 1/714) (matched: 'pi') constraint CS = {24} extremes [1, 1]
(hits 1/716) (matched: 'pi') constraint CS = {24} extremes [1, 1]
_e
(hits 1/713) (matched: 'e') constraint CS = {24} extremes [1, 1]
(hits 1/715) (matched: 'e') constraint CS = {24} extremes [1, 1]
plus infinity
(hits 4/514) (matched: 'plus infinity') constraint CS = {24} extremes [2, 2]
(hits 4/516) (matched: 'plus infinity') constraint CS = {24} extremes [2, 2]
minus infinity
(hits 4/510) (matched: 'minus infinity') constraint CS = {24} extremes [2, 2]
(hits 4/512) (matched: 'minus infinity') constraint CS = {24} extremes [2, 2]
<literal-real-in-digits>
(hits 1/9899) (matched: '0.5') constraint (none) extremes [1, infinity)
(hits 1/9903) (matched: '0.5') constraint (none) extremes [1, infinity)
<literal-real-in-digits> internal hits 1/19798 nti 23 constraint (none) extremes [1, infinity)
<literal-real-in-digits> internal hits 1/19806 nti 23 constraint (none) extremes [1, infinity)
<s-constant-value> hits 2367/20792 nti 19 constraint (none) extremes [1, infinity)
<s-constant-value> hits 2367/20796 nti 19 constraint (none) extremes [1, infinity)
English:
<s-literal>
(hits 1797/10396) (matched: '"[current item from the multiple object list]: [run paragraph on]" ( a )') constraint (none) extremes [1, infinity)
(hits 1797/10398) (matched: '"[current item from the multiple object list]: [run paragraph on]" ( a )') constraint (none) extremes [1, infinity)
nothing
(hits 97/125) (matched: 'nothing') constraint CS = {19} extremes [1, 1]
<s-miscellaneous-proper-noun>
(hits 446/8502) (matched: 'printing the name of a dark room') constraint (none) extremes [1, infinity)
(hits 446/8504) (matched: 'printing the name of a dark room') constraint (none) extremes [1, infinity)
<s-rulebook-outcome-name> outcome
(hits 0/2934) constraint DS = {19} extremes [2, infinity)
<s-use-option-name> option
@ -6536,7 +6536,7 @@
<s-rule-name> response ( <response-letter> )
(hits 0/754) constraint DS = {19} extremes [5, infinity)
<s-miscellaneous-proper-noun> internal hits 446/17004 nti 24 constraint (none) extremes [1, infinity)
<s-miscellaneous-proper-noun> internal hits 446/17008 nti 24 constraint (none) extremes [1, infinity)
<s-named-constant> internal hits 0/244 nti 25 constraint (none) extremes [1, infinity)
@ -6571,7 +6571,7 @@
<s-adjective-list-unarticled>
(hits 1442/13694) (matched: 'marked for listing other') constraint (none) extremes [1, infinity)
<s-adjective-list-unarticled> hits 1513/29618 nti 21 constraint (none) extremes [1, infinity)
<s-adjective-list-unarticled> hits 1513/29620 nti 21 constraint (none) extremes [1, infinity)
English:
not <s-adjective>
(hits 12/2602) (matched: 'not lockable') constraint DS = {21} extremes [2, infinity)
@ -6582,12 +6582,12 @@
<s-adjective> <s-adjective-list-unarticled>
(hits 71/7202) (matched: 'marked for listing other') constraint (none) extremes [2, infinity)
<s-adjective> internal hits 2217/18908 nti r3 constraint CS = {r3} extremes [1, infinity)
<s-adjective> internal hits 2218/18908 nti r3 constraint CS = {r3} extremes [1, infinity)
<s-qualifiable-noun> hits 3590/89706 nti 7 constraint (none) extremes [1, infinity)
<s-qualifiable-noun> hits 3590/89722 nti 7 constraint (none) extremes [1, infinity)
English:
<k-kind>
(hits 2593/44853) (matched: 'value of kind k') constraint (none) extremes [1, infinity)
(hits 2593/44861) (matched: 'value of kind k') constraint (none) extremes [1, infinity)
<s-instance-name>
(hits 997/1932) (matched: 'the alfred cralle pool hall') constraint CW = {r2, r4} extremes [1, infinity)
@ -6608,50 +6608,50 @@
<s-adjective-list>
(hits 768/2511) (matched: 'marked for listing other') constraint (none) extremes [1, infinity)
<s-description> hits 1652/38642 nti 11 constraint (none) extremes [1, infinity)
<s-description> hits 1652/38646 nti 11 constraint (none) extremes [1, infinity)
English:
<s-description-uncomposite-inner>
(hits 1392/19321) (matched long text) constraint (none) extremes [1, infinity)
(hits 1392/19323) (matched long text) constraint (none) extremes [1, infinity)
<s-np-with-relative-clause>
(hits 260/4814) (matched long text) constraint (none) extremes [3, infinity)
<s-description-uncomposite> hits 257/2044 nti 12 constraint (none) extremes [1, infinity)
<s-description-uncomposite> hits 257/2048 nti 12 constraint (none) extremes [1, infinity)
English:
<s-description-uncomposite-inner>
(hits 257/1022) (matched: 'thing ( called the item being printed )') constraint (none) extremes [1, infinity)
(hits 257/1024) (matched: 'thing ( called the item being printed )') constraint (none) extremes [1, infinity)
<s-description-uncomposite-inner> hits 1649/40686 nti 23 constraint (none) extremes [1, infinity)
<s-description-uncomposite-inner> hits 1649/40694 nti 23 constraint (none) extremes [1, infinity)
English:
<s-description-uncalled> ( called <s-calling-name> )
(hits 118/1437) (matched long text) constraint DS = {23} extremes [5, infinity)
<s-description-uncalled>
(hits 1531/20225) (matched: 'the alfred cralle pool hall') constraint (none) extremes [1, infinity)
(hits 1531/20229) (matched: 'the alfred cralle pool hall') constraint (none) extremes [1, infinity)
<s-description-uncalled> hits 1649/40686 nti 13 constraint (none) extremes [1, infinity)
<s-description-uncalled> hits 1649/40694 nti 13 constraint (none) extremes [1, infinity)
English:
<s-specifier> <s-description-unspecified>
(hits 51/10558) (matched: 'at least two stamped envelopes') constraint (none) extremes [2, infinity)
(hits 51/10560) (matched: 'at least two stamped envelopes') constraint (none) extremes [2, infinity)
<s-specifying-noun>
(hits 156/20292) (matched: 'something') constraint (none) extremes [1, infinity)
(hits 156/20296) (matched: 'something') constraint (none) extremes [1, infinity)
<s-specifying-noun> <s-adjective-list>
(hits 22/10507) (matched: 'something switched on') constraint (none) extremes [2, infinity)
(hits 22/10509) (matched: 'something switched on') constraint (none) extremes [2, infinity)
<if-trying-omission-permitted> <definite-article> <s-common-description-unspecified>
(hits 2/10485) (matched: 'the person') constraint (none) extremes [2, infinity)
(hits 2/10487) (matched: 'the person') constraint (none) extremes [2, infinity)
^<if-trying-omission-permitted> ^<if-multiplicitous> <definite-article> <s-common-description-unspecified>
(hits 0/10483) constraint (none) extremes [2, infinity)
(hits 0/10485) constraint (none) extremes [2, infinity)
<definite-article> <s-proper-description-unspecified>
(hits 56/10483) (matched: 'the alfred cralle pool hall') constraint (none) extremes [2, infinity)
(hits 56/10485) (matched: 'the alfred cralle pool hall') constraint (none) extremes [2, infinity)
<indefinite-article> <s-description-unspecified>
(hits 617/10427) (matched: 'a marked for listing person') constraint (none) extremes [2, infinity)
(hits 617/10429) (matched: 'a marked for listing person') constraint (none) extremes [2, infinity)
<s-description-unspecified>
(hits 745/19439) (matched: 'marked for listing other people') constraint (none) extremes [1, infinity)
(hits 745/19443) (matched: 'marked for listing other people') constraint (none) extremes [1, infinity)
<s-description-unspecified> hits 1413/40652 nti 14 constraint (none) extremes [1, infinity)
<s-description-unspecified> hits 1413/40664 nti 14 constraint (none) extremes [1, infinity)
English:
<s-qualifiable-noun>
(hits 1029/20326) (matched: 'nancy johnson memorial square') constraint (none) extremes [1, infinity)
(hits 1029/20332) (matched: 'nancy johnson memorial square') constraint (none) extremes [1, infinity)
<s-applicable-adjective-list> <s-qualifiable-noun>
(hits 384/10129) (matched: 'marked for listing other people') constraint (none) extremes [2, infinity)
(hits 384/10131) (matched: 'marked for listing other people') constraint (none) extremes [2, infinity)
<s-common-description-unspecified> hits 2/148 nti 15 constraint (none) extremes [1, infinity)
English:
@ -6667,7 +6667,7 @@
<s-applicable-adjective-list> <s-qualifiable-proper-noun>
(hits 0/1386) constraint (none) extremes [2, infinity)
<if-trying-omission-permitted> internal hits 1086/31390 nti 17 constraint (none) extremes [0, 0]
<if-trying-omission-permitted> internal hits 1086/31394 nti 17 constraint (none) extremes [0, 0]
<if-multiplicitous> internal hits 4743/9700 nti 18 constraint (none) extremes [0, 0]
@ -6720,38 +6720,38 @@
{...}
(hits 35/35) (matched: 'random bystander') constraint (none) extremes [1, infinity)
<s-specifier> internal hits 79/21422 nti 23 constraint (none) extremes [1, infinity)
<s-specifier> internal hits 79/21426 nti 23 constraint (none) extremes [1, infinity)
<s-specifying-noun> internal hits 336/62416 nti 24 constraint (none) extremes [1, infinity)
<s-specifying-noun> internal hits 336/62428 nti 24 constraint (none) extremes [1, infinity)
<s-type-expression-uncached> hits 1940/4790 nti 25 constraint (none) extremes [1, infinity)
<s-type-expression-uncached> hits 1940/4792 nti 25 constraint (none) extremes [1, infinity)
English:
<article> <s-type-expression-unarticled>
(hits 109/385) (matched long text) constraint (none) extremes [2, infinity)
(hits 109/386) (matched long text) constraint (none) extremes [2, infinity)
<s-type-expression-unarticled>
(hits 1831/2286) (matched long text) constraint (none) extremes [1, infinity)
(hits 1831/2287) (matched long text) constraint (none) extremes [1, infinity)
<s-type-expression-unarticled> hits 3118/7704 nti 31 constraint (none) extremes [1, infinity)
<s-type-expression-unarticled> hits 3118/7708 nti 31 constraint (none) extremes [1, infinity)
English:
<s-variable-scope> variable/variables
(hits 2/488) (matched: 'text variables') constraint DS = {31} extremes [2, infinity)
<s-variable-scope> that/which vary/varies
(hits 59/321) (matched: 'action name based rule producing nothing that varies') constraint DS = {31} extremes [3, infinity)
<k-kind>
(hits 2436/3791) (matched long text) constraint (none) extremes [1, infinity)
(hits 2436/3793) (matched long text) constraint (none) extremes [1, infinity)
<s-literal>
(hits 221/1355) (matched: 'Represents geographical locations, both indoor
(hits 221/1357) (matched: 'Represents geographical locations, both indoor
and outdoor, which are not necessarily areas in a building. A player in one
room is mostly unable to sense, or interact with, anything in a different room.
Rooms are arranged in a map.') constraint (none) extremes [1, infinity)
<s-constant-value>
(hits 113/1134) (matched: 'for deciding whether all includes rules') constraint (none) extremes [1, infinity)
(hits 113/1136) (matched: 'for deciding whether all includes rules') constraint (none) extremes [1, infinity)
<s-description-uncomposite>
(hits 257/1021) (matched: 'thing ( called the item being printed )') constraint (none) extremes [1, infinity)
(hits 257/1023) (matched: 'thing ( called the item being printed )') constraint (none) extremes [1, infinity)
<s-action-pattern-as-value>
(hits 3/764) (matched: 'smelling') constraint (none) extremes [1, infinity)
(hits 3/766) (matched: 'smelling') constraint (none) extremes [1, infinity)
<s-description>
(hits 27/761) (matched long text) constraint (none) extremes [1, infinity)
(hits 27/763) (matched long text) constraint (none) extremes [1, infinity)
<s-descriptive-type-expression-uncached> hits 1252/3018 nti 26 constraint (none) extremes [1, infinity)
English:
@ -6902,7 +6902,7 @@
<s-table-column-name> of <s-value-uncached> in <s-value-uncached>
(hits 2/580) (matched long text) constraint DS = {26} extremes [5, infinity)
<s-action-pattern-as-value> internal hits 3/19876 nti 14 constraint (none) extremes [1, infinity)
<s-action-pattern-as-value> internal hits 3/19880 nti 14 constraint (none) extremes [1, infinity)
<s-sentence> hits 1074/2238 nti 15 constraint (none) extremes [3, infinity)
English:
@ -7336,7 +7336,7 @@
{...}
constraint (none) extremes [1, infinity)
<s-literal-list> hits 0/7326 nti 28 constraint DS = {28} extremes [2, infinity)
<s-literal-list> hits 0/7330 nti 28 constraint DS = {28} extremes [2, infinity)
English:
{ }
(hits 0/34) constraint CS = {28} extremes [2, 2]
@ -7946,35 +7946,35 @@
definition
(hits 88/88) (matched: 'definition') constraint CS = {9} extremes [1, 1]
this is the {... rule}
(hits 58/1634) (matched long text) constraint DS = {9} extremes [5, infinity)
(hits 58/1626) (matched long text) constraint DS = {9} extremes [5, infinity)
this is the rule
constraint CS = {9} extremes [4, 4]
this is {...} rule
(hits 0/1602) constraint DS = {9} extremes [4, infinity)
(hits 0/1590) constraint DS = {9} extremes [4, infinity)
this is {...} rules
(hits 0/1602) constraint DS = {9} extremes [4, infinity)
(hits 0/1590) constraint DS = {9} extremes [4, infinity)
<event-rule-preamble>
(hits 0/1684) constraint DS = {8} extremes [2, infinity)
(hits 0/1666) constraint DS = {8} extremes [2, infinity)
to
constraint CS = {9} extremes [1, 1]
to {...} ( called {...} )
(hits 0/1546) constraint DS = {9} extremes [6, infinity)
(hits 0/1541) constraint DS = {9} extremes [6, infinity)
{to ...} ( this is the {### function} inverse to {###} )
(hits 32/1346) (matched long text) constraint DS = {9} extremes [12, infinity)
{to ...} ( this is the {### function} )
(hits 8/1418) (matched long text) constraint DS = {9} extremes [9, infinity)
{to ...} ( this is {...} )
(hits 0/1478) constraint DS = {9} extremes [7, infinity)
(hits 0/1476) constraint DS = {9} extremes [7, infinity)
to {...}
(hits 952/1660) (matched long text) constraint DS = {9} extremes [2, infinity)
(hits 952/1640) (matched long text) constraint DS = {9} extremes [2, infinity)
{...} ( this is the {... rule} )
(hits 562/606) (matched long text) constraint DS = {9} extremes [8, infinity)
(hits 562/605) (matched long text) constraint DS = {9} extremes [8, infinity)
{...} ( this is the rule )
(hits 0/62) constraint DS = {9} extremes [7, infinity)
(hits 0/60) constraint DS = {9} extremes [7, infinity)
{...} ( this is {...} rule )
(hits 0/62) constraint DS = {9} extremes [7, infinity)
(hits 0/60) constraint DS = {9} extremes [7, infinity)
{...} ( this is {...} rules )
(hits 0/62) constraint DS = {9} extremes [7, infinity)
(hits 0/60) constraint DS = {9} extremes [7, infinity)
{...}
(hits 180/180) (matched long text) constraint (none) extremes [1, infinity)
@ -9356,7 +9356,7 @@
<anl-entry-with-action> internal hits 958/2310 nti 10 constraint (none) extremes [1, infinity)
<action-pattern> hits 556/21216 nti 6 constraint (none) extremes [1, infinity)
<action-pattern> hits 556/21220 nti 6 constraint (none) extremes [1, infinity)
English:
asking <action-parameter> to try <action-pattern-core>
(hits 0/948) constraint DS = {6} extremes [5, infinity)
@ -9369,7 +9369,7 @@
trying <action-pattern-core>
(hits 0/1963) constraint DS = {6} extremes [2, infinity)
<action-pattern-core-actor>
(hits 125/10177) (matched long text) constraint (none) extremes [1, infinity)
(hits 125/10179) (matched long text) constraint (none) extremes [1, infinity)
<we-are-action-pattern> hits 28/2746 nti 13 constraint (none) extremes [1, infinity)
English:
@ -9443,16 +9443,16 @@
we have not <action-pattern-past-core>
(hits 0/952) constraint DS = {12} extremes [4, infinity)
<action-pattern-core-actor> hits 150/23094 nti 11 constraint (none) extremes [1, infinity)
<action-pattern-core-actor> hits 150/23098 nti 11 constraint (none) extremes [1, infinity)
English:
<action-pattern-core>
(hits 85/11547) (matched long text) constraint (none) extremes [1, infinity)
(hits 85/11549) (matched long text) constraint (none) extremes [1, infinity)
<actor-description> <action-pattern-core>
(hits 65/6514) (matched long text) constraint (none) extremes [2, infinity)
(hits 65/6515) (matched long text) constraint (none) extremes [2, infinity)
<actor-description> internal hits 76/13028 nti 12 constraint (none) extremes [1, infinity)
<actor-description> internal hits 76/13030 nti 12 constraint (none) extremes [1, infinity)
<action-pattern-core> internal hits 584/24114 nti 13 constraint (none) extremes [1, infinity)
<action-pattern-core> internal hits 584/24118 nti 13 constraint (none) extremes [1, infinity)
<action-pattern-past-core> internal nti 14 constraint (none) extremes [1, infinity)

View file

@ -1,16 +1,16 @@
Total memory consumption was 257267K = 251 MB
Total memory consumption was 256459K = 250 MB
62.5% was used for 1339939 objects, in 273664 frames in 201 x 800K = 160800K = 157 MB:
62.3% was used for 1331461 objects, in 273669 frames in 200 x 800K = 160000K = 156 MB:
9.8% inter_tree_node_array 36 x 8192 = 294912 objects, 25953408 bytes
5.5% text_stream_array 2579 x 100 = 257900 objects, 14524928 bytes
3.9% parse_node 130008 objects, 10400640 bytes
3.9% parse_node 130012 objects, 10400960 bytes
2.8% verb_conjugation 164 objects, 7610912 bytes
2.7% parse_node_annotation_array 445 x 500 = 222500 objects, 7134240 bytes
2.3% inter_symbol_array 70 x 1024 = 71680 objects, 6310080 bytes
1.8% linked_list 8929 objects, 5000240 bytes
2.6% parse_node_annotation_array 428 x 500 = 214000 objects, 6861696 bytes
2.4% inter_symbol_array 70 x 1024 = 71680 objects, 6310080 bytes
1.9% linked_list 8928 objects, 4999680 bytes
1.3% pcalc_prop_array 24 x 1000 = 24000 objects, 3648768 bytes
1.1% map_data 660 objects, 3131040 bytes
1.2% map_data 666 objects, 3159504 bytes
0.9% kind_array 65 x 1000 = 65000 objects, 2602080 bytes
0.7% inter_schema_token 13536 objects, 1949184 bytes
0.6% vocabulary_entry_array 161 x 100 = 16100 objects, 1808352 bytes
@ -19,19 +19,19 @@ Total memory consumption was 257267K = 251 MB
0.3% inter_name_array 21 x 1000 = 21000 objects, 1008672 bytes
0.3% adjective_meaning 202 objects, 1001920 bytes
0.3% excerpt_meaning 3102 objects, 967824 bytes
0.3% inter_package 13237 objects, 953064 bytes
0.3% inter_package 13238 objects, 953136 bytes
0.3% production 3896 objects, 903872 bytes
0.3% grammatical_usage 3658 objects, 877920 bytes
0.3% ptoken 8416 objects, 875264 bytes
0.3% individual_form 2564 objects, 861504 bytes
0.3% inter_symbols_table 13237 objects, 847168 bytes
0.3% inter_symbols_table 13238 objects, 847232 bytes
0.3% inter_schema_node 8716 objects, 836736 bytes
0.2% dictionary 16401 objects, 787248 bytes
0.2% dict_entry_array 234 x 100 = 23400 objects, 756288 bytes
0.2% package_request 7952 objects, 699776 bytes
0.2% package_request 7953 objects, 699864 bytes
0.2% inter_name_generator_array 16 x 1000 = 16000 objects, 640512 bytes
0.1% local_variable_array 46 x 100 = 4600 objects, 516672 bytes
0.1% inference_subject 663 objects, 434928 bytes
0.1% inference_subject 662 objects, 434272 bytes
0.1% verb_usage 1172 objects, 403168 bytes
0.1% rule 469 objects, 363944 bytes
0.1% verb_form 394 objects, 349872 bytes
@ -59,7 +59,7 @@ Total memory consumption was 257267K = 251 MB
---- inter_schema 1513 objects, 72624 bytes
---- rulebook 407 objects, 71632 bytes
---- kind_macro_definition 10 objects, 64400 bytes
---- spatial_data 664 objects, 63744 bytes
---- spatial_data 666 objects, 63936 bytes
---- booking 860 objects, 61920 bytes
---- grammar_verb 130 objects, 57200 bytes
---- property_permission 96 objects, 56832 bytes
@ -75,15 +75,15 @@ Total memory consumption was 257267K = 251 MB
---- production_list 615 objects, 34440 bytes
---- unary_predicate_array 8 x 1000 = 8000 objects, 32192 bytes
---- HTML_tag_array 1 x 1000 objects, 32032 bytes
---- regions_data 660 objects, 31680 bytes
---- regions_data 666 objects, 31968 bytes
---- property 146 objects, 31536 bytes
---- verb_sense 411 objects, 29592 bytes
---- stacked_variable_owner_array 6 x 100 = 600 objects, 28992 bytes
---- heading 198 objects, 28512 bytes
---- counting_data 664 objects, 26560 bytes
---- counting_data 666 objects, 26640 bytes
---- instance 167 objects, 22712 bytes
---- ap_optional_clause_array 1 x 400 objects, 22432 bytes
---- parsing_data 664 objects, 21248 bytes
---- parsing_data 666 objects, 21312 bytes
---- pcalc_prop_deferral 90 objects, 19440 bytes
---- nonlocal_variable 93 objects, 19344 bytes
---- action_name 90 objects, 18720 bytes
@ -93,7 +93,7 @@ Total memory consumption was 257267K = 251 MB
---- adjective_iname_holder 320 objects, 15360 bytes
---- plugin 23 objects, 13432 bytes
---- literal_text 147 objects, 12936 bytes
---- stopwatch_timer 154 objects, 12320 bytes
---- stopwatch_timer 152 objects, 12160 bytes
---- understanding_reference_array 2 x 100 = 200 objects, 11264 bytes
---- pathname 265 objects, 10600 bytes
---- adjective 137 objects, 9864 bytes
@ -118,22 +118,22 @@ Total memory consumption was 257267K = 251 MB
---- inbuild_edition 54 objects, 3888 bytes
---- inbuild_copy 35 objects, 3640 bytes
---- command_line_switch 42 objects, 3360 bytes
---- instance_usage_array 1 x 200 objects, 3232 bytes
---- kind_constructor_comparison_schema_array 1 x 100 objects, 3232 bytes
---- compatibility_specification 66 objects, 3168 bytes
---- instance_usage_array 1 x 200 objects, 3232 bytes
---- definition 44 objects, 3168 bytes
---- compatibility_specification 66 objects, 3168 bytes
---- inform_extension 19 objects, 3040 bytes
---- property_of_value_storage 93 objects, 2976 bytes
---- submodule_request 71 objects, 2840 bytes
---- submodule_request 72 objects, 2880 bytes
---- inter_construct 32 objects, 2560 bytes
---- kind_constructor_casting_rule_array 1 x 100 objects, 2432 bytes
---- equation_symbol 30 objects, 2400 bytes
---- semver_range 22 objects, 2288 bytes
---- method_set 56 objects, 1792 bytes
---- pronoun_usage 42 objects, 1680 bytes
---- table_contribution_array 1 x 100 objects, 1632 bytes
---- activity_crossref_array 1 x 100 objects, 1632 bytes
---- plugin_call_array 1 x 100 objects, 1632 bytes
---- table_contribution_array 1 x 100 objects, 1632 bytes
---- use_option 29 objects, 1624 bytes
---- kind_interaction 39 objects, 1560 bytes
---- inter_annotation_form 37 objects, 1480 bytes
@ -161,72 +161,72 @@ Total memory consumption was 257267K = 251 MB
---- implication 13 objects, 728 bytes
---- rulebook_outcome 17 objects, 680 bytes
---- inform_language 6 objects, 672 bytes
---- I6T_intervention 8 objects, 640 bytes
---- inter_warehouse_room 10 objects, 640 bytes
---- relation_guard 5 objects, 640 bytes
---- inter_warehouse_room 10 objects, 640 bytes
---- I6T_intervention 8 objects, 640 bytes
---- nascent_array 7 objects, 616 bytes
---- named_rulebook_outcome 15 objects, 600 bytes
---- inbuild_search_result 15 objects, 600 bytes
---- label_namespace 10 objects, 560 bytes
---- small_word_set 11 objects, 528 bytes
---- inform_kit 5 objects, 520 bytes
---- equation 4 objects, 416 bytes
---- i6_memory_setting 13 objects, 416 bytes
---- module_package 10 objects, 400 bytes
---- equation 4 objects, 416 bytes
---- dval_written 10 objects, 400 bytes
---- module_package 10 objects, 400 bytes
---- article_usage 8 objects, 384 bytes
---- source_file 5 objects, 360 bytes
---- inbuild_genre 7 objects, 336 bytes
---- door_dir_notice 5 objects, 320 bytes
---- grammatical_category 8 objects, 320 bytes
---- pronoun 8 objects, 320 bytes
---- grammatical_category 8 objects, 320 bytes
---- build_step 4 objects, 288 bytes
---- door_to_notice 5 objects, 280 bytes
---- inform_pipeline 4 objects, 256 bytes
---- verb_usage_tier 5 objects, 240 bytes
---- test_scenario 1 object, 208 bytes
---- compilation_module 5 objects, 200 bytes
---- compilation_unit 5 objects, 200 bytes
---- build_skill 5 objects, 200 bytes
---- plural_dictionary_entry 4 objects, 192 bytes
---- kit_dependency 4 objects, 192 bytes
---- plural_dictionary_entry 4 objects, 192 bytes
---- inform_project 1 object, 176 bytes
---- code_generation_target 4 objects, 160 bytes
---- pointer_allocation 2 objects, 160 bytes
---- link_instruction 4 objects, 160 bytes
---- inter_architecture 4 objects, 160 bytes
---- link_instruction 4 objects, 160 bytes
---- pointer_allocation 2 objects, 160 bytes
---- code_generation_target 4 objects, 160 bytes
---- codegen_pipeline 1 object, 128 bytes
---- element_activation 4 objects, 128 bytes
---- inbuild_nest 3 objects, 120 bytes
---- inform_kit_ittt 2 objects, 96 bytes
---- article 2 objects, 80 bytes
---- list_together_routine 2 objects, 80 bytes
---- compile_task_data 1 object, 80 bytes
---- list_together_routine 2 objects, 80 bytes
---- inter_warehouse 1 object, 56 bytes
---- build_methodology 1 object, 56 bytes
---- blorb_figure 1 object, 48 bytes
---- HTML_file_state 1 object, 48 bytes
---- kind_template_definition 1 object, 40 bytes
---- loop_over_scope 1 object, 40 bytes
---- parse_name_notice 1 object, 40 bytes
---- loop_over_scope 1 object, 40 bytes
37.4% was used for memory not allocated for objects:
37.6% was used for memory not allocated for objects:
15.9% text stream storage 41937428 bytes in 264287 claims
3.5% dictionary storage 9293824 bytes in 16401 claims
---- sorting 1096 bytes in 3 claims
15.9% text stream storage 41935164 bytes in 264253 claims
3.5% dictionary storage 9293312 bytes in 16401 claims
---- sorting 1080 bytes in 3 claims
2.7% source text 7200000 bytes in 3 claims
4.0% source text details 10800000 bytes in 2 claims
4.1% source text details 10800000 bytes in 2 claims
---- linguistic stock array 81920 bytes in 2 claims
---- small word set array 105600 bytes in 22 claims
0.8% inter symbols storage 2283584 bytes in 13951 claims
0.8% inter symbols storage 2283712 bytes in 13952 claims
6.3% inter bytecode storage 16802820 bytes in 14 claims
3.3% inter links storage 8750208 bytes in 246 claims
0.5% instance-of-kind counting 1464100 bytes in 1 claim
0.5% instance-of-kind counting 1459264 bytes in 1 claim
---- lists for type-checking invocations 16000 bytes in 1 claim
---- size estimates for compiled objects 300 bytes in 1 claim
---- compilation workspace for objects 21776 bytes in 25 claims
---- compilation workspace for objects 21736 bytes in 25 claims
---- emitter array storage 14368 bytes in 8 claims
---- code generation workspace for objects 9200 bytes in 9 claims
20.1% was overhead - 53028840 bytes = 51785K = 50 MB
19.9% was overhead - 52453888 bytes = 51224K = 50 MB

View file

@ -1,25 +1,25 @@
<s-literal> hits 2097/23834 nti 6 constraint (none) extremes [1, infinity)
<s-literal> hits 2097/23842 nti 6 constraint (none) extremes [1, infinity)
English:
(@1)<cardinal-number>=1
(hits 171/171) (matched: '100') constraint CS = {r0} extremes [1, 1]
(@1)minus (@2)<cardinal-number>=1
(hits 0/479) constraint DS = {6} extremes [2, 2]
(hits 0/478) constraint DS = {6} extremes [2, 2]
(@1)<quoted-text>=1 (@2)( (@3)<response-letter>=2 (@4))
(hits 273/620) (matched: '"[current item from the multiple object list]: [run paragraph on]" ( a )') constraint DS = {6} extremes [4, 4]
(@1)<quoted-text>=1
(hits 1564/5548) (matched: 'Represents geographical locations, both indoor
(hits 1564/5550) (matched: 'Represents geographical locations, both indoor
and outdoor, which are not necessarily areas in a building. A player in one
room is mostly unable to sense, or interact with, anything in a different room.
Rooms are arranged in a map.') constraint (none) extremes [1, 1]
<s-literal-real-number>=1
(hits 11/9909) (matched: 'plus infinity') constraint (none) extremes [1, infinity)
(hits 11/9913) (matched: 'plus infinity') constraint (none) extremes [1, infinity)
(@1)<s-literal-truth-state>=1
(hits 78/379) (matched: 'false') constraint CS = {26} extremes [1, 1]
<s-literal-list>=1
(hits 0/3663) constraint DS = {28} extremes [2, infinity)
(hits 0/3665) constraint DS = {28} extremes [2, infinity)
(@1)unicode <s-unicode-character>=1
(hits 0/1924) constraint DS = {6} extremes [2, infinity)
(hits 0/1923) constraint DS = {6} extremes [2, infinity)
<s-literal-time>=1
(hits 0/3211) constraint DW = {29, 30, 31} extremes [2, 5]
<s-literal-unit-notation>=1
(hits 0/9820) constraint (none) extremes [1, infinity)
(hits 0/9824) constraint (none) extremes [1, infinity)

View file

@ -1,13 +1,13 @@
100.0% in inform7 run
67.0% in compilation to Inter
26.2% in //Phrases::Manager::compile_first_block//
9.3% in //Phrases::Manager::compile_as_needed//
6.8% in //Strings::compile_responses//
5.9% in //World::Compile::compile//
3.2% in //Assertions::Traverse::traverse1//
3.0% in //Classifying::traverse//
2.1% in //Phrases::Manager::RulePrintingRule_routine//
1.9% in //Phrases::Manager::rulebooks_array//
66.2% in compilation to Inter
25.8% in //Phrases::Manager::compile_first_block//
9.1% in //Phrases::Manager::compile_as_needed//
6.9% in //Strings::compile_responses//
5.8% in //World::Compile::compile//
3.1% in //Assertions::Traverse::traverse1//
3.1% in //Classifying::traverse//
2.0% in //Phrases::Manager::RulePrintingRule_routine//
1.8% in //Phrases::Manager::rulebooks_array//
0.9% in //NewVerbs::ConjugateVerb//
0.7% in //Phrases::Manager::traverse//
0.5% in //Phrases::Manager::parse_rule_parameters//
@ -16,14 +16,14 @@
0.3% in //Relations::compile_defined_relations//
0.1% in //Assertions::Traverse::traverse2//
0.1% in //PL::Parsing::Verbs::compile_all//
0.1% in //Sentences::RuleSubtrees::register_recently_lexed_phrases//
0.1% in //Task::load_types//
0.1% in //RuleSubtrees::register_recently_lexed_phrases//
0.1% in //Task::make_built_in_kind_constructors//
0.1% in //World::complete//
3.8% not specifically accounted for
30.8% in running Inter pipeline
10.1% in step preparation
9.7% in inter step 2/12: link
7.2% in inter step 12/12: generate inform6 -> auto.inf
31.5% in running Inter pipeline
10.3% in step preparation
9.9% in inter step 2/12: link
7.5% in inter step 12/12: generate inform6 -> auto.inf
0.3% in inter step 9/12: make-identifiers-unique
0.1% in inter step 10/12: reconcile-verbs
0.1% in inter step 11/12: eliminate-redundant-labels
@ -31,5 +31,6 @@
0.1% in inter step 6/12: assimilate
0.1% in inter step 7/12: resolve-external-symbols
0.1% in inter step 8/12: inspect-plugs
2.1% not specifically accounted for
2.1% in supervisor
2.3% not specifically accounted for
2.0% in supervisor
0.2% not specifically accounted for

View file

@ -461,7 +461,6 @@ tree; though it's a little like itemising the baubles on a Christmas tree.
@e rule_placement_sense_ANNOT /* |int|: are we listing a rule into something, or out of it? */
@e lpe_options_ANNOT /* |int|: options set for a literal pattern part */
@e modal_verb_ANNOT /* |verb_conjugation|: relevant only for that: e.g., "might" */
@e module_ANNOT /* |compilation_module|: set only for headings, routines and sentences */
@e multiplicity_ANNOT /* |int|: e.g., 5 for "five gold rings" */
@e negated_boolean_ANNOT /* int: set if adjective/verb meant negatively */
@e new_relation_here_ANNOT /* |binary_predicate|: new relation as subject of "relates" sentence */
@ -499,6 +498,7 @@ tree; though it's a little like itemising the baubles on a Christmas tree.
@e token_check_to_do_ANNOT /* |parse_node|: what if anything is returned */
@e token_to_be_parsed_against_ANNOT /* |parse_node|: what if anything is returned */
@e turned_already_ANNOT /* |int|: aliasing like "player" to "yourself" performed already */
@e unit_ANNOT /* |compilation_unit|: set only for headings, routines and sentences */
@e unproven_ANNOT /* |int|: this invocation needs run-time typechecking */
@e verb_problem_issued_ANNOT /* |int|: has a problem message about the primary verb been issued already? */
@e vu_ANNOT /* |verb_usage|: for e.g. "does not carry" */
@ -540,7 +540,6 @@ DECLARE_ANNOTATION_FUNCTIONS(kind_resulting, kind)
DECLARE_ANNOTATION_FUNCTIONS(kind_variable_declarations, kind_variable_declaration)
DECLARE_ANNOTATION_FUNCTIONS(explicit_iname, inter_name)
DECLARE_ANNOTATION_FUNCTIONS(modal_verb, verb_conjugation)
DECLARE_ANNOTATION_FUNCTIONS(module, compilation_module)
DECLARE_ANNOTATION_FUNCTIONS(new_relation_here, binary_predicate)
DECLARE_ANNOTATION_FUNCTIONS(phrase_invoked, phrase)
DECLARE_ANNOTATION_FUNCTIONS(phrase_options_invoked, invocation_options)
@ -555,6 +554,7 @@ DECLARE_ANNOTATION_FUNCTIONS(tense_marker, grammatical_usage)
DECLARE_ANNOTATION_FUNCTIONS(token_as_parsed, parse_node)
DECLARE_ANNOTATION_FUNCTIONS(token_check_to_do, parse_node)
DECLARE_ANNOTATION_FUNCTIONS(token_to_be_parsed_against, parse_node)
DECLARE_ANNOTATION_FUNCTIONS(unit, compilation_unit)
DECLARE_ANNOTATION_FUNCTIONS(vu, verb_usage)
@ So we itemise the pointer-valued annotations below, and the macro expands

View file

@ -11,11 +11,9 @@ on to the next.
150 is a great many, so we group the stages into 16 departments, which are,
in order of when they work:
@e STARTED_CSEQ from 0
@e SEMANTIC_LANGUAGE_CSEQ
@e SEMANTIC_I_CSEQ
@e SEMANTIC_II_CSEQ
@e SEMANTIC_III_CSEQ
@e SUBDIVIDING_CSEQ from 0
@e BUILT_IN_STUFF_CSEQ
@e SEMANTIC_ANALYSIS_CSEQ
@e ASSERTIONS_PASS_1_CSEQ
@e ASSERTIONS_PASS_2_CSEQ
@e MODEL_CSEQ
@ -35,19 +33,14 @@ with building that grammar are skipped unless the relevant language element
is active.
=
int compiler_booted_up = FALSE;
int Sequence::carry_out(int debugging) {
stopwatch_timer *sequence_timer =
Time::start_stopwatch(inform7_timer, I"compilation to Inter");
Task::advance_stage_to(STARTED_CSEQ, I"Starting", -1);
if (compiler_booted_up == FALSE) {
@<Boot up the compiler@>;
compiler_booted_up = TRUE;
}
@<Perform textual analysis@>;
@<Read the assertions in two passes@>;
@<Divide into compilation units@>;
@<Build a rudimentary set of kinds, relations, verbs and inference subjects@>;
@<Find the major declarations at non-SENTENCE nodes@>;
@<Diagram the SENTENCE nodes and act on them@>;
@<Make the model world@>;
@<Tables and grammar@>;
@<Phrases and rules@>;
@ -115,45 +108,53 @@ as possible.
commentary. For what they do, see the relevant sections. Note that although
most of these worker functions are in the |core| module, some are not.
@<Boot up the compiler@> =
Before anything else can be done, we must create an empty Inter hierarchy
into which we will "emit" an Inter program. No actual code will be emitted for
some time yet, but identifier names and type declarations need somewhere to go.
We then break the source into "compilation units" -- basically, one for the
main source text and one for each extension -- because the Inter hierarchy
will divide according to these units.
@<Divide into compilation units@> =
Task::advance_stage_to(SUBDIVIDING_CSEQ, I"Dividing source into compilation units", -1);
BENCH(Emit::begin);
BENCH(InferenceSubjects::begin);
BENCH(Index::DocReferences::read_xrefs);
@<Perform textual analysis@> =
Task::advance_stage_to(SEMANTIC_LANGUAGE_CSEQ, I"Semantic analysis Ia", -1);
BENCH(Plugins::Manage::start_plugins);
BENCH(Task::load_types);
BENCH(BinaryPredicates::make_built_in)
Task::advance_stage_to(SEMANTIC_I_CSEQ, I"Semantic analysis Ib", -1);
BENCH(BootVerbs::bootstrap)
BENCH(Classifying::traverse)
BENCH(Sentences::RuleSubtrees::register_recently_lexed_phrases)
BENCH(ParseTreeUsage::verify)
Task::advance_stage_to(SEMANTIC_II_CSEQ, I"Semantic analysis II", -1);
BENCH(Sentences::Headings::make_the_tree)
BENCH(Sentences::Headings::write_as_xml)
BENCH(Modules::traverse_to_define)
BENCH(CompilationUnits::determine)
Task::advance_stage_to(SEMANTIC_III_CSEQ, I"Semantic analysis III", -1);
@ Most of the conceptual infrastructure in Inform is created by Inform source
text in the Basic Inform or Standard Rules extensions, but not basic kinds of
value such as "number", or the verb "to mean", or the meaning relation, and
so on. Those absolute basics are made here.
@<Build a rudimentary set of kinds, relations, verbs and inference subjects@> =
Task::advance_stage_to(BUILT_IN_STUFF_CSEQ, I"Making built in infrastructure", -1);
BENCH(InferenceSubjects::make_built_in);
BENCH(Task::make_built_in_kind_constructors);
BENCH(BinaryPredicates::make_built_in)
BENCH(BootVerbs::make_built_in)
@<Find the major declarations at non-SENTENCE nodes@> =
Task::advance_stage_to(SEMANTIC_ANALYSIS_CSEQ, I"Semantic analysis", -1);
BENCH(RuleSubtrees::register_recently_lexed_phrases)
BENCH(Phrases::Adjectives::traverse)
BENCH(Equations::traverse_to_create)
BENCH(Tables::traverse_to_create)
BENCH(Phrases::Manager::traverse_for_names)
@<Read the assertions in two passes@> =
@<Diagram the SENTENCE nodes and act on them@> =
BENCH(Classifying::traverse)
Task::advance_stage_to(ASSERTIONS_PASS_1_CSEQ, I"First pass through assertions", 2);
BENCH(Assertions::Traverse::traverse1)
BENCH(Tables::traverse_to_stock)
Task::advance_stage_to(ASSERTIONS_PASS_2_CSEQ, I"Second pass through assertions", -1);
BENCH(Assertions::Traverse::traverse2)
BENCH(Kinds::RunTime::kind_declarations)
BENCH(UseOptions::compile)
BENCH(ParseTreeUsage::verify)
@<Make the model world@> =
Task::advance_stage_to(MODEL_CSEQ, I"Making the model world", -1);
BENCH(UseOptions::compile)
BENCH(Properties::emit)
BENCH(Properties::Emit::allocate_attributes)
BENCH(PL::Actions::name_all)

View file

@ -29,7 +29,7 @@ typedef struct compile_task_data {
@ An early and perhaps arguable design decision for inform7 was that it would
compile just one source text in its lifetime as a process: and because of that,
|Task::carry_out| can only in fact be called once, and Inbuild only does so
once. But the following routine allows in principle for multiple calls,
once. But the following function allows in principle for multiple calls,
against the day when we change our minds about all this.
Something we will never do is attempt to make |inform7| thread-safe in the
@ -48,7 +48,9 @@ int Task::carry_out(build_step *S) {
if (project == NULL) internal_error("no project");
latest_syntax_tree = project->syntax_tree;
Index::DocReferences::read_xrefs();
Task::issue_problems_arising(project->as_copy->vertex);
Plugins::Manage::start_plugins();
if (problem_count > 0) return FALSE;
@ -178,9 +180,9 @@ int Task::rng_seed(void) {
referring something back up to Inbuild.
=
void Task::load_types(void) {
void Task::make_built_in_kind_constructors(void) {
if (inform7_task == NULL) internal_error("there is no current task");
Projects::load_types(inform7_task->project);
Projects::load_built_in_kind_constructors(inform7_task->project);
}
int Task::begin_execution_at_to_begin(void) {

View file

@ -328,7 +328,7 @@ can't normally be unravelled at compile time.
mdef->superlative = EMPTY_WORDING; /* but it may be set below */
mdef->headword_as_adjective = NULL; /* but it will certainly be set below */
package_request *P = Hierarchy::package(Modules::current(), ADJECTIVE_MEANINGS_HAP);
package_request *P = Hierarchy::package(CompilationUnits::current(), ADJECTIVE_MEANINGS_HAP);
mdef->mdef_iname = Hierarchy::make_iname_in(MEASUREMENT_FN_HL, P);
@<Create the superlative form@> =
@ -336,7 +336,7 @@ can't normally be unravelled at compile time.
Grading::make_superlative(mdef->headword, Task::language_of_syntax());
@<Feed the preamble for the superlative phrase into the lexer@>;
@<Feed the body of the superlative phrase into the lexer@>;
Sentences::RuleSubtrees::register_recently_lexed_phrases();
RuleSubtrees::register_recently_lexed_phrases();
@<Feed the preamble for the superlative phrase into the lexer@> =
TEMPORARY_TEXT(TEMP)

View file

@ -26,7 +26,7 @@ a value with the owner; it isn't that either/or properties are unloved.)
typedef struct property {
struct wording name; /* name of property */
int ambiguous_name; /* does this look like a property test, e.g., "point of view"? */
struct compilation_module *owning_module; /* where defined */
struct compilation_unit *owning_module; /* where defined */
/* the basic nature of this property */
int either_or; /* is this an either/or property? if not, it is a valued one */
@ -193,7 +193,7 @@ something.
@<Initialise the property name structure@> =
prn->name = W;
prn->owning_module = Modules::find(current_sentence);
prn->owning_module = CompilationUnits::find(current_sentence);
prn->ambiguous_name = <name-looking-like-property-test>(W);
prn->applicable_to = NULL;
prn->either_or = FALSE;

View file

@ -127,11 +127,12 @@ At the start of Inform's run, the subject tree consists only of the
following.
=
void InferenceSubjects::begin(void) {
void InferenceSubjects::make_built_in(void) {
model_world = InferenceSubjects::new_fundamental(NULL, "model-world");
nonlocal_variables = InferenceSubjects::new_fundamental(model_world, "global-variables");
global_constants = InferenceSubjects::new_fundamental(model_world, "global-constants");
relations = InferenceSubjects::new_fundamental(model_world, "relations");
Plugins::Call::create_inference_subjects();
}
inference_subject *InferenceSubjects::new_fundamental(inference_subject *from, char *lname) {

View file

@ -27,7 +27,7 @@ typedef struct text_substitution {
struct inter_name *ts_iname; /* the I6 array for this */
struct inter_name *ts_routine_iname; /* the routine to implement it */
int ts_sb_needed; /* reference copy of small block needed as a constant? */
struct compilation_module *belongs_to_module;
struct compilation_unit *belongs_to_module;
CLASS_DEFINITION
} text_substitution;
@ -83,7 +83,7 @@ text_substitution *Strings::TextSubstitutions::new_text_substitution(wording W,
package_request *PR = Hierarchy::package_within(LITERALS_HAP, P);
ts->ts_iname = Hierarchy::make_iname_in(TEXT_SUBSTITUTION_HL, PR);
ts->ts_routine_iname = Hierarchy::make_iname_in(TEXT_SUBSTITUTION_FN_HL, PR);
ts->belongs_to_module = Modules::current();
ts->belongs_to_module = CompilationUnits::current();
LOGIF(TEXT_SUBSTITUTIONS, "Requesting text routine %d %08x %W %08x\n",
ts->allocation_id, (int) phsf, W, R);
return ts;
@ -327,20 +327,20 @@ a request for a new text substitution to be compiled later...
}
parse_node *ts_code_block = Node::new(RULE_NT);
Node::set_module(ts_code_block, ts->belongs_to_module);
compilation_module *cm = Modules::current();
Modules::set_current_to(ts->belongs_to_module);
Node::set_unit(ts_code_block, ts->belongs_to_module);
compilation_unit *cm = CompilationUnits::current();
CompilationUnits::set_current_to(ts->belongs_to_module);
ts_code_block->down = Node::new(INVOCATION_LIST_NT);
Node::set_text(ts_code_block->down, ts->unsubstituted_text);
Annotations::write_int(ts_code_block->down, from_text_substitution_ANNOT, TRUE);
Sentences::RuleSubtrees::parse_routine_structure(ts_code_block);
RuleSubtrees::parse_routine_structure(ts_code_block);
Routines::Compile::code_block_outer(0, ts_code_block->down);
Produce::rtrue(Emit::tree());
END_COMPILATION_MODE;
Modules::set_current_to(cm);
CompilationUnits::set_current_to(cm);
@ See the "Responses" section for why, but we sometimes want to force
the coroutine to go through the whole queue once, then go back to the

View file

@ -141,7 +141,7 @@ table *Tables::new_table_structure(parse_node *PN) {
t->preserve_row_order_at_run_time = FALSE;
t->amendment_of = NULL;
t->has_been_amended = FALSE;
t->table_package = Hierarchy::package(Modules::find(PN), TABLES_HAP);
t->table_package = Hierarchy::package(CompilationUnits::find(PN), TABLES_HAP);
t->table_identifier = Hierarchy::make_iname_in(TABLE_DATA_HL, t->table_package);
t->approximate_array_space_needed = 0;
t->disable_block_constant_correction = FALSE;

View file

@ -960,15 +960,6 @@ ph_stack_frame *Rules::stack_frame(rule *R) {
return &(R->defn_as_phrase->stack_frame);
}
int Rules::portable(rule *R) {
if ((R) && (Wordings::nonempty(R->name)) &&
(R->first_applicability_condition == NULL) &&
(R->rule_extern_iname == NULL) &&
(Modules::find(R->defn_as_phrase->declaration_node) == Modules::SR()))
return TRUE;
return FALSE;
}
package_request *Rules::package(rule *R) {
return R->rule_package;
}

View file

@ -50,7 +50,7 @@ typedef struct phrase {
int inter_defn_converted; /* has this been tried yet? */
int inline_mor; /* manner of return for inline I6 definition, or |UNKNOWN_NT| */
struct wording ph_documentation_symbol; /* cross-reference with documentation */
struct compilation_module *owning_module;
struct compilation_unit *owning_module;
struct package_request *requests_package;
struct package_request *rule_package;
@ -229,7 +229,7 @@ of it:
new_ph->ph_iname = NULL;
new_ph->to_begin = FALSE;
new_ph->imported = FALSE;
new_ph->owning_module = Modules::find(current_sentence);
new_ph->owning_module = CompilationUnits::find(current_sentence);
new_ph->requests_package = NULL;
if (inline_wn >= 0) {
new_ph->at_least_one_compiled_form_needed = FALSE;

View file

@ -168,8 +168,8 @@ to_phrase_request *Routines::ToPhrases::make_request(phrase *ph, kind *K,
req = CREATE(to_phrase_request);
req->requested_exact_kind = K;
req->requested_phrase = ph;
compilation_module *cm = Modules::current();
if (ph->declaration_node) cm = Modules::find(ph->declaration_node);
compilation_unit *cm = CompilationUnits::current();
if (ph->declaration_node) cm = CompilationUnits::find(ph->declaration_node);
package_request *P = Hierarchy::package_within(REQUESTS_HAP, ph->requests_package);
req->req_iname = Hierarchy::make_localised_iname_in(PHRASE_FN_HL, P, cm);

View file

@ -104,8 +104,8 @@ void Phrases::Adjectives::traverse(void) {
void Phrases::Adjectives::look_for_headers(parse_node *p) {
if (Node::get_type(p) == RULE_NT)
if (<definition-header>(Node::get_text(p))) {
compilation_module *cm = Modules::current();
Modules::set_current(p);
compilation_unit *cm = CompilationUnits::current();
CompilationUnits::set_current(p);
parse_node *q = (p->down)?(p->down->down):NULL;
if (q == NULL) @<Futz with the parse tree, trying right not down@>;
@ -122,7 +122,7 @@ void Phrases::Adjectives::look_for_headers(parse_node *p) {
if (the_format != DEFINED_PHRASALLY) p->down = NULL;
Modules::set_current_to(cm);
CompilationUnits::set_current_to(cm);
}
}

View file

@ -35,7 +35,7 @@ void Routines::Compile::routine(phrase *ph,
internal_error("tried to compile phrase with bad ROUTINE node");
LOGIF(PHRASE_COMPILATION, "Compiling phrase:\n$T", ph->declaration_node);
Modules::set_current(ph->declaration_node);
CompilationUnits::set_current(ph->declaration_node);
phrase_being_compiled = ph;
@<Set up the stack frame for this compilation request@>;
@ -49,7 +49,7 @@ void Routines::Compile::routine(phrase *ph,
phrase_being_compiled = NULL;
current_sentence = NULL;
Modules::set_current(NULL);
CompilationUnits::set_current(NULL);
}
@<Compile some commentary about the routine to follow@> =

View file

@ -26,7 +26,7 @@ typedef struct label_namespace {
int label_counter; /* next free ID number for this label namespace */
int allocate_storage; /* number of words of memory to reserve for each label */
struct inter_name *label_storage_iname;
struct compilation_module *module;
struct compilation_unit *module;
CLASS_DEFINITION
} label_namespace;
@ -34,7 +34,7 @@ typedef struct label_namespace {
reserves no memory.
=
label_namespace *JumpLabels::new_namespace(text_stream *name, compilation_module *cm) {
label_namespace *JumpLabels::new_namespace(text_stream *name, compilation_unit *cm) {
if (Str::len(name) > MAX_NAMESPACE_PREFIX_LENGTH) {
#ifdef CORE_MODULE
StandardProblems::sentence_problem(Task::syntax_tree(), _p_(PM_LabelNamespaceTooLong),
@ -62,7 +62,7 @@ few namespaces and it happens fairly seldom, so there is no point in
optimising.
=
label_namespace *JumpLabels::namespace_by_prefix(text_stream *name, compilation_module *cm) {
label_namespace *JumpLabels::namespace_by_prefix(text_stream *name, compilation_unit *cm) {
label_namespace *lns;
LOOP_OVER(lns, label_namespace)
if ((lns->module == cm) && (Str::eq(name, lns->label_prefix)))
@ -71,7 +71,7 @@ label_namespace *JumpLabels::namespace_by_prefix(text_stream *name, compilation_
}
label_namespace *JumpLabels::read_or_create_namespace(text_stream *name) {
compilation_module *cm = Modules::current();
compilation_unit *cm = CompilationUnits::current();
label_namespace *lns = JumpLabels::namespace_by_prefix(name, cm);
if (lns == NULL) lns = JumpLabels::new_namespace(name, cm);
return lns;

View file

@ -40,6 +40,7 @@ To place calls to the plugins.
@d PLUGIN_ADD_TO_WORLD_INDEX 40
@d PLUGIN_ANNOTATE_IN_WORLD_INDEX 41
@d PLUGIN_SET_SUBKIND_NOTIFY 42
@d PLUGIN_CREATE_INFERENCES 43
@
@ -241,3 +242,7 @@ int Plugins::Call::add_to_World_index(OUTPUT_STREAM, instance *O) {
int Plugins::Call::annotate_in_World_index(OUTPUT_STREAM, instance *O) {
PLUGINS_CALL(PLUGIN_ANNOTATE_IN_WORLD_INDEX, OUT, O);
}
int Plugins::Call::create_inference_subjects(void) {
PLUGINS_CALLV(PLUGIN_CREATE_INFERENCES);
}

View file

@ -1,10 +1,9 @@
[Modules::] Compilation Modules.
[CompilationUnits::] Compilation Units.
To identify which parts of the source text come from which source (the main source
text, the Standard Rules, or another extension).
@h Compilation modules.
Inform is a language in which it is semantically relevant which source file the
@ Inform is a language in which it is semantically relevant which source file the
source text is coming from: unlike, say, C, where |#include| allows files to include
each other in arbitrary ways. In Inform, all source text comes from one of the
following places:
@ -13,47 +12,42 @@ following places:
(b) An extension file, including the Standard Rules extension;
(c) Invented text created by the compiler itself.
The Inter hierarchy also splits, with named modules representing each possibility
in (a) or (b) above. This section of code determines to which module any new
The Inter hierarchy also splits, with named units representing each possibility
in (a) or (b) above. This section of code determines to which unit any new
definition (of, say, a property or kind) belongs.
=
compilation_module *source_text_module = NULL; /* the one for the main text */
compilation_module *SR_module = NULL; /* the one for the Standard Rules */
compilation_module *Modules::SR(void) {
return SR_module;
}
compilation_unit *source_text_unit = NULL; /* the one for the main text */
@ We find these by performing a traverse of the parse tree, and looking for
level-0 headings, which are the nodes from which these blocks of source text hang:
=
void Modules::traverse_to_define(void) {
SyntaxTree::traverse(Task::syntax_tree(), Modules::look_for_cu);
void CompilationUnits::determine(void) {
SyntaxTree::traverse(Task::syntax_tree(), CompilationUnits::look_for_cu);
}
void Modules::look_for_cu(parse_node *p) {
void CompilationUnits::look_for_cu(parse_node *p) {
if (Node::get_type(p) == HEADING_NT) {
heading *h = Headings::from_node(p);
if ((h) && (h->level == 0)) Modules::new(p);
if ((h) && (h->level == 0)) CompilationUnits::new(p);
}
}
compilation_module *Modules::new(parse_node *from) {
compilation_unit *CompilationUnits::new(parse_node *from) {
source_location sl = Wordings::location(Node::get_text(from));
if (sl.file_of_origin == NULL) return NULL;
inform_extension *owner = Extensions::corresponding_to(
Lexer::file_of_origin(Wordings::first_wn(Node::get_text(from))));
compilation_module *C = Packaging::new_cm();
compilation_unit *C = Packaging::new_cu();
C->hanging_from = from;
Node::set_module(from, C);
Modules::propagate_downwards(from->down, C);
Node::set_unit(from, C);
CompilationUnits::propagate_downwards(from->down, C);
TEMPORARY_TEXT(pname)
@<Compose a name for the module package this will lead to@>;
C->inter_presence = Packaging::get_module(Emit::tree(), pname);
@<Compose a name for the unit package this will lead to@>;
C->inter_presence = Packaging::get_unit(Emit::tree(), pname);
DISCARD_TEXT(pname)
if (owner) {
@ -66,15 +60,14 @@ compilation_module *Modules::new(parse_node *from) {
DISCARD_TEXT(V)
}
if (Extensions::is_standard(owner)) SR_module = C;
if (owner == NULL) source_text_module = C;
if (owner == NULL) source_text_unit = C;
return C;
}
@ Here we must find a unique name, valid as an Inter identifier: the code
compiled from the compilation module will go into a package of that name.
compiled from the compilation unit will go into a package of that name.
@<Compose a name for the module package this will lead to@> =
@<Compose a name for the unit package this will lead to@> =
if (Extensions::is_standard(owner)) WRITE_TO(pname, "standard_rules");
else if (owner == NULL) WRITE_TO(pname, "source_text");
else {
@ -87,47 +80,47 @@ compiled from the compilation module will go into a package of that name.
}
@ We are eventually going to need to be able to look at a given node in the parse
tree and say which compilation module it belongs to. If there were a fast way
tree and say which compilation unit it belongs to. If there were a fast way
to go up in the tree, that would be easy -- we could simply run upward until we
reach a level-0 heading. But the node links all run downwards. Instead, we'll
"mark" nodes in the tree, annotating them with the compilation module which owns
"mark" nodes in the tree, annotating them with the compilation unit which owns
them. This is done by "propagating downwards", as follows.
@ =
void Modules::propagate_downwards(parse_node *P, compilation_module *C) {
void CompilationUnits::propagate_downwards(parse_node *P, compilation_unit *C) {
while (P) {
Node::set_module(P, C);
Modules::propagate_downwards(P->down, C);
Node::set_unit(P, C);
CompilationUnits::propagate_downwards(P->down, C);
P = P->next;
}
}
@ As promised, then, given a parse node, we have to return its compilation module:
@ As promised, then, given a parse node, we have to return its compilation unit:
but that's now easy, as we just have to read off the annotation made above --
=
compilation_module *Modules::find(parse_node *from) {
compilation_unit *CompilationUnits::find(parse_node *from) {
if (from == NULL) return NULL;
return Node::get_module(from);
return Node::get_unit(from);
}
@h Current module.
Inform has a concept of the "current module" it's working on, much as it has
@h Current unit.
Inform has a concept of the "current unit" it's working on, much as it has
a concept of "current sentence".
=
compilation_module *current_CM = NULL;
compilation_unit *current_CM = NULL;
compilation_module *Modules::current(void) {
compilation_unit *CompilationUnits::current(void) {
return current_CM;
}
void Modules::set_current_to(compilation_module *CM) {
void CompilationUnits::set_current_to(compilation_unit *CM) {
current_CM = CM;
}
void Modules::set_current(parse_node *P) {
if (P) current_CM = Modules::find(P);
void CompilationUnits::set_current(parse_node *P) {
if (P) current_CM = CompilationUnits::find(P);
else current_CM = NULL;
}
@ -136,7 +129,7 @@ Creating the necessary package, of type |_module|, is the work of the
Packaging code.
=
module_package *Modules::inter_presence(compilation_module *C) {
if (C == NULL) internal_error("no module");
module_package *CompilationUnits::inter_presence(compilation_unit *C) {
if (C == NULL) internal_error("no unit");
return C->inter_presence;
}

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