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

Catching up with Inweb changes

This commit is contained in:
Graham Nelson 2020-05-09 13:07:39 +01:00
parent 00147622fe
commit 80af58f62e
395 changed files with 6731 additions and 6475 deletions

View file

@ -68,24 +68,24 @@ which use this module:
<p class="commentary firstcommentary"><a id="SP2"></a><b>&#167;2. </b>To begin with, this module needs to allocate memory:
</p>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">inter_architecture_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">target_vm_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">compatibility_specification_MT</span>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">inter_architecture_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">target_vm_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">compatibility_specification_CLASS</span>
</pre>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_architecture</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">target_vm</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">compatibility_specification</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_architecture</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">target_vm</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">compatibility_specification</span><span class="plain-syntax">)</span>
</pre>
<p class="commentary firstcommentary"><a id="SP3"></a><b>&#167;3. </b>Like all modules, this one must define a <span class="extract"><span class="extract-syntax">start</span></span> and <span class="extract"><span class="extract-syntax">end</span></span> function:
</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">ArchModule::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="named-paragraph-container code-font"><a href="1-am.html#SP3_1" class="named-paragraph-link"><span class="named-paragraph">Register this module's memory allocation reasons</span><span class="named-paragraph-number">3.1</span></a></span><span class="character-syntax">;</span>
<span class="character-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-am.html#SP3_2" class="named-paragraph-link"><span class="named-paragraph">Register this module's stream writers</span><span class="named-paragraph-number">3.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-am.html#SP3_3" class="named-paragraph-link"><span class="named-paragraph">Register this module's debugging log aspects</span><span class="named-paragraph-number">3.3</span></a></span><span class="character-syntax">;</span>
<span class="character-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-am.html#SP3_4" class="named-paragraph-link"><span class="named-paragraph">Register this module's debugging log writers</span><span class="named-paragraph-number">3.4</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-am.html#SP3_1" class="named-paragraph-link"><span class="named-paragraph">Register this module's memory allocation reasons</span><span class="named-paragraph-number">3.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-am.html#SP3_2" class="named-paragraph-link"><span class="named-paragraph">Register this module's stream writers</span><span class="named-paragraph-number">3.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-am.html#SP3_3" class="named-paragraph-link"><span class="named-paragraph">Register this module's debugging log aspects</span><span class="named-paragraph-number">3.3</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-am.html#SP3_4" class="named-paragraph-link"><span class="named-paragraph">Register this module's debugging log writers</span><span class="named-paragraph-number">3.4</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-arc.html#SP1" class="function-link"><span class="function-syntax">Architectures::create</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-tvm.html#SP1" class="function-link"><span class="function-syntax">TargetVMs::create</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax">}</span>

View file

@ -75,7 +75,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">shorthand</span><span class="plain-syntax">; </span><span class="comment-syntax"> such as </span><span class="extract"><span class="extract-syntax">32d</span></span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">sixteen_bit</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">debug_enabled</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">inter_architecture</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">inter_architecture</span><span class="plain-syntax"> *</span><span class="function-syntax">Architectures::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">code</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">s</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">d</span><span class="plain-syntax">) {</span>

View file

@ -65,7 +65,7 @@
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">parsed_from</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">default_allows</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">exceptions</span><span class="plain-syntax">; </span><span class="comment-syntax"> of </span><span class="extract"><span class="extract-syntax">target_vm</span></span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">compatibility_specification</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">compatibility_specification</span><span class="plain-syntax"> *</span><span class="function-syntax">Compatibility::all</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>

View file

@ -84,7 +84,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">default_browser_interpreter</span><span class="plain-syntax">; </span><span class="comment-syntax"> e.g., "Parchment"</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iFiction_format_name</span><span class="plain-syntax">; </span><span class="comment-syntax"> e.g., "zcode": see the Treaty of Babel</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">supports_floating_point</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">target_vm</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">target_vm</span><span class="plain-syntax"> *</span><span class="function-syntax">TargetVMs::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">code</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nick</span><span class="plain-syntax">, </span><span class="identifier-syntax">semantic_version_number</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">,</span>

View file

@ -67,38 +67,38 @@
<p class="commentary firstcommentary"><a id="SP2"></a><b>&#167;2. Setting up the memory manager. </b>We need to itemise the structures we'll want to allocate:
</p>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">inter_name_array_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_name_generator_array_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">package_request_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">hierarchy_location_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">hierarchy_attachment_point_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">hierarchy_metadatum_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">module_package_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">submodule_identity_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">submodule_request_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">compilation_module_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_schema_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_schema_node_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_schema_token_MT</span>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">inter_name_array_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_name_generator_array_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">package_request_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">hierarchy_location_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">hierarchy_attachment_point_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">hierarchy_metadatum_CLASS</span>
<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">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>
</pre>
<p class="commentary firstcommentary"><a id="SP3"></a><b>&#167;3. </b>With allocation functions:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">hierarchy_location</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">hierarchy_attachment_point</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">hierarchy_metadatum</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">package_request</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">module_package</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">submodule_identity</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">submodule_request</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">compilation_module</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_schema</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_schema_node</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_schema_token</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">hierarchy_location</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">hierarchy_attachment_point</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">hierarchy_metadatum</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">package_request</span><span class="plain-syntax">)</span>
<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">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>
<span class="identifier-syntax">ALLOCATE_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_name</span><span class="plain-syntax">, </span><span class="constant-syntax">1000</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_name_generator</span><span class="plain-syntax">, </span><span class="constant-syntax">1000</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS_ALLOCATED_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_name</span><span class="plain-syntax">, </span><span class="constant-syntax">1000</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS_ALLOCATED_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_name_generator</span><span class="plain-syntax">, </span><span class="constant-syntax">1000</span><span class="plain-syntax">)</span>
<span class="plain-syntax">#</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">CORE_MODULE</span>
<span class="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>
@ -111,12 +111,12 @@ foundation module does that automatically.)
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">BuildingModule::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="named-paragraph-container code-font"><a href="1-bm.html#SP4_1" class="named-paragraph-link"><span class="named-paragraph">Register this module's memory allocation reasons</span><span class="named-paragraph-number">4.1</span></a></span><span class="character-syntax">;</span>
<span class="character-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-bm.html#SP4_2" class="named-paragraph-link"><span class="named-paragraph">Register this module's stream writers</span><span class="named-paragraph-number">4.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-bm.html#SP4_4" class="named-paragraph-link"><span class="named-paragraph">Register this module's debugging log aspects</span><span class="named-paragraph-number">4.4</span></a></span><span class="character-syntax">;</span>
<span class="character-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-bm.html#SP4_5" class="named-paragraph-link"><span class="named-paragraph">Register this module's debugging log writers</span><span class="named-paragraph-number">4.5</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-bm.html#SP4_6" class="named-paragraph-link"><span class="named-paragraph">Register this module's command line switches</span><span class="named-paragraph-number">4.6</span></a></span><span class="character-syntax">;</span>
<span class="character-syntax">}</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-bm.html#SP4_1" class="named-paragraph-link"><span class="named-paragraph">Register this module's memory allocation reasons</span><span class="named-paragraph-number">4.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-bm.html#SP4_2" class="named-paragraph-link"><span class="named-paragraph">Register this module's stream writers</span><span class="named-paragraph-number">4.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-bm.html#SP4_4" class="named-paragraph-link"><span class="named-paragraph">Register this module's debugging log aspects</span><span class="named-paragraph-number">4.4</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-bm.html#SP4_5" class="named-paragraph-link"><span class="named-paragraph">Register this module's debugging log writers</span><span class="named-paragraph-number">4.5</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-bm.html#SP4_6" class="named-paragraph-link"><span class="named-paragraph">Register this module's command line switches</span><span class="named-paragraph-number">4.6</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP4_1"></a><b>&#167;4.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Register this module's memory allocation reasons</span><span class="named-paragraph-number">4.1</span></span><span class="comment-syntax"> =</span>
</p>

View file

@ -161,7 +161,7 @@ following fields set.
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">equates_to_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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">package_type</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">name_translation</span><span class="plain-syntax"> </span><span class="identifier-syntax">trans</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">hierarchy_location</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">hierarchy_location</span><span class="plain-syntax"> *</span><span class="function-syntax">HierarchyLocations::new</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
@ -381,7 +381,7 @@ following fields set.
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name_stem</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">type</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">location_requirement</span><span class="plain-syntax"> </span><span class="identifier-syntax">requirements</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">hierarchy_attachment_point</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">HierarchyLocations::index_ap</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">hierarchy_attachment_point</span><span class="plain-syntax"> *</span><span class="identifier-syntax">hap</span><span class="plain-syntax">) {</span>
@ -435,7 +435,7 @@ following fields set.
<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="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">key</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">location_requirement</span><span class="plain-syntax"> </span><span class="identifier-syntax">requirements</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">hierarchy_metadatum</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">HierarchyLocations::index_md</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">hierarchy_metadatum</span><span class="plain-syntax"> *</span><span class="identifier-syntax">hmd</span><span class="plain-syntax">) {</span>

View file

@ -85,7 +85,7 @@ called "incarnation".
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">parent_request</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_bookmark</span><span class="plain-syntax"> </span><span class="identifier-syntax">write_position</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname_generators</span><span class="plain-syntax">; </span><span class="comment-syntax"> of </span><span class="extract"><span class="extract-syntax">inter_name_generator</span></span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">package_request</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure package_request is accessed in 1/hl and here.</li></ul>
@ -358,7 +358,7 @@ specification.
<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="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">MEMORY_MANAGEMENT</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="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>
@ -380,7 +380,7 @@ following creates modules on demand.
<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">module_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="reserved-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">the_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">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">submodules</span><span class="plain-syntax">; </span><span class="comment-syntax"> of </span><span class="extract"><span class="extract-syntax">submodule_request</span></span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<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>
@ -408,7 +408,7 @@ as it turns out, this is presently just a wrapper for a name.
<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">submodule_identity</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">submodule_name</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">submodule_identity</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">submodule_identity</span><span class="plain-syntax"> *</span><span class="function-syntax">Packaging::register_submodule</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>
@ -457,7 +457,7 @@ module to have this submodule. It should call one of the following four function
<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">submodule_request</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">submodule_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">which_submodule</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">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">where_found</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">submodule_request</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">Packaging::new_submodule_inner</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">Packaging::new_submodule_inner</span></span>:<br/><a href="1-pck.html#SP17">&#167;17</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">module_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">M</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>

View file

@ -113,7 +113,7 @@ few hundred), so they do not need to be stored compactly or compiled quickly.
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">inter_schema_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">node_tree</span><span class="plain-syntax">; </span><span class="comment-syntax"> the structure</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">mid_case</span><span class="plain-syntax">; </span><span class="comment-syntax"> does this seem to be used inside a switch case?</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">dereference_mode</span><span class="plain-syntax">; </span><span class="comment-syntax"> emit from this in dereference-pointers mode</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">inter_schema</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure inter_schema is accessed in 2/eis and here.</li></ul>
@ -167,7 +167,7 @@ but the need to do this went away.)
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">blocked_by_conditional</span><span class="plain-syntax">; </span><span class="comment-syntax"> used in code generation</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">inter_schema_node</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure inter_schema_node is accessed in 2/eis and here.</li></ul>
@ -347,7 +347,7 @@ compilation process, and never survive into the final schema:
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">preinsert</span><span class="plain-syntax">; </span><span class="comment-syntax"> fleeting markers only</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">postinsert</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">inter_schema_token</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure inter_schema_token is accessed in 2/eis and here.</li></ul>
@ -1152,7 +1152,7 @@ optional, operand in <span class="extract"><span class="extract-syntax">operand2
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">CORE_MODULE</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">extremal_property_sign</span><span class="plain-syntax"> != </span><span class="identifier-syntax">MEASURE_T_EXACTLY</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Feeds::feed_stream</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"> (&lt;</span><span class="identifier-syntax">property</span><span class="plain-syntax">-</span><span class="identifier-syntax">name</span><span class="plain-syntax">&gt;(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) </span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">extremal_property</span><span class="plain-syntax"> = &lt;&lt;</span><span class="identifier-syntax">rp</span><span class="plain-syntax">&gt;&gt;;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;property-name&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) </span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">extremal_property</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;rp&gt;&gt;</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Str::copy</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">bracing</span><span class="plain-syntax">, </span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">operand</span><span class="plain-syntax">);</span>

View file

@ -68,50 +68,50 @@ which use this module:
<p class="commentary firstcommentary"><a id="SP2"></a><b>&#167;2. </b>To begin with, this module needs to allocate memory:
</p>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">inter_tree_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_tree_node_array_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_warehouse_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_warehouse_room_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_symbols_table_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_symbol_array_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_annotation_array_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_data_type_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_construct_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_annotation_form_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_error_location_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_error_message_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_error_stash_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_package_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_node_list_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_node_list_entry_MT</span>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">inter_tree_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_tree_node_array_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_warehouse_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_warehouse_room_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_symbols_table_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_symbol_array_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_annotation_array_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_data_type_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_construct_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_annotation_form_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_error_location_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_error_message_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_error_stash_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_package_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_node_list_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_node_list_entry_CLASS</span>
</pre>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_tree</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_warehouse</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_warehouse_room</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_data_type</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_annotation_form</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_error_stash</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_package</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_node_list</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_node_list_entry</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax">, </span><span class="constant-syntax">1024</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax">, </span><span class="constant-syntax">8192</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_annotation</span><span class="plain-syntax">, </span><span class="constant-syntax">8192</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_tree</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_warehouse</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_warehouse_room</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_data_type</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_annotation_form</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_error_stash</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_package</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_node_list</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_node_list_entry</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">inter_symbol</span><span class="plain-syntax">, </span><span class="constant-syntax">1024</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">inter_tree_node</span><span class="plain-syntax">, </span><span class="constant-syntax">8192</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">inter_annotation</span><span class="plain-syntax">, </span><span class="constant-syntax">8192</span><span class="plain-syntax">)</span>
</pre>
<p class="commentary firstcommentary"><a id="SP3"></a><b>&#167;3. </b>Like all modules, this one must define a <span class="extract"><span class="extract-syntax">start</span></span> and <span class="extract"><span class="extract-syntax">end</span></span> function:
</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">BytecodeModule::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="named-paragraph-container code-font"><a href="1-bm.html#SP3_2" class="named-paragraph-link"><span class="named-paragraph">Register this module's memory allocation reasons</span><span class="named-paragraph-number">3.2</span></a></span><span class="character-syntax">;</span>
<span class="character-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-bm.html#SP3_3" class="named-paragraph-link"><span class="named-paragraph">Register this module's stream writers</span><span class="named-paragraph-number">3.3</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-bm.html#SP3_5" class="named-paragraph-link"><span class="named-paragraph">Register this module's debugging log aspects</span><span class="named-paragraph-number">3.5</span></a></span><span class="character-syntax">;</span>
<span class="character-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-bm.html#SP3_6" class="named-paragraph-link"><span class="named-paragraph">Register this module's debugging log writers</span><span class="named-paragraph-number">3.6</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-bm.html#SP3_2" class="named-paragraph-link"><span class="named-paragraph">Register this module's memory allocation reasons</span><span class="named-paragraph-number">3.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-bm.html#SP3_3" class="named-paragraph-link"><span class="named-paragraph">Register this module's stream writers</span><span class="named-paragraph-number">3.3</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-bm.html#SP3_5" class="named-paragraph-link"><span class="named-paragraph">Register this module's debugging log aspects</span><span class="named-paragraph-number">3.5</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-bm.html#SP3_6" class="named-paragraph-link"><span class="named-paragraph">Register this module's debugging log writers</span><span class="named-paragraph-number">3.6</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="3-dfn.html#SP3" class="function-link"><span class="function-syntax">Inter::Defn::create_language</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="3-idt.html#SP4" class="function-link"><span class="function-syntax">Inter::Types::create_all</span></a><span class="plain-syntax">();</span>

View file

@ -75,7 +75,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="constant-syntax">inter_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">annotation_ID</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">textual_flag</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">annotation_keyword</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">inter_annotation_form</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">inter_annotation</span><span class="plain-syntax"> {</span>

View file

@ -143,7 +143,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Q</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Site::connectors_package</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Q</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="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ST</span><span class="plain-syntax"> = </span><a href="2-pck.html#SP3" class="function-link"><span class="function-syntax">Inter::Packages::scope</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Q</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">ST</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;ST-&gt;</span><span class="element-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">plug</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ST</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">symbol_array</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">];</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">plug</span><span class="plain-syntax">) &amp;&amp; (</span><a href="2-sym.html#SP2" class="function-link"><span class="function-syntax">Inter::Symbols::get_scope</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">plug</span><span class="plain-syntax">) == </span><span class="constant-syntax">PLUG_ISYMS</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">plug</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">equated_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="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">socket</span><span class="plain-syntax"> = </span><a href="2-cnn.html#SP1" class="function-link"><span class="function-syntax">Inter::Connectors::find_socket</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">plug</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">equated_name</span><span class="plain-syntax">);</span>

View file

@ -75,14 +75,14 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">inter_node_list_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">spare_storage</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">inter_node_list_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">first_in_inl</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">inter_node_list_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">last_in_inl</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">inter_node_list</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">inter_node_list_entry</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">listed_node</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">inter_node_list_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next_in_inl</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">inter_node_list_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prev_in_inl</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">inter_node_list_entry</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure inter_node_list is private to this section.</li><li>The structure inter_node_list_entry is private to this section.</li></ul>

View file

@ -74,7 +74,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">root_node</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">root_package</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">building_site</span><span class="plain-syntax"> </span><span class="identifier-syntax">site</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">inter_tree</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure inter_tree is accessed in 2/bkm, 2/st, 2/pck, 2/trn, 3/iibf and here.</li></ul>

View file

@ -78,7 +78,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">package_scope</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">package_flags</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">dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name_lookup</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">inter_package</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure inter_package is accessed in 2/it, 2/trn, 3/iibf, 4/tpc3, 4/tcc2 and here.</li></ul>

View file

@ -78,7 +78,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> **</span><span class="identifier-syntax">symbol_array</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">n_index</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="constant-syntax">inter_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">next_free_ID</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure inter_symbols_table is accessed in 2/in, 2/tw, 2/pck, 2/sym, 2/cnn, 2/trn, 3/iibf and here.</li></ul>
@ -115,13 +115,13 @@ function togglePopup(material_id) {
<p class="commentary firstcommentary"><a id="SP3"></a><b>&#167;3. </b></p>
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="identifier-syntax">LOOP_OVER_SYMBOLS_TABLE</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</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">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">T</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;T-&gt;</span><span class="element-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><span class="identifier-syntax">T</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">symbol_array</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">]; </span><span class="identifier-syntax">S</span><span class="plain-syntax">; </span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</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">Inter::SymbolsTables::write_declarations</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">Inter::SymbolsTables::write_declarations</span></span>:<br/>The Package Construct - <a href="4-tpc3.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ST</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">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ST</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="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">ST</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;ST-&gt;</span><span class="element-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ST</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">symbol_array</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">];</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">S</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-sym.html#SP4" class="function-link"><span class="function-syntax">Inter::Symbols::write_declaration</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">); </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\n"</span><span class="plain-syntax">);</span>
@ -136,7 +136,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">T</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">symbols_lookup</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">T</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next_free_ID</span><span class="plain-syntax"> - </span><span class="constant-syntax">SYMBOL_BASE_VAL</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">SYMBOLS_THRESHOLD</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="identifier-syntax">symbols_lookup</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Dictionaries::new</span><span class="plain-syntax">(</span><span class="constant-syntax">INITIAL_INTER_SYMBOLS_ID_RANGE</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">T</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;T-&gt;</span><span class="element-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">A</span><span class="plain-syntax"> = </span><span class="identifier-syntax">T</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">symbol_array</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">];</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">A</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Dictionaries::create</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">symbols_lookup</span><span class="plain-syntax">, </span><span class="identifier-syntax">A</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">symbol_name</span><span class="plain-syntax">);</span>
@ -146,7 +146,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">T</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">symbols_lookup</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">T</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;T-&gt;</span><span class="element-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">A</span><span class="plain-syntax"> = </span><span class="identifier-syntax">T</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">symbol_array</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">];</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">A</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">A</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">symbol_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">equating</span><span class="plain-syntax">) {</span>
@ -369,7 +369,7 @@ a global symbol in any non-global context.
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"Seek ID of $3 from $4, which is not its owner $4\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">owning_table</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">"attempted to equate to global"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">T</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;T-&gt;</span><span class="element-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">T</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">symbol_array</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">]) &amp;&amp; (</span><span class="identifier-syntax">T</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">symbol_array</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">]-&gt;</span><span class="element-syntax">equated_to</span><span class="plain-syntax"> == </span><span class="identifier-syntax">S</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> (</span><span class="constant-syntax">inter_t</span><span class="plain-syntax">) </span><span class="identifier-syntax">T</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">symbol_array</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">]-&gt;</span><span class="element-syntax">symbol_ID</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">N</span><span class="plain-syntax"> = </span><a href="2-st.html#SP5" class="function-link"><span class="function-syntax">Inter::SymbolsTables::render_identifier_unique</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">symbol_name</span><span class="plain-syntax">);</span>
@ -450,7 +450,7 @@ a global symbol in any non-global context.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">pack</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 package defined here"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax"> = </span><a href="2-pck.html#SP3" class="function-link"><span class="function-syntax">Inter::Packages::scope</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">T</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">"package with no symbols"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">T</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;T-&gt;</span><span class="element-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">symb</span><span class="plain-syntax"> = </span><span class="identifier-syntax">T</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">symbol_array</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">];</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">symb</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">symb</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">equated_name</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-sym.html#SP2" class="function-link"><span class="function-syntax">Inter::Symbols::get_scope</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">symb</span><span class="plain-syntax">) == </span><span class="constant-syntax">PLUG_ISYMS</span><span class="plain-syntax">) </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span>

View file

@ -94,7 +94,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">connectors</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax"> = </span><a href="2-pck.html#SP3" class="function-link"><span class="function-syntax">Inter::Packages::scope</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">connectors</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">T</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">"package with no symbols"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">T</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;T-&gt;</span><span class="element-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">symb</span><span class="plain-syntax"> = </span><span class="identifier-syntax">T</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">symbol_array</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">];</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">symb</span><span class="plain-syntax">) &amp;&amp; (</span><a href="2-sym.html#SP2" class="function-link"><span class="function-syntax">Inter::Symbols::get_scope</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">symb</span><span class="plain-syntax">) == </span><span class="constant-syntax">SOCKET_ISYMS</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">target</span><span class="plain-syntax"> = </span><span class="identifier-syntax">symb</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">equated_to</span><span class="plain-syntax">;</span>
@ -134,7 +134,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">connectors</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax"> = </span><a href="2-pck.html#SP3" class="function-link"><span class="function-syntax">Inter::Packages::scope</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">connectors</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">T</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">"package with no symbols"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">T</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;T-&gt;</span><span class="element-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">symb</span><span class="plain-syntax"> = </span><span class="identifier-syntax">T</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">symbol_array</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">];</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">symb</span><span class="plain-syntax">) &amp;&amp; (</span><a href="2-sym.html#SP2" class="function-link"><span class="function-syntax">Inter::Symbols::get_scope</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">symb</span><span class="plain-syntax">) == </span><span class="constant-syntax">SOCKET_ISYMS</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"$3\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">symb</span><span class="plain-syntax">);</span>
@ -244,7 +244,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-trn.html#SP3_2" class="named-paragraph-link"><span class="named-paragraph">Correct the reference to this package type</span><span class="named-paragraph-number">3.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax"> = </span><a href="2-pck.html#SP3" class="function-link"><span class="function-syntax">Inter::Packages::scope</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">T</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">"package with no symbols"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">T</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;T-&gt;</span><span class="element-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">symb</span><span class="plain-syntax"> = </span><span class="identifier-syntax">T</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">symbol_array</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">];</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">symb</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">symb</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">equated_to</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">target</span><span class="plain-syntax"> = </span><span class="identifier-syntax">symb</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">equated_to</span><span class="plain-syntax">;</span>
@ -294,7 +294,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">equivalent_primitive</span><span class="plain-syntax"> = </span><a href="2-st.html#SP4" class="function-link"><span class="function-syntax">Inter::SymbolsTables::symbol_from_name_creating</span></a><span class="plain-syntax">(</span><a href="2-it.html#SP2" class="function-link"><span class="function-syntax">Inter::Tree::global_scope</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ipct</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">destination_tree</span><span class="plain-syntax">), </span><span class="identifier-syntax">primitive</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">symbol_name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="2-in.html#SP4" class="function-link"><span class="function-syntax">Inter::Node::fill_1</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ipct</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">primitives_point</span><span class="plain-syntax">, </span><span class="constant-syntax">PRIMITIVE_IST</span><span class="plain-syntax">, </span><a href="2-st.html#SP9" class="function-link"><span class="function-syntax">Inter::SymbolsTables::id_from_symbol_inner</span></a><span class="plain-syntax">(</span><a href="2-it.html#SP2" class="function-link"><span class="function-syntax">Inter::Tree::global_scope</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ipct</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">destination_tree</span><span class="plain-syntax">), </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">equivalent_primitive</span><span class="plain-syntax">), </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">old_D</span><span class="plain-syntax"> = </span><span class="identifier-syntax">primitive</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">definition</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="constant-syntax">CAT_PRIM_IFLD</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">old_D</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="constant-syntax">CAT_PRIM_IFLD</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;old_D-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inter::Node::extend</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, (</span><span class="constant-syntax">inter_t</span><span class="plain-syntax">) </span><span class="constant-syntax">1</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"can't extend"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">] = </span><span class="identifier-syntax">old_D</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">];</span>
<span class="plain-syntax"> }</span>
@ -379,7 +379,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-pck.html#SP3" class="function-link"><span class="function-syntax">Inter::Packages::is_linklike</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax"> = </span><a href="2-pck.html#SP3" class="function-link"><span class="function-syntax">Inter::Packages::scope</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">T</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">"package with no symbols"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">T</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;T-&gt;</span><span class="element-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">symb</span><span class="plain-syntax"> = </span><span class="identifier-syntax">T</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">symbol_array</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">];</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">symb</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">symb</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">equated_to</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">target</span><span class="plain-syntax"> = </span><span class="identifier-syntax">symb</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">equated_to</span><span class="plain-syntax">;</span>

View file

@ -75,7 +75,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">size</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">capacity</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">inter_resource_holder</span><span class="plain-syntax"> *</span><span class="identifier-syntax">stored_resources</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">inter_warehouse</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure inter_warehouse is accessed in 2/in, 2/st, 2/cnn, 2/trn, 3/iibf and here.</li></ul>
@ -106,7 +106,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">capacity</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="constant-syntax">inter_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bytecode</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">inter_warehouse_room</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next_room</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">inter_warehouse_room</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure inter_resource_holder is accessed in 2/st, 2/pck, 2/trn, 3/iibf and here.</li><li>The structure inter_warehouse_room is accessed in 2/in, 2/st, 2/cnn, 2/trn, 3/iibf and here.</li></ul>
@ -204,7 +204,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_resource_holder</span><span class="plain-syntax"> *</span><span class="identifier-syntax">storage</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">inter_resource_holder</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">Memory::calloc</span><span class="plain-syntax">(</span><span class="identifier-syntax">new_size</span><span class="plain-syntax">, </span><span class="reserved-syntax">sizeof</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_resource_holder</span><span class="plain-syntax">), </span><span class="constant-syntax">INTER_LINKS_MREASON</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_resource_holder</span><span class="plain-syntax"> *</span><span class="identifier-syntax">old</span><span class="plain-syntax"> = </span><span class="identifier-syntax">warehouse</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">stored_resources</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">warehouse</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">capacity</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) </span><span class="identifier-syntax">storage</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">] = </span><span class="identifier-syntax">old</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">];</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;warehouse-&gt;</span><span class="element-syntax">capacity</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) </span><span class="identifier-syntax">storage</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">] = </span><span class="identifier-syntax">old</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">warehouse</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">capacity</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">Memory::I7_free</span><span class="plain-syntax">(</span><span class="identifier-syntax">old</span><span class="plain-syntax">, </span><span class="constant-syntax">INTER_LINKS_MREASON</span><span class="plain-syntax">, </span><span class="identifier-syntax">warehouse</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">capacity</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">warehouse</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">stored_resources</span><span class="plain-syntax"> = </span><span class="identifier-syntax">storage</span><span class="plain-syntax">;</span>
@ -238,7 +238,7 @@ function togglePopup(material_id) {
<span class="reserved-syntax">typedef</span><span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_stash</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> </span><span class="identifier-syntax">stashed_eloc</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_file_position</span><span class="plain-syntax"> </span><span class="identifier-syntax">stashed_tfp</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">inter_error_stash</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="function-syntax">Inter::Warehouse::retrieve_origin</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">Inter::Warehouse::retrieve_origin</span></span>:<br/>Inter Nodes - <a href="2-in.html#SP6">&#167;6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_warehouse</span><span class="plain-syntax"> *</span><span class="identifier-syntax">warehouse</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
@ -344,7 +344,7 @@ function togglePopup(material_id) {
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Inter::Warehouse::wipe</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">the_only_warehouse</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="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">the_only_warehouse</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;the_only_warehouse-&gt;</span><span class="element-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">the_only_warehouse</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">stored_resources</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="element-syntax">irsrc</span><span class="plain-syntax"> == </span><span class="constant-syntax">STRING_IRSRC</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">T</span><span class="plain-syntax"> = </span><span class="identifier-syntax">the_only_warehouse</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">stored_resources</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="element-syntax">stored_text_stream</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">T</span><span class="plain-syntax">) {</span>

View file

@ -87,8 +87,8 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">usage_permissions</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">singular_name</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">plural_name</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_CALLS</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">method_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">methods</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC_lookup</span><span class="plain-syntax">[</span><span class="constant-syntax">MAX_INTER_CONSTRUCTS</span><span class="plain-syntax">];</span>
@ -97,7 +97,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sing</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">plur</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">ENABLE_METHOD_CALLS</span><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">IC</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">methods</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Methods::new_set</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">IC</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct_ID</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ID</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">IC</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct_syntax</span><span class="plain-syntax"> = </span><span class="identifier-syntax">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">ID</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">MAX_INTER_CONSTRUCTS</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"too many constructs"</span><span class="plain-syntax">);</span>
@ -120,11 +120,11 @@ function togglePopup(material_id) {
<span class="definition-keyword">enum</span> <span class="constant-syntax">VERIFY_INTER_CHILDREN_MTID</span>
</pre>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">VMETHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">CONSTRUCT_READ_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *, </span><span class="reserved-syntax">inter_line_parse</span><span class="plain-syntax"> *, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *, </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">VMETHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">CONSTRUCT_TRANSPOSE_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">grid</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">max</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">VMETHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">CONSTRUCT_VERIFY_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">VMETHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">CONSTRUCT_WRITE_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">VMETHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">VERIFY_INTER_CHILDREN_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">VOID_METHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">CONSTRUCT_READ_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *, </span><span class="reserved-syntax">inter_line_parse</span><span class="plain-syntax"> *, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *, </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">VOID_METHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">CONSTRUCT_TRANSPOSE_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">grid</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">max</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">VOID_METHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">CONSTRUCT_VERIFY_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">VOID_METHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">CONSTRUCT_WRITE_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">VOID_METHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">VERIFY_INTER_CHILDREN_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">)</span>
</pre>
<p class="commentary firstcommentary"><a id="SP3"></a><b>&#167;3. </b></p>
@ -236,7 +236,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</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">inter_error_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-dfn.html#SP4" class="function-link"><span class="function-syntax">Inter::Defn::get_construct</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">IC</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">VMETHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTRUCT_VERIFY_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">owner</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">VOID_METHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTRUCT_VERIFY_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">owner</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">E</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">E</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
@ -244,7 +244,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</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">inter_error_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-dfn.html#SP4" class="function-link"><span class="function-syntax">Inter::Defn::get_construct</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">IC</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">VMETHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTRUCT_TRANSPOSE_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">grid</span><span class="plain-syntax">, </span><span class="identifier-syntax">max</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">VOID_METHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTRUCT_TRANSPOSE_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">grid</span><span class="plain-syntax">, </span><span class="identifier-syntax">max</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">E</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">E</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
@ -267,8 +267,8 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</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">inter_error_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-dfn.html#SP4" class="function-link"><span class="function-syntax">Inter::Defn::get_construct</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">IC</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="constant-syntax">inter_t</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;</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">data</span><span class="plain-syntax">[</span><span class="constant-syntax">LEVEL_IFLD</span><span class="plain-syntax">]; </span><span class="identifier-syntax">L</span><span class="plain-syntax">++) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\t"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">VMETHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTRUCT_WRITE_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="constant-syntax">inter_t</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="function-syntax">&lt;P-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">data</span><span class="plain-syntax">[</span><span class="constant-syntax">LEVEL_IFLD</span><span class="plain-syntax">]; </span><span class="identifier-syntax">L</span><span class="plain-syntax">++) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\t"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">VOID_METHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTRUCT_WRITE_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="constant-syntax">inter_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">ID</span><span class="plain-syntax"> = </span><a href="2-in.html#SP6" class="function-link"><span class="function-syntax">Inter::Node::get_comment</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">ID</span><span class="plain-syntax"> != </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="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">W</span><span class="plain-syntax">.</span><span class="element-syntax">data</span><span class="plain-syntax">[</span><span class="constant-syntax">ID_IFLD</span><span class="plain-syntax">] != </span><span class="constant-syntax">COMMENT_IST</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" "</span><span class="plain-syntax">);</span>
@ -334,7 +334,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">IC</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct_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">Regexp::match</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">.</span><span class="element-syntax">mr</span><span class="plain-syntax">, </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">.</span><span class="element-syntax">line</span><span class="plain-syntax">, </span><span class="identifier-syntax">IC</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct_syntax</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">VMETHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTRUCT_READ_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">, </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">VOID_METHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTRUCT_READ_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">, </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">E</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">E</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-ie.html#SP1" class="function-link"><span class="function-syntax">Inter::Errors::plain</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"bad inter line"</span><span class="plain-syntax">, </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">);</span>
@ -392,7 +392,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-in.html#SP6" class="function-link"><span class="function-syntax">Inter::Node::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">M</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">E</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">VMETHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">VERIFY_INTER_CHILDREN_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">VOID_METHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">VERIFY_INTER_CHILDREN_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E</span><span class="plain-syntax">) </span><a href="3-ie.html#SP2" class="function-link"><span class="function-syntax">Inter::Errors::backtrace</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">STDERR</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>

View file

@ -75,7 +75,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">long</span><span class="plain-syntax"> </span><span class="reserved-syntax">long</span><span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">min_value</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">long</span><span class="plain-syntax"> </span><span class="reserved-syntax">long</span><span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">max_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">enumerated</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">inter_data_type</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">inter_data_type</span><span class="plain-syntax"> *</span><span class="identifier-syntax">int32_idt</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>

View file

@ -76,7 +76,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">error_line</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">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">error_interb</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">size_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">error_offset</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> </span><span class="function-syntax">Inter::Errors::file_location</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">Inter::Errors::file_location</span></span>:<br/>Inter Nodes - <a href="2-in.html#SP6">&#167;6</a><br/>The Warehouse - <a href="2-tw.html#SP3">&#167;3</a><br/>Inter in Text Files - <a href="3-iitf.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">line</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_file_position</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tfp</span><span class="plain-syntax">) {</span>
@ -101,7 +101,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> </span><span class="identifier-syntax">error_at</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">error_body</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">error_quote</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">Inter::Errors::quoted</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">Inter::Errors::quoted</span></span>:<br/>Symbols Tables - <a href="2-st.html#SP10">&#167;10</a><br/>Inter in Text Files - <a href="3-iitf.html#SP1">&#167;1</a><br/>Inter Data Types - <a href="3-idt.html#SP3">&#167;3</a><br/>The Metadata Construct - <a href="4-tmc.html#SP2">&#167;2</a><br/>The Pragma Construct - <a href="4-tpc.html#SP2">&#167;2</a><br/>The Kind Construct - <a href="4-tkc.html#SP2">&#167;2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">&#167;2</a><br/>The Instance Construct - <a href="4-tic.html#SP2">&#167;2</a><br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">&#167;2</a><br/>The Permission Construct - <a href="4-tpc6.html#SP2">&#167;2</a><br/>The Primitive Construct - <a href="4-tpc7.html#SP2">&#167;2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">err</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">quote</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">) {</span>

View file

@ -393,7 +393,7 @@ that's the end of the list and therefore the block. (There is no resource 0.)
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax"> = </span><span class="identifier-syntax">res</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">stored_symbols_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">T</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">T</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;T-&gt;</span><span class="element-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">symb</span><span class="plain-syntax"> = </span><span class="identifier-syntax">T</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">symbol_array</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">];</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">symb</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BinaryFiles::write_int32</span><span class="plain-syntax">(</span><span class="identifier-syntax">fh</span><span class="plain-syntax">, </span><span class="identifier-syntax">symb</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">symbol_ID</span><span class="plain-syntax">);</span>
@ -540,7 +540,7 @@ enough that the slot exists for the eventual list to be stored in.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">res</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">stored_symbols_table</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from_T</span><span class="plain-syntax"> = </span><span class="identifier-syntax">res</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">stored_symbols_table</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BinaryFiles::write_int32</span><span class="plain-syntax">(</span><span class="identifier-syntax">fh</span><span class="plain-syntax">, (</span><span class="reserved-syntax">unsigned</span><span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax">) </span><span class="identifier-syntax">n</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">from_T</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;from_T-&gt;</span><span class="element-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">symb</span><span class="plain-syntax"> = </span><span class="identifier-syntax">from_T</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">symbol_array</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">];</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">symb</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">symb</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">equated_to</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BinaryFiles::write_int32</span><span class="plain-syntax">(</span><span class="identifier-syntax">fh</span><span class="plain-syntax">, </span><span class="identifier-syntax">symb</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">symbol_ID</span><span class="plain-syntax">);</span>
@ -612,7 +612,7 @@ enough that the slot exists for the eventual list to be stored in.
<span class="plain-syntax"> </span><span class="reserved-syntax">FILE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">fh</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">FILE</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">state</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BinaryFiles::write_int32</span><span class="plain-syntax">(</span><span class="identifier-syntax">fh</span><span class="plain-syntax">, (</span><span class="reserved-syntax">unsigned</span><span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax">) (</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</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">BinaryFiles::write_int32</span><span class="plain-syntax">(</span><span class="identifier-syntax">fh</span><span class="plain-syntax">, (</span><span class="reserved-syntax">unsigned</span><span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax">) (</span><a href="2-in.html#SP6" class="function-link"><span class="function-syntax">Inter::Node::get_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">index_n</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;P-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</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">BinaryFiles::write_int32</span><span class="plain-syntax">(</span><span class="identifier-syntax">fh</span><span class="plain-syntax">, (</span><span class="reserved-syntax">unsigned</span><span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax">) (</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">data</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">BinaryFiles::write_int32</span><span class="plain-syntax">(</span><span class="identifier-syntax">fh</span><span class="plain-syntax">, (</span><span class="reserved-syntax">unsigned</span><span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax">) (</span><a href="2-in.html#SP6" class="function-link"><span class="function-syntax">Inter::Node::get_comment</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">)));</span>
<span class="plain-syntax">}</span>

View file

@ -192,7 +192,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">F</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) { </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&lt;no frame&gt;"</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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%05d -&gt; "</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">index</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%d {"</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">F</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" %08x"</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">]);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;F-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" %08x"</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">data</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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" }"</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>

View file

@ -361,7 +361,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">CONSTANT_QUOTIENT_LIST:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">CONSTANT_INDIRECT_LIST:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">CONSTANT_STRUCT:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="constant-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">+2) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="constant-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;P-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">+2) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">+1] = </span><a href="3-idt.html#SP2" class="function-link"><span class="function-syntax">Inter::Types::transpose_value</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">], </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">+1], </span><span class="identifier-syntax">grid</span><span class="plain-syntax">, </span><span class="identifier-syntax">grid_extent</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
@ -382,7 +382,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">CONSTANT_DIFFERENCE_LIST:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">CONSTANT_QUOTIENT_LIST:</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">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax"> % </span><span class="constant-syntax">2</span><span class="plain-syntax">) != </span><span class="constant-syntax">1</span><span class="plain-syntax">) { *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="2-in.html#SP6" class="function-link"><span class="function-syntax">Inter::Node::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"extent wrong"</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="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="constant-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">+2) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="constant-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;P-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">+2) {</span>
<span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP1" class="function-link"><span class="function-syntax">Inter::Verify::value</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">con_kind</span><span class="plain-syntax">); </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (*</span><span class="identifier-syntax">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
@ -392,11 +392,11 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">idt</span><span class="plain-syntax">) &amp;&amp; ((</span><span class="identifier-syntax">idt</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">type_ID</span><span class="plain-syntax"> == </span><span class="constant-syntax">LIST_IDT</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">idt</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">type_ID</span><span class="plain-syntax"> == </span><span class="constant-syntax">COLUMN_IDT</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">conts_kind</span><span class="plain-syntax"> = </span><a href="4-tkc.html#SP2" class="function-link"><span class="function-syntax">Inter::Kind::operand_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_kind</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-tkc.html#SP2" class="function-link"><span class="function-syntax">Inter::Kind::is</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">conts_kind</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) { *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="2-in.html#SP6" class="function-link"><span class="function-syntax">Inter::Node::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"not a kind"</span><span class="plain-syntax">, (</span><span class="identifier-syntax">conts_kind</span><span class="plain-syntax">)?(</span><span class="identifier-syntax">conts_kind</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">symbol_name</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="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="constant-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">+2) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="constant-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;P-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">+2) {</span>
<span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP1" class="function-link"><span class="function-syntax">Inter::Verify::value</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">conts_kind</span><span class="plain-syntax">); </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (*</span><span class="identifier-syntax">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">idt</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">idt</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">type_ID</span><span class="plain-syntax"> == </span><span class="constant-syntax">TABLE_IDT</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="constant-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">+2) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="constant-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;P-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">+2) {</span>
<span class="plain-syntax"> </span><span class="constant-syntax">inter_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">V1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">];</span>
<span class="plain-syntax"> </span><span class="constant-syntax">inter_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">V2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">+1];</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP2" class="function-link"><span class="function-syntax">Inter::Types::value_to_constant_symbol_kind</span></a><span class="plain-syntax">(</span><a href="2-pck.html#SP3" class="function-link"><span class="function-syntax">Inter::Packages::scope</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner</span><span class="plain-syntax">), </span><span class="identifier-syntax">V1</span><span class="plain-syntax">, </span><span class="identifier-syntax">V2</span><span class="plain-syntax">);</span>
@ -414,7 +414,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">arity</span><span class="plain-syntax"> = </span><a href="4-tkc.html#SP2" class="function-link"><span class="function-syntax">Inter::Kind::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_kind</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">given</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax"> - </span><span class="constant-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">)/2;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">arity</span><span class="plain-syntax"> != </span><span class="identifier-syntax">given</span><span class="plain-syntax">) { *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="2-in.html#SP6" class="function-link"><span class="function-syntax">Inter::Node::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"extent not same size as struct definition"</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="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="constant-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">, </span><span class="identifier-syntax">counter</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">+2) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="constant-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">, </span><span class="identifier-syntax">counter</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;P-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">+2) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">conts_kind</span><span class="plain-syntax"> = </span><a href="4-tkc.html#SP2" class="function-link"><span class="function-syntax">Inter::Kind::operand_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_kind</span><span class="plain-syntax">, </span><span class="identifier-syntax">counter</span><span class="plain-syntax">++);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-tkc.html#SP2" class="function-link"><span class="function-syntax">Inter::Kind::is</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">conts_kind</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) { *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="2-in.html#SP6" class="function-link"><span class="function-syntax">Inter::Node::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"not a kind"</span><span class="plain-syntax">, (</span><span class="identifier-syntax">conts_kind</span><span class="plain-syntax">)?(</span><span class="identifier-syntax">conts_kind</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">symbol_name</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">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP1" class="function-link"><span class="function-syntax">Inter::Verify::value</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">conts_kind</span><span class="plain-syntax">); </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (*</span><span class="identifier-syntax">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
@ -462,7 +462,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">data</span><span class="plain-syntax">[</span><span class="constant-syntax">FORMAT_CONST_IFLD</span><span class="plain-syntax">] == </span><span class="constant-syntax">CONSTANT_QUOTIENT_LIST</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"quotient"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">conts_kind</span><span class="plain-syntax"> = </span><a href="4-tkc.html#SP2" class="function-link"><span class="function-syntax">Inter::Kind::operand_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_kind</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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"{"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="constant-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">+2) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="constant-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;P-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">+2) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">","</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-idt.html#SP3" class="function-link"><span class="function-syntax">Inter::Types::write</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">conts_kind</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">], </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">+1], </span><a href="2-pck.html#SP3" class="function-link"><span class="function-syntax">Inter::Packages::scope_of</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">), </span><span class="identifier-syntax">hex</span><span class="plain-syntax">);</span>
@ -472,7 +472,7 @@ function togglePopup(material_id) {
<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">CONSTANT_STRUCT:</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"{"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="constant-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">, </span><span class="identifier-syntax">counter</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">+2) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="constant-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">, </span><span class="identifier-syntax">counter</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;P-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">+2) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">","</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">conts_kind</span><span class="plain-syntax"> = </span><a href="4-tkc.html#SP2" class="function-link"><span class="function-syntax">Inter::Kind::operand_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_kind</span><span class="plain-syntax">, </span><span class="identifier-syntax">counter</span><span class="plain-syntax">++);</span>

View file

@ -153,7 +153,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">prim_name</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">Str::get_first_char</span><span class="plain-syntax">(</span><span class="identifier-syntax">prim_name</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">symbol_name</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">E</span><span class="plain-syntax"> = </span><a href="2-in.html#SP6" class="function-link"><span class="function-syntax">Inter::Node::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"primitive not beginning with '!'"</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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">voids</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">args</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="constant-syntax">CAT_PRIM_IFLD</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax">-1; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="constant-syntax">CAT_PRIM_IFLD</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;P-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax">-1; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="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">W</span><span class="plain-syntax">.</span><span class="element-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">] == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">voids</span><span class="plain-syntax">++;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">++;</span>
<span class="plain-syntax"> }</span>
@ -166,7 +166,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">prim_name</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"primitive %S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">prim_name</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">symbol_name</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">cats</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="constant-syntax">CAT_PRIM_IFLD</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax">-1; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="constant-syntax">CAT_PRIM_IFLD</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;P-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax">-1; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-tpc7.html#SP2" class="function-link"><span class="function-syntax">Inter::Primitive::write_category</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">data</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">cats</span><span class="plain-syntax">++;</span>

View file

@ -68,40 +68,40 @@ which use this module:
<p class="commentary firstcommentary"><a id="SP2"></a><b>&#167;2. </b>To begin with, this module needs to allocate memory:
</p>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">I6T_intervention_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">codegen_pipeline_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">pipeline_step_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">uniqueness_count_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">text_literal_holder_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">routine_body_request_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">pipeline_stage_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">code_generation_target_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">code_generation_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">generated_segment_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">link_instruction_MT</span>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">I6T_intervention_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">codegen_pipeline_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">pipeline_step_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">uniqueness_count_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">text_literal_holder_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">routine_body_request_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">pipeline_stage_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">code_generation_target_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">code_generation_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">generated_segment_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">link_instruction_CLASS</span>
</pre>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">I6T_intervention</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">codegen_pipeline</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">pipeline_step</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">uniqueness_count</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">text_literal_holder</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">routine_body_request</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">pipeline_stage</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">code_generation</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">generated_segment</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">link_instruction</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">I6T_intervention</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">codegen_pipeline</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">pipeline_step</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">uniqueness_count</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">text_literal_holder</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">routine_body_request</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">pipeline_stage</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">code_generation</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">generated_segment</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">link_instruction</span><span class="plain-syntax">)</span>
</pre>
<p class="commentary firstcommentary"><a id="SP3"></a><b>&#167;3. </b>Like all modules, this one must define a <span class="extract"><span class="extract-syntax">start</span></span> and <span class="extract"><span class="extract-syntax">end</span></span> function:
</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">CodegenModule::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="named-paragraph-container code-font"><a href="1-cm.html#SP3_2" class="named-paragraph-link"><span class="named-paragraph">Register this module's memory allocation reasons</span><span class="named-paragraph-number">3.2</span></a></span><span class="character-syntax">;</span>
<span class="character-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-cm.html#SP3_3" class="named-paragraph-link"><span class="named-paragraph">Register this module's stream writers</span><span class="named-paragraph-number">3.3</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-cm.html#SP3_5" class="named-paragraph-link"><span class="named-paragraph">Register this module's debugging log aspects</span><span class="named-paragraph-number">3.5</span></a></span><span class="character-syntax">;</span>
<span class="character-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-cm.html#SP3_6" class="named-paragraph-link"><span class="named-paragraph">Register this module's debugging log writers</span><span class="named-paragraph-number">3.6</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-cm.html#SP3_2" class="named-paragraph-link"><span class="named-paragraph">Register this module's memory allocation reasons</span><span class="named-paragraph-number">3.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-cm.html#SP3_3" class="named-paragraph-link"><span class="named-paragraph">Register this module's stream writers</span><span class="named-paragraph-number">3.3</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-cm.html#SP3_5" class="named-paragraph-link"><span class="named-paragraph">Register this module's debugging log aspects</span><span class="named-paragraph-number">3.5</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-cm.html#SP3_6" class="named-paragraph-link"><span class="named-paragraph">Register this module's debugging log writers</span><span class="named-paragraph-number">3.6</span></a></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">CodegenModule::end</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax">}</span>

View file

@ -74,7 +74,7 @@ function togglePopup(material_id) {
<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">link_instruction</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">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">location</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">attachment_point</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">link_instruction</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">link_instruction</span><span class="plain-syntax"> *</span><span class="function-syntax">CodeGen::LinkInstructions::new</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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">attach</span><span class="plain-syntax">) {</span>

View file

@ -89,7 +89,7 @@ have no meaningful contents when the step is not running.
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">requirements_list</span><span class="plain-syntax">; </span><span class="comment-syntax"> of </span><span class="extract"><span class="extract-syntax">inter_library</span></span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">repository</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">codegen_pipeline</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pipeline</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">pipeline_step</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">pipeline_step</span><span class="plain-syntax"> *</span><span class="function-syntax">CodeGen::Pipeline::new_step</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">CodeGen::Pipeline::new_step</span></span>:<br/><a href="1-ppl.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
@ -236,7 +236,7 @@ logging:
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">repositories</span><span class="plain-syntax">[10];</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">steps</span><span class="plain-syntax">; </span><span class="comment-syntax"> of </span><span class="extract"><span class="extract-syntax">pipeline_step</span></span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">erroneous</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">codegen_pipeline</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">dictionary</span><span class="plain-syntax"> *</span><span class="function-syntax">CodeGen::Pipeline::basic_dictionary</span><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">leafname</span><span class="plain-syntax">) {</span>

View file

@ -87,7 +87,7 @@ write output to; others are not.
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> (*</span><span class="identifier-syntax">execute</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">stage_arg</span><span class="plain-syntax">; </span><span class="comment-syntax"> one of the </span><span class="extract"><span class="extract-syntax">*_ARG</span></span><span class="comment-syntax"> values above</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">takes_repository</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">pipeline_stage</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">pipeline_stage</span><span class="plain-syntax"> *</span><span class="function-syntax">CodeGen::Stage::new</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">CodeGen::Stage::new</span></span>:<br/><a href="1-stg.html#SP2">&#167;2</a><br/>Architecture - <a href="1-arc.html#SP2">&#167;2</a><br/>Link Instructions - <a href="1-li.html#SP2">&#167;2</a><br/>Linker - <a href="2-mt.html#SP1">&#167;1</a><br/>Parse Linked Matter - <a href="2-plm.html#SP1">&#167;1</a><br/>Resolving Conditional Compilation - <a href="2-rcc.html#SP1">&#167;1</a><br/>Assimilate Linked Matter - <a href="2-ass.html#SP1">&#167;1</a><br/>Resolve External Symbols - <a href="2-res.html#SP1">&#167;1</a><br/>Inspect Plugs - <a href="2-ip.html#SP1">&#167;1</a><br/>Uniqueness - <a href="2-unq.html#SP1">&#167;1</a><br/>Reconcile Verbs - <a href="2-rv.html#SP1">&#167;1</a><br/>Eliminate Redundant Matter - <a href="2-erm.html#SP1">&#167;1</a><br/>Eliminate Redundant Labels - <a href="2-erl.html#SP1">&#167;1</a><br/>Code Generation - <a href="3-cg.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> (*</span><span class="identifier-syntax">X</span><span class="plain-syntax">)(</span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">pipeline_step</span><span class="plain-syntax"> *), </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">arg</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">tr</span><span class="plain-syntax">) {</span>

View file

@ -871,7 +871,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">block_package</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">pass2_offset</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">body</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">routine_body_request</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rb_splat_count</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>

View file

@ -177,7 +177,7 @@ be included.
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tab</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::scope</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">tab</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;tab-&gt;</span><span class="identifier-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">symb</span><span class="plain-syntax"> = </span><span class="identifier-syntax">tab</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">symbol_array</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">];</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">symb</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">symb</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">equated_to</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">to</span><span class="plain-syntax"> = </span><span class="identifier-syntax">symb</span><span class="plain-syntax">;</span>

View file

@ -88,7 +88,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Q</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Site::connectors_package</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">) == </span><span class="identifier-syntax">Q</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">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ST</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::scope</span><span class="plain-syntax">(</span><span class="identifier-syntax">Q</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">ST</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;ST-&gt;</span><span class="identifier-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ST</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">symbol_array</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">];</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">S</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">S</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">equated_to</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">Inter::Symbols::get_scope</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">equated_to</span><span class="plain-syntax">) == </span><span class="identifier-syntax">PLUG_ISYMS</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (!(</span><span class="identifier-syntax">Inter::Symbols::get_flag</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">equated_to</span><span class="plain-syntax">, </span><span class="identifier-syntax">ERROR_ISSUED_MARK_BIT</span><span class="plain-syntax">))) {</span>

View file

@ -103,7 +103,7 @@ function togglePopup(material_id) {
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CodeGen::RCC::visitor</span><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">v_state</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">rcc_state</span><span class="plain-syntax"> *</span><span class="identifier-syntax">state</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">rcc_state</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">v_state</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">allow</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">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">state</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">cc_sp</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">state</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">cc_stack</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="identifier-syntax">allow</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;state-&gt;</span><span class="element-syntax">cc_sp</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">state</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">cc_stack</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="identifier-syntax">allow</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">outer</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::container</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">outer</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">Inter::Packages::is_codelike</span><span class="plain-syntax">(</span><span class="identifier-syntax">outer</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">P</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">ID_IFLD</span><span class="plain-syntax">] == </span><span class="identifier-syntax">SPLAT_IST</span><span class="plain-syntax">) {</span>

View file

@ -88,7 +88,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Q</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Site::connectors_package</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">) == </span><span class="identifier-syntax">Q</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">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ST</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::scope</span><span class="plain-syntax">(</span><span class="identifier-syntax">Q</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">ST</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;ST-&gt;</span><span class="identifier-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ST</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">symbol_array</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">];</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">S</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">S</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">equated_to</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">D</span><span class="plain-syntax"> = </span><span class="identifier-syntax">S</span><span class="plain-syntax">;</span>

View file

@ -100,7 +100,7 @@ such a request.
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">CORE_MODULE</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">where_intervention_requested</span><span class="plain-syntax">; </span><span class="comment-syntax"> at what sentence?</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">I6T_intervention</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure I6T_intervention is private to this section.</li></ul>
@ -305,7 +305,7 @@ and therefore no interventions will have happened.)
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TemplateReader::interpret</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">TemplateReader::interpret</span></span>:<br/><a href="2-tr.html#SP3">&#167;3</a>, <a href="2-tr.html#SP10_2_5_3_1">&#167;10.2.5.3.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sf</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_name</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">N_escape</span><span class="plain-syntax">, </span><span class="reserved-syntax">I6T_kit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kit</span><span class="plain-syntax">, </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Input_Filename</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">segment_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"all"</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">area</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">area</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">kit</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">no_i6t_file_areas</span><span class="plain-syntax">; </span><span class="identifier-syntax">area</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">area</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">area</span><span class="function-syntax">&lt;kit-&gt;</span><span class="element-syntax">no_i6t_file_areas</span><span class="plain-syntax">; </span><span class="identifier-syntax">area</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::up</span><span class="plain-syntax">(</span><span class="identifier-syntax">kit</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">i6t_files</span><span class="plain-syntax">[</span><span class="identifier-syntax">area</span><span class="plain-syntax">]);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">web_md</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Wm</span><span class="plain-syntax"> = </span><span class="identifier-syntax">WebMetadata::get</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="identifier-syntax">V2_SYNTAX</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</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">chapter_md</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Cm</span><span class="plain-syntax">;</span>
@ -359,7 +359,7 @@ part of the I6T kit.
<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">Input_Filename</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Input_File</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::fopen</span><span class="plain-syntax">(</span><span class="identifier-syntax">Input_Filename</span><span class="plain-syntax">, </span><span class="string-syntax">"r"</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">area</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">area</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">kit</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">no_i6t_file_areas</span><span class="plain-syntax">; </span><span class="identifier-syntax">area</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">area</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">area</span><span class="function-syntax">&lt;kit-&gt;</span><span class="element-syntax">no_i6t_file_areas</span><span class="plain-syntax">; </span><span class="identifier-syntax">area</span><span class="plain-syntax">++)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Input_File</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Input_File</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::fopen</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Filenames::in</span><span class="plain-syntax">(</span><span class="identifier-syntax">kit</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">i6t_files</span><span class="plain-syntax">[</span><span class="identifier-syntax">area</span><span class="plain-syntax">], </span><span class="identifier-syntax">segment_name</span><span class="plain-syntax">), </span><span class="string-syntax">"r"</span><span class="plain-syntax">);</span>
@ -385,10 +385,10 @@ part of the I6T kit.
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-tr.html#SP10_2_4" class="named-paragraph-link"><span class="named-paragraph">Act on the heading, going in or out of comment mode as appropriate</span><span class="named-paragraph-number">10.2.4</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">comment</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="2-tr.html#SP10_2_5" class="named-paragraph-link"><span class="named-paragraph">Deal with material which isn't commentary</span><span class="named-paragraph-number">10.2.5</span></a></span><span class="character-syntax">;</span>
<span class="character-syntax"> } while (cr != EOF);</span>
<span class="character-syntax"> DISCARD_TEXT(command);</span>
<span class="character-syntax"> DISCARD_TEXT(argument);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">comment</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="2-tr.html#SP10_2_5" class="named-paragraph-link"><span class="named-paragraph">Deal with material which isn't commentary</span><span class="named-paragraph-number">10.2.5</span></a></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">cr</span><span class="plain-syntax"> != </span><span class="identifier-syntax">EOF</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">command</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">argument</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-tr.html#SP10">&#167;10</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP10_2_1"></a><b>&#167;10.2.1. </b>I6 template files are encoded as ISO Latin-1, not as Unicode UTF-8, so

View file

@ -83,7 +83,7 @@ function togglePopup(material_id) {
<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">uniqueness_count</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">count</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">uniqueness_count</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CodeGen::Uniqueness::visitor</span><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">state</span><span class="plain-syntax">) {</span>
@ -91,7 +91,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">ID_IFLD</span><span class="plain-syntax">] == </span><span class="identifier-syntax">PACKAGE_IST</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Q</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ST</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::scope</span><span class="plain-syntax">(</span><span class="identifier-syntax">Q</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">ST</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;ST-&gt;</span><span class="identifier-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ST</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">symbol_array</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">];</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">S</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">S</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">equated_to</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">Inter::Symbols::get_flag</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">MAKE_NAME_UNIQUE</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">N</span><span class="plain-syntax"> = </span><span class="identifier-syntax">S</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">symbol_name</span><span class="plain-syntax">;</span>

View file

@ -255,7 +255,7 @@ is 20. We instead compile this as
<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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"Array %S %s"</span><span class="plain-syntax">, </span><a href="3-cal.html#SP4" class="function-link"><span class="function-syntax">CodeGen::CL::name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_name</span><span class="plain-syntax">), </span><span class="identifier-syntax">format</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">extent</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">+2) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;P-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">extent</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">+2) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">do_not_bracket</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">] != </span><span class="identifier-syntax">DIVIDER_IVAL</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"("</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-cal.html#SP4" class="function-link"><span class="function-syntax">CodeGen::CL::literal</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">con_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">Inter::Packages::scope_of</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="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">], </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">+1], </span><span class="identifier-syntax">unsub</span><span class="plain-syntax">);</span>
@ -277,7 +277,7 @@ is 20. We instead compile this as
<span class="plain-syntax"> </span><span class="reserved-syntax">generated_segment</span><span class="plain-syntax"> *</span><span class="identifier-syntax">saved</span><span class="plain-syntax"> = </span><a href="3-cg.html#SP5" class="function-link"><span class="function-syntax">CodeGen::select</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><a href="4-ft.html#SP4" class="function-link"><span class="function-syntax">CodeGen::Targets::basic_constant_segment</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">depth</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">OUT</span><span class="plain-syntax"> = </span><a href="3-cg.html#SP7" class="function-link"><span class="function-syntax">CodeGen::current</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-ft.html#SP11" class="function-link"><span class="function-syntax">CodeGen::Targets::begin_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><a href="3-cal.html#SP4" class="function-link"><span class="function-syntax">CodeGen::CL::name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_name</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">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">extent</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">+2) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;P-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">extent</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">+2) {</span>
<span class="plain-syntax"> </span><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">DATA_CONST_IFLD</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">FORMAT_CONST_IFLD</span><span class="plain-syntax">] == </span><span class="identifier-syntax">CONSTANT_SUM_LIST</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" + "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">FORMAT_CONST_IFLD</span><span class="plain-syntax">] == </span><span class="identifier-syntax">CONSTANT_PRODUCT_LIST</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" * "</span><span class="plain-syntax">);</span>
@ -341,7 +341,7 @@ is 20. We instead compile this as
<span class="plain-syntax"> (</span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">FORMAT_CONST_IFLD</span><span class="plain-syntax">] == </span><span class="identifier-syntax">CONSTANT_DIFFERENCE_LIST</span><span class="plain-syntax">) ||</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">FORMAT_CONST_IFLD</span><span class="plain-syntax">] == </span><span class="identifier-syntax">CONSTANT_QUOTIENT_LIST</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">total</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">extent</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">+2) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;D-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">extent</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">+2) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">val1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">];</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">val2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax"> + </span><span class="constant-syntax">1</span><span class="plain-syntax">];</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">val1</span><span class="plain-syntax"> == </span><span class="identifier-syntax">ALIAS_IVAL</span><span class="plain-syntax">) {</span>
@ -359,7 +359,7 @@ is 20. We instead compile this as
<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">text_literal_holder</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">definition_code</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">literal_content</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">text_literal_holder</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">CodeGen::CL::literal_text_at</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">CodeGen::CL::literal_text_at</span></span>:<br/>Frame Control - <a href="3-fc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">) {</span>

View file

@ -129,7 +129,7 @@ only when assembling other material, and not for the final output.
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">generated_segment</span><span class="plain-syntax"> *</span><span class="identifier-syntax">segments</span><span class="plain-syntax">[</span><span class="constant-syntax">MAX_CG_SEGMENTS</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">generated_segment</span><span class="plain-syntax"> *</span><span class="identifier-syntax">current_segment</span><span class="plain-syntax">; </span><span class="comment-syntax"> an entry in that array, or null</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">temporarily_diverted</span><span class="plain-syntax">; </span><span class="comment-syntax"> to the temporary segment</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">code_generation</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="function-syntax">CodeGen::new_generation</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">CodeGen::new_generation</span></span>:<br/><a href="3-cg.html#SP1">&#167;1</a><br/>Frame Control - <a href="3-fc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">pipeline_step</span><span class="plain-syntax"> *</span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">,</span>
@ -154,7 +154,7 @@ But we abstract it in case it's ever useful for it to be more.
<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">generated_segment</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">generated_code</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">generated_segment</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">generated_segment</span><span class="plain-syntax"> *</span><span class="function-syntax">CodeGen::new_segment</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">CodeGen::new_segment</span></span>:<br/><a href="3-cg.html#SP6">&#167;6</a><br/>Generating Inform 6 - <a href="4-fi6.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
@ -294,7 +294,7 @@ we also have to direct it to a given text.
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CodeGen::clear_transients</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">CodeGen::clear_transients</span></span>:<br/><a href="3-cg.html#SP8_1">&#167;8.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">state</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::scope</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">T</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;T-&gt;</span><span class="identifier-syntax">size</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">T</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">symbol_array</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">])</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Symbols::clear_transient_flags</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">symbol_array</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">]);</span>
<span class="plain-syntax">}</span>

View file

@ -234,15 +234,15 @@ limited number can be stored this way. Here we choose which.
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-iap.html#SP4_2" class="named-paragraph-link"><span class="named-paragraph">An either/or property translated to an attribute declared in the I6 template must be chosen</span><span class="named-paragraph-number">4.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-iap.html#SP4_3" class="named-paragraph-link"><span class="named-paragraph">Otherwise give away attribute slots on a first-come-first-served basis</span><span class="named-paragraph-number">4.3</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">make_attribute</span><span class="plain-syntax"> == </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">) </span><span class="identifier-syntax">Inter::Symbols::set_flag</span><span class="plain-syntax">(</span><span class="identifier-syntax">prop_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">ATTRIBUTE_MARK_BIT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-iap.html#SP4_4" class="named-paragraph-link"><span class="named-paragraph">Check against the I7 compiler's beliefs</span><span class="named-paragraph-number">4.4</span></a></span><span class="character-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-iap.html#SP4_4" class="named-paragraph-link"><span class="named-paragraph">Check against the I7 compiler's beliefs</span><span class="named-paragraph-number">4.4</span></a></span><span class="plain-syntax">;</span>
<span class="character-syntax"> if (make_attribute) {</span>
<span class="character-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-iap.html#SP4_5" class="named-paragraph-link"><span class="named-paragraph">Declare as an I6 attribute</span><span class="named-paragraph-number">4.5</span></a></span><span class="character-syntax">;</span>
<span class="character-syntax"> } else {</span>
<span class="character-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-iap.html#SP4_6" class="named-paragraph-link"><span class="named-paragraph">Worry about the FBNA</span><span class="named-paragraph-number">4.6</span></a></span><span class="character-syntax">;</span>
<span class="character-syntax"> }</span>
<span class="character-syntax"> }</span>
<span class="character-syntax">}</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">make_attribute</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-iap.html#SP4_5" class="named-paragraph-link"><span class="named-paragraph">Declare as an I6 attribute</span><span class="named-paragraph-number">4.5</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-iap.html#SP4_6" class="named-paragraph-link"><span class="named-paragraph">Worry about the FBNA</span><span class="named-paragraph-number">4.6</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP4_1"></a><b>&#167;4.1. </b>The dodge of using an attribute to store an either-or property won't work
for properties of value instances, because then the value-property-holder
@ -1192,7 +1192,7 @@ really make much conceptual sense, and I7 dropped the idea &mdash; it has no
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::SymbolsTables::symbol_from_data_pair_and_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">X</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">DVAL1_PVAL_IFLD</span><span class="plain-syntax">], </span><span class="identifier-syntax">X</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">DVAL2_PVAL_IFLD</span><span class="plain-syntax">], </span><span class="identifier-syntax">X</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">S</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">Inter::Symbols::read_annotation</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">INLINE_ARRAY_IANN</span><span class="plain-syntax">) == </span><span class="constant-syntax">1</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Symbols::definition</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">extent</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">+2) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="function-syntax">&lt;P-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">extent</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">+2) {</span>
<span class="plain-syntax"> </span><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">DATA_CONST_IFLD</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-cal.html#SP4" class="function-link"><span class="function-syntax">CodeGen::CL::literal</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">Inter::Packages::scope_of</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="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">], </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">+1], </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>

View file

@ -74,14 +74,14 @@ function togglePopup(material_id) {
<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">code_generation_target</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">target_name</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_CALLS</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">method_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">methods</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">code_generation_target</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">code_generation_target</span><span class="plain-syntax"> *</span><span class="function-syntax">CodeGen::Targets::new</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">CodeGen::Targets::new</span></span>:<br/>Final Textual Inter - <a href="4-fti.html#SP1">&#167;1</a><br/>Final Binary Inter - <a href="4-fbi.html#SP1">&#167;1</a><br/>Final Inventory - <a href="4-fi.html#SP1">&#167;1</a><br/>Generating Inform 6 - <a href="4-fi6.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgt</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">cgt</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">target_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::duplicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">ENABLE_METHOD_CALLS</span><span class="plain-syntax">(</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">cgt</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">methods</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Methods::new_set</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">cgt</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
@ -107,10 +107,10 @@ function togglePopup(material_id) {
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">BEGIN_GENERATION_MTID</span>
</pre>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">IMETHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">BEGIN_GENERATION_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">INT_METHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">BEGIN_GENERATION_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">)</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">CodeGen::Targets::begin_generation</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">CodeGen::Targets::begin_generation</span></span>:<br/>Code Generation - <a href="3-cg.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">IMETHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">rv</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">target</span><span class="plain-syntax">, </span><span class="constant-syntax">BEGIN_GENERATION_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">INT_METHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">rv</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">target</span><span class="plain-syntax">, </span><span class="constant-syntax">BEGIN_GENERATION_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
@ -124,46 +124,46 @@ function togglePopup(material_id) {
<span class="definition-keyword">enum</span> <span class="constant-syntax">TL_SEGMENT_MTID</span>
</pre>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">IMETHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">GENERAL_SEGMENT_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">IMETHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">DEFAULT_SEGMENT_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">IMETHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">BASIC_CONSTANT_SEGMENT_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</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="identifier-syntax">IMETHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">CONSTANT_SEGMENT_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">IMETHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">PROPERTY_SEGMENT_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">IMETHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">TL_SEGMENT_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">INT_METHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">GENERAL_SEGMENT_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">INT_METHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">DEFAULT_SEGMENT_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">INT_METHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">BASIC_CONSTANT_SEGMENT_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</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="identifier-syntax">INT_METHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">CONSTANT_SEGMENT_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">INT_METHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">PROPERTY_SEGMENT_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">INT_METHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">TL_SEGMENT_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">)</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">CodeGen::Targets::general_segment</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">CodeGen::Targets::general_segment</span></span>:<br/>Frame Control - <a href="3-fc.html#SP1">&#167;1</a><br/>Constants and Literals - <a href="3-cal.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">IMETHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">rv</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">target</span><span class="plain-syntax">, </span><span class="constant-syntax">GENERAL_SEGMENT_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</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">INT_METHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">rv</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">target</span><span class="plain-syntax">, </span><span class="constant-syntax">GENERAL_SEGMENT_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">CodeGen::Targets::default_segment</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">CodeGen::Targets::default_segment</span></span>:<br/>Constants and Literals - <a href="3-cal.html#SP2">&#167;2</a><br/>Instances and Properties - <a href="3-iap.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">IMETHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">rv</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">target</span><span class="plain-syntax">, </span><span class="constant-syntax">DEFAULT_SEGMENT_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">INT_METHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">rv</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">target</span><span class="plain-syntax">, </span><span class="constant-syntax">DEFAULT_SEGMENT_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">CodeGen::Targets::constant_segment</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">CodeGen::Targets::constant_segment</span></span>:<br/>Constants and Literals - <a href="3-cal.html#SP2">&#167;2</a><br/>Instances and Properties - <a href="3-iap.html#SP4_6">&#167;4.6</a>, <a href="3-iap.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">IMETHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">rv</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">target</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTANT_SEGMENT_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">INT_METHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">rv</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">target</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTANT_SEGMENT_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">CodeGen::Targets::basic_constant_segment</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">CodeGen::Targets::basic_constant_segment</span></span>:<br/>Constants and Literals - <a href="3-cal.html#SP4">&#167;4</a><br/>Instances and Properties - <a href="3-iap.html#SP4_5">&#167;4.5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</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">rv</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">IMETHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">rv</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">target</span><span class="plain-syntax">, </span><span class="constant-syntax">BASIC_CONSTANT_SEGMENT_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">depth</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">INT_METHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">rv</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">target</span><span class="plain-syntax">, </span><span class="constant-syntax">BASIC_CONSTANT_SEGMENT_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">CodeGen::Targets::property_segment</span><span class="plain-syntax">(</span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">IMETHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">rv</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">target</span><span class="plain-syntax">, </span><span class="constant-syntax">PROPERTY_SEGMENT_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">INT_METHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">rv</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">target</span><span class="plain-syntax">, </span><span class="constant-syntax">PROPERTY_SEGMENT_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">CodeGen::Targets::tl_segment</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">CodeGen::Targets::tl_segment</span></span>:<br/>Constants and Literals - <a href="3-cal.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">IMETHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">rv</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">target</span><span class="plain-syntax">, </span><span class="constant-syntax">TL_SEGMENT_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">INT_METHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">rv</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">target</span><span class="plain-syntax">, </span><span class="constant-syntax">TL_SEGMENT_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
@ -172,10 +172,10 @@ function togglePopup(material_id) {
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">COMPILE_PRIMITIVE_MTID</span>
</pre>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">IMETHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">COMPILE_PRIMITIVE_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prim_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">INT_METHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">COMPILE_PRIMITIVE_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prim_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">)</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">CodeGen::Targets::compile_primitive</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">CodeGen::Targets::compile_primitive</span></span>:<br/>Frame Control - <a href="3-fc.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prim_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">IMETHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">rv</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">target</span><span class="plain-syntax">, </span><span class="constant-syntax">COMPILE_PRIMITIVE_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">prim_name</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">INT_METHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">rv</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">target</span><span class="plain-syntax">, </span><span class="constant-syntax">COMPILE_PRIMITIVE_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">prim_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
@ -184,9 +184,9 @@ function togglePopup(material_id) {
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">COMPILE_DICTIONARY_WORD_MTID</span>
</pre>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">VMETHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">COMPILE_DICTIONARY_WORD_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">pluralise</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">VOID_METHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">COMPILE_DICTIONARY_WORD_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">pluralise</span><span class="plain-syntax">)</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CodeGen::Targets::compile_dictionary_word</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">CodeGen::Targets::compile_dictionary_word</span></span>:<br/>Constants and Literals - <a href="3-cal.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">pluralise</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">VMETHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">target</span><span class="plain-syntax">, </span><span class="constant-syntax">COMPILE_DICTIONARY_WORD_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">pluralise</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">VOID_METHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">target</span><span class="plain-syntax">, </span><span class="constant-syntax">COMPILE_DICTIONARY_WORD_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">pluralise</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP7"></a><b>&#167;7. </b></p>
@ -194,9 +194,9 @@ function togglePopup(material_id) {
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">COMPILE_LITERAL_TEXT_MTID</span>
</pre>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">VMETHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">COMPILE_LITERAL_TEXT_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">print_mode</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">box_mode</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">VOID_METHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">COMPILE_LITERAL_TEXT_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">print_mode</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">box_mode</span><span class="plain-syntax">)</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CodeGen::Targets::compile_literal_text</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">CodeGen::Targets::compile_literal_text</span></span>:<br/>Constants and Literals - <a href="3-cal.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">print_mode</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">box_mode</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">VMETHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">target</span><span class="plain-syntax">, </span><span class="constant-syntax">COMPILE_LITERAL_TEXT_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">print_mode</span><span class="plain-syntax">, </span><span class="identifier-syntax">box_mode</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">VOID_METHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">target</span><span class="plain-syntax">, </span><span class="constant-syntax">COMPILE_LITERAL_TEXT_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">print_mode</span><span class="plain-syntax">, </span><span class="identifier-syntax">box_mode</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP8"></a><b>&#167;8. </b></p>
@ -204,9 +204,9 @@ function togglePopup(material_id) {
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">DECLARE_PROPERTY_MTID</span>
</pre>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">VMETHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">DECLARE_PROPERTY_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop_name</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">used</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">VOID_METHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">DECLARE_PROPERTY_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop_name</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">used</span><span class="plain-syntax">)</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CodeGen::Targets::declare_property</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">CodeGen::Targets::declare_property</span></span>:<br/>Instances and Properties - <a href="3-iap.html#SP5_1">&#167;5.1</a>, <a href="3-iap.html#SP5_12">&#167;5.12</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop_name</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">used</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">VMETHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">target</span><span class="plain-syntax">, </span><span class="constant-syntax">DECLARE_PROPERTY_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">prop_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">used</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">VOID_METHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">target</span><span class="plain-syntax">, </span><span class="constant-syntax">DECLARE_PROPERTY_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">prop_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">used</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP9"></a><b>&#167;9. </b></p>
@ -216,21 +216,21 @@ function togglePopup(material_id) {
<span class="definition-keyword">enum</span> <span class="constant-syntax">DECLARE_LOCAL_VARIABLE_MTID</span>
</pre>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">IMETHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">PREPARE_VARIABLE_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">var_name</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">IMETHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">DECLARE_VARIABLE_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">var_name</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">VMETHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">DECLARE_LOCAL_VARIABLE_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">var_name</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">INT_METHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">PREPARE_VARIABLE_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">var_name</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">INT_METHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">DECLARE_VARIABLE_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">var_name</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">VOID_METHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">DECLARE_LOCAL_VARIABLE_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">var_name</span><span class="plain-syntax">)</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">CodeGen::Targets::prepare_variable</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">CodeGen::Targets::prepare_variable</span></span>:<br/>Variables - <a href="3-vrb.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">var_name</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</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">IMETHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">rv</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">target</span><span class="plain-syntax">, </span><span class="constant-syntax">PREPARE_VARIABLE_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">var_name</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">INT_METHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">rv</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">target</span><span class="plain-syntax">, </span><span class="constant-syntax">PREPARE_VARIABLE_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">var_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">k</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">CodeGen::Targets::declare_variable</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">CodeGen::Targets::declare_variable</span></span>:<br/>Variables - <a href="3-vrb.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">var_name</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">IMETHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">rv</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">target</span><span class="plain-syntax">, </span><span class="constant-syntax">DECLARE_VARIABLE_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">var_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">k</span><span class="plain-syntax">, </span><span class="identifier-syntax">of</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">INT_METHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">rv</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">target</span><span class="plain-syntax">, </span><span class="constant-syntax">DECLARE_VARIABLE_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">var_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">k</span><span class="plain-syntax">, </span><span class="identifier-syntax">of</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CodeGen::Targets::declare_local_variable</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">CodeGen::Targets::declare_local_variable</span></span>:<br/>Frame Control - <a href="3-fc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">var_name</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">VMETHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">target</span><span class="plain-syntax">, </span><span class="constant-syntax">DECLARE_LOCAL_VARIABLE_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">var_name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">VOID_METHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">target</span><span class="plain-syntax">, </span><span class="constant-syntax">DECLARE_LOCAL_VARIABLE_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">var_name</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP10"></a><b>&#167;10. </b></p>
@ -238,9 +238,9 @@ function togglePopup(material_id) {
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">OFFER_PRAGMA_MTID</span>
</pre>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">VMETHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">OFFER_PRAGMA_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tag</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">content</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">VOID_METHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">OFFER_PRAGMA_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tag</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">content</span><span class="plain-syntax">)</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CodeGen::Targets::offer_pragma</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">CodeGen::Targets::offer_pragma</span></span>:<br/>Code Generation - <a href="3-cg.html#SP9">&#167;9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tag</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">content</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">VMETHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">target</span><span class="plain-syntax">, </span><span class="constant-syntax">OFFER_PRAGMA_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">tag</span><span class="plain-syntax">, </span><span class="identifier-syntax">content</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">VOID_METHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">target</span><span class="plain-syntax">, </span><span class="constant-syntax">OFFER_PRAGMA_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">tag</span><span class="plain-syntax">, </span><span class="identifier-syntax">content</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP11"></a><b>&#167;11. </b></p>
@ -249,13 +249,13 @@ function togglePopup(material_id) {
<span class="definition-keyword">enum</span> <span class="constant-syntax">END_CONSTANT_MTID</span>
</pre>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">VMETHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">BEGIN_CONSTANT_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">const_name</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">continues</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">VMETHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">END_CONSTANT_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">const_name</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">VOID_METHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">BEGIN_CONSTANT_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">const_name</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">continues</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">VOID_METHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">END_CONSTANT_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation_target</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">, </span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">const_name</span><span class="plain-syntax">)</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CodeGen::Targets::begin_constant</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">CodeGen::Targets::begin_constant</span></span>:<br/>Constants and Literals - <a href="3-cal.html#SP2">&#167;2</a>, <a href="3-cal.html#SP3">&#167;3</a>, <a href="3-cal.html#SP4">&#167;4</a><br/>Instances and Properties - <a href="3-iap.html#SP4_6">&#167;4.6</a>, <a href="3-iap.html#SP5">&#167;5</a>, <a href="3-iap.html#SP6">&#167;6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">const_name</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">continues</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">VMETHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">target</span><span class="plain-syntax">, </span><span class="constant-syntax">BEGIN_CONSTANT_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">const_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">continues</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">VOID_METHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">target</span><span class="plain-syntax">, </span><span class="constant-syntax">BEGIN_CONSTANT_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">const_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">continues</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">CodeGen::Targets::end_constant</span><button class="popup" onclick="togglePopup('usagePopup18')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup18">Usage of <span class="code-font"><span class="function-syntax">CodeGen::Targets::end_constant</span></span>:<br/>Constants and Literals - <a href="3-cal.html#SP2">&#167;2</a>, <a href="3-cal.html#SP3">&#167;3</a>, <a href="3-cal.html#SP4">&#167;4</a><br/>Instances and Properties - <a href="3-iap.html#SP4_6">&#167;4.6</a>, <a href="3-iap.html#SP5">&#167;5</a>, <a href="3-iap.html#SP6">&#167;6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">const_name</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">VMETHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">target</span><span class="plain-syntax">, </span><span class="constant-syntax">END_CONSTANT_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">const_name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">VOID_METHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">target</span><span class="plain-syntax">, </span><span class="constant-syntax">END_CONSTANT_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">const_name</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">

View file

@ -90,178 +90,178 @@ which use this module:
<p class="commentary firstcommentary"><a id="SP2"></a><b>&#167;2. </b>To begin with, this module needs to allocate memory:
</p>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">bibliographic_datum_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">phrase_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inference_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">property_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">property_permission_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">rulebook_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">booking_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">phrase_option_array_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">instance_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">table_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">table_column_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">literal_text_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">text_substitution_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">invocation_array_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">implication_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">activity_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">activity_list_array_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">use_option_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">i6_memory_setting_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">definition_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">binary_predicate_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">pcalc_prop_array_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">pcalc_func_array_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">pcalc_prop_deferral_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">literal_pattern_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">generalisation_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">i6_schema_array_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">list_together_routine_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">past_tense_condition_record_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">past_tense_action_record_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">named_rulebook_outcome_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">stacked_variable_array_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">stacked_variable_list_array_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">stacked_variable_owner_array_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">stacked_variable_owner_list_array_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">pointer_allocation_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ph_stack_frame_box_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">i6_inclusion_matter_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">literal_list_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">adjective_meaning_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">adjective_meaning_block_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">measurement_definition_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">literal_pattern_name_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">equation_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">equation_symbol_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">equation_node_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">placement_affecting_array_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">activity_crossref_array_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">invocation_options_array_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inv_token_problem_token_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">application_array_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">plugin_call_array_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">plugin_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">nonlocal_variable_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inference_subject_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">property_of_value_storage_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">to_phrase_request_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">constant_phrase_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">use_as_event_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">instance_usage_array_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">rule_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">rulebook_outcome_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">applicability_condition_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">llist_entry_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">response_message_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">table_contribution_array_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">contents_entry_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">local_variable_array_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">relation_guard_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">pcalc_term_array_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">special_meaning_holder_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">runtime_kind_structure_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">internal_test_case_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">test_scenario_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">counting_data_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">kind_interaction_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">dval_written_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">nascent_array_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">value_holster_array_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">adjective_iname_holder_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">label_namespace_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">compile_task_data_MT</span>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">bibliographic_datum_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">phrase_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inference_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">property_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">property_permission_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">rulebook_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">booking_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">phrase_option_array_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">instance_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">table_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">table_column_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">literal_text_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">text_substitution_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">invocation_array_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">implication_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">activity_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">activity_list_array_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">use_option_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">i6_memory_setting_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">definition_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">binary_predicate_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">pcalc_prop_array_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">pcalc_func_array_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">pcalc_prop_deferral_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">literal_pattern_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">generalisation_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">i6_schema_array_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">list_together_routine_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">past_tense_condition_record_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">past_tense_action_record_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">named_rulebook_outcome_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">stacked_variable_array_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">stacked_variable_list_array_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">stacked_variable_owner_array_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">stacked_variable_owner_list_array_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">pointer_allocation_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ph_stack_frame_box_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">i6_inclusion_matter_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">literal_list_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">adjective_meaning_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">adjective_meaning_block_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">measurement_definition_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">literal_pattern_name_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">equation_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">equation_symbol_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">equation_node_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">placement_affecting_array_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">activity_crossref_array_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">invocation_options_array_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inv_token_problem_token_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">application_array_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">plugin_call_array_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">plugin_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">nonlocal_variable_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inference_subject_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">property_of_value_storage_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">to_phrase_request_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">constant_phrase_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">use_as_event_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">instance_usage_array_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">rule_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">rulebook_outcome_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">applicability_condition_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">llist_entry_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">response_message_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">table_contribution_array_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">contents_entry_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">local_variable_array_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">relation_guard_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">pcalc_term_array_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">special_meaning_holder_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">runtime_kind_structure_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">internal_test_case_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">test_scenario_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">counting_data_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">kind_interaction_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">dval_written_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">nascent_array_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">value_holster_array_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">adjective_iname_holder_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">label_namespace_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">compile_task_data_CLASS</span>
</pre>
<p class="commentary firstcommentary"><a id="SP3"></a><b>&#167;3. </b>Deep breath, then: the following macros define several hundred functions.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">activity</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">adjective_meaning</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">adjective_meaning_block</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">applicability_condition</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">binary_predicate</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">booking</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">constant_phrase</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">contents_entry</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">counting_data</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">definition</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">dval_written</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">equation_node</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">equation_symbol</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">equation</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">generalisation</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">i6_inclusion_matter</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">i6_memory_setting</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">implication</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">inference</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">inference_subject</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">instance</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">internal_test_case</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">inv_token_problem_token</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind_interaction</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">list_together_routine</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">literal_list</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">literal_pattern_name</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">literal_pattern</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">literal_text</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">llist_entry</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">measurement_definition</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">named_rulebook_outcome</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">nascent_array</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">nonlocal_variable</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">past_tense_action_record</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">past_tense_condition_record</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">pcalc_prop_deferral</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">ph_stack_frame_box</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">phrase</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">plugin</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">pointer_allocation</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">property_of_value_storage</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">property_permission</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">property</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">relation_guard</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">response_message</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">rule</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">rulebook_outcome</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">rulebook</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">table_column</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">table</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">test_scenario</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">text_substitution</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">to_phrase_request</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">use_as_event</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">use_option</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">runtime_kind_structure</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">adjective_iname_holder</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">label_namespace</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">compile_task_data</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">activity</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">adjective_meaning</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">adjective_meaning_block</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">applicability_condition</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">binary_predicate</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">booking</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">constant_phrase</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">contents_entry</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">counting_data</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">definition</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">dval_written</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">equation_node</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">equation_symbol</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">equation</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">generalisation</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">i6_inclusion_matter</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">i6_memory_setting</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">implication</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inference</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inference_subject</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">instance</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">internal_test_case</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inv_token_problem_token</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind_interaction</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">list_together_routine</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">literal_list</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">literal_pattern_name</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">literal_pattern</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">literal_text</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">llist_entry</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">measurement_definition</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">named_rulebook_outcome</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">nascent_array</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">nonlocal_variable</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">past_tense_action_record</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">past_tense_condition_record</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">pcalc_prop_deferral</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">ph_stack_frame_box</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">phrase</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">plugin</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">pointer_allocation</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">property_of_value_storage</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">property_permission</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">property</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">relation_guard</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">response_message</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">rule</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">rulebook_outcome</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">rulebook</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">table_column</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">table</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">test_scenario</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">text_substitution</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">to_phrase_request</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">use_as_event</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">use_option</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">runtime_kind_structure</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">adjective_iname_holder</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">label_namespace</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">compile_task_data</span><span class="plain-syntax">)</span>
</pre>
<p class="commentary firstcommentary"><a id="SP4"></a><b>&#167;4. </b>So much for the managed structures: now for the unmanaged structures.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">ALLOCATE_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">activity_crossref</span><span class="plain-syntax">, </span><span class="constant-syntax">100</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">activity_list</span><span class="plain-syntax">, </span><span class="constant-syntax">1000</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">application</span><span class="plain-syntax">, </span><span class="constant-syntax">100</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">i6_schema</span><span class="plain-syntax">, </span><span class="constant-syntax">100</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">instance_usage</span><span class="plain-syntax">, </span><span class="constant-syntax">200</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">invocation_options</span><span class="plain-syntax">, </span><span class="constant-syntax">100</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">local_variable</span><span class="plain-syntax">, </span><span class="constant-syntax">100</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">pcalc_func</span><span class="plain-syntax">, </span><span class="constant-syntax">1000</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">pcalc_prop</span><span class="plain-syntax">, </span><span class="constant-syntax">1000</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">pcalc_term</span><span class="plain-syntax">, </span><span class="constant-syntax">1000</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">phrase_option</span><span class="plain-syntax">, </span><span class="constant-syntax">100</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">placement_affecting</span><span class="plain-syntax">, </span><span class="constant-syntax">100</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">plugin_call</span><span class="plain-syntax">, </span><span class="constant-syntax">100</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">stacked_variable_list</span><span class="plain-syntax">, </span><span class="constant-syntax">100</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">stacked_variable_owner_list</span><span class="plain-syntax">, </span><span class="constant-syntax">100</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">stacked_variable_owner</span><span class="plain-syntax">, </span><span class="constant-syntax">100</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">stacked_variable</span><span class="plain-syntax">, </span><span class="constant-syntax">100</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">table_contribution</span><span class="plain-syntax">, </span><span class="constant-syntax">100</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="identifier-syntax">value_holster</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">activity_crossref</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">activity_list</span><span class="plain-syntax">, </span><span class="constant-syntax">1000</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS_ALLOCATED_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">application</span><span class="plain-syntax">, </span><span class="constant-syntax">100</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS_ALLOCATED_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">i6_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">instance_usage</span><span class="plain-syntax">, </span><span class="constant-syntax">200</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">invocation_options</span><span class="plain-syntax">, </span><span class="constant-syntax">100</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS_ALLOCATED_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">local_variable</span><span class="plain-syntax">, </span><span class="constant-syntax">100</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS_ALLOCATED_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">pcalc_func</span><span class="plain-syntax">, </span><span class="constant-syntax">1000</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS_ALLOCATED_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">pcalc_prop</span><span class="plain-syntax">, </span><span class="constant-syntax">1000</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS_ALLOCATED_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">pcalc_term</span><span class="plain-syntax">, </span><span class="constant-syntax">1000</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS_ALLOCATED_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">phrase_option</span><span class="plain-syntax">, </span><span class="constant-syntax">100</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS_ALLOCATED_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">placement_affecting</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">plugin_call</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">stacked_variable_list</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">stacked_variable_owner_list</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">stacked_variable_owner</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">stacked_variable</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">table_contribution</span><span class="plain-syntax">, </span><span class="constant-syntax">100</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS_ALLOCATED_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="identifier-syntax">value_holster</span><span class="plain-syntax">, </span><span class="constant-syntax">100</span><span class="plain-syntax">)</span>
</pre>
<p class="commentary firstcommentary"><a id="SP5"></a><b>&#167;5. </b>Next we define some functions, by macro, which write to the debugging log
or other text streams.

View file

@ -88,7 +88,7 @@ about that compilation, and it's stored in the following.
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">stage_of_compilation</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">next_resource_number</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">compile_task_data</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure compile_task_data is private to this section.</li></ul>

View file

@ -112,7 +112,7 @@ for a number of different reasons, enumerated as follows:
<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">ppd_package</span><span class="plain-syntax">; </span><span class="comment-syntax"> where to put both of the following:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ppd_iname</span><span class="plain-syntax">; </span><span class="comment-syntax"> routine to implement this</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rtp_iname</span><span class="plain-syntax">; </span><span class="comment-syntax"> compile a string of the origin text for run-time problems?</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">pcalc_prop_deferral</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure pcalc_prop_deferral is accessed in 12/cad, 12/cdp and here.</li></ul>

View file

@ -96,7 +96,7 @@ and the following keeps track of which ones we need to make:
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">make_default</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rks_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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rks_dv_iname</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">runtime_kind_structure</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure runtime_kind_structure is private to this section.</li></ul>
@ -1067,7 +1067,7 @@ each such kind, and needed at run-time.
<span class="reserved-syntax">typedef</span><span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">kind_interaction</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">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">noted_kind</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">noted_iname</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">kind_interaction</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure kind_interaction is private to this section.</li></ul>

View file

@ -138,7 +138,7 @@ see what we've considered, and this is used to accumulate data for that.
<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">as_parsed</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">already_described</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">new_name</span><span class="plain-syntax">; </span><span class="comment-syntax"> found in context of a name not yet defined</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">inv_token_problem_token</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure inv_token_problem_token is private to this section.</li></ul>

View file

@ -160,7 +160,7 @@ be picked up at the next.
<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">region_threshold_text</span><span class="plain-syntax">; </span><span class="comment-syntax"> text of threshold value</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">property_schema_written</span><span class="plain-syntax">; </span><span class="comment-syntax"> I6 schema for testing written yet?</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">measurement_definition</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure measurement_definition is private to this section.</li></ul>

View file

@ -77,7 +77,7 @@ which table will store the property values at run-time, or else is left as
<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">property_of_value_storage</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">storage_table_iname</span><span class="plain-syntax">; </span><span class="comment-syntax"> for the relevant column array</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">property_of_value_storage</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">property_of_value_storage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">latest_povs</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="comment-syntax"> see below</span>

View file

@ -136,7 +136,7 @@ a value with the owner; it isn't that either/or properties are unloved.)
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">condition_of</span><span class="plain-syntax">; </span><span class="comment-syntax"> or is it a condition of an object?</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">condition_anonymously_named</span><span class="plain-syntax">; </span><span class="comment-syntax"> if so, is it named just "... condition"?</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">property</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure property is accessed in 2/sq, 2/si, 5/ins, 5/nv, 8/ef, 9/ma, 9/pk, 11/sm, 14/rv, 14/lv, 14/ds2, 15/ep, 15/vp, 15/cp, 15/spr, 16/in, 16/cmw, 17/rs, 19/tc, 19/tb, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/ph, 22/pu, 22/dptd, 22/po, 22/pav, 22/tp, 25/cii, 26/uo, 26/ts and here.</li></ul>

View file

@ -93,7 +93,7 @@ structure, but it only has relevance if the subject represents an object:
<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="identifier-syntax">instance_count_prop</span><span class="plain-syntax">; </span><span class="comment-syntax"> the (</span><span class="extract"><span class="extract-syntax">I6</span></span><span class="comment-syntax"> only) IK-Count property for this kind</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="identifier-syntax">instance_link_prop</span><span class="plain-syntax">; </span><span class="comment-syntax"> the (</span><span class="extract"><span class="extract-syntax">I6</span></span><span class="comment-syntax"> only) IK-Link property for this kind</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">has_instances</span><span class="plain-syntax">; </span><span class="comment-syntax"> are there any instances of this kind?</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">counting_data</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure counting_data is private to this section.</li></ul>

View file

@ -157,7 +157,7 @@ organised as linked lists; hence the <span class="extract"><span class="extract-
<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">inferred_property_value</span><span class="plain-syntax">; </span><span class="comment-syntax"> and its value, if any</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">inference</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next</span><span class="plain-syntax">; </span><span class="comment-syntax"> next in list of inferences on same subject</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">inference</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure inference is accessed in 3/pd, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/ns, 7/oaf, 7/rs, 9/tfa, 9/tbath, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/cp, 16/is, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>

View file

@ -150,7 +150,7 @@ ask what other subjects inherit from S.
<span class="plain-syntax"> </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">infs_name_in_log</span><span class="plain-syntax">; </span><span class="comment-syntax"> solely to make the debugging log more legible</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">alias_variable</span><span class="plain-syntax">; </span><span class="comment-syntax"> alias to this variable, like "yourself" to "player"</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">plugin_subj</span><span class="plain-syntax">[</span><span class="constant-syntax">MAX_PLUGINS</span><span class="plain-syntax">];</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">inference_subject</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure inference_subject is private to this section.</li></ul>

View file

@ -163,7 +163,7 @@ in any case.
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">general_pointer</span><span class="plain-syntax"> </span><span class="identifier-syntax">pp_storage_data</span><span class="plain-syntax">; </span><span class="comment-syntax"> how we'll compile this at run-time</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">plugin_pp</span><span class="plain-syntax">[</span><span class="constant-syntax">MAX_PLUGINS</span><span class="plain-syntax">]; </span><span class="comment-syntax"> storage for plugins to attach, if they want to</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">property_permission</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure property_permission is accessed in 15/pr and here.</li></ul>

View file

@ -87,7 +87,7 @@ that rule. This enables them to be manipulated or changed.
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">launcher_compiled</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">via_I6</span><span class="plain-syntax">; </span><span class="comment-syntax"> if responding to a rule defined by I6 code, not source text</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">via_I6_routine_compiled</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">response_message</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure response_message is private to this section.</li></ul>

View file

@ -133,7 +133,7 @@ number of nodes. For an account of the theory, see Sedgewick, "Algorithms"
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">small_block_array_needed</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lt_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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lt_sba_iname</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">literal_text</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure literal_text is private to this section.</li></ul>

View file

@ -96,7 +96,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_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="identifier-syntax">MEMORY_MANAGEMENT</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>
<ul class="endnotetexts"><li>The structure text_substitution is accessed in 17/rs and here.</li></ul>

View file

@ -100,7 +100,7 @@ braces and commas balance; and
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">list_compiled</span><span class="plain-syntax">; </span><span class="comment-syntax"> lists are compiled at several different points: has this one been done?</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">literal_list</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure literal_list is accessed in 27/em and here.</li></ul>
@ -111,7 +111,7 @@ braces and commas balance; and
<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">llist_entry</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">llist_entry_value</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">llist_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next_llist_entry</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">llist_entry</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure llist_entry is private to this section.</li></ul>

View file

@ -103,7 +103,7 @@ column ID numbers used at run-time.
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">no_columns</span><span class="plain-syntax">; </span><span class="comment-syntax"> must be at least 1</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">table_column_usage</span><span class="plain-syntax"> </span><span class="identifier-syntax">columns</span><span class="plain-syntax">[</span><span class="constant-syntax">MAX_COLUMNS_PER_TABLE</span><span class="plain-syntax">];</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">table</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure table is accessed in 2/si, 19/tc, 19/rsft, 19/tod and here.</li></ul>

View file

@ -95,7 +95,7 @@ predicate associated with each possible table column C.
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kind_stored_in_column</span><span class="plain-syntax">; </span><span class="comment-syntax"> what kind of value is stored in this column</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">table_from_which_kind_inferred</span><span class="plain-syntax">; </span><span class="comment-syntax"> usually the earliest use</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">listed_in_predicate</span><span class="plain-syntax">; </span><span class="comment-syntax"> see above</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">table_column</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure table_column is accessed in 2/sq, 2/si, 5/ins, 5/nv, 8/ef, 9/ma, 9/pk, 11/sm, 14/lv, 14/ds2, 15/pr, 15/ep, 15/vp, 15/spr, 16/in, 16/cmw, 17/rs, 19/tb, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/pu, 22/dptd, 22/po, 22/pav, 25/cii, 26/uo, 26/ts and here.</li></ul>

View file

@ -103,7 +103,7 @@ Also as with tables, each can have a number, a name or both.
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">equation_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">parsed_equation</span><span class="plain-syntax">; </span><span class="comment-syntax"> and the equation itself (when eventually parsed)</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">eqn_iname</span><span class="plain-syntax">; </span><span class="comment-syntax"> used at run-time to identify this</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">equation_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">symbol_list</span><span class="plain-syntax">; </span><span class="comment-syntax"> the symbols used</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">equation</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure equation is accessed in 2/si and here.</li></ul>
@ -128,7 +128,7 @@ instance has its own <span class="extract"><span class="extract-syntax">equation
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">equation_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next</span><span class="plain-syntax">; </span><span class="comment-syntax"> in the list belonging to the equation</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">local_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">local_map</span><span class="plain-syntax">; </span><span class="comment-syntax"> when being solved in a given stack frame</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">promote_local_to_real</span><span class="plain-syntax">; </span><span class="comment-syntax"> from integer, if necessary</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">equation_symbol</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure equation_symbol is accessed in 2/sq, 2/si, 3/pd, 5/lp, 5/ut, 5/un, 5/ins, 5/nv, 6/rlt, 6/nv, 7/ns, 7/oaf, 7/rs, 8/ef, 9/tfa, 9/tbath, 9/rpt, 9/tc, 9/ma, 9/pk, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/pr, 15/ep, 15/vp, 15/cp, 15/spr, 16/is, 16/in, 16/cmw, 17/rs, 19/tc, 19/tb, 19/rsft, 19/tod, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/ph, 22/pu, 22/dptd, 22/po, 22/pav, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>
@ -201,7 +201,7 @@ value <span class="extract"><span class="extract-syntax">pi</span></span>.
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">enode_promotion</span><span class="plain-syntax">; </span><span class="comment-syntax"> promote this from an integer to a real number?</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rational_n</span><span class="plain-syntax">; </span><span class="comment-syntax"> represents the rational number </span><span class="extract"><span class="extract-syntax">n/m</span></span><span class="comment-syntax">...</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rational_m</span><span class="plain-syntax">; </span><span class="comment-syntax"> ...unless </span><span class="extract"><span class="extract-syntax">m</span></span><span class="comment-syntax"> is zero</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">equation_node</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure equation_node is accessed in 13/ca and here.</li></ul>

View file

@ -84,7 +84,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">av_documentation_symbol</span><span class="plain-syntax">; </span><span class="comment-syntax"> cross-reference to HTML documentation, if any</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">activity_indexed</span><span class="plain-syntax">; </span><span class="comment-syntax"> has this been indexed yet?</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">activity_crossref</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cross_references</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">activity</span><span class="plain-syntax">;</span>
<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">activity_list</span><span class="plain-syntax"> {</span>

View file

@ -140,14 +140,14 @@ its outcomes.
<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">named_rulebook_outcome</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">noun</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">; </span><span class="comment-syntax"> Name in source text</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">nro_iname</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">named_rulebook_outcome</span><span class="plain-syntax">;</span>
<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">rulebook_outcome</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">rulebook_outcome</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next</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">named_rulebook_outcome</span><span class="plain-syntax"> *</span><span class="identifier-syntax">outcome_name</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">kind_of_outcome</span><span class="plain-syntax">; </span><span class="comment-syntax"> one of the three values above</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">rulebook_outcome</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure named_rulebook_outcome is accessed in 2/sq, 2/si, 5/ins, 5/nv, 8/ef, 9/ma, 9/pk, 11/sm, 14/rv, 14/lv, 14/ds2, 15/pr, 15/ep, 15/vp, 15/spr, 16/in, 16/cmw, 17/rs, 19/tc, 19/tb, 19/tod, 20/eq, 21/rl, 21/rl2, 21/rps, 21/sv, 21/ac, 22/pu, 22/dptd, 22/po, 22/pav, 25/cii, 26/uo, 26/ts and here.</li><li>The structure rulebook_outcome is accessed in 3/pd, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/ns, 7/oaf, 7/rs, 9/tfa, 9/tbath, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/rps, 21/sv, 21/ac, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>

View file

@ -101,7 +101,7 @@ whether it's to appear at the front, middle, or back of the rulebook:
<span class="plain-syntax"> </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next_rule_specificity_law</span><span class="plain-syntax">; </span><span class="comment-syntax"> description of reason</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next_rule_specificity_lawname</span><span class="plain-syntax">; </span><span class="comment-syntax"> name of Law used to sort</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">booking</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure booking is private to this section.</li></ul>

View file

@ -140,7 +140,7 @@ see below.
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kind_of_rule</span><span class="plain-syntax">; </span><span class="comment-syntax"> determined from its rulebook(s)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">rulebook</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kind_of_rule_set_from</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">lettered_responses_value</span><span class="plain-syntax">[26];</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">rule</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure rule is accessed in 2/sq, 2/si, 5/ins, 5/nv, 8/ef, 9/ma, 9/pk, 11/sm, 14/lv, 14/ds2, 15/pr, 15/ep, 15/vp, 15/spr, 16/in, 16/cmw, 17/rs, 19/tc, 19/tb, 19/tod, 20/eq, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/pu, 22/prcd, 22/dptd, 22/po, 22/pav, 25/cii, 26/uo, 26/ts and here.</li></ul>
@ -173,7 +173,7 @@ number of conditions attached to a given rule, so these are stored in a list.
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">rule</span><span class="plain-syntax"> *</span><span class="identifier-syntax">substituted_rule</span><span class="plain-syntax">; </span><span class="comment-syntax"> rule to use instead if not, or </span><span class="extract"><span class="extract-syntax">NULL</span></span><span class="comment-syntax"> to do nothing</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">where_imposed</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">applicability_condition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next_applicability_condition</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">applicability_condition</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure applicability_condition is private to this section.</li></ul>

View file

@ -143,7 +143,7 @@ language such as Haskell.
<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">rb_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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rb_iname</span><span class="plain-syntax">; </span><span class="comment-syntax"> run-time storage/routine holding contents</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">rulebook</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure rulebook is accessed in 21/rl, 21/rps, 25/cp and here.</li></ul>
@ -173,7 +173,7 @@ have affected it in this way:
<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">placement_affecting</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">placement_sentence</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">placement_affecting</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">placement_affecting</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure placement_affecting is accessed in 3/pd, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/ns, 7/oaf, 7/rs, 9/tfa, 9/tbath, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/fao, 21/rps, 21/sv, 21/ac, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>

View file

@ -78,13 +78,13 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">owner_id</span><span class="plain-syntax">; </span><span class="comment-syntax"> who owns this</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">offset_in_owning_frame</span><span class="plain-syntax">; </span><span class="comment-syntax"> word offset of storage (counts from 0)</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">match_wording_text</span><span class="plain-syntax">; </span><span class="comment-syntax"> matching text (relevant for action variables only)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">stacked_variable</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">stacked_variable_list</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">stacked_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">the_stv</span><span class="plain-syntax">; </span><span class="comment-syntax"> the STV</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">stacked_variable_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next</span><span class="plain-syntax">; </span><span class="comment-syntax"> in linked list</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">stacked_variable_list</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">stacked_variable_owner</span><span class="plain-syntax"> {</span>
@ -92,13 +92,13 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">recognition_id</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">stacked_variable_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">list_of_stvs</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">stvo_iname</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">stacked_variable_owner</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">stacked_variable_owner_list</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">stacked_variable_owner</span><span class="plain-syntax"> *</span><span class="identifier-syntax">stvo</span><span class="plain-syntax">; </span><span class="comment-syntax"> the STO</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">stacked_variable_owner_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next</span><span class="plain-syntax">; </span><span class="comment-syntax"> in linked list</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">stacked_variable_owner_list</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure stacked_variable is accessed in 2/sq, 2/si, 5/ins, 5/nv, 8/ef, 9/ma, 9/pk, 11/sm, 14/lv, 14/ds2, 15/pr, 15/ep, 15/vp, 15/spr, 16/in, 16/cmw, 17/rs, 19/tc, 19/tb, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/ac, 22/pu, 22/dptd, 22/po, 22/pav, 25/cii, 26/uo, 26/ts and here.</li><li>The structure stacked_variable_list is accessed in 3/pd, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/ns, 7/oaf, 7/rs, 9/tfa, 9/tbath, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/ac, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li><li>The structure stacked_variable_owner is private to this section.</li><li>The structure stacked_variable_owner_list is accessed in 3/pd, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/ns, 7/oaf, 7/rs, 9/tfa, 9/tbath, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/ac, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>

View file

@ -88,7 +88,7 @@ own right, a functional-programming sort of device. For example:
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cphr_kind</span><span class="plain-syntax">; </span><span class="comment-syntax"> ditto</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cphr_iname</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">associated_preamble_text</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">constant_phrase</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure constant_phrase is accessed in 2/sq, 2/si, 5/ins, 5/nv, 8/ef, 9/ma, 9/pk, 11/sm, 14/lv, 14/ds2, 15/pr, 15/ep, 15/vp, 15/spr, 16/in, 16/cmw, 17/rs, 19/tc, 19/tb, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/pu, 22/dptd, 22/po, 25/cii, 26/uo, 26/ts and here.</li></ul>

View file

@ -139,7 +139,7 @@ code below.
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next_in_logical_order</span><span class="plain-syntax">; </span><span class="comment-syntax"> for "to..." phrases only</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">sequence_count</span><span class="plain-syntax">; </span><span class="comment-syntax"> within the logical order list, from 0</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">phrase</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure phrase is accessed in 2/si, 10/cap, 14/rv, 14/ds2, 15/pr, 20/eq, 21/rl, 21/rb, 21/rl2, 21/ac, 22/cs, 22/pu, 22/prcd, 22/ptd, 22/dptd, 22/po, 22/pav, 22/tp, 22/tp2, 22/pi, 25/in, 25/pi, 25/ci, 25/cii, 25/cp and here.</li></ul>

View file

@ -81,7 +81,7 @@ we use the following chits to keep track of what's outstanding:
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">requested_exact_kind</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">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kind_variables_interpretation</span><span class="plain-syntax">[27];</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">req_iname</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">to_phrase_request</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure to_phrase_request is accessed in 25/cp, 26/ts and here.</li></ul>

View file

@ -87,7 +87,7 @@ defined as "At 9:00 AM: ..." But two values are special:
<span class="reserved-syntax">typedef</span><span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">use_as_event</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">where_triggered</span><span class="plain-syntax">; </span><span class="comment-syntax"> sentence which specifies when this occurs</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">use_as_event</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">use_as_event</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure use_as_event is accessed in 3/pd, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/ns, 7/oaf, 7/rs, 9/tfa, 9/tbath, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/ph, 22/tp, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>

View file

@ -101,7 +101,7 @@ structure to hold details of their specific meanings:
<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">condition_to_match</span><span class="plain-syntax">; </span><span class="comment-syntax"> text of condition to match, if </span><span class="extract"><span class="extract-syntax">+1</span></span><span class="comment-syntax"> or </span><span class="extract"><span class="extract-syntax">-1</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">domain_calling</span><span class="plain-syntax">; </span><span class="comment-syntax"> what if anything the term is called</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">adjective_meaning</span><span class="plain-syntax"> *</span><span class="identifier-syntax">am_of_def</span><span class="plain-syntax">; </span><span class="comment-syntax"> which adjective meaning</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">definition</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure definition is accessed in 23/abrp, 23/abrc, 23/abp, 23/abc and here.</li></ul>

View file

@ -82,7 +82,7 @@ storage: the following simple structures are used for this.
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">action_pattern</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ap_to_test</span><span class="plain-syntax">; </span><span class="comment-syntax"> condition to be evaluated</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">where_ptc_tested</span><span class="plain-syntax">; </span><span class="comment-syntax"> sentence in which condition is found</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">past_tense_condition_record</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">past_tense_action_record</span><span class="plain-syntax"> {</span>
@ -91,7 +91,7 @@ storage: the following simple structures are used for this.
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">where_pta_tested</span><span class="plain-syntax">; </span><span class="comment-syntax"> sentence in which AP is found</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">pta_iname</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">past_tense_action_record</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure past_tense_condition_record is private to this section.</li><li>The structure past_tense_action_record is private to this section.</li></ul>

View file

@ -141,7 +141,7 @@ marks it as deallocated.
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">parsed_recently</span><span class="plain-syntax">; </span><span class="comment-syntax"> name recognised since this was last wiped?</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">local_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next</span><span class="plain-syntax">; </span><span class="comment-syntax"> on the same slate</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">local_variable</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure local_variable is accessed in 3/pd, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/ns, 7/oaf, 7/rs, 9/tfa, 9/tbath, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/ph, 22/tp, 22/tp2, 23/ad, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>

View file

@ -100,7 +100,7 @@ can have a permanently valid pointer to a unique new PHSF.
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">typedef</span><span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">ph_stack_frame_box</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">ph_stack_frame</span><span class="plain-syntax"> </span><span class="identifier-syntax">boxed_phsf</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">ph_stack_frame_box</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure ph_stack_frame_box is private to this section.</li></ul>
@ -117,7 +117,7 @@ for which memory allocation and deallocation will be needed:
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">offset_index</span><span class="plain-syntax">; </span><span class="comment-syntax"> start of small block wrt current stack frame</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">offset_past</span><span class="plain-syntax">; </span><span class="comment-syntax"> just past the end of the small block</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">pointer_allocation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next_in_frame</span><span class="plain-syntax">; </span><span class="comment-syntax"> within the linked list</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">pointer_allocation</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure pointer_allocation is accessed in 26/rt and here.</li></ul>

View file

@ -84,7 +84,7 @@ declarations in the I6 output, but always outside of a routine.
<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">i6_inclusion_matter</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">material_to_include</span><span class="plain-syntax">; </span><span class="comment-syntax"> normally an I6 escape </span><span class="extract"><span class="extract-syntax">(- ... -)</span></span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">infs_to_include_with</span><span class="plain-syntax">; </span><span class="comment-syntax"> typically an object or class definition</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">i6_inclusion_matter</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure i6_inclusion_matter is private to this section.</li></ul>

View file

@ -278,7 +278,7 @@ definitions: thus
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> Constant FROG_CLASS = (+ pond-dwelling amphibian +);</span>
<span class="plain-syntax"> Constant FROG_CL = (+ pond-dwelling amphibian +);</span>
</pre>
<p class="commentary">will expand "pond-dwelling amphibian" into the I6 translation of the kind
of object with this name. Because of this syntax, one has to watch out for

View file

@ -93,7 +93,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">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="identifier-syntax">MEMORY_MANAGEMENT</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>
<ul class="endnotetexts"><li>The structure label_namespace is private to this section.</li></ul>

View file

@ -90,7 +90,7 @@ routine. The code here manages that.
<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">ltr_array_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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ltr_routine_iname</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">articles_bit</span><span class="plain-syntax">; </span><span class="comment-syntax"> if false, add </span><span class="extract"><span class="extract-syntax">NOARTICLE_BIT</span></span><span class="comment-syntax"> to the I6 listing style</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">list_together_routine</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure list_together_routine is private to this section.</li></ul>

View file

@ -84,7 +84,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">starter_routine</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">now_plugged_in</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">stores_data</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">plugin</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure plugin is private to this section.</li></ul>

View file

@ -90,7 +90,7 @@ attached.
<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">sentence_test_declared_at</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text_iname</span><span class="plain-syntax">; </span><span class="comment-syntax"> name at runtime for the text of the commands</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">req_iname</span><span class="plain-syntax">; </span><span class="comment-syntax"> ditto for the array of requirements</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">test_scenario</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure test_scenario is accessed in 2/sq, 2/si, 5/ins, 5/nv, 8/ef, 9/ma, 9/pk, 11/sm, 14/lv, 14/ds2, 15/pr, 15/ep, 15/vp, 15/spr, 16/in, 16/cmw, 17/rs, 19/tc, 19/tb, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/pu, 22/dptd, 22/po, 22/pav, 22/tp, 25/cii, 25/cp, 26/uo and here.</li></ul>
@ -101,7 +101,7 @@ attached.
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">itc_code</span><span class="plain-syntax">; </span><span class="comment-syntax"> one of the above </span><span class="extract"><span class="extract-syntax">*_INTT</span></span><span class="comment-syntax"> values</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">text_supplying_the_case</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">itc_defined_at</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">internal_test_case</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure internal_test_case is private to this section.</li></ul>

View file

@ -103,7 +103,7 @@ set a use option applying only to itself.
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">option_used</span><span class="plain-syntax">; </span><span class="comment-syntax"> set if this option has been taken</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">source_file_scoped</span><span class="plain-syntax">; </span><span class="comment-syntax"> scope is the current source file only?</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">minimum_setting_value</span><span class="plain-syntax">; </span><span class="comment-syntax"> for those which are numeric</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">use_option</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure use_option is accessed in 2/sq, 2/si, 5/ins, 5/nv, 8/ef, 9/ma, 9/pk, 11/sm, 14/lv, 14/ds2, 15/pr, 15/ep, 15/vp, 15/spr, 16/in, 16/cmw, 17/rs, 19/tc, 19/tb, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/pu, 22/dptd, 22/po, 22/pav, 25/cii, 26/ts and here.</li></ul>
@ -134,7 +134,7 @@ by hand with a sentence in the source text.
<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">i6_memory_setting</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ICL_identifier</span><span class="plain-syntax">; </span><span class="comment-syntax"> see the DM4 for the I6 memory setting names</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">number</span><span class="plain-syntax">; </span><span class="comment-syntax"> e.g., </span><span class="extract"><span class="extract-syntax">50000</span></span><span class="comment-syntax"> means "at least 50,000"</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">i6_memory_setting</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure i6_memory_setting is private to this section.</li></ul>

View file

@ -271,7 +271,7 @@ insert them into the Inter stream close to the top.
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K_written</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">v1</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">v2</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">dval_written</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::ensure_defaultvalue</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Emit::ensure_defaultvalue</span></span>:<br/>Properties - <a href="15-pr.html#SP27">&#167;27</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
@ -423,7 +423,7 @@ insert them into the Inter stream close to the top.
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">entry_data2</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">nascent_array</span><span class="plain-syntax"> *</span><span class="identifier-syntax">up</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">nascent_array</span><span class="plain-syntax"> *</span><span class="identifier-syntax">down</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">nascent_array</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">nascent_array</span><span class="plain-syntax"> *</span><span class="identifier-syntax">first_A</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, *</span><span class="identifier-syntax">current_A</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>

View file

@ -92,7 +92,7 @@ MathJax = {
<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">adjective_meaning_block</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">adjective_meaning</span><span class="plain-syntax"> *</span><span class="identifier-syntax">possible_meanings</span><span class="plain-syntax">; </span><span class="comment-syntax"> list of definitions in order given</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">adjective_meaning</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sorted_meanings</span><span class="plain-syntax">; </span><span class="comment-syntax"> the same list sorted into logical order</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">adjective_meaning_block</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure adjective_meaning_block is private to this section.</li></ul>
@ -151,7 +151,7 @@ rather than <span class="extract"><span class="extract-syntax">TRUE</span></span
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">defined_already</span><span class="plain-syntax">; </span><span class="comment-syntax"> temporary workspace used when compiling support routines</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">adjective_meaning</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure adjective_meaning is private to this section.</li></ul>
@ -231,7 +231,7 @@ adjectival phrase in sorted order, so:
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">task_code</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">weak_ID_of_domain</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname_held</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">adjective_iname_holder</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Adjectives::Meanings::iname</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Adjectives::Meanings::iname</span></span>:<br/><a href="4-am.html#SP28_1">&#167;28.1</a>, <a href="4-am.html#SP29">&#167;29</a>, <a href="4-am.html#SP33_2">&#167;33.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">adjectival_phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">aph</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">task</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">weak_id</span><span class="plain-syntax">) {</span>

View file

@ -114,7 +114,7 @@ evidence turns up to suggest otherwise).
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">index_appearances</span><span class="plain-syntax">; </span><span class="comment-syntax"> how many times have I appeared thus far in the World index?</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">instance_usage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">first_noted_usage</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">instance_usage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">last_noted_usage</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">instance</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure instance is private to this section.</li></ul>

View file

@ -168,7 +168,7 @@ element token.
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">marked_for_printing</span><span class="plain-syntax">; </span><span class="comment-syntax"> used in compiling printing routines</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">jump_label</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">literal_pattern</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure literal_pattern is private to this section.</li></ul>
@ -268,7 +268,7 @@ mass might also support "in kilograms" and "in grams", for instance.
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">literal_pattern_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next</span><span class="plain-syntax">; </span><span class="comment-syntax"> other names for the same kind</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">literal_pattern_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next_with_rp</span><span class="plain-syntax">; </span><span class="comment-syntax"> used in parsing only: list applied to one notation</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">lpn_compiled_already</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">literal_pattern_name</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure literal_pattern_name is accessed in 3/pd, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/ns, 7/oaf, 7/rs, 9/tfa, 9/tbath, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>

View file

@ -114,7 +114,7 @@ exist; we can simply record inferences about its value.
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">substitution_marker</span><span class="plain-syntax">; </span><span class="comment-syntax"> to prevent infinite regress when substituting</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">nonlocal_variable</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure nonlocal_variable_emission is private to this section.</li><li>The structure nonlocal_variable is accessed in 2/sq, 2/si, 5/ins, 8/ef, 9/ma, 9/pk, 11/sm, 14/lv, 14/ds2, 15/pr, 15/ep, 15/vp, 15/spr, 16/in, 16/cmw, 17/rs, 19/tc, 19/tb, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/pu, 22/dptd, 22/po, 22/pav, 25/cii, 26/uo, 26/ts and here.</li></ul>

View file

@ -364,7 +364,7 @@ and "inside" the wrong way round.
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">comparison_sign</span><span class="plain-syntax">; </span><span class="comment-syntax"> ...and </span><span class="extract"><span class="extract-syntax">+1</span></span><span class="comment-syntax"> or </span><span class="extract"><span class="extract-syntax">-1</span></span><span class="comment-syntax"> according to sign of definition</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> *</span><span class="identifier-syntax">equivalence_partition</span><span class="plain-syntax">; </span><span class="comment-syntax"> (if right way) partition array of equivalence classes</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">binary_predicate</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure binary_predicate is accessed in 6/rlt, 6/nv, 15/cr, 15/spr, 15/spr2, 19/lr and here.</li></ul>

View file

@ -87,7 +87,7 @@ implementation of it. But in practice they should never be reached.
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> (*</span><span class="identifier-syntax">sm_func</span><span class="plain-syntax">)(</span><span class="reserved-syntax">int</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> *); </span><span class="comment-syntax"> (for tangling reasons, can't use typedef here)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sm_name</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">verb_priority</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure special_meaning_holder is private to this section.</li></ul>

View file

@ -103,7 +103,7 @@ other cases.)
<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">guard_test_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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">guard_make_true_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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">guard_make_false_iname</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">relation_guard</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure relation_guard is private to this section.</li></ul>

View file

@ -483,7 +483,7 @@ surreptitiously check that it is correctly formed at the same time.
<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">contents_entry</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">heading</span><span class="plain-syntax"> *</span><span class="identifier-syntax">heading_entered</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">contents_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">contents_entry</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">headings_indexed</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>

View file

@ -121,7 +121,7 @@ generalisations which apply to it.
<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">what_to_make</span><span class="plain-syntax">; </span><span class="comment-syntax"> subtree for what to assemble</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">substitute_at</span><span class="plain-syntax">; </span><span class="comment-syntax"> position under </span><span class="extract"><span class="extract-syntax">look_for</span></span><span class="comment-syntax"> of the EVERY node</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">generalisation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next</span><span class="plain-syntax">; </span><span class="comment-syntax"> next in list of generalisations about kind</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">generalisation</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure generalisation is accessed in 3/pd, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/ns, 7/oaf, 7/rs, 9/tfa, 9/tbath, 9/rpt, 9/tc, 9/ma, 9/rk, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>

View file

@ -85,7 +85,7 @@ description only, whereas B could be any subtree of an assertion.
<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">then_pn</span><span class="plain-syntax">; </span><span class="comment-syntax"> what assertion is implied about them</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">implied_likelihood</span><span class="plain-syntax">; </span><span class="comment-syntax"> with what certainty level</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">implication</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next_implication</span><span class="plain-syntax">; </span><span class="comment-syntax"> in list of implications</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">implication</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure implication is private to this section.</li></ul>

View file

@ -70,71 +70,71 @@ which use this module:
<p class="commentary firstcommentary"><a id="SP2"></a><b>&#167;2. </b>To begin with, this module needs to allocate memory:
</p>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">action_name_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">auxiliary_file_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">backdrop_found_in_notice_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">cached_understanding_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">command_index_entry_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">connected_submap_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">door_dir_notice_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">door_to_notice_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">EPS_map_level_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">grammar_line_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">grammar_verb_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">loop_over_scope_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">map_data_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">named_action_pattern_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">noun_filter_token_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">parse_name_notice_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">parsing_data_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">parsing_pp_data_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">regions_data_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">reserved_command_verb_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">rubric_holder_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">scene_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">short_name_notice_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">slash_gpr_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">spatial_data_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">action_name_list_array_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">action_pattern_array_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ap_optional_clause_array_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">scene_connector_array_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">understanding_item_array_MT</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">understanding_reference_array_MT</span>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">action_name_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">auxiliary_file_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">backdrop_found_in_notice_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">cached_understanding_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">command_index_entry_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">connected_submap_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">door_dir_notice_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">door_to_notice_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">EPS_map_level_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">grammar_line_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">grammar_verb_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">loop_over_scope_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">map_data_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">named_action_pattern_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">noun_filter_token_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">parse_name_notice_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">parsing_data_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">parsing_pp_data_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">regions_data_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">reserved_command_verb_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">rubric_holder_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">scene_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">short_name_notice_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">slash_gpr_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">spatial_data_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">action_name_list_array_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">action_pattern_array_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ap_optional_clause_array_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">scene_connector_array_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">understanding_item_array_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">understanding_reference_array_CLASS</span>
</pre>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">action_name</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">auxiliary_file</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">backdrop_found_in_notice</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">cached_understanding</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">command_index_entry</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">connected_submap</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">door_dir_notice</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">door_to_notice</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">EPS_map_level</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">grammar_line</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">grammar_verb</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">loop_over_scope</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">map_data</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">named_action_pattern</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">noun_filter_token</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">parse_name_notice</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">parsing_data</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">parsing_pp_data</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">regions_data</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">reserved_command_verb</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">rubric_holder</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">scene</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">short_name_notice</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">slash_gpr</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_INDIVIDUALLY</span><span class="plain-syntax">(</span><span class="reserved-syntax">spatial_data</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">action_name</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">auxiliary_file</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">backdrop_found_in_notice</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">cached_understanding</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">command_index_entry</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">connected_submap</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">door_dir_notice</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">door_to_notice</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">EPS_map_level</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">grammar_line</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">grammar_verb</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">loop_over_scope</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">map_data</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">named_action_pattern</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">noun_filter_token</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">parse_name_notice</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">parsing_data</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">parsing_pp_data</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">regions_data</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">reserved_command_verb</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">rubric_holder</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">scene</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">short_name_notice</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">slash_gpr</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">spatial_data</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">action_name_list</span><span class="plain-syntax">, </span><span class="constant-syntax">1000</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">action_pattern</span><span class="plain-syntax">, </span><span class="constant-syntax">100</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">ap_optional_clause</span><span class="plain-syntax">, </span><span class="constant-syntax">400</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">scene_connector</span><span class="plain-syntax">, </span><span class="constant-syntax">1000</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">understanding_item</span><span class="plain-syntax">, </span><span class="constant-syntax">100</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">ALLOCATE_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">understanding_reference</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">action_name_list</span><span class="plain-syntax">, </span><span class="constant-syntax">1000</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS_ALLOCATED_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">action_pattern</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">ap_optional_clause</span><span class="plain-syntax">, </span><span class="constant-syntax">400</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">scene_connector</span><span class="plain-syntax">, </span><span class="constant-syntax">1000</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS_ALLOCATED_IN_ARRAYS</span><span class="plain-syntax">(</span><span class="reserved-syntax">understanding_item</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">understanding_reference</span><span class="plain-syntax">, </span><span class="constant-syntax">100</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">action_meaning</span><span class="plain-syntax">, </span><span class="reserved-syntax">action_pattern</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">constant_action_name</span><span class="plain-syntax">, </span><span class="reserved-syntax">action_name</span><span class="plain-syntax">)</span>
@ -155,10 +155,10 @@ foundation module does that automatically.)
<span class="identifier-syntax">COMPILE_WRITER</span><span class="plain-syntax">(</span><span class="reserved-syntax">action_name</span><span class="plain-syntax"> *, </span><a href="4-act.html#SP18" class="function-link"><span class="function-syntax">PL::Actions::log</span></a><span class="plain-syntax">)</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IFModule::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="named-paragraph-container code-font"><a href="1-im.html#SP3_1" class="named-paragraph-link"><span class="named-paragraph">Register this module's memory allocation reasons</span><span class="named-paragraph-number">3.1</span></a></span><span class="character-syntax">;</span>
<span class="character-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-im.html#SP3_2" class="named-paragraph-link"><span class="named-paragraph">Register this module's stream writers</span><span class="named-paragraph-number">3.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-im.html#SP3_4" class="named-paragraph-link"><span class="named-paragraph">Register this module's debugging log aspects</span><span class="named-paragraph-number">3.4</span></a></span><span class="character-syntax">;</span>
<span class="character-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-im.html#SP3_5" class="named-paragraph-link"><span class="named-paragraph">Register this module's debugging log writers</span><span class="named-paragraph-number">3.5</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-im.html#SP3_1" class="named-paragraph-link"><span class="named-paragraph">Register this module's memory allocation reasons</span><span class="named-paragraph-number">3.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-im.html#SP3_2" class="named-paragraph-link"><span class="named-paragraph">Register this module's stream writers</span><span class="named-paragraph-number">3.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-im.html#SP3_4" class="named-paragraph-link"><span class="named-paragraph">Register this module's debugging log aspects</span><span class="named-paragraph-number">3.4</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-im.html#SP3_5" class="named-paragraph-link"><span class="named-paragraph">Register this module's debugging log writers</span><span class="named-paragraph-number">3.5</span></a></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">IFModule::end</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax">}</span>

View file

@ -21,6 +21,7 @@ function togglePopup(material_id) {
<link href="../docs-assets/Popups.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Preform-Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
</head>
<body class="commentary-font">
@ -109,31 +110,32 @@ variables in the Standard Rules, which are in English: so there's no point
in translating this nonterminal to other languages.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">&lt;</span><span class="identifier-syntax">notable</span><span class="plain-syntax">-</span><span class="identifier-syntax">bibliographic</span><span class="plain-syntax">-</span><span class="identifier-syntax">variables</span><span class="plain-syntax">&gt; ::=</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">story</span><span class="plain-syntax"> </span><span class="identifier-syntax">title</span><span class="plain-syntax"> |</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">story</span><span class="plain-syntax"> </span><span class="identifier-syntax">author</span><span class="plain-syntax"> |</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">story</span><span class="plain-syntax"> </span><span class="identifier-syntax">headline</span><span class="plain-syntax"> |</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">story</span><span class="plain-syntax"> </span><span class="identifier-syntax">genre</span><span class="plain-syntax"> |</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">story</span><span class="plain-syntax"> </span><span class="identifier-syntax">description</span><span class="plain-syntax"> |</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">story</span><span class="plain-syntax"> </span><span class="identifier-syntax">creation</span><span class="plain-syntax"> </span><span class="identifier-syntax">year</span><span class="plain-syntax"> |</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">release</span><span class="plain-syntax"> </span><span class="identifier-syntax">number</span>
<pre class="Preform-displayed-code all-displayed-code code-font">
<span class="Preform-function-syntax">&lt;notable-bibliographic-variables&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">story</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">title</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">story</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">author</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">story</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">headline</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">story</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">genre</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">story</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">description</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">story</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">creation</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">year</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">release</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">number</span>
</pre>
<ul class="endnotetexts"><li>This is <a href="../words-module/4-prf.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
<p class="commentary firstcommentary"><a id="SP5"></a><b>&#167;5. </b>And we read them here:
</p>
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">STORY_TITLE_BIBV</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">STORY_AUTHOR_BIBV</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">STORY_HEADLINE_BIBV</span><span class="plain-syntax"> </span><span class="constant-syntax">2</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">STORY_GENRE_BIBV</span><span class="plain-syntax"> </span><span class="constant-syntax">3</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">STORY_DESCRIPTION_BIBV</span><span class="plain-syntax"> </span><span class="constant-syntax">4</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">STORY_CREATION_YEAR_BIBV</span><span class="plain-syntax"> </span><span class="constant-syntax">5</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">RELEASE_NUMBER_BIBV</span><span class="plain-syntax"> </span><span class="constant-syntax">6</span>
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="Preform-constant-syntax">STORY_TITLE_BIBV</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">0</span>
<span class="definition-keyword">define</span> <span class="Preform-constant-syntax">STORY_AUTHOR_BIBV</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">1</span>
<span class="definition-keyword">define</span> <span class="Preform-constant-syntax">STORY_HEADLINE_BIBV</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">2</span>
<span class="definition-keyword">define</span> <span class="Preform-constant-syntax">STORY_GENRE_BIBV</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">3</span>
<span class="definition-keyword">define</span> <span class="Preform-constant-syntax">STORY_DESCRIPTION_BIBV</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">4</span>
<span class="definition-keyword">define</span> <span class="Preform-constant-syntax">STORY_CREATION_YEAR_BIBV</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">5</span>
<span class="definition-keyword">define</span> <span class="Preform-constant-syntax">RELEASE_NUMBER_BIBV</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">6</span>
</pre>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">PL::Bibliographic::bibliographic_new_variable_notify</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">PL::Bibliographic::bibliographic_new_variable_notify</span></span>:<br/><a href="2-bd.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">q</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (&lt;</span><span class="identifier-syntax">notable</span><span class="plain-syntax">-</span><span class="identifier-syntax">bibliographic</span><span class="plain-syntax">-</span><span class="identifier-syntax">variables</span><span class="plain-syntax">&gt;(</span><span class="identifier-syntax">q</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="reserved-syntax">switch</span><span class="plain-syntax"> (&lt;&lt;</span><span class="identifier-syntax">r</span><span class="plain-syntax">&gt;&gt;) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;notable-bibliographic-variables&gt;(q-&gt;</span><span class="element-syntax">name</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;&lt;r&gt;&gt;</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">STORY_TITLE_BIBV:</span><span class="plain-syntax"> </span><span class="identifier-syntax">story_title_VAR</span><span class="plain-syntax"> = </span><span class="identifier-syntax">q</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">STORY_AUTHOR_BIBV:</span><span class="plain-syntax"> </span><span class="identifier-syntax">story_author_VAR</span><span class="plain-syntax"> = </span><span class="identifier-syntax">q</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">STORY_HEADLINE_BIBV:</span><span class="plain-syntax"> </span><span class="identifier-syntax">story_headline_VAR</span><span class="plain-syntax"> = </span><span class="identifier-syntax">q</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
@ -166,14 +168,14 @@ and set the "story title" and "story author" variables accordingly.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">story_title_VAR</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">story_author_VAR</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">the_title</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (&lt;</span><span class="identifier-syntax">s</span><span class="plain-syntax">-</span><span class="identifier-syntax">value</span><span class="plain-syntax">&gt;(</span><span class="identifier-syntax">TW</span><span class="plain-syntax">)) </span><span class="identifier-syntax">the_title</span><span class="plain-syntax"> = &lt;&lt;</span><span class="identifier-syntax">rp</span><span class="plain-syntax">&gt;&gt;;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;s-value&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">TW</span><span class="plain-syntax">)) </span><span class="identifier-syntax">the_title</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;rp&gt;&gt;</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">the_title</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Specifications::new_UNKNOWN</span><span class="plain-syntax">(</span><span class="identifier-syntax">TW</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Assertions::PropertyKnowledge::initialise_global_variable</span><span class="plain-syntax">(</span><span class="identifier-syntax">story_title_VAR</span><span class="plain-syntax">, </span><span class="identifier-syntax">the_title</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Strings::TextLiterals::suppress_quote_expansion</span><span class="plain-syntax">(</span><span class="identifier-syntax">ParseTree::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">the_title</span><span 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">edn</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">work</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">author_name</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">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">the_author</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (&lt;</span><span class="identifier-syntax">s</span><span class="plain-syntax">-</span><span class="identifier-syntax">value</span><span class="plain-syntax">&gt;(</span><span class="identifier-syntax">AW</span><span class="plain-syntax">)) </span><span class="identifier-syntax">the_author</span><span class="plain-syntax"> = &lt;&lt;</span><span class="identifier-syntax">rp</span><span class="plain-syntax">&gt;&gt;;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;s-value&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">AW</span><span class="plain-syntax">)) </span><span class="identifier-syntax">the_author</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;rp&gt;&gt;</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">the_author</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Specifications::new_UNKNOWN</span><span class="plain-syntax">(</span><span class="identifier-syntax">AW</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Assertions::PropertyKnowledge::initialise_global_variable</span><span class="plain-syntax">(</span><span class="identifier-syntax">story_author_VAR</span><span class="plain-syntax">, </span><span class="identifier-syntax">the_author</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
@ -219,17 +221,18 @@ trying Inform out on, in the early days, belonged to a sequence called
which must match:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">&lt;</span><span class="identifier-syntax">episode</span><span class="plain-syntax">-</span><span class="identifier-syntax">sentence</span><span class="plain-syntax">-</span><span class="identifier-syntax">subject</span><span class="plain-syntax">&gt; ::=</span>
<span class="plain-syntax"> &lt;</span><span class="identifier-syntax">definite</span><span class="plain-syntax">-</span><span class="identifier-syntax">article</span><span class="plain-syntax">&gt; </span><span class="identifier-syntax">story</span><span class="plain-syntax"> |</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">this</span><span class="plain-syntax"> </span><span class="identifier-syntax">story</span><span class="plain-syntax"> |</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">story</span>
<pre class="Preform-displayed-code all-displayed-code code-font">
<span class="Preform-function-syntax">&lt;episode-sentence-subject&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;definite-article&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">story</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">this</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">story</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">story</span>
<span class="plain-syntax">&lt;</span><span class="identifier-syntax">episode</span><span class="plain-syntax">-</span><span class="identifier-syntax">sentence</span><span class="plain-syntax">-</span><span class="identifier-syntax">object</span><span class="plain-syntax">&gt; ::=</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">episode</span><span class="plain-syntax"> &lt;</span><span class="identifier-syntax">cardinal</span><span class="plain-syntax">-</span><span class="identifier-syntax">number</span><span class="plain-syntax">&gt; </span><span class="identifier-syntax">of</span><span class="plain-syntax"> &lt;</span><span class="identifier-syntax">quoted</span><span class="plain-syntax">-</span><span class="identifier-syntax">text</span><span class="plain-syntax">-</span><span class="identifier-syntax">without</span><span class="plain-syntax">-</span><span class="identifier-syntax">subs</span><span class="plain-syntax">&gt; | ==&gt; </span><span class="identifier-syntax">R</span><span class="plain-syntax">[1]; &lt;&lt;</span><span class="identifier-syntax">series</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">R</span><span class="plain-syntax">[2];</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">episode</span><span class="plain-syntax"> ... ==&gt; </span><span class="named-paragraph-container code-font"><a href="2-bd.html#SP8_1" class="named-paragraph-link"><span class="named-paragraph">Issue PM_BadEpisode problem</span><span class="named-paragraph-number">8.1</span></a></span><span class="plain-syntax">;</span>
<span class="Preform-function-syntax">&lt;episode-sentence-object&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">episode</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;cardinal-number&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">of</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;quoted-text-without-subs&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> R[1]; &lt;&lt;series&gt;&gt; = R[2];</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">episode</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-bd.html#SP8_1" class="named-paragraph-link"><span class="named-paragraph">Issue PM_BadEpisode problem</span><span class="named-paragraph-number">8.1</span></a></span><span class="Preform-constant-syntax">;</span>
</pre>
<p class="commentary firstcommentary"><a id="SP8_1"></a><b>&#167;8.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue PM_BadEpisode problem</span><span class="named-paragraph-number">8.1</span></span><span class="comment-syntax"> =</span>
<ul class="endnotetexts"><li>This is <a href="../words-module/4-prf.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
<p class="commentary firstcommentary"><a id="SP8_1"></a><b>&#167;8.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue PM_BadEpisode problem</span><span class="named-paragraph-number">8.1</span></span><span class="Preform-comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -252,12 +255,12 @@ which must match:
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">OW</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">NPs</span><span class="plain-syntax">)?(</span><span class="identifier-syntax">NPs</span><span class="plain-syntax">[1]):</span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">task</span><span class="plain-syntax">) { </span><span class="comment-syntax"> "The story is episode 2 of ..."</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">ACCEPT_SMFT:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((&lt;</span><span class="identifier-syntax">episode</span><span class="plain-syntax">-</span><span class="identifier-syntax">sentence</span><span class="plain-syntax">-</span><span class="identifier-syntax">subject</span><span class="plain-syntax">&gt;(</span><span class="identifier-syntax">SW</span><span class="plain-syntax">)) &amp;&amp; (&lt;</span><span class="identifier-syntax">episode</span><span class="plain-syntax">-</span><span class="identifier-syntax">sentence</span><span class="plain-syntax">-</span><span class="identifier-syntax">object</span><span class="plain-syntax">&gt;(</span><span class="identifier-syntax">OW</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="function-syntax">&lt;episode-sentence-subject&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">SW</span><span class="plain-syntax">)) &amp;&amp; (</span><span class="function-syntax">&lt;episode-sentence-object&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">OW</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">ParseTree::annotate_int</span><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="identifier-syntax">verb_id_ANNOT</span><span class="plain-syntax">, </span><span class="identifier-syntax">SPECIAL_MEANING_VB</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (&lt;&lt;</span><span class="identifier-syntax">r</span><span class="plain-syntax">&gt;&gt; &gt;= </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">episode_number</span><span class="plain-syntax"> = &lt;&lt;</span><span class="identifier-syntax">r</span><span class="plain-syntax">&gt;&gt;;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Word::dequote</span><span class="plain-syntax">(&lt;&lt;</span><span class="identifier-syntax">series</span><span class="plain-syntax">&gt;&gt;);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">series_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Lexer::word_text</span><span class="plain-syntax">(&lt;&lt;</span><span class="identifier-syntax">series</span><span class="plain-syntax">&gt;&gt;);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;&lt;r&gt;&gt;</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">episode_number</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;r&gt;&gt;</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Word::dequote</span><span class="plain-syntax">(</span><span class="function-syntax">&lt;&lt;series&gt;&gt;</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">series_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Lexer::word_text</span><span class="plain-syntax">(</span><span class="function-syntax">&lt;&lt;series&gt;&gt;</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>

View file

@ -21,6 +21,7 @@ function togglePopup(material_id) {
<link href="../docs-assets/Popups.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Preform-Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
</head>
<body class="commentary-font">
@ -113,7 +114,7 @@ following structure contains no file handles.)
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">folder_to_release_to</span><span class="plain-syntax">; </span><span class="comment-syntax"> e.g., "Sounds"</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">brief_description</span><span class="plain-syntax">; </span><span class="comment-syntax"> e.g., "Collegio Magazine"</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">from_payload</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">auxiliary_file</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure auxiliary_file is private to this section.</li></ul>
@ -127,30 +128,31 @@ following structure contains no file handles.)
<p class="commentary">The object noun phrase is an articled list, and each entry must match this.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">&lt;</span><span class="identifier-syntax">release</span><span class="plain-syntax">-</span><span class="identifier-syntax">sentence</span><span class="plain-syntax">-</span><span class="identifier-syntax">object</span><span class="plain-syntax">&gt; ::=</span>
<span class="plain-syntax"> &lt;</span><span class="identifier-syntax">privacy</span><span class="plain-syntax">-</span><span class="identifier-syntax">indicator</span><span class="plain-syntax">&gt; &lt;</span><span class="identifier-syntax">exposed</span><span class="plain-syntax">-</span><span class="identifier-syntax">innards</span><span class="plain-syntax">&gt; | ==&gt; </span><span class="identifier-syntax">R</span><span class="plain-syntax">[2]; &lt;&lt;</span><span class="identifier-syntax">privacy</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">R</span><span class="plain-syntax">[1]</span>
<span class="plain-syntax"> &lt;</span><span class="identifier-syntax">privacy</span><span class="plain-syntax">-</span><span class="identifier-syntax">indicator</span><span class="plain-syntax">&gt; ... | ==&gt; </span><span class="named-paragraph-container code-font"><a href="2-ri.html#SP5_1" class="named-paragraph-link"><span class="named-paragraph">Issue PM_NoSuchPublicRelease problem</span><span class="named-paragraph-number">5.1</span></a></span>
<span class="plain-syntax"> &lt;</span><span class="identifier-syntax">exposed</span><span class="plain-syntax">-</span><span class="identifier-syntax">innards</span><span class="plain-syntax">&gt; | ==&gt; </span><span class="identifier-syntax">R</span><span class="plain-syntax">[1]; &lt;&lt;</span><span class="identifier-syntax">privacy</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">NOT_APPLICABLE</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">cover</span><span class="plain-syntax"> </span><span class="identifier-syntax">art</span><span class="plain-syntax"> ( &lt;</span><span class="identifier-syntax">quoted</span><span class="plain-syntax">-</span><span class="identifier-syntax">text</span><span class="plain-syntax">&gt; ) | ==&gt; </span><span class="constant-syntax">COVER_ART_PAYLOAD</span><span class="plain-syntax">; &lt;&lt;</span><span class="identifier-syntax">alttext</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">R</span><span class="plain-syntax">[1];</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">cover</span><span class="plain-syntax"> </span><span class="identifier-syntax">art</span><span class="plain-syntax"> | ==&gt; </span><span class="constant-syntax">COVER_ART_PAYLOAD</span><span class="plain-syntax">; &lt;&lt;</span><span class="identifier-syntax">alttext</span><span class="plain-syntax">&gt;&gt; = -1;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">existing</span><span class="plain-syntax"> </span><span class="identifier-syntax">story</span><span class="plain-syntax"> </span><span class="identifier-syntax">file</span><span class="plain-syntax"> | ==&gt; </span><span class="constant-syntax">EXISTING_STORY_FILE_PAYLOAD</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">existing</span><span class="plain-syntax"> </span><span class="identifier-syntax">story</span><span class="plain-syntax"> </span><span class="identifier-syntax">file</span><span class="plain-syntax"> </span><span class="identifier-syntax">called</span><span class="plain-syntax"> {&lt;</span><span class="identifier-syntax">quoted</span><span class="plain-syntax">-</span><span class="identifier-syntax">text</span><span class="plain-syntax">-</span><span class="identifier-syntax">without</span><span class="plain-syntax">-</span><span class="identifier-syntax">subs</span><span class="plain-syntax">&gt;} | ==&gt; </span><span class="constant-syntax">NAMED_EXISTING_STORY_FILE_PAYLOAD</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">file</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> {&lt;</span><span class="identifier-syntax">quoted</span><span class="plain-syntax">-</span><span class="identifier-syntax">text</span><span class="plain-syntax">-</span><span class="identifier-syntax">without</span><span class="plain-syntax">-</span><span class="identifier-syntax">subs</span><span class="plain-syntax">&gt;} </span><span class="identifier-syntax">called</span><span class="plain-syntax"> {&lt;</span><span class="identifier-syntax">quoted</span><span class="plain-syntax">-</span><span class="identifier-syntax">text</span><span class="plain-syntax">-</span><span class="identifier-syntax">without</span><span class="plain-syntax">-</span><span class="identifier-syntax">subs</span><span class="plain-syntax">&gt;} | ==&gt; </span><span class="constant-syntax">AUXILIARY_FILE_PAYLOAD</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">file</span><span class="plain-syntax"> {&lt;</span><span class="identifier-syntax">quoted</span><span class="plain-syntax">-</span><span class="identifier-syntax">text</span><span class="plain-syntax">-</span><span class="identifier-syntax">without</span><span class="plain-syntax">-</span><span class="identifier-syntax">subs</span><span class="plain-syntax">&gt;} </span><span class="identifier-syntax">in</span><span class="plain-syntax"> {&lt;</span><span class="identifier-syntax">quoted</span><span class="plain-syntax">-</span><span class="identifier-syntax">text</span><span class="plain-syntax">-</span><span class="identifier-syntax">without</span><span class="plain-syntax">-</span><span class="identifier-syntax">subs</span><span class="plain-syntax">&gt;} | ==&gt; </span><span class="constant-syntax">HIDDEN_FILE_IN_PAYLOAD</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">file</span><span class="plain-syntax"> {&lt;</span><span class="identifier-syntax">quoted</span><span class="plain-syntax">-</span><span class="identifier-syntax">text</span><span class="plain-syntax">-</span><span class="identifier-syntax">without</span><span class="plain-syntax">-</span><span class="identifier-syntax">subs</span><span class="plain-syntax">&gt;} | ==&gt; </span><span class="constant-syntax">HIDDEN_FILE_PAYLOAD</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">style</span><span class="plain-syntax"> </span><span class="identifier-syntax">sheet</span><span class="plain-syntax"> {&lt;</span><span class="identifier-syntax">quoted</span><span class="plain-syntax">-</span><span class="identifier-syntax">text</span><span class="plain-syntax">-</span><span class="identifier-syntax">without</span><span class="plain-syntax">-</span><span class="identifier-syntax">subs</span><span class="plain-syntax">&gt;} | ==&gt; </span><span class="constant-syntax">CSS_PAYLOAD</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">javascript</span><span class="plain-syntax"> {&lt;</span><span class="identifier-syntax">quoted</span><span class="plain-syntax">-</span><span class="identifier-syntax">text</span><span class="plain-syntax">-</span><span class="identifier-syntax">without</span><span class="plain-syntax">-</span><span class="identifier-syntax">subs</span><span class="plain-syntax">&gt;} | ==&gt; </span><span class="constant-syntax">JAVASCRIPT_PAYLOAD</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">introductory</span><span class="plain-syntax"> </span><span class="identifier-syntax">booklet</span><span class="plain-syntax"> | ==&gt; </span><span class="constant-syntax">BOOKLET_PAYLOAD</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">introductory</span><span class="plain-syntax"> </span><span class="identifier-syntax">postcard</span><span class="plain-syntax"> | ==&gt; </span><span class="constant-syntax">POSTCARD_PAYLOAD</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">website</span><span class="plain-syntax"> | ==&gt; </span><span class="constant-syntax">WEBSITE_PAYLOAD</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">separate</span><span class="plain-syntax"> </span><span class="identifier-syntax">figures</span><span class="plain-syntax"> | ==&gt; </span><span class="constant-syntax">SEPARATE_FIGURES_PAYLOAD</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">separate</span><span class="plain-syntax"> </span><span class="identifier-syntax">sounds</span><span class="plain-syntax"> | ==&gt; </span><span class="constant-syntax">SEPARATE_SOUNDS_PAYLOAD</span>
<span class="plain-syntax"> {&lt;</span><span class="identifier-syntax">quoted</span><span class="plain-syntax">-</span><span class="identifier-syntax">text</span><span class="plain-syntax">-</span><span class="identifier-syntax">without</span><span class="plain-syntax">-</span><span class="identifier-syntax">subs</span><span class="plain-syntax">&gt;} </span><span class="identifier-syntax">website</span><span class="plain-syntax"> | ==&gt; </span><span class="constant-syntax">THEMED_WEBSITE_PAYLOAD</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">interpreter</span><span class="plain-syntax"> | ==&gt; </span><span class="constant-syntax">INTERPRETER_PAYLOAD</span>
<span class="plain-syntax"> {&lt;</span><span class="identifier-syntax">quoted</span><span class="plain-syntax">-</span><span class="identifier-syntax">text</span><span class="plain-syntax">-</span><span class="identifier-syntax">without</span><span class="plain-syntax">-</span><span class="identifier-syntax">subs</span><span class="plain-syntax">&gt;} </span><span class="identifier-syntax">interpreter</span><span class="plain-syntax"> ==&gt; </span><span class="constant-syntax">THEMED_INTERPRETER_PAYLOAD</span>
<pre class="Preform-displayed-code all-displayed-code code-font">
<span class="Preform-function-syntax">&lt;release-sentence-object&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;privacy-indicator&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;exposed-innards&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> R[2]; &lt;&lt;privacy&gt;&gt; = R[1]</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;privacy-indicator&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-ri.html#SP5_1" class="named-paragraph-link"><span class="named-paragraph">Issue PM_NoSuchPublicRelease problem</span><span class="named-paragraph-number">5.1</span></a></span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;exposed-innards&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> R[1]; &lt;&lt;privacy&gt;&gt; = NOT_APPLICABLE</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">cover</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">art</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">(</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;quoted-text&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">)</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> COVER_ART_PAYLOAD; &lt;&lt;alttext&gt;&gt; = R[1];</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">cover</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">art</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> COVER_ART_PAYLOAD; &lt;&lt;alttext&gt;&gt; = -1;</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">existing</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">story</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">file</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> EXISTING_STORY_FILE_PAYLOAD</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">existing</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">story</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">file</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">called</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">{&lt;quoted-text-without-subs&gt;}</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> NAMED_EXISTING_STORY_FILE_PAYLOAD</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">file</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">of</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">{&lt;quoted-text-without-subs&gt;}</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">called</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">{&lt;quoted-text-without-subs&gt;}</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> AUXILIARY_FILE_PAYLOAD</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">file</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">{&lt;quoted-text-without-subs&gt;}</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">in</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">{&lt;quoted-text-without-subs&gt;}</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> HIDDEN_FILE_IN_PAYLOAD</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">file</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">{&lt;quoted-text-without-subs&gt;}</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> HIDDEN_FILE_PAYLOAD</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">style</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">sheet</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">{&lt;quoted-text-without-subs&gt;}</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> CSS_PAYLOAD</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">javascript</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">{&lt;quoted-text-without-subs&gt;}</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> JAVASCRIPT_PAYLOAD</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">introductory</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">booklet</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> BOOKLET_PAYLOAD</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">introductory</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">postcard</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> POSTCARD_PAYLOAD</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">website</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> WEBSITE_PAYLOAD</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">separate</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">figures</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> SEPARATE_FIGURES_PAYLOAD</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">separate</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">sounds</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> SEPARATE_SOUNDS_PAYLOAD</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">{&lt;quoted-text-without-subs&gt;}</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">website</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> THEMED_WEBSITE_PAYLOAD</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">interpreter</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> INTERPRETER_PAYLOAD</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">{&lt;quoted-text-without-subs&gt;}</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">interpreter</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> THEMED_INTERPRETER_PAYLOAD</span>
</pre>
<p class="commentary firstcommentary"><a id="SP5_1"></a><b>&#167;5.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue PM_NoSuchPublicRelease problem</span><span class="named-paragraph-number">5.1</span></span><span class="comment-syntax"> =</span>
<ul class="endnotetexts"><li>This is <a href="../words-module/4-prf.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
<p class="commentary firstcommentary"><a id="SP5_1"></a><b>&#167;5.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue PM_NoSuchPublicRelease problem</span><span class="named-paragraph-number">5.1</span></span><span class="Preform-comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -169,16 +171,17 @@ optionally be marked "public" (they appear on any website about it) or
"private" (they don't).
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">&lt;</span><span class="identifier-syntax">privacy</span><span class="plain-syntax">-</span><span class="identifier-syntax">indicator</span><span class="plain-syntax">&gt; ::=</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">private</span><span class="plain-syntax"> |</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">public</span>
<pre class="Preform-displayed-code all-displayed-code code-font">
<span class="Preform-function-syntax">&lt;privacy-indicator&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">private</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">public</span>
<span class="plain-syntax">&lt;</span><span class="identifier-syntax">exposed</span><span class="plain-syntax">-</span><span class="identifier-syntax">innards</span><span class="plain-syntax">&gt; ::=</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">solution</span><span class="plain-syntax"> |</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">source</span><span class="plain-syntax"> </span><span class="identifier-syntax">text</span><span class="plain-syntax"> |</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">library</span><span class="plain-syntax"> </span><span class="identifier-syntax">card</span>
<span class="Preform-function-syntax">&lt;exposed-innards&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">solution</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">source</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">text</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">library</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">card</span>
</pre>
<ul class="endnotetexts"><li>This is <a href="../words-module/4-prf.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
<p class="commentary firstcommentary"><a id="SP7"></a><b>&#167;7. </b>And here is the handling code which uses the grammar above:
</p>
@ -188,8 +191,8 @@ optionally be marked "public" (they appear on any website about it) or
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">task</span><span class="plain-syntax">) { </span><span class="comment-syntax"> "Use American dialect."</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">ACCEPT_SMFT:</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">ParseTree::annotate_int</span><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="identifier-syntax">verb_id_ANNOT</span><span class="plain-syntax">, </span><span class="identifier-syntax">SPECIAL_MEANING_VB</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> &lt;</span><span class="identifier-syntax">nounphrase</span><span class="plain-syntax">-</span><span class="identifier-syntax">articled</span><span class="plain-syntax">-</span><span class="identifier-syntax">list</span><span class="plain-syntax">&gt;(</span><span class="identifier-syntax">OW</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="element-syntax">next</span><span class="plain-syntax"> = &lt;&lt;</span><span class="identifier-syntax">rp</span><span class="plain-syntax">&gt;&gt;;</span>
<span class="plain-syntax"> </span><span class="function-syntax">&lt;nounphrase-articled-list&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">OW</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;rp&gt;&gt;</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">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">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRAVERSE1_SMFT:</span>
<span class="plain-syntax"> </span><a href="2-ri.html#SP8" class="function-link"><span class="function-syntax">PL::Bibliographic::Release::handle_release_declaration_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">);</span>
@ -228,7 +231,7 @@ optionally be marked "public" (they appear on any website about it) or
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">current_sentence</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"> (&lt;</span><span class="identifier-syntax">release</span><span class="plain-syntax">-</span><span class="identifier-syntax">sentence</span><span class="plain-syntax">-</span><span class="identifier-syntax">object</span><span class="plain-syntax">&gt;(</span><span class="identifier-syntax">ParseTree::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">)))</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;release-sentence-object&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">ParseTree::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="named-paragraph-container code-font"><a href="2-ri.html#SP8_1" class="named-paragraph-link"><span class="named-paragraph">Respond to an individual release instruction</span><span class="named-paragraph-number">8.1</span></a></span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-ri.html#SP8_2" class="named-paragraph-link"><span class="named-paragraph">Issue a bad release instruction problem message</span><span class="named-paragraph-number">8.2</span></a></span><span class="plain-syntax">;</span>
@ -261,23 +264,23 @@ optionally be marked "public" (they appear on any website about it) or
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">payload</span><span class="plain-syntax"> = &lt;&lt;</span><span class="identifier-syntax">r</span><span class="plain-syntax">&gt;&gt;;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">payload</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;r&gt;&gt;</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">payload</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">SOLUTION_PAYLOAD:</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">release_solution</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (&lt;&lt;</span><span class="identifier-syntax">privacy</span><span class="plain-syntax">&gt;&gt; != </span><span class="identifier-syntax">NOT_APPLICABLE</span><span class="plain-syntax">) </span><span class="identifier-syntax">solution_public</span><span class="plain-syntax"> = &lt;&lt;</span><span class="identifier-syntax">privacy</span><span class="plain-syntax">&gt;&gt;;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;&lt;privacy&gt;&gt;</span><span class="plain-syntax"> != </span><span class="identifier-syntax">NOT_APPLICABLE</span><span class="plain-syntax">) </span><span class="identifier-syntax">solution_public</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;privacy&gt;&gt;</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">SOURCE_TEXT_PAYLOAD:</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">release_source</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (&lt;&lt;</span><span class="identifier-syntax">privacy</span><span class="plain-syntax">&gt;&gt; != </span><span class="identifier-syntax">NOT_APPLICABLE</span><span class="plain-syntax">) </span><span class="identifier-syntax">source_public</span><span class="plain-syntax"> = &lt;&lt;</span><span class="identifier-syntax">privacy</span><span class="plain-syntax">&gt;&gt;;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;&lt;privacy&gt;&gt;</span><span class="plain-syntax"> != </span><span class="identifier-syntax">NOT_APPLICABLE</span><span class="plain-syntax">) </span><span class="identifier-syntax">source_public</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;privacy&gt;&gt;</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">LIBRARY_CARD_PAYLOAD:</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">release_card</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (&lt;&lt;</span><span class="identifier-syntax">privacy</span><span class="plain-syntax">&gt;&gt; != </span><span class="identifier-syntax">NOT_APPLICABLE</span><span class="plain-syntax">) </span><span class="identifier-syntax">card_public</span><span class="plain-syntax"> = &lt;&lt;</span><span class="identifier-syntax">privacy</span><span class="plain-syntax">&gt;&gt;;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;&lt;privacy&gt;&gt;</span><span class="plain-syntax"> != </span><span class="identifier-syntax">NOT_APPLICABLE</span><span class="plain-syntax">) </span><span class="identifier-syntax">card_public</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;privacy&gt;&gt;</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">COVER_ART_PAYLOAD:</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">release_cover</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">cover_alt_text</span><span class="plain-syntax"> = &lt;&lt;</span><span class="identifier-syntax">alttext</span><span class="plain-syntax">&gt;&gt;;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">cover_alt_text</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;alttext&gt;&gt;</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">cover_filename_sentence</span><span class="plain-syntax"> = </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">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">EXISTING_STORY_FILE_PAYLOAD:</span>
@ -289,7 +292,7 @@ optionally be marked "public" (they appear on any website about it) or
<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">payload</span><span class="plain-syntax"> == </span><span class="constant-syntax">NAMED_EXISTING_STORY_FILE_PAYLOAD</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">SW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(&lt;</span><span class="identifier-syntax">release</span><span class="plain-syntax">-</span><span class="identifier-syntax">sentence</span><span class="plain-syntax">-</span><span class="identifier-syntax">object</span><span class="plain-syntax">&gt;, </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">SW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax">&lt;release-sentence-object&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">Word::dequote</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">SW</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">, </span><span class="string-syntax">"%N"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">SW</span><span class="plain-syntax">));</span>
@ -300,8 +303,8 @@ optionally be marked "public" (they appear on any website about it) or
<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">AUXILIARY_FILE_PAYLOAD:</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">DW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(&lt;</span><span class="identifier-syntax">release</span><span class="plain-syntax">-</span><span class="identifier-syntax">sentence</span><span class="plain-syntax">-</span><span class="identifier-syntax">object</span><span class="plain-syntax">&gt;, </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">LW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(&lt;</span><span class="identifier-syntax">release</span><span class="plain-syntax">-</span><span class="identifier-syntax">sentence</span><span class="plain-syntax">-</span><span class="identifier-syntax">object</span><span class="plain-syntax">&gt;, </span><span class="constant-syntax">2</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">DW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax">&lt;release-sentence-object&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">LW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax">&lt;release-sentence-object&gt;</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">Word::dequote</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">LW</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Word::dequote</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">DW</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">);</span>
@ -315,7 +318,7 @@ optionally be marked "public" (they appear on any website about it) or
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">CSS_PAYLOAD:</span><span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">JAVASCRIPT_PAYLOAD:</span><span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">HIDDEN_FILE_PAYLOAD:</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">LW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(&lt;</span><span class="identifier-syntax">release</span><span class="plain-syntax">-</span><span class="identifier-syntax">sentence</span><span class="plain-syntax">-</span><span class="identifier-syntax">object</span><span class="plain-syntax">&gt;, </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">LW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax">&lt;release-sentence-object&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">Word::dequote</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">LW</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">, </span><span class="string-syntax">"%N"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">LW</span><span class="plain-syntax">));</span>
@ -328,8 +331,8 @@ optionally be marked "public" (they appear on any website about it) or
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">HIDDEN_FILE_IN_PAYLOAD:</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">LW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(&lt;</span><span class="identifier-syntax">release</span><span class="plain-syntax">-</span><span class="identifier-syntax">sentence</span><span class="plain-syntax">-</span><span class="identifier-syntax">object</span><span class="plain-syntax">&gt;, </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">FW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(&lt;</span><span class="identifier-syntax">release</span><span class="plain-syntax">-</span><span class="identifier-syntax">sentence</span><span class="plain-syntax">-</span><span class="identifier-syntax">object</span><span class="plain-syntax">&gt;, </span><span class="constant-syntax">2</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">LW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax">&lt;release-sentence-object&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">FW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax">&lt;release-sentence-object&gt;</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">Word::dequote</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">LW</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Word::dequote</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">FW</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">);</span>
@ -347,7 +350,7 @@ optionally be marked "public" (they appear on any website about it) or
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">POSTCARD_PAYLOAD:</span><span class="plain-syntax"> </span><span class="identifier-syntax">release_postcard</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">WEBSITE_PAYLOAD:</span><span class="plain-syntax"> </span><span class="identifier-syntax">release_website</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">THEMED_WEBSITE_PAYLOAD:</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">TW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(&lt;</span><span class="identifier-syntax">release</span><span class="plain-syntax">-</span><span class="identifier-syntax">sentence</span><span class="plain-syntax">-</span><span class="identifier-syntax">object</span><span class="plain-syntax">&gt;, </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">TW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax">&lt;release-sentence-object&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">Word::dequote</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">TW</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">website_template_leafname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Lexer::word_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">TW</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">release_website</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
@ -357,7 +360,7 @@ optionally be marked "public" (they appear on any website about it) or
<span class="plain-syntax"> </span><span class="identifier-syntax">release_interpreter</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">; </span><span class="identifier-syntax">release_website</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">THEMED_INTERPRETER_PAYLOAD:</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">TW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(&lt;</span><span class="identifier-syntax">release</span><span class="plain-syntax">-</span><span class="identifier-syntax">sentence</span><span class="plain-syntax">-</span><span class="identifier-syntax">object</span><span class="plain-syntax">&gt;, </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">TW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax">&lt;release-sentence-object&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">Word::dequote</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">TW</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">interpreter_template_leafname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::new</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">interpreter_template_leafname</span><span class="plain-syntax">, </span><span class="string-syntax">"%W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">TW</span><span class="plain-syntax">));</span>
@ -598,24 +601,24 @@ art and see that its dimensions conform to Treaty of Babel requirements.
<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">Projects::currently_releasing</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::project</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="2-ri.html#SP10_3_1" class="named-paragraph-link"><span class="named-paragraph">Issue a problem if this isn't a Release run</span><span class="named-paragraph-number">10.3.1</span></a></span><span class="character-syntax">;</span>
<span class="character-syntax"> FILE *STORYF = Filenames::fopen(Task::existing_storyfile_file(), "rb");</span>
<span class="character-syntax"> if (STORYF == NULL) {</span>
<span class="character-syntax"> Problems::Issue::unlocated_problem_on_file(Task::syntax_tree(),</span>
<span class="character-syntax"> _p_(BelievedImpossible), </span><span class="comment-syntax"> i.e., not testable by intest</span>
<span class="character-syntax"> "The instruction '</span><span class="identifier-syntax">Release</span><span class="plain-syntax"> </span><span class="identifier-syntax">along</span><span class="plain-syntax"> </span><span class="identifier-syntax">with</span><span class="plain-syntax"> </span><span class="identifier-syntax">an</span><span class="plain-syntax"> </span><span class="identifier-syntax">existing</span><span class="plain-syntax"> </span><span class="identifier-syntax">story</span><span class="plain-syntax"> </span><span class="identifier-syntax">file</span><span class="character-syntax">' "</span>
<span class="character-syntax"> "means that I need to bind up a story file called '</span><span class="plain-syntax">%1</span><span class="character-syntax">', in "</span>
<span class="character-syntax"> "the .materials folder for this project. But it doesn'</span><span class="identifier-syntax">t</span><span class="plain-syntax"> </span><span class="identifier-syntax">seem</span><span class="plain-syntax"> </span><span class="string-syntax">"</span>
<span class="string-syntax"> "</span><span class="identifier-syntax">to</span><span class="plain-syntax"> </span><span class="identifier-syntax">be</span><span class="plain-syntax"> </span><span class="identifier-syntax">there</span><span class="plain-syntax">.</span><span class="string-syntax">", Task::existing_storyfile_file());</span>
<span class="string-syntax"> return;</span>
<span class="string-syntax"> }</span>
<span class="string-syntax"> int i;</span>
<span class="string-syntax"> for (i=0; i&lt;LENGTH_OF_STORY_FILE_HEADER; i++) {</span>
<span class="string-syntax"> int c = fgetc(STORYF);</span>
<span class="string-syntax"> if (c == EOF) header[i] = 0;</span>
<span class="string-syntax"> else header[i] = (zbyte) c;</span>
<span class="string-syntax"> }</span>
<span class="string-syntax"> fclose(STORYF);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-ri.html#SP10_3_1" class="named-paragraph-link"><span class="named-paragraph">Issue a problem if this isn't a Release run</span><span class="named-paragraph-number">10.3.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">FILE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">STORYF</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::fopen</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::existing_storyfile_file</span><span class="plain-syntax">(), </span><span class="string-syntax">"rb"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">STORYF</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">Problems::Issue::unlocated_problem_on_file</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</span><span class="plain-syntax">(),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">BelievedImpossible</span><span class="plain-syntax">), </span><span class="comment-syntax"> i.e., not testable by intest</span>
<span class="plain-syntax"> </span><span class="string-syntax">"The instruction 'Release along with an existing story file' "</span>
<span class="plain-syntax"> </span><span class="string-syntax">"means that I need to bind up a story file called '%1', in "</span>
<span class="plain-syntax"> </span><span class="string-syntax">"the .materials folder for this project. But it doesn't seem "</span>
<span class="plain-syntax"> </span><span class="string-syntax">"to be there."</span><span class="plain-syntax">, </span><span class="identifier-syntax">Task::existing_storyfile_file</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">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="constant-syntax">LENGTH_OF_STORY_FILE_HEADER</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">c</span><span class="plain-syntax"> = </span><span class="identifier-syntax">fgetc</span><span class="plain-syntax">(</span><span class="identifier-syntax">STORYF</span><span 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">EOF</span><span class="plain-syntax">) </span><span class="identifier-syntax">header</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">] = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">header</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">] = (</span><span class="constant-syntax">zbyte</span><span class="plain-syntax">) </span><span class="identifier-syntax">c</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">fclose</span><span class="plain-syntax">(</span><span class="identifier-syntax">STORYF</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-ri.html#SP10">&#167;10</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP10_3_1"></a><b>&#167;10.3.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue a problem if this isn't a Release run</span><span class="named-paragraph-number">10.3.1</span></span><span class="comment-syntax"> =</span>

View file

@ -21,6 +21,7 @@ function togglePopup(material_id) {
<link href="../docs-assets/Popups.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Preform-Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
</head>
<body class="commentary-font">
@ -92,7 +93,7 @@ inferences to avoid piling up bogus inconsistencies.
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">backdrop</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">found_in_routine_iname</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">many_places</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">backdrop_found_in_notice</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure backdrop_found_in_notice is private to this section.</li></ul>
@ -113,15 +114,16 @@ for; it recognises the English name when defined by the Standard Rules. (So
there is no need to translate this to other languages.)
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">&lt;</span><span class="identifier-syntax">notable</span><span class="plain-syntax">-</span><span class="identifier-syntax">backdrops</span><span class="plain-syntax">-</span><span class="identifier-syntax">kinds</span><span class="plain-syntax">&gt; ::=</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">backdrop</span>
<pre class="Preform-displayed-code all-displayed-code code-font">
<span class="Preform-function-syntax">&lt;notable-backdrops-kinds&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">backdrop</span>
</pre>
<ul class="endnotetexts"><li>This is <a href="../words-module/4-prf.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
<p class="commentary firstcommentary"><a id="SP6"></a><b>&#167;6. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">PL::Backdrops::backdrops_new_base_kind_notify</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">PL::Backdrops::backdrops_new_base_kind_notify</span></span>:<br/><a href="3-bck.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">new_base</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">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (&lt;</span><span class="identifier-syntax">notable</span><span class="plain-syntax">-</span><span class="identifier-syntax">backdrops</span><span class="plain-syntax">-</span><span class="identifier-syntax">kinds</span><span class="plain-syntax">&gt;(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;notable-backdrops-kinds&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">K_backdrop</span><span class="plain-syntax"> = </span><span class="identifier-syntax">new_base</span><span class="plain-syntax">; </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
@ -141,15 +143,16 @@ support for; it recognises the English name when it is defined by the
Standard Rules. (So there is no need to translate this to other languages.)
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">&lt;</span><span class="identifier-syntax">notable</span><span class="plain-syntax">-</span><span class="identifier-syntax">backdrops</span><span class="plain-syntax">-</span><span class="identifier-syntax">properties</span><span class="plain-syntax">&gt; ::=</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">scenery</span>
<pre class="Preform-displayed-code all-displayed-code code-font">
<span class="Preform-function-syntax">&lt;notable-backdrops-properties&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">scenery</span>
</pre>
<ul class="endnotetexts"><li>This is <a href="../words-module/4-prf.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
<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::Backdrops::backdrops_new_property_notify</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::Backdrops::backdrops_new_property_notify</span></span>:<br/><a href="3-bck.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (&lt;</span><span class="identifier-syntax">notable</span><span class="plain-syntax">-</span><span class="identifier-syntax">backdrops</span><span class="plain-syntax">-</span><span class="identifier-syntax">properties</span><span class="plain-syntax">&gt;(</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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;notable-backdrops-properties&gt;(prn-&gt;</span><span class="element-syntax">name</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">P_scenery</span><span class="plain-syntax"> = </span><span class="identifier-syntax">prn</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
@ -275,16 +278,17 @@ is <span class="extract"><span class="extract-syntax">NULL</span></span>.
can be said to be "everywhere", which nothing else can).
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">&lt;</span><span class="identifier-syntax">notable</span><span class="plain-syntax">-</span><span class="identifier-syntax">backdrops</span><span class="plain-syntax">-</span><span class="identifier-syntax">noun</span><span class="plain-syntax">-</span><span class="identifier-syntax">phrases</span><span class="plain-syntax">&gt; ::=</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">everywhere</span>
<pre class="Preform-displayed-code all-displayed-code code-font">
<span class="Preform-function-syntax">&lt;notable-backdrops-noun-phrases&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">everywhere</span>
</pre>
<ul class="endnotetexts"><li>This is <a href="../words-module/4-prf.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
<p class="commentary firstcommentary"><a id="SP16"></a><b>&#167;16. </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::Backdrops::backdrops_intervene_in_assertion</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::Backdrops::backdrops_intervene_in_assertion</span></span>:<br/><a href="3-bck.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">px</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">py</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">ParseTree::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">) == </span><span class="identifier-syntax">EVERY_NT</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (&lt;</span><span class="identifier-syntax">notable</span><span class="plain-syntax">-</span><span class="identifier-syntax">backdrops</span><span class="plain-syntax">-</span><span class="identifier-syntax">noun</span><span class="plain-syntax">-</span><span class="identifier-syntax">phrases</span><span class="plain-syntax">&gt;(</span><span class="identifier-syntax">ParseTree::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">)))) {</span>
<span class="plain-syntax"> (</span><span class="function-syntax">&lt;notable-backdrops-noun-phrases&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">ParseTree::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">py</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">left_subject</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ParseTree::get_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">left_subject</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">Problems::Issue::assertion_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_ValueEverywhere</span><span class="plain-syntax">),</span>

View file

@ -21,6 +21,7 @@ function togglePopup(material_id) {
<link href="../docs-assets/Popups.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Preform-Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
</head>
<body class="commentary-font">
@ -86,15 +87,16 @@ age of Inter we want to avoid that sort of tomfoolery.
</pre>
<p class="commentary firstcommentary"><a id="SP3"></a><b>&#167;3. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">&lt;</span><span class="identifier-syntax">notable</span><span class="plain-syntax">-</span><span class="identifier-syntax">device</span><span class="plain-syntax">-</span><span class="identifier-syntax">kinds</span><span class="plain-syntax">&gt; ::=</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">device</span>
<pre class="Preform-displayed-code all-displayed-code code-font">
<span class="Preform-function-syntax">&lt;notable-device-kinds&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">device</span>
</pre>
<ul class="endnotetexts"><li>This is <a href="../words-module/4-prf.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
<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">int</span><span class="plain-syntax"> </span><span class="function-syntax">PL::Devices::devices_new_base_kind_notify</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">PL::Devices::devices_new_base_kind_notify</span></span>:<br/><a href="3-dvc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">new_base</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">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (&lt;</span><span class="identifier-syntax">notable</span><span class="plain-syntax">-</span><span class="identifier-syntax">device</span><span class="plain-syntax">-</span><span class="identifier-syntax">kinds</span><span class="plain-syntax">&gt;(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) { </span><span class="identifier-syntax">K_device</span><span class="plain-syntax"> = </span><span class="identifier-syntax">new_base</span><span class="plain-syntax">; </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">; }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;notable-device-kinds&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) { </span><span class="identifier-syntax">K_device</span><span class="plain-syntax"> = </span><span class="identifier-syntax">new_base</span><span class="plain-syntax">; </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">; }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>

View file

@ -35,6 +35,7 @@ function togglePopup(material_id) {
<link href="../docs-assets/Popups.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Preform-Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
</head>
<body class="commentary-font">
@ -191,7 +192,7 @@ it will be a title.
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">colour</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">at_offset</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">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">offset_from</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">rubric_holder</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure rubric_holder is private to this section.</li></ul>
@ -213,7 +214,7 @@ hold the applicable mapping parameters.
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">contains_titling</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">eps_origin</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">map_parameter_scope</span><span class="plain-syntax"> </span><span class="identifier-syntax">map_parameters</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">EPS_map_level</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure EPS_map_level is private to this section.</li></ul>
@ -406,8 +407,8 @@ If all are null, then the global scope is used.
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">task</span><span class="plain-syntax">) { </span><span class="comment-syntax"> "Index map with ..."</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">ACCEPT_SMFT:</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">ParseTree::annotate_int</span><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="identifier-syntax">verb_id_ANNOT</span><span class="plain-syntax">, </span><span class="identifier-syntax">SPECIAL_MEANING_VB</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> &lt;</span><span class="identifier-syntax">nounphrase</span><span class="plain-syntax">-</span><span class="identifier-syntax">articled</span><span class="plain-syntax">-</span><span class="identifier-syntax">list</span><span class="plain-syntax">&gt;(</span><span class="identifier-syntax">OW</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="element-syntax">next</span><span class="plain-syntax"> = &lt;&lt;</span><span class="identifier-syntax">rp</span><span class="plain-syntax">&gt;&gt;;</span>
<span class="plain-syntax"> </span><span class="function-syntax">&lt;nounphrase-articled-list&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">OW</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;rp&gt;&gt;</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">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">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRAVERSE_FOR_MAP1_SMFT:</span>
<span class="plain-syntax"> </span><a href="3-em.html#SP22" class="function-link"><span class="function-syntax">PL::EPSMap::new_map_hint_sentence</span></a><span class="plain-syntax">(1, </span><span class="identifier-syntax">V</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">);</span>
@ -426,10 +427,11 @@ If all are null, then the global scope is used.
"direction".
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">&lt;</span><span class="identifier-syntax">direction</span><span class="plain-syntax">-</span><span class="identifier-syntax">name</span><span class="plain-syntax">&gt; ::=</span>
<span class="plain-syntax"> &lt;</span><span class="identifier-syntax">instance</span><span class="plain-syntax">-</span><span class="identifier-syntax">of</span><span class="plain-syntax">-</span><span class="identifier-syntax">object</span><span class="plain-syntax">&gt; ==&gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">; *</span><span class="identifier-syntax">XP</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RP</span><span class="plain-syntax">[1]; </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Instances::of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">RP</span><span class="plain-syntax">[1], </span><span class="identifier-syntax">K_direction</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<pre class="Preform-displayed-code all-displayed-code code-font">
<span class="Preform-function-syntax">&lt;direction-name&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;instance-of-object&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> 0; *XP = RP[1]; if (Instances::of_kind(RP[1], K_direction) == FALSE) return FALSE;</span>
</pre>
<ul class="endnotetexts"><li>This is <a href="../words-module/4-prf.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
<p class="commentary firstcommentary"><a id="SP17"></a><b>&#167;17. </b>The subject noun phrase of sentences like this:
</p>
@ -442,25 +444,26 @@ is parsed with the following grammar, which is almost a mini-language in
itself.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">&lt;</span><span class="identifier-syntax">index</span><span class="plain-syntax">-</span><span class="identifier-syntax">map</span><span class="plain-syntax">-</span><span class="identifier-syntax">sentence</span><span class="plain-syntax">-</span><span class="identifier-syntax">subject</span><span class="plain-syntax">&gt; ::=</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">eps</span><span class="plain-syntax"> </span><span class="identifier-syntax">file</span><span class="plain-syntax"> | ==&gt; </span><span class="constant-syntax">EPSFILE_IMW</span>
<span class="plain-syntax"> &lt;</span><span class="identifier-syntax">direction</span><span class="plain-syntax">-</span><span class="identifier-syntax">name</span><span class="plain-syntax">&gt; </span><span class="identifier-syntax">mapped</span><span class="plain-syntax"> </span><span class="identifier-syntax">as</span><span class="plain-syntax"> &lt;</span><span class="identifier-syntax">direction</span><span class="plain-syntax">-</span><span class="identifier-syntax">name</span><span class="plain-syntax">&gt; | ==&gt; </span><span class="constant-syntax">MAPPED_AS_IMW</span><span class="plain-syntax">; &lt;&lt;</span><span class="identifier-syntax">instance:x</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">RP</span><span class="plain-syntax">[1]; &lt;&lt;</span><span class="identifier-syntax">instance:y</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">RP</span><span class="plain-syntax">[2];</span>
<span class="plain-syntax"> ... </span><span class="identifier-syntax">mapped</span><span class="plain-syntax"> </span><span class="identifier-syntax">as</span><span class="plain-syntax"> ... | ==&gt; </span><span class="named-paragraph-container code-font"><a href="3-em.html#SP17_1" class="named-paragraph-link"><span class="named-paragraph">Issue PM_MapDirectionClue problem</span><span class="named-paragraph-number">17.1</span></a></span>
<span class="plain-syntax"> &lt;</span><span class="identifier-syntax">instance</span><span class="plain-syntax">-</span><span class="identifier-syntax">of</span><span class="plain-syntax">-</span><span class="identifier-syntax">object</span><span class="plain-syntax">&gt; </span><span class="identifier-syntax">mapped</span><span class="plain-syntax"> &lt;</span><span class="identifier-syntax">map</span><span class="plain-syntax">-</span><span class="identifier-syntax">positioning</span><span class="plain-syntax">&gt; | ==&gt; </span><span class="constant-syntax">MAPPED_IMW</span><span class="plain-syntax">; &lt;&lt;</span><span class="identifier-syntax">instance:x</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">RP</span><span class="plain-syntax">[1]; &lt;&lt;</span><span class="identifier-syntax">instance:y</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">RP</span><span class="plain-syntax">[2];</span>
<span class="plain-syntax"> ... </span><span class="identifier-syntax">mapped</span><span class="plain-syntax"> ... | ==&gt; </span><span class="named-paragraph-container code-font"><a href="3-em.html#SP17_2" class="named-paragraph-link"><span class="named-paragraph">Issue PM_MapPlacement problem</span><span class="named-paragraph-number">17.2</span></a></span>
<span class="plain-syntax"> &lt;</span><span class="identifier-syntax">map</span><span class="plain-syntax">-</span><span class="identifier-syntax">setting</span><span class="plain-syntax">&gt; </span><span class="identifier-syntax">set</span><span class="plain-syntax"> </span><span class="identifier-syntax">to</span><span class="plain-syntax"> &lt;</span><span class="identifier-syntax">map</span><span class="plain-syntax">-</span><span class="identifier-syntax">setting</span><span class="plain-syntax">-</span><span class="identifier-syntax">value</span><span class="plain-syntax">&gt; | ==&gt; </span><span class="constant-syntax">SETTING_IMW</span><span class="plain-syntax">; &lt;&lt;</span><span class="identifier-syntax">scoping</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">R</span><span class="plain-syntax">[1]; </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">R</span><span class="plain-syntax">[1] == </span><span class="constant-syntax">NO_IMW</span><span class="plain-syntax">) *</span><span class="identifier-syntax">X</span><span class="plain-syntax"> = </span><span class="constant-syntax">NO_IMW</span><span class="plain-syntax">; &lt;&lt;</span><span class="identifier-syntax">msvtype</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">R</span><span class="plain-syntax">[2]</span>
<span class="plain-syntax"> &lt;</span><span class="identifier-syntax">map</span><span class="plain-syntax">-</span><span class="identifier-syntax">setting</span><span class="plain-syntax">&gt; </span><span class="identifier-syntax">set</span><span class="plain-syntax"> </span><span class="identifier-syntax">to</span><span class="plain-syntax"> ... | ==&gt; </span><span class="named-paragraph-container code-font"><a href="3-em.html#SP17_3" class="named-paragraph-link"><span class="named-paragraph">Issue PM_MapSettingTooLong problem</span><span class="named-paragraph-number">17.3</span></a></span>
<span class="plain-syntax"> ... </span><span class="identifier-syntax">set</span><span class="plain-syntax"> </span><span class="identifier-syntax">to</span><span class="plain-syntax"> ... | ==&gt; </span><span class="named-paragraph-container code-font"><a href="3-em.html#SP17_4" class="named-paragraph-link"><span class="named-paragraph">Issue PM_MapSettingOfUnknown problem</span><span class="named-paragraph-number">17.4</span></a></span>
<span class="plain-syntax"> </span><span class="identifier-syntax">rubric</span><span class="plain-syntax"> {&lt;</span><span class="identifier-syntax">quoted</span><span class="plain-syntax">-</span><span class="identifier-syntax">text</span><span class="plain-syntax">-</span><span class="identifier-syntax">without</span><span class="plain-syntax">-</span><span class="identifier-syntax">subs</span><span class="plain-syntax">&gt;} *** | ==&gt; </span><span class="constant-syntax">RUBRIC_IMW</span>
<span class="plain-syntax"> ... ==&gt; </span><span class="named-paragraph-container code-font"><a href="3-em.html#SP17_5" class="named-paragraph-link"><span class="named-paragraph">Issue PM_MapHintUnknown problem</span><span class="named-paragraph-number">17.5</span></a></span>
<pre class="Preform-displayed-code all-displayed-code code-font">
<span class="Preform-function-syntax">&lt;index-map-sentence-subject&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">eps</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">file</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> EPSFILE_IMW</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;direction-name&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">mapped</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">as</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;direction-name&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> MAPPED_AS_IMW; &lt;&lt;instance:x&gt;&gt; = RP[1]; &lt;&lt;instance:y&gt;&gt; = RP[2];</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">mapped</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">as</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-em.html#SP17_1" class="named-paragraph-link"><span class="named-paragraph">Issue PM_MapDirectionClue problem</span><span class="named-paragraph-number">17.1</span></a></span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;instance-of-object&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">mapped</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;map-positioning&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> MAPPED_IMW; &lt;&lt;instance:x&gt;&gt; = RP[1]; &lt;&lt;instance:y&gt;&gt; = RP[2];</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">mapped</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-em.html#SP17_2" class="named-paragraph-link"><span class="named-paragraph">Issue PM_MapPlacement problem</span><span class="named-paragraph-number">17.2</span></a></span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;map-setting&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">set</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">to</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;map-setting-value&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> SETTING_IMW; &lt;&lt;scoping&gt;&gt; = R[1]; if (R[1] == NO_IMW) *X = NO_IMW; &lt;&lt;msvtype&gt;&gt; = R[2]</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;map-setting&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">set</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">to</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-em.html#SP17_3" class="named-paragraph-link"><span class="named-paragraph">Issue PM_MapSettingTooLong problem</span><span class="named-paragraph-number">17.3</span></a></span>
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">set</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">to</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-em.html#SP17_4" class="named-paragraph-link"><span class="named-paragraph">Issue PM_MapSettingOfUnknown problem</span><span class="named-paragraph-number">17.4</span></a></span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">rubric</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">{&lt;quoted-text-without-subs&gt;}</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">***</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> RUBRIC_IMW</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-em.html#SP17_5" class="named-paragraph-link"><span class="named-paragraph">Issue PM_MapHintUnknown problem</span><span class="named-paragraph-number">17.5</span></a></span>
<span class="plain-syntax">&lt;</span><span class="identifier-syntax">map</span><span class="plain-syntax">-</span><span class="identifier-syntax">positioning</span><span class="plain-syntax">&gt; ::=</span>
<span class="plain-syntax"> &lt;</span><span class="identifier-syntax">instance</span><span class="plain-syntax">-</span><span class="identifier-syntax">of</span><span class="plain-syntax">-</span><span class="identifier-syntax">object</span><span class="plain-syntax">&gt; </span><span class="identifier-syntax">of</span><span class="plain-syntax">/</span><span class="identifier-syntax">from</span><span class="plain-syntax"> &lt;</span><span class="identifier-syntax">instance</span><span class="plain-syntax">-</span><span class="identifier-syntax">of</span><span class="plain-syntax">-</span><span class="identifier-syntax">object</span><span class="plain-syntax">&gt; | ==&gt; </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">; &lt;&lt;</span><span class="identifier-syntax">instance:dir</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">RP</span><span class="plain-syntax">[1]; *</span><span class="identifier-syntax">XP</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RP</span><span class="plain-syntax">[2]</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">above</span><span class="plain-syntax"> &lt;</span><span class="identifier-syntax">instance</span><span class="plain-syntax">-</span><span class="identifier-syntax">of</span><span class="plain-syntax">-</span><span class="identifier-syntax">object</span><span class="plain-syntax">&gt; | ==&gt; </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">; &lt;&lt;</span><span class="identifier-syntax">instance:dir</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">I_up</span><span class="plain-syntax">; *</span><span class="identifier-syntax">XP</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RP</span><span class="plain-syntax">[1]</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">below</span><span class="plain-syntax"> &lt;</span><span class="identifier-syntax">instance</span><span class="plain-syntax">-</span><span class="identifier-syntax">of</span><span class="plain-syntax">-</span><span class="identifier-syntax">object</span><span class="plain-syntax">&gt; ==&gt; </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">; &lt;&lt;</span><span class="identifier-syntax">instance:dir</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">I_down</span><span class="plain-syntax">; *</span><span class="identifier-syntax">XP</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RP</span><span class="plain-syntax">[1]</span>
<span class="Preform-function-syntax">&lt;map-positioning&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;instance-of-object&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">of/from</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;instance-of-object&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> TRUE; &lt;&lt;instance:dir&gt;&gt; = RP[1]; *XP = RP[2]</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">above</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;instance-of-object&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> TRUE; &lt;&lt;instance:dir&gt;&gt; = I_up; *XP = RP[1]</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">below</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;instance-of-object&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> TRUE; &lt;&lt;instance:dir&gt;&gt; = I_down; *XP = RP[1]</span>
</pre>
<p class="commentary firstcommentary"><a id="SP17_1"></a><b>&#167;17.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue PM_MapDirectionClue problem</span><span class="named-paragraph-number">17.1</span></span><span class="comment-syntax"> =</span>
<ul class="endnotetexts"><li>This is <a href="../words-module/4-prf.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
<p class="commentary firstcommentary"><a id="SP17_1"></a><b>&#167;17.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue PM_MapDirectionClue problem</span><span class="named-paragraph-number">17.1</span></span><span class="Preform-comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -536,22 +539,23 @@ itself.
<p>title-size</p>
</blockquote>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">&lt;</span><span class="identifier-syntax">map</span><span class="plain-syntax">-</span><span class="identifier-syntax">setting</span><span class="plain-syntax">&gt; ::=</span>
<span class="plain-syntax"> &lt;</span><span class="identifier-syntax">map</span><span class="plain-syntax">-</span><span class="identifier-syntax">parameter</span><span class="plain-syntax">&gt; </span><span class="identifier-syntax">of</span><span class="plain-syntax"> &lt;</span><span class="identifier-syntax">map</span><span class="plain-syntax">-</span><span class="identifier-syntax">setting</span><span class="plain-syntax">-</span><span class="identifier-syntax">scope</span><span class="plain-syntax">&gt; | ==&gt; </span><span class="identifier-syntax">R</span><span class="plain-syntax">[2]; &lt;&lt;</span><span class="identifier-syntax">wchar_t:partext</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">RP</span><span class="plain-syntax">[1]; &lt;&lt;</span><span class="identifier-syntax">parindex</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">R</span><span class="plain-syntax">[1]</span>
<span class="plain-syntax"> &lt;</span><span class="identifier-syntax">map</span><span class="plain-syntax">-</span><span class="identifier-syntax">parameter</span><span class="plain-syntax">&gt; | ==&gt; </span><span class="constant-syntax">ENTIRE_MAP_SCOPE</span><span class="plain-syntax">; &lt;&lt;</span><span class="identifier-syntax">wchar_t:partext</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">RP</span><span class="plain-syntax">[1]; &lt;&lt;</span><span class="identifier-syntax">parindex</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">R</span><span class="plain-syntax">[1]</span>
<span class="plain-syntax"> ... </span><span class="identifier-syntax">of</span><span class="plain-syntax"> &lt;</span><span class="identifier-syntax">map</span><span class="plain-syntax">-</span><span class="identifier-syntax">setting</span><span class="plain-syntax">-</span><span class="identifier-syntax">scope</span><span class="plain-syntax">&gt; ==&gt; </span><span class="named-paragraph-container code-font"><a href="3-em.html#SP18_2" class="named-paragraph-link"><span class="named-paragraph">Issue PM_MapSettingUnknown problem</span><span class="named-paragraph-number">18.2</span></a></span>
<pre class="Preform-displayed-code all-displayed-code code-font">
<span class="Preform-function-syntax">&lt;map-setting&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;map-parameter&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">of</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;map-setting-scope&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> R[2]; &lt;&lt;wchar_t:partext&gt;&gt; = RP[1]; &lt;&lt;parindex&gt;&gt; = R[1]</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;map-parameter&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> ENTIRE_MAP_SCOPE; &lt;&lt;wchar_t:partext&gt;&gt; = RP[1]; &lt;&lt;parindex&gt;&gt; = R[1]</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">of</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;map-setting-scope&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-em.html#SP18_2" class="named-paragraph-link"><span class="named-paragraph">Issue PM_MapSettingUnknown problem</span><span class="named-paragraph-number">18.2</span></a></span>
<span class="plain-syntax">&lt;</span><span class="identifier-syntax">map</span><span class="plain-syntax">-</span><span class="identifier-syntax">setting</span><span class="plain-syntax">-</span><span class="identifier-syntax">scope</span><span class="plain-syntax">&gt; ::=</span>
<span class="plain-syntax"> &lt;</span><span class="identifier-syntax">definite</span><span class="plain-syntax">-</span><span class="identifier-syntax">article</span><span class="plain-syntax">&gt; &lt;</span><span class="identifier-syntax">map</span><span class="plain-syntax">-</span><span class="identifier-syntax">setting</span><span class="plain-syntax">-</span><span class="identifier-syntax">scope</span><span class="plain-syntax">-</span><span class="identifier-syntax">unarticled</span><span class="plain-syntax">&gt; | ==&gt; </span><span class="identifier-syntax">R</span><span class="plain-syntax">[2]</span>
<span class="plain-syntax"> &lt;</span><span class="identifier-syntax">map</span><span class="plain-syntax">-</span><span class="identifier-syntax">setting</span><span class="plain-syntax">-</span><span class="identifier-syntax">scope</span><span class="plain-syntax">-</span><span class="identifier-syntax">unarticled</span><span class="plain-syntax">&gt; ==&gt; </span><span class="identifier-syntax">R</span><span class="plain-syntax">[1]</span>
<span class="Preform-function-syntax">&lt;map-setting-scope&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;definite-article&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;map-setting-scope-unarticled&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> R[2]</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;map-setting-scope-unarticled&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> R[1]</span>
<span class="plain-syntax">&lt;</span><span class="identifier-syntax">map</span><span class="plain-syntax">-</span><span class="identifier-syntax">setting</span><span class="plain-syntax">-</span><span class="identifier-syntax">scope</span><span class="plain-syntax">-</span><span class="identifier-syntax">unarticled</span><span class="plain-syntax">&gt; ::=</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">first</span><span class="plain-syntax"> </span><span class="identifier-syntax">room</span><span class="plain-syntax"> | ==&gt; </span><span class="constant-syntax">FIRST_ROOM_MAP_SCOPE</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">level</span><span class="plain-syntax"> &lt;</span><span class="identifier-syntax">cardinal</span><span class="plain-syntax">-</span><span class="identifier-syntax">number</span><span class="plain-syntax">&gt; | ==&gt; </span><span class="constant-syntax">LEVEL_MAP_SCOPE</span><span class="plain-syntax">; &lt;&lt;</span><span class="identifier-syntax">level</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">R</span><span class="plain-syntax">[1]</span>
<span class="plain-syntax"> &lt;</span><span class="identifier-syntax">k</span><span class="plain-syntax">-</span><span class="identifier-syntax">kind</span><span class="plain-syntax">&gt; | ==&gt; </span><span class="constant-syntax">KIND_MAP_SCOPE</span><span class="plain-syntax">; &lt;&lt;</span><span class="identifier-syntax">kind:kscope</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">RP</span><span class="plain-syntax">[1]</span>
<span class="plain-syntax"> &lt;</span><span class="identifier-syntax">instance</span><span class="plain-syntax">-</span><span class="identifier-syntax">of</span><span class="plain-syntax">-</span><span class="identifier-syntax">object</span><span class="plain-syntax">&gt; ==&gt; </span><span class="constant-syntax">INSTANCE_MAP_SCOPE</span><span class="plain-syntax">; &lt;&lt;</span><span class="identifier-syntax">instance:iscope</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">RP</span><span class="plain-syntax">[1]</span>
<span class="Preform-function-syntax">&lt;map-setting-scope-unarticled&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">first</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">room</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> FIRST_ROOM_MAP_SCOPE</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">level</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;cardinal-number&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> LEVEL_MAP_SCOPE; &lt;&lt;level&gt;&gt; = R[1]</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;k-kind&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> KIND_MAP_SCOPE; &lt;&lt;kind:kscope&gt;&gt; = RP[1]</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;instance-of-object&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> INSTANCE_MAP_SCOPE; &lt;&lt;instance:iscope&gt;&gt; = RP[1]</span>
</pre>
<ul class="endnotetexts"><li>This is <a href="../words-module/4-prf.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
<p class="commentary firstcommentary"><a id="SP18_1"></a><b>&#167;18.1. </b>The map parameters all have one-word, sometimes hyphenated, names, such
as the following:
</p>
@ -563,20 +567,21 @@ as the following:
<p class="commentary">For now, at least, these are all in English only.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">&lt;</span><span class="identifier-syntax">map</span><span class="plain-syntax">-</span><span class="identifier-syntax">parameter</span><span class="plain-syntax">&gt; </span><span class="identifier-syntax">internal</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="identifier-syntax">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">parameter_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Lexer::word_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Wordings::length</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">) == </span><span class="constant-syntax">1</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> ((</span><span class="identifier-syntax">i</span><span class="plain-syntax"> = </span><a href="3-em.html#SP9" class="function-link"><span class="function-syntax">PL::EPSMap::get_map_variable_index_forgivingly</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">parameter_name</span><span class="plain-syntax">))&gt;=0)) {</span>
<span class="plain-syntax"> *</span><span class="identifier-syntax">X</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">XP</span><span class="plain-syntax"> = </span><span class="identifier-syntax">parameter_name</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<pre class="Preform-displayed-code all-displayed-code code-font">
<span class="Preform-function-syntax">&lt;map-parameter&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">internal</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">{</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">int</span><span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">i</span><span class="Preform-plain-syntax">;</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">wchar_t</span><span class="Preform-plain-syntax"> *</span><span class="Preform-identifier-syntax">parameter_name</span><span class="Preform-plain-syntax"> = </span><span class="Preform-identifier-syntax">Lexer::word_text</span><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">Wordings::first_wn</span><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">W</span><span class="Preform-plain-syntax">));</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">if</span><span class="Preform-plain-syntax"> ((</span><span class="Preform-identifier-syntax">Wordings::length</span><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">W</span><span class="Preform-plain-syntax">) == </span><span class="Preform-constant-syntax">1</span><span class="Preform-plain-syntax">) &amp;&amp;</span>
<span class="Preform-plain-syntax"> ((</span><span class="Preform-identifier-syntax">i</span><span class="Preform-plain-syntax"> = </span><a href="3-em.html#SP9" class="function-link"><span class="Preform-function-syntax">PL::EPSMap::get_map_variable_index_forgivingly</span></a><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">parameter_name</span><span class="Preform-plain-syntax">))&gt;=0)) {</span>
<span class="Preform-plain-syntax"> *</span><span class="Preform-identifier-syntax">X</span><span class="Preform-plain-syntax"> = </span><span class="Preform-identifier-syntax">i</span><span class="Preform-plain-syntax">;</span>
<span class="Preform-plain-syntax"> *</span><span class="Preform-identifier-syntax">XP</span><span class="Preform-plain-syntax"> = </span><span class="Preform-identifier-syntax">parameter_name</span><span class="Preform-plain-syntax">;</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">return</span><span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">TRUE</span><span class="Preform-plain-syntax">;</span>
<span class="Preform-plain-syntax"> }</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">return</span><span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">FALSE</span><span class="Preform-plain-syntax">;</span>
<span class="Preform-plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP18_2"></a><b>&#167;18.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue PM_MapSettingUnknown problem</span><span class="named-paragraph-number">18.2</span></span><span class="comment-syntax"> =</span>
<ul class="endnotetexts"><li>This is <a href="../words-module/4-prf.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
<p class="commentary firstcommentary"><a id="SP18_2"></a><b>&#167;18.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue PM_MapSettingUnknown problem</span><span class="named-paragraph-number">18.2</span></span><span class="Preform-comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -595,61 +600,64 @@ perhaps should just have been "true" and "false", not "on" and "off".
Never mind.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">&lt;</span><span class="identifier-syntax">map</span><span class="plain-syntax">-</span><span class="identifier-syntax">setting</span><span class="plain-syntax">-</span><span class="identifier-syntax">value</span><span class="plain-syntax">&gt; ::=</span>
<span class="plain-syntax"> &lt;</span><span class="identifier-syntax">cardinal</span><span class="plain-syntax">-</span><span class="identifier-syntax">number</span><span class="plain-syntax">&gt; | ==&gt; </span><span class="constant-syntax">INT_MDT</span><span class="plain-syntax">; &lt;&lt;</span><span class="identifier-syntax">msvalue</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">R</span><span class="plain-syntax">[1]; &lt;&lt;</span><span class="identifier-syntax">msword</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> &lt;</span><span class="identifier-syntax">quoted</span><span class="plain-syntax">-</span><span class="identifier-syntax">text</span><span class="plain-syntax">&gt; | ==&gt; </span><span class="constant-syntax">TEXT_MDT</span><span class="plain-syntax">; &lt;&lt;</span><span class="identifier-syntax">msvalue</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">R</span><span class="plain-syntax">[1]; &lt;&lt;</span><span class="identifier-syntax">msword</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> &lt;</span><span class="identifier-syntax">map</span><span class="plain-syntax">-</span><span class="identifier-syntax">setting</span><span class="plain-syntax">-</span><span class="identifier-syntax">boolean</span><span class="plain-syntax">&gt; | ==&gt; </span><span class="constant-syntax">BOOL_MDT</span><span class="plain-syntax">; &lt;&lt;</span><span class="identifier-syntax">msvalue</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">R</span><span class="plain-syntax">[1]; &lt;&lt;</span><span class="identifier-syntax">msword</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> &lt;</span><span class="identifier-syntax">map</span><span class="plain-syntax">-</span><span class="identifier-syntax">offset</span><span class="plain-syntax">&gt; | ==&gt; </span><span class="constant-syntax">OFF_MDT</span><span class="plain-syntax">; &lt;&lt;</span><span class="identifier-syntax">msvalue</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">R</span><span class="plain-syntax">[1]; &lt;&lt;</span><span class="identifier-syntax">msword</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">); </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">R</span><span class="plain-syntax">[1] == </span><span class="constant-syntax">ERRONEOUS_OFFSET_VALUE</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"> ### ==&gt; -1; &lt;&lt;</span><span class="identifier-syntax">msword</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">); </span><span class="comment-syntax"> leads to a problem message later</span>
<pre class="Preform-displayed-code all-displayed-code code-font">
<span class="Preform-function-syntax">&lt;map-setting-value&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;cardinal-number&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> INT_MDT; &lt;&lt;msvalue&gt;&gt; = R[1]; &lt;&lt;msword&gt;&gt; = Wordings::first_wn(W);</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;quoted-text&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> TEXT_MDT; &lt;&lt;msvalue&gt;&gt; = R[1]; &lt;&lt;msword&gt;&gt; = Wordings::first_wn(W);</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;map-setting-boolean&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> BOOL_MDT; &lt;&lt;msvalue&gt;&gt; = R[1]; &lt;&lt;msword&gt;&gt; = Wordings::first_wn(W);</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;map-offset&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> OFF_MDT; &lt;&lt;msvalue&gt;&gt; = R[1]; &lt;&lt;msword&gt;&gt; = Wordings::first_wn(W); if (R[1] == ERRONEOUS_OFFSET_VALUE) return FALSE;</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">###</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> -1; &lt;&lt;msword&gt;&gt; = Wordings::first_wn(W); </span><span class="Preform-comment-syntax"> leads to a problem message later</span>
<span class="plain-syntax">&lt;</span><span class="identifier-syntax">map</span><span class="plain-syntax">-</span><span class="identifier-syntax">setting</span><span class="plain-syntax">-</span><span class="identifier-syntax">boolean</span><span class="plain-syntax">&gt; ::=</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">on</span><span class="plain-syntax"> | ==&gt; </span><span class="identifier-syntax">TRUE</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">off</span><span class="plain-syntax"> ==&gt; </span><span class="identifier-syntax">FALSE</span>
<span class="Preform-function-syntax">&lt;map-setting-boolean&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">on</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> TRUE</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">off</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> FALSE</span>
</pre>
<p class="commentary firstcommentary"><a id="SP20"></a><b>&#167;20. </b>Map offsets have a cutesy notation: <span class="extract"><span class="extract-syntax">10&amp;-30</span></span>, for example, written as a
<ul class="endnotetexts"><li>This is <a href="../words-module/4-prf.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
<p class="commentary firstcommentary"><a id="SP20"></a><b>&#167;20. </b>Map offsets have a cutesy notation: <span class="extract"><span class="Preform-extract-syntax">10&amp;-30</span></span>, for example, written as a
single word. The following nonterminal actually matches any single word
(so that problems can be caught later, not now), returning either a valid
offset or else the <span class="extract"><span class="extract-syntax">ERRONEOUS_OFFSET_VALUE</span></span> sentinel.
offset or else the <span class="extract"><span class="Preform-extract-syntax">ERRONEOUS_OFFSET_VALUE</span></span> sentinel.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">&lt;</span><span class="identifier-syntax">map</span><span class="plain-syntax">-</span><span class="identifier-syntax">offset</span><span class="plain-syntax">&gt; </span><span class="identifier-syntax">internal</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> *</span><span class="identifier-syntax">X</span><span class="plain-syntax"> = </span><a href="3-em.html#SP23" class="function-link"><span class="function-syntax">PL::EPSMap::parse_eps_map_offset</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<pre class="Preform-displayed-code all-displayed-code code-font">
<span class="Preform-function-syntax">&lt;map-offset&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">internal</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">1</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">{</span>
<span class="Preform-plain-syntax"> *</span><span class="Preform-identifier-syntax">X</span><span class="Preform-plain-syntax"> = </span><a href="3-em.html#SP23" class="function-link"><span class="Preform-function-syntax">PL::EPSMap::parse_eps_map_offset</span></a><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">W</span><span class="Preform-plain-syntax">);</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">return</span><span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">TRUE</span><span class="Preform-plain-syntax">;</span>
<span class="Preform-plain-syntax">}</span>
</pre>
<ul class="endnotetexts"><li>This is <a href="../words-module/4-prf.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
<p class="commentary firstcommentary"><a id="SP21"></a><b>&#167;21. </b>The one part of the grammar not explicitly spelled out above was what to do
with the optional text which follows a rubric. This is a sequence of any of
the following:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">&lt;</span><span class="identifier-syntax">map</span><span class="plain-syntax">-</span><span class="identifier-syntax">rubric</span><span class="plain-syntax">&gt; ::=</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">size</span><span class="plain-syntax"> &lt;</span><span class="identifier-syntax">cardinal</span><span class="plain-syntax">-</span><span class="identifier-syntax">number</span><span class="plain-syntax">&gt; *** | ==&gt; </span><span class="constant-syntax">RUBRIC_SIZE</span><span class="plain-syntax">; &lt;&lt;</span><span class="identifier-syntax">rsize</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">R</span><span class="plain-syntax">[1]; &lt;&lt;</span><span class="identifier-syntax">edge</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">WR</span><span class="plain-syntax">[1])</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">font</span><span class="plain-syntax"> {&lt;</span><span class="identifier-syntax">quoted</span><span class="plain-syntax">-</span><span class="identifier-syntax">text</span><span class="plain-syntax">-</span><span class="identifier-syntax">without</span><span class="plain-syntax">-</span><span class="identifier-syntax">subs</span><span class="plain-syntax">&gt;} *** | ==&gt; </span><span class="constant-syntax">RUBRIC_FONT</span><span class="plain-syntax">; &lt;&lt;</span><span class="identifier-syntax">rfont</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">R</span><span class="plain-syntax">[1]; &lt;&lt;</span><span class="identifier-syntax">edge</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">WR</span><span class="plain-syntax">[2])</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">colour</span><span class="plain-syntax"> {&lt;</span><span class="identifier-syntax">quoted</span><span class="plain-syntax">-</span><span class="identifier-syntax">text</span><span class="plain-syntax">-</span><span class="identifier-syntax">without</span><span class="plain-syntax">-</span><span class="identifier-syntax">subs</span><span class="plain-syntax">&gt;} *** | ==&gt; </span><span class="constant-syntax">RUBRIC_COLOUR</span><span class="plain-syntax">; &lt;&lt;</span><span class="identifier-syntax">rcol</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">R</span><span class="plain-syntax">[1]; &lt;&lt;</span><span class="identifier-syntax">edge</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">WR</span><span class="plain-syntax">[2])</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> &lt;</span><span class="identifier-syntax">map</span><span class="plain-syntax">-</span><span class="identifier-syntax">offset</span><span class="plain-syntax">&gt; </span><span class="identifier-syntax">from</span><span class="plain-syntax"> ... | ==&gt; </span><span class="constant-syntax">RUBRIC_OFFSET</span><span class="plain-syntax">; &lt;&lt;</span><span class="identifier-syntax">roff</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">R</span><span class="plain-syntax">[1]; &lt;&lt;</span><span class="identifier-syntax">edge</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">WR</span><span class="plain-syntax">[1])</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> &lt;</span><span class="identifier-syntax">map</span><span class="plain-syntax">-</span><span class="identifier-syntax">offset</span><span class="plain-syntax">&gt; *** ==&gt; </span><span class="constant-syntax">RUBRIC_POSITION</span><span class="plain-syntax">; &lt;&lt;</span><span class="identifier-syntax">roff</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">R</span><span class="plain-syntax">[1]; &lt;&lt;</span><span class="identifier-syntax">edge</span><span class="plain-syntax">&gt;&gt; = </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">WR</span><span class="plain-syntax">[1])</span>
<pre class="Preform-displayed-code all-displayed-code code-font">
<span class="Preform-function-syntax">&lt;map-rubric&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">size</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;cardinal-number&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">***</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> RUBRIC_SIZE; &lt;&lt;rsize&gt;&gt; = R[1]; &lt;&lt;edge&gt;&gt; = Wordings::first_wn(WR[1])</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">font</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">{&lt;quoted-text-without-subs&gt;}</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">***</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> RUBRIC_FONT; &lt;&lt;rfont&gt;&gt; = R[1]; &lt;&lt;edge&gt;&gt; = Wordings::first_wn(WR[2])</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">colour</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">{&lt;quoted-text-without-subs&gt;}</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">***</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> RUBRIC_COLOUR; &lt;&lt;rcol&gt;&gt; = R[1]; &lt;&lt;edge&gt;&gt; = Wordings::first_wn(WR[2])</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">at</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;map-offset&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">from</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> RUBRIC_OFFSET; &lt;&lt;roff&gt;&gt; = R[1]; &lt;&lt;edge&gt;&gt; = Wordings::first_wn(WR[1])</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">at</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;map-offset&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">***</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> RUBRIC_POSITION; &lt;&lt;roff&gt;&gt; = R[1]; &lt;&lt;edge&gt;&gt; = Wordings::first_wn(WR[1])</span>
</pre>
<ul class="endnotetexts"><li>This is <a href="../words-module/4-prf.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
<p class="commentary firstcommentary"><a id="SP22"></a><b>&#167;22. </b></p>
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">NO_IMW</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">EPSFILE_IMW</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">MAPPED_AS_IMW</span><span class="plain-syntax"> </span><span class="constant-syntax">2</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">MAPPED_IMW</span><span class="plain-syntax"> </span><span class="constant-syntax">3</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">SETTING_IMW</span><span class="plain-syntax"> </span><span class="constant-syntax">4</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">RUBRIC_IMW</span><span class="plain-syntax"> </span><span class="constant-syntax">5</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">RUBRIC_SIZE</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">RUBRIC_FONT</span><span class="plain-syntax"> </span><span class="constant-syntax">2</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">RUBRIC_COLOUR</span><span class="plain-syntax"> </span><span class="constant-syntax">3</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">RUBRIC_OFFSET</span><span class="plain-syntax"> </span><span class="constant-syntax">4</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">RUBRIC_POSITION</span><span class="plain-syntax"> </span><span class="constant-syntax">5</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">FIRST_ROOM_MAP_SCOPE</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">LEVEL_MAP_SCOPE</span><span class="plain-syntax"> </span><span class="constant-syntax">2</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">KIND_MAP_SCOPE</span><span class="plain-syntax"> </span><span class="constant-syntax">3</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">INSTANCE_MAP_SCOPE</span><span class="plain-syntax"> </span><span class="constant-syntax">4</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">ENTIRE_MAP_SCOPE</span><span class="plain-syntax"> </span><span class="constant-syntax">5</span>
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="Preform-constant-syntax">NO_IMW</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">0</span>
<span class="definition-keyword">define</span> <span class="Preform-constant-syntax">EPSFILE_IMW</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">1</span>
<span class="definition-keyword">define</span> <span class="Preform-constant-syntax">MAPPED_AS_IMW</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">2</span>
<span class="definition-keyword">define</span> <span class="Preform-constant-syntax">MAPPED_IMW</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">3</span>
<span class="definition-keyword">define</span> <span class="Preform-constant-syntax">SETTING_IMW</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">4</span>
<span class="definition-keyword">define</span> <span class="Preform-constant-syntax">RUBRIC_IMW</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">5</span>
<span class="definition-keyword">define</span> <span class="Preform-constant-syntax">RUBRIC_SIZE</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">1</span>
<span class="definition-keyword">define</span> <span class="Preform-constant-syntax">RUBRIC_FONT</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">2</span>
<span class="definition-keyword">define</span> <span class="Preform-constant-syntax">RUBRIC_COLOUR</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">3</span>
<span class="definition-keyword">define</span> <span class="Preform-constant-syntax">RUBRIC_OFFSET</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">4</span>
<span class="definition-keyword">define</span> <span class="Preform-constant-syntax">RUBRIC_POSITION</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">5</span>
<span class="definition-keyword">define</span> <span class="Preform-constant-syntax">FIRST_ROOM_MAP_SCOPE</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">1</span>
<span class="definition-keyword">define</span> <span class="Preform-constant-syntax">LEVEL_MAP_SCOPE</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">2</span>
<span class="definition-keyword">define</span> <span class="Preform-constant-syntax">KIND_MAP_SCOPE</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">3</span>
<span class="definition-keyword">define</span> <span class="Preform-constant-syntax">INSTANCE_MAP_SCOPE</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">4</span>
<span class="definition-keyword">define</span> <span class="Preform-constant-syntax">ENTIRE_MAP_SCOPE</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">5</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">PL::EPSMap::new_map_hint_sentence</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::EPSMap::new_map_hint_sentence</span></span>:<br/><a href="3-em.html#SP15">&#167;15</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">pass</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
@ -663,8 +671,8 @@ the following:
<span class="plain-syntax"> </span><span class="identifier-syntax">index_map_with_p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">p</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="comment-syntax"> the following take effect on pass 1</span>
<span class="plain-syntax"> &lt;</span><span class="identifier-syntax">index</span><span class="plain-syntax">-</span><span class="identifier-syntax">map</span><span class="plain-syntax">-</span><span class="identifier-syntax">sentence</span><span class="plain-syntax">-</span><span class="identifier-syntax">subject</span><span class="plain-syntax">&gt;(</span><span class="identifier-syntax">ParseTree::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (&lt;&lt;</span><span class="identifier-syntax">r</span><span class="plain-syntax">&gt;&gt;) {</span>
<span class="plain-syntax"> </span><span class="function-syntax">&lt;index-map-sentence-subject&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">ParseTree::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;&lt;r&gt;&gt;</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">EPSFILE_IMW:</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">write_EPS_format_map</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">MAPPED_AS_IMW:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-em.html#SP22_1" class="named-paragraph-link"><span class="named-paragraph">Parse "Index map with starboard mapped as east"-style sentences</span><span class="named-paragraph-number">22.1</span></a></span><span class="plain-syntax">;</span>
@ -685,23 +693,23 @@ the following:
<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">pass</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="3-sm2.html#SP8_5" class="function-link"><span class="function-syntax">PL::SpatialMap::map_direction_as_if</span></a><span class="plain-syntax">(&lt;&lt;</span><span class="identifier-syntax">instance:x</span><span class="plain-syntax">&gt;&gt;, &lt;&lt;</span><span class="identifier-syntax">instance:y</span><span class="plain-syntax">&gt;&gt;);</span>
<span class="plain-syntax"> </span><a href="3-sm2.html#SP8_5" class="function-link"><span class="function-syntax">PL::SpatialMap::map_direction_as_if</span></a><span class="plain-syntax">(</span><span class="function-syntax">&lt;&lt;instance:x&gt;&gt;</span><span class="plain-syntax">, </span><span class="function-syntax">&lt;&lt;instance:y&gt;&gt;</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-em.html#SP22">&#167;22</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP22_2"></a><b>&#167;22.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Parse "Index map with Ballroom mapped north of the Hallway"-style sentences</span><span class="named-paragraph-number">22.2</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Instances::of_kind</span><span class="plain-syntax">(&lt;&lt;</span><span class="identifier-syntax">instance:dir</span><span class="plain-syntax">&gt;&gt;, </span><span class="identifier-syntax">K_direction</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">Instances::of_kind</span><span class="plain-syntax">(</span><span class="function-syntax">&lt;&lt;instance:dir&gt;&gt;</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_direction</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">Problems::Issue::map_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_MapPlacementDirection</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 direction given as a hint for map placement wasn't "</span>
<span class="plain-syntax"> </span><span class="string-syntax">"one that I know of."</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = &lt;&lt;</span><span class="identifier-syntax">instance:x</span><span class="plain-syntax">&gt;&gt;;</span>
<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"> = &lt;&lt;</span><span class="identifier-syntax">instance:y</span><span class="plain-syntax">&gt;&gt;;</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">, &lt;&lt;</span><span class="identifier-syntax">instance:dir</span><span class="plain-syntax">&gt;&gt;)-&gt;</span><span class="element-syntax">direction_index</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="function-syntax">&lt;&lt;instance:x&gt;&gt;</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">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">pass</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><span class="identifier-syntax">Problems::Issue::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>
@ -727,8 +735,8 @@ the following:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">RW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(&lt;</span><span class="identifier-syntax">index</span><span class="plain-syntax">-</span><span class="identifier-syntax">map</span><span class="plain-syntax">-</span><span class="identifier-syntax">sentence</span><span class="plain-syntax">-</span><span class="identifier-syntax">subject</span><span class="plain-syntax">&gt;, </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">RESTW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(&lt;</span><span class="identifier-syntax">index</span><span class="plain-syntax">-</span><span class="identifier-syntax">map</span><span class="plain-syntax">-</span><span class="identifier-syntax">sentence</span><span class="plain-syntax">-</span><span class="identifier-syntax">subject</span><span class="plain-syntax">&gt;, </span><span class="constant-syntax">2</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">RW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax">&lt;index-map-sentence-subject&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">RESTW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax">&lt;index-map-sentence-subject&gt;</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">Word::dequote</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">RW</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">rubric_holder</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rh</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">rubric_holder</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">rh</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">annotation</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Lexer::word_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">RW</span><span class="plain-syntax">));</span>
@ -739,15 +747,15 @@ the following:
<span class="plain-syntax"> </span><span class="identifier-syntax">rh</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">offset_from</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">i</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">RESTW</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">i</span><span class="plain-syntax"> &lt;= </span><span class="identifier-syntax">Wordings::last_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">RESTW</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (&lt;</span><span class="identifier-syntax">map</span><span class="plain-syntax">-</span><span class="identifier-syntax">rubric</span><span class="plain-syntax">&gt;(</span><span class="identifier-syntax">Wordings::from</span><span class="plain-syntax">(</span><span class="identifier-syntax">RESTW</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> = &lt;&lt;</span><span class="identifier-syntax">edge</span><span class="plain-syntax">&gt;&gt;;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (&lt;&lt;</span><span class="identifier-syntax">r</span><span class="plain-syntax">&gt;&gt;) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;map-rubric&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::from</span><span class="plain-syntax">(</span><span class="identifier-syntax">RESTW</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;edge&gt;&gt;</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;&lt;r&gt;&gt;</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">RUBRIC_SIZE:</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">rh</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">point_size</span><span class="plain-syntax"> = &lt;&lt;</span><span class="identifier-syntax">rsize</span><span class="plain-syntax">&gt;&gt;;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">rh</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">point_size</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;rsize&gt;&gt;</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">RUBRIC_FONT:</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Word::dequote</span><span class="plain-syntax">(&lt;&lt;</span><span class="identifier-syntax">rfont</span><span class="plain-syntax">&gt;&gt;);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">rh</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">font</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Lexer::word_text</span><span class="plain-syntax">(&lt;&lt;</span><span class="identifier-syntax">rfont</span><span class="plain-syntax">&gt;&gt;);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Word::dequote</span><span class="plain-syntax">(</span><span class="function-syntax">&lt;&lt;rfont&gt;&gt;</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">rh</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">font</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Lexer::word_text</span><span class="plain-syntax">(</span><span class="function-syntax">&lt;&lt;rfont&gt;&gt;</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">RUBRIC_COLOUR:</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-em.html#SP22_3_1" class="named-paragraph-link"><span class="named-paragraph">Make a rubric colour setting</span><span class="named-paragraph-number">22.3.1</span></a></span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
@ -768,8 +776,8 @@ the following:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">Word::dequote</span><span class="plain-syntax">(&lt;&lt;</span><span class="identifier-syntax">rcol</span><span class="plain-syntax">&gt;&gt;);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">thec</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HTML::translate_colour_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">Lexer::word_text</span><span class="plain-syntax">(&lt;&lt;</span><span class="identifier-syntax">rcol</span><span class="plain-syntax">&gt;&gt;));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Word::dequote</span><span class="plain-syntax">(</span><span class="function-syntax">&lt;&lt;rcol&gt;&gt;</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">thec</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HTML::translate_colour_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">Lexer::word_text</span><span class="plain-syntax">(</span><span class="function-syntax">&lt;&lt;rcol&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">thec</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">Problems::Issue::map_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_MapUnknownColour</span><span class="plain-syntax">), </span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="string-syntax">"There's no such map colour."</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
@ -781,13 +789,13 @@ the following:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (&lt;&lt;</span><span class="identifier-syntax">roff</span><span class="plain-syntax">&gt;&gt; == </span><span class="constant-syntax">ERRONEOUS_OFFSET_VALUE</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;&lt;roff&gt;&gt;</span><span class="plain-syntax"> == </span><span class="constant-syntax">ERRONEOUS_OFFSET_VALUE</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::Issue::map_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_MapUnknownOffset</span><span class="plain-syntax">), </span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="string-syntax">"There's no such offset."</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">rh</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">at_offset</span><span class="plain-syntax"> = &lt;&lt;</span><span class="identifier-syntax">roff</span><span class="plain-syntax">&gt;&gt;;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">rh</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">at_offset</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;roff&gt;&gt;</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (&lt;&lt;</span><span class="identifier-syntax">r</span><span class="plain-syntax">&gt;&gt; == </span><span class="constant-syntax">RUBRIC_OFFSET</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;&lt;r&gt;&gt;</span><span class="plain-syntax"> == </span><span class="constant-syntax">RUBRIC_OFFSET</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="identifier-syntax">Instances::parse_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::from</span><span class="plain-syntax">(</span><span class="identifier-syntax">ParseTree::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">), </span><span class="identifier-syntax">i</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Wordings::last_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">RESTW</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">I</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
@ -812,8 +820,8 @@ the following:
<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">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-em.html#SP22_4_1" class="named-paragraph-link"><span class="named-paragraph">Determine the scope for which the parameter is being set</span><span class="named-paragraph-number">22.4.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">allow_on_pass_2</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">pass</span><span class="plain-syntax"> == </span><span class="constant-syntax">2</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">parameter_name</span><span class="plain-syntax"> = &lt;&lt;</span><span class="identifier-syntax">wchar_t:partext</span><span class="plain-syntax">&gt;&gt;;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">index_of_parameter</span><span class="plain-syntax"> = &lt;&lt;</span><span class="identifier-syntax">parindex</span><span class="plain-syntax">&gt;&gt;;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">parameter_name</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;wchar_t:partext&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">index_of_parameter</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;parindex&gt;&gt;</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-em.html#SP22_4_2" class="named-paragraph-link"><span class="named-paragraph">Check that the value has the right type for this map parameter, and set it</span><span class="named-paragraph-number">22.4.2</span></a></span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-em.html#SP22">&#167;22</a>.</li></ul>
@ -822,14 +830,14 @@ the following:
<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">bad_scope</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">switch</span><span class="plain-syntax"> (&lt;&lt;</span><span class="identifier-syntax">scoping</span><span class="plain-syntax">&gt;&gt;) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;&lt;scoping&gt;&gt;</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">FIRST_ROOM_MAP_SCOPE:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">benchmark_room</span><span class="plain-syntax">) </span><span class="identifier-syntax">scope_I</span><span class="plain-syntax"> = </span><span class="identifier-syntax">benchmark_room</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">LEVEL_MAP_SCOPE:</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="reserved-syntax">return</span><span class="plain-syntax">; </span><span class="comment-syntax"> we'll pick this up on pass 2 when levels exist</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">allow_on_pass_2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">ln</span><span class="plain-syntax"> = &lt;&lt;</span><span class="identifier-syntax">level</span><span class="plain-syntax">&gt;&gt;;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">ln</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;level&gt;&gt;</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">EPS_map_level</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eml</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">eml</span><span class="plain-syntax">, </span><span class="reserved-syntax">EPS_map_level</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">eml</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">contains_rooms</span><span class="plain-syntax">)</span>
@ -844,7 +852,7 @@ the following:
<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">KIND_MAP_SCOPE:</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">scope_k</span><span class="plain-syntax"> = &lt;&lt;</span><span class="identifier-syntax">kind:kscope</span><span class="plain-syntax">&gt;&gt;;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">scope_k</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;kind:kscope&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">Kinds::Compare::lt</span><span class="plain-syntax">(</span><span class="identifier-syntax">scope_k</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="identifier-syntax">scope_k</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">scope_k</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> ((</span><span class="identifier-syntax">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">scope_k</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_room</span><span class="plain-syntax">)) ||</span>
@ -853,9 +861,9 @@ 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">(&lt;&lt;</span><span class="identifier-syntax">instance:iscope</span><span class="plain-syntax">&gt;&gt;)) ||</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">(&lt;&lt;</span><span class="identifier-syntax">instance:iscope</span><span class="plain-syntax">&gt;&gt;)))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">scope_I</span><span class="plain-syntax"> = &lt;&lt;</span><span class="identifier-syntax">instance:iscope</span><span class="plain-syntax">&gt;&gt;;</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><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>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">SPATIAL_MAP</span><span class="plain-syntax">, </span><span class="string-syntax">"Setting for object $O\n"</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">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>
@ -889,25 +897,25 @@ the following:
<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">type_wanted</span><span class="plain-syntax"> = </span><span class="identifier-syntax">global_map_scope</span><span class="plain-syntax">.</span><span class="element-syntax">values</span><span class="plain-syntax">[</span><span class="identifier-syntax">index_of_parameter</span><span class="plain-syntax">].</span><span class="element-syntax">parameter_data_type</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">type_found</span><span class="plain-syntax"> = &lt;&lt;</span><span class="identifier-syntax">msvtype</span><span class="plain-syntax">&gt;&gt;;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">type_found</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;msvtype&gt;&gt;</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">i_wanted_a</span><span class="plain-syntax"> = </span><span class="string-syntax">""</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">wn</span><span class="plain-syntax"> = &lt;&lt;</span><span class="identifier-syntax">msword</span><span class="plain-syntax">&gt;&gt;;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">wn</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;msword&gt;&gt;</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax">(</span><span class="identifier-syntax">type_wanted</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">INT_MDT:</span><span class="plain-syntax"> </span><span class="identifier-syntax">i_wanted_a</span><span class="plain-syntax"> = </span><span class="string-syntax">"an 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">type_found</span><span class="plain-syntax"> == </span><span class="constant-syntax">INT_MDT</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="3-em.html#SP11" class="function-link"><span class="function-syntax">PL::EPSMap::put_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">parameter_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">scope</span><span class="plain-syntax">, </span><span class="identifier-syntax">scope_I</span><span class="plain-syntax">, </span><span class="identifier-syntax">scope_k</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, &lt;&lt;</span><span class="identifier-syntax">msvalue</span><span class="plain-syntax">&gt;&gt;);</span>
<span class="plain-syntax"> </span><a href="3-em.html#SP11" class="function-link"><span class="function-syntax">PL::EPSMap::put_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">parameter_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">scope</span><span class="plain-syntax">, </span><span class="identifier-syntax">scope_I</span><span class="plain-syntax">, </span><span class="identifier-syntax">scope_k</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="function-syntax">&lt;&lt;msvalue&gt;&gt;</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">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">OFF_MDT:</span><span class="plain-syntax"> </span><span class="identifier-syntax">i_wanted_a</span><span class="plain-syntax"> = </span><span class="string-syntax">"an offset in the form 34&amp;-450"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">type_found</span><span class="plain-syntax"> == </span><span class="constant-syntax">OFF_MDT</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="3-em.html#SP11" class="function-link"><span class="function-syntax">PL::EPSMap::put_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">parameter_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">scope</span><span class="plain-syntax">, </span><span class="identifier-syntax">scope_I</span><span class="plain-syntax">, </span><span class="identifier-syntax">scope_k</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, &lt;&lt;</span><span class="identifier-syntax">msvalue</span><span class="plain-syntax">&gt;&gt;);</span>
<span class="plain-syntax"> </span><a href="3-em.html#SP11" class="function-link"><span class="function-syntax">PL::EPSMap::put_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">parameter_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">scope</span><span class="plain-syntax">, </span><span class="identifier-syntax">scope_I</span><span class="plain-syntax">, </span><span class="identifier-syntax">scope_k</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="function-syntax">&lt;&lt;msvalue&gt;&gt;</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">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">BOOL_MDT:</span><span class="plain-syntax"> </span><span class="identifier-syntax">i_wanted_a</span><span class="plain-syntax"> = </span><span class="string-syntax">"'on' or 'off'"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">type_found</span><span class="plain-syntax"> == </span><span class="constant-syntax">BOOL_MDT</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="3-em.html#SP11" class="function-link"><span class="function-syntax">PL::EPSMap::put_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">parameter_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">scope</span><span class="plain-syntax">, </span><span class="identifier-syntax">scope_I</span><span class="plain-syntax">, </span><span class="identifier-syntax">scope_k</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, &lt;&lt;</span><span class="identifier-syntax">msvalue</span><span class="plain-syntax">&gt;&gt;);</span>
<span class="plain-syntax"> </span><a href="3-em.html#SP11" class="function-link"><span class="function-syntax">PL::EPSMap::put_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">parameter_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">scope</span><span class="plain-syntax">, </span><span class="identifier-syntax">scope_I</span><span class="plain-syntax">, </span><span class="identifier-syntax">scope_k</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="function-syntax">&lt;&lt;msvalue&gt;&gt;</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">break</span><span class="plain-syntax">;</span>

View file

@ -35,6 +35,7 @@ function togglePopup(material_id) {
<link href="../docs-assets/Popups.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Preform-Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
</head>
<body class="commentary-font">
@ -1085,8 +1086,8 @@ of the cell. First, the eight cells around the outside:
<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="identifier-syntax">icon_grid</span><span class="plain-syntax">[</span><span class="identifier-syntax">ICON_GRID_POS</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">i1</span><span class="plain-syntax">, </span><span class="identifier-syntax">i2</span><span class="plain-syntax">)];</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">pass</span><span class="plain-syntax"> == </span><span class="constant-syntax">2</span><span class="plain-syntax">) </span><span class="identifier-syntax">bitmap</span><span class="plain-syntax"> &amp;= </span><span class="constant-syntax">CONNECTIVE_BITMAP</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</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="named-paragraph-container code-font"><a href="3-hm.html#SP10_1" class="named-paragraph-link"><span class="named-paragraph">This map cell is empty</span><span class="named-paragraph-number">10.1</span></a></span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-hm.html#SP10_2" class="named-paragraph-link"><span class="named-paragraph">There's something in this map cell</span><span class="named-paragraph-number">10.2</span></a></span><span class="character-syntax">;</span>
<span class="character-syntax">}</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-hm.html#SP10_2" class="named-paragraph-link"><span class="named-paragraph">There's something in this map cell</span><span class="named-paragraph-number">10.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP10_1"></a><b>&#167;10.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">This map cell is empty</span><span class="named-paragraph-number">10.1</span></span><span class="comment-syntax"> =</span>
</p>
@ -1220,18 +1221,18 @@ which are bordered and coloured single-cell tables.
<span 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">) &amp;&amp; (</span><span class="identifier-syntax">I</span><span class="plain-syntax"> == </span><span class="identifier-syntax">benchmark_room</span><span class="plain-syntax">)) </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"b"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">abbrev</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-hm.html#SP11_1_2" class="named-paragraph-link"><span class="named-paragraph">Work out the abbreviation for this room's name</span><span class="named-paragraph-number">11.1.2</span></a></span><span class="character-syntax">;</span>
<span class="character-syntax"> #ifdef HTML_MAP_FONT_SIZE</span>
<span class="character-syntax"> HTML_OPEN_WITH("span", "style=\"font-size:%dpx;\"", HTML_MAP_FONT_SIZE);</span>
<span class="character-syntax"> #endif</span>
<span class="character-syntax"> LOOP_THROUGH_TEXT(pos, abbrev)</span>
<span class="character-syntax"> HTMLFiles::char_out(OUT, Str::get(pos));</span>
<span class="character-syntax"> #ifdef HTML_MAP_FONT_SIZE</span>
<span class="character-syntax"> HTML_CLOSE("span");</span>
<span class="character-syntax"> #endif</span>
<span class="character-syntax"> if ((pass == 1) &amp;&amp; (I == benchmark_room)) HTML_CLOSE("b");</span>
<span class="character-syntax"> if (pass == 1) { HTML::end_colour(OUT); HTML_CLOSE("a"); }</span>
<span class="character-syntax"> DISCARD_TEXT(abbrev);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-hm.html#SP11_1_2" class="named-paragraph-link"><span class="named-paragraph">Work out the abbreviation for this room's name</span><span class="named-paragraph-number">11.1.2</span></a></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">HTML_MAP_FONT_SIZE</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"span"</span><span class="plain-syntax">, </span><span class="string-syntax">"style=\"font-size:%dpx;\""</span><span class="plain-syntax">, </span><span class="identifier-syntax">HTML_MAP_FONT_SIZE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_THROUGH_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">pos</span><span class="plain-syntax">, </span><span class="identifier-syntax">abbrev</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTMLFiles::char_out</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Str::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">pos</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">HTML_MAP_FONT_SIZE</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"span"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">pass</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">I</span><span class="plain-syntax"> == </span><span class="identifier-syntax">benchmark_room</span><span class="plain-syntax">)) </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"b"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">pass</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) { </span><span class="identifier-syntax">HTML::end_colour</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">); </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"a"</span><span class="plain-syntax">); }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">abbrev</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-hm.html#SP11">&#167;11</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP11_1_1"></a><b>&#167;11.1.1. </b>When names are abbreviated for use on the World Index map (for instance,
@ -1240,13 +1241,14 @@ nonterminal; those which match are omitted. So, for instance, "Queen Of The
South" comes out as "QS".
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">&lt;</span><span class="identifier-syntax">map</span><span class="plain-syntax">-</span><span class="identifier-syntax">name</span><span class="plain-syntax">-</span><span class="identifier-syntax">abbreviation</span><span class="plain-syntax">-</span><span class="identifier-syntax">omission</span><span class="plain-syntax">-</span><span class="identifier-syntax">words</span><span class="plain-syntax">&gt; ::=</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">in</span><span class="plain-syntax"> |</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> |</span>
<span class="plain-syntax"> &lt;</span><span class="identifier-syntax">article</span><span class="plain-syntax">&gt;</span>
<pre class="Preform-displayed-code all-displayed-code code-font">
<span class="Preform-function-syntax">&lt;map-name-abbreviation-omission-words&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">in</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">of</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;article&gt;</span>
</pre>
<p class="commentary firstcommentary"><a id="SP11_1_2"></a><b>&#167;11.1.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Work out the abbreviation for this room's name</span><span class="named-paragraph-number">11.1.2</span></span><span class="comment-syntax"> =</span>
<ul class="endnotetexts"><li>This is <a href="../words-module/4-prf.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
<p class="commentary firstcommentary"><a id="SP11_1_2"></a><b>&#167;11.1.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Work out the abbreviation for this room's name</span><span class="named-paragraph-number">11.1.2</span></span><span class="Preform-comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -1255,13 +1257,13 @@ South" comes out as "QS".
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_THROUGH_WORDING</span><span class="plain-syntax">(</span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="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">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) &amp;&amp; (</span><span class="identifier-syntax">i</span><span class="plain-syntax"> &lt; </span><span class="identifier-syntax">Wordings::last_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (&lt;</span><span class="identifier-syntax">map</span><span class="plain-syntax">-</span><span class="identifier-syntax">name</span><span class="plain-syntax">-</span><span class="identifier-syntax">abbreviation</span><span class="plain-syntax">-</span><span class="identifier-syntax">omission</span><span class="plain-syntax">-</span><span class="identifier-syntax">words</span><span class="plain-syntax">&gt;(</span><span class="identifier-syntax">Wordings::one_word</span><span class="plain-syntax">(</span><span class="identifier-syntax">i</span><span class="plain-syntax">)))) </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> (</span><span class="function-syntax">&lt;map-name-abbreviation-omission-words&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::one_word</span><span class="plain-syntax">(</span><span class="identifier-syntax">i</span><span class="plain-syntax">)))) </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Lexer::word_raw_text</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">c</span><span class="plain-syntax">++ &lt; </span><span class="constant-syntax">ABBREV_ROOMS_TO</span><span class="plain-syntax">) </span><span class="identifier-syntax">PUT_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">abbrev</span><span class="plain-syntax">, </span><span class="identifier-syntax">Characters::toupper</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">[0]));</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_THROUGH_WORDING</span><span class="plain-syntax">(</span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="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">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) &amp;&amp; (</span><span class="identifier-syntax">i</span><span class="plain-syntax"> &lt; </span><span class="identifier-syntax">Wordings::last_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (&lt;</span><span class="identifier-syntax">map</span><span class="plain-syntax">-</span><span class="identifier-syntax">name</span><span class="plain-syntax">-</span><span class="identifier-syntax">abbreviation</span><span class="plain-syntax">-</span><span class="identifier-syntax">omission</span><span class="plain-syntax">-</span><span class="identifier-syntax">words</span><span class="plain-syntax">&gt;(</span><span class="identifier-syntax">Wordings::one_word</span><span class="plain-syntax">(</span><span class="identifier-syntax">i</span><span class="plain-syntax">)))) </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> (</span><span class="function-syntax">&lt;map-name-abbreviation-omission-words&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::one_word</span><span class="plain-syntax">(</span><span class="identifier-syntax">i</span><span class="plain-syntax">)))) </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Lexer::word_raw_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">i</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">j</span><span class="plain-syntax">=1; </span><span class="identifier-syntax">p</span><span class="plain-syntax">[</span><span class="identifier-syntax">j</span><span class="plain-syntax">]; </span><span class="identifier-syntax">j</span><span class="plain-syntax">++)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Characters::vowel</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">[</span><span class="identifier-syntax">j</span><span class="plain-syntax">]) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)</span>

View file

@ -21,6 +21,7 @@ function togglePopup(material_id) {
<link href="../docs-assets/Popups.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Preform-Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
</head>
<body class="commentary-font">
@ -94,7 +95,7 @@ built in:
<span class="plain-syntax"> </span><span class="identifier-syntax">BinaryPredicates::new_term</span><span class="plain-syntax">(</span><span class="identifier-syntax">infs_room</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="string-syntax">"adjacent-to"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"adjacent-from"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">Calculus::Schemas::new</span><span class="plain-syntax">(</span><span class="string-syntax">"TestAdjacency(*1,*2)"</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Preform::Nonparsing::wording</span><span class="plain-syntax">(&lt;</span><span class="identifier-syntax">relation</span><span class="plain-syntax">-</span><span class="identifier-syntax">names</span><span class="plain-syntax">&gt;, </span><span class="identifier-syntax">ADJACENCY_RELATION_NAME</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Preform::Nonparsing::wording</span><span class="plain-syntax">(</span><span class="function-syntax">&lt;relation-names&gt;</span><span class="plain-syntax">, </span><span class="identifier-syntax">ADJACENCY_RELATION_NAME</span><span class="plain-syntax">));</span>
<span class="plain-syntax">}</span>
</pre>
@ -171,31 +172,33 @@ want to allow room names to contain direction names on occasion:
<p>The fire hydrant is in West from 47th Street.</p>
</blockquote>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">&lt;</span><span class="identifier-syntax">mapping</span><span class="plain-syntax">-</span><span class="identifier-syntax">relation</span><span class="plain-syntax">-</span><span class="identifier-syntax">construction</span><span class="plain-syntax">&gt; ::=</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">mapping</span><span class="plain-syntax"> ...</span>
<pre class="Preform-displayed-code all-displayed-code code-font">
<span class="Preform-function-syntax">&lt;mapping-relation-construction&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">mapping</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span>
<span class="plain-syntax">&lt;</span><span class="identifier-syntax">mapping</span><span class="plain-syntax">-</span><span class="identifier-syntax">preposition</span><span class="plain-syntax">-</span><span class="identifier-syntax">construction</span><span class="plain-syntax">&gt; ::=</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">mapped</span><span class="plain-syntax"> ... </span><span class="identifier-syntax">of</span><span class="plain-syntax"> |</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">mapped</span><span class="plain-syntax"> ... |</span>
<span class="plain-syntax"> ... </span><span class="identifier-syntax">of</span><span class="plain-syntax"> |</span>
<span class="plain-syntax"> ... </span><span class="identifier-syntax">from</span>
<span class="Preform-function-syntax">&lt;mapping-preposition-construction&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">mapped</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">of</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">mapped</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">of</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">from</span>
</pre>
<ul class="endnotetexts"><li>This is <a href="../words-module/4-prf.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
<p class="commentary firstcommentary"><a id="SP6_2"></a><b>&#167;6.2. </b>Two of the directions are special to mapping, because they have to be parsed
slighly differently. (These are the English names; there is no need to translate
this to other languages.)
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">&lt;</span><span class="identifier-syntax">notable</span><span class="plain-syntax">-</span><span class="identifier-syntax">directions</span><span class="plain-syntax">&gt; ::=</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inside</span><span class="plain-syntax"> |</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">outside</span>
<pre class="Preform-displayed-code all-displayed-code code-font">
<span class="Preform-function-syntax">&lt;notable-directions&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">inside</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">outside</span>
</pre>
<ul class="endnotetexts"><li>This is <a href="../words-module/4-prf.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
<p class="commentary firstcommentary"><a id="SP6_3"></a><b>&#167;6.3. </b></p>
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">MAX_MAPPING_RELATION_NAME_LENGTH</span><span class="plain-syntax"> </span><span class="constant-syntax">MAX_WORDS_IN_DIRECTION</span><span class="plain-syntax">*</span><span class="identifier-syntax">MAX_WORD_LENGTH</span><span class="plain-syntax">+10</span>
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="Preform-constant-syntax">MAX_MAPPING_RELATION_NAME_LENGTH</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">MAX_WORDS_IN_DIRECTION</span><span class="Preform-plain-syntax">*</span><span class="Preform-identifier-syntax">MAX_WORD_LENGTH</span><span class="Preform-plain-syntax">+10</span>
</pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Create the mapping BP for the new direction</span><span class="named-paragraph-number">6.3</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Create the mapping BP for the new direction</span><span class="named-paragraph-number">6.3</span></span><span class="Preform-comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -210,22 +213,22 @@ this to other languages.)
<span class="plain-syntax"> </span><span class="identifier-syntax">bp_term_details</span><span class="plain-syntax"> </span><span class="identifier-syntax">room_term</span><span class="plain-syntax"> = </span><span class="identifier-syntax">BinaryPredicates::new_term</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"> = </span><span class="identifier-syntax">BinaryPredicates::make_pair</span><span class="plain-syntax">(</span><span class="identifier-syntax">MAP_CONNECTING_KBP</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">room_term</span><span class="plain-syntax">, </span><span class="identifier-syntax">room_term</span><span class="plain-syntax">, </span><span class="identifier-syntax">relname</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Preform::Nonparsing::merge</span><span class="plain-syntax">(&lt;</span><span class="identifier-syntax">mapping</span><span class="plain-syntax">-</span><span class="identifier-syntax">relation</span><span class="plain-syntax">-</span><span class="identifier-syntax">construction</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">Preform::Nonparsing::merge</span><span class="plain-syntax">(</span><span class="function-syntax">&lt;mapping-relation-construction&gt;</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">WordAssemblages::from_wording</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)));</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">mpc_form</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"> (&lt;</span><span class="identifier-syntax">notable</span><span class="plain-syntax">-</span><span class="identifier-syntax">directions</span><span class="plain-syntax">&gt;(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) </span><span class="identifier-syntax">mpc_form</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="function-syntax">&lt;notable-directions&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) </span><span class="identifier-syntax">mpc_form</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">preposition_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prep1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Prepositions::make</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Preform::Nonparsing::merge</span><span class="plain-syntax">(&lt;</span><span class="identifier-syntax">mapping</span><span class="plain-syntax">-</span><span class="identifier-syntax">preposition</span><span class="plain-syntax">-</span><span class="identifier-syntax">construction</span><span class="plain-syntax">&gt;, </span><span class="identifier-syntax">mpc_form</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Preform::Nonparsing::merge</span><span class="plain-syntax">(</span><span class="function-syntax">&lt;mapping-preposition-construction&gt;</span><span class="plain-syntax">, </span><span class="identifier-syntax">mpc_form</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WordAssemblages::from_wording</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">preposition_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prep2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Prepositions::make</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Preform::Nonparsing::merge</span><span class="plain-syntax">(&lt;</span><span class="identifier-syntax">mapping</span><span class="plain-syntax">-</span><span class="identifier-syntax">preposition</span><span class="plain-syntax">-</span><span class="identifier-syntax">construction</span><span class="plain-syntax">&gt;, </span><span class="constant-syntax">2</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Preform::Nonparsing::merge</span><span class="plain-syntax">(</span><span class="function-syntax">&lt;mapping-preposition-construction&gt;</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">WordAssemblages::from_wording</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">preposition_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prep3</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Prepositions::make</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Preform::Nonparsing::merge</span><span class="plain-syntax">(&lt;</span><span class="identifier-syntax">mapping</span><span class="plain-syntax">-</span><span class="identifier-syntax">preposition</span><span class="plain-syntax">-</span><span class="identifier-syntax">construction</span><span class="plain-syntax">&gt;, </span><span class="constant-syntax">3</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Preform::Nonparsing::merge</span><span class="plain-syntax">(</span><span class="function-syntax">&lt;mapping-preposition-construction&gt;</span><span class="plain-syntax">, </span><span class="constant-syntax">3</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WordAssemblages::from_wording</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>

View file

@ -21,6 +21,7 @@ function togglePopup(material_id) {
<link href="../docs-assets/Popups.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Preform-Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
</head>
<body class="commentary-font">
@ -97,7 +98,7 @@ following minimal structure, though it will only be relevant for instances of
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">in_region</span><span class="plain-syntax">; </span><span class="comment-syntax"> smallest region containing me (rooms only)</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">in_region_set_at</span><span class="plain-syntax">; </span><span class="comment-syntax"> where this is decided</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">in_region_iname</span><span class="plain-syntax">; </span><span class="comment-syntax"> for testing regional containment found-ins</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">MEMORY_MANAGEMENT</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">regions_data</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure regions_data is private to this section.</li></ul>
@ -138,15 +139,16 @@ for; it recognises the English name when defined by the Standard Rules. (So
there is no need to translate this to other languages.)
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">&lt;</span><span class="identifier-syntax">notable</span><span class="plain-syntax">-</span><span class="identifier-syntax">regions</span><span class="plain-syntax">-</span><span class="identifier-syntax">kinds</span><span class="plain-syntax">&gt; ::=</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">region</span>
<pre class="Preform-displayed-code all-displayed-code code-font">
<span class="Preform-function-syntax">&lt;notable-regions-kinds&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">region</span>
</pre>
<ul class="endnotetexts"><li>This is <a href="../words-module/4-prf.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
<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">int</span><span class="plain-syntax"> </span><span class="function-syntax">PL::Regions::regions_new_base_kind_notify</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::Regions::regions_new_base_kind_notify</span></span>:<br/><a href="3-rgn.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">new_base</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (&lt;</span><span class="identifier-syntax">notable</span><span class="plain-syntax">-</span><span class="identifier-syntax">regions</span><span class="plain-syntax">-</span><span class="identifier-syntax">kinds</span><span class="plain-syntax">&gt;(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;notable-regions-kinds&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">K_region</span><span class="plain-syntax"> = </span><span class="identifier-syntax">new_base</span><span class="plain-syntax">; </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
@ -209,15 +211,16 @@ support for; it recognises the English name when it is defined by the
Standard Rules. (So there is no need to translate this to other languages.)
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">&lt;</span><span class="identifier-syntax">notable</span><span class="plain-syntax">-</span><span class="identifier-syntax">regions</span><span class="plain-syntax">-</span><span class="identifier-syntax">properties</span><span class="plain-syntax">&gt; ::=</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">map</span><span class="plain-syntax"> </span><span class="identifier-syntax">region</span>
<pre class="Preform-displayed-code all-displayed-code code-font">
<span class="Preform-function-syntax">&lt;notable-regions-properties&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">map</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">region</span>
</pre>
<ul class="endnotetexts"><li>This is <a href="../words-module/4-prf.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
<p class="commentary firstcommentary"><a id="SP12"></a><b>&#167;12. </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::regions_new_property_notify</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::Regions::regions_new_property_notify</span></span>:<br/><a href="3-rgn.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (&lt;</span><span class="identifier-syntax">notable</span><span class="plain-syntax">-</span><span class="identifier-syntax">regions</span><span class="plain-syntax">-</span><span class="identifier-syntax">properties</span><span class="plain-syntax">&gt;(</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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;notable-regions-properties&gt;(prn-&gt;</span><span class="element-syntax">name</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">P_map_region</span><span class="plain-syntax"> = </span><span class="identifier-syntax">prn</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
@ -277,7 +280,7 @@ messages which would have been less helpful if core Inform had produced them.
<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::regions_name_to_early_infs</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">PL::Regions::regions_name_to_early_infs</span></span>:<br/><a href="3-rgn.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> **</span><span class="identifier-syntax">infs</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((&lt;</span><span class="identifier-syntax">notable</span><span class="plain-syntax">-</span><span class="identifier-syntax">regions</span><span class="plain-syntax">-</span><span class="identifier-syntax">kinds</span><span class="plain-syntax">&gt;(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) &amp;&amp; (</span><span class="identifier-syntax">K_region</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)) *</span><span class="identifier-syntax">infs</span><span class="plain-syntax"> = </span><span class="identifier-syntax">infs_region</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="function-syntax">&lt;notable-regions-kinds&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) &amp;&amp; (</span><span class="identifier-syntax">K_region</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)) *</span><span class="identifier-syntax">infs</span><span class="plain-syntax"> = </span><span class="identifier-syntax">infs_region</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
@ -291,7 +294,7 @@ messages which would have been less helpful if core Inform had produced them.
<span class="plain-syntax"> </span><span class="identifier-syntax">BinaryPredicates::new_term</span><span class="plain-syntax">(</span><span class="identifier-syntax">Kinds::Knowledge::as_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_object</span><span class="plain-syntax">)),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="string-syntax">"region-contains"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"in-region"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">Calculus::Schemas::new</span><span class="plain-syntax">(</span><span class="string-syntax">"TestRegionalContainment(*2,*1)"</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Preform::Nonparsing::wording</span><span class="plain-syntax">(&lt;</span><span class="identifier-syntax">relation</span><span class="plain-syntax">-</span><span class="identifier-syntax">names</span><span class="plain-syntax">&gt;,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Preform::Nonparsing::wording</span><span class="plain-syntax">(</span><span class="function-syntax">&lt;relation-names&gt;</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">REGIONAL_CONTAINMENT_RELATION_NAME</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BinaryPredicates::set_index_details</span><span class="plain-syntax">(</span><span class="identifier-syntax">R_regional_containment</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="string-syntax">"room/region"</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>

View file

@ -118,15 +118,15 @@ properties.
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PL::Showme::compile_SHOWME_type_subj</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</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">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">na_s</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-sc.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">Skip if this object's definition has nothing to offer SHOWME</span><span class="named-paragraph-number">2.1</span></a></span><span class="character-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-sc.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">Skip if this object's definition has nothing to offer SHOWME</span><span class="named-paragraph-number">2.1</span></a></span><span class="plain-syntax">;</span>
<span class="character-syntax"> Produce::inv_primitive(Emit::tree(), IF_BIP);</span>
<span class="character-syntax"> Produce::down(Emit::tree());</span>
<span class="character-syntax"> InferenceSubjects::emit_element_of_condition(subj, t_0_s);</span>
<span class="character-syntax"> Produce::code(Emit::tree());</span>
<span class="character-syntax"> Produce::down(Emit::tree());</span>
<span class="character-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-sc.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Divide up the sublists of either/or properties in a SHOWME</span><span class="named-paragraph-number">2.2</span></a></span><span class="character-syntax">;</span>
<span class="character-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-sc.html#SP2_3" class="named-paragraph-link"><span class="named-paragraph">Compile code which shows properties inherited from this object's definition</span><span class="named-paragraph-number">2.3</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">());</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InferenceSubjects::emit_element_of_condition</span><span class="plain-syntax">(</span><span class="identifier-syntax">subj</span><span class="plain-syntax">, </span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">());</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">());</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-sc.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Divide up the sublists of either/or properties in a SHOWME</span><span class="named-paragraph-number">2.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-sc.html#SP2_3" class="named-paragraph-link"><span class="named-paragraph">Compile code which shows properties inherited from this object's definition</span><span class="named-paragraph-number">2.3</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">());</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">());</span>
<span class="plain-syntax">}</span>

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