mirror of
https://github.com/ganelson/inform.git
synced 2024-07-05 08:34:22 +03:00
Chipped away at remaining explicit PR counters, which should not exist
This commit is contained in:
parent
0806f3bc16
commit
63efd05db8
|
@ -80,9 +80,8 @@ all deferral requests are redeemed — they would then never be reached.
|
|||
<span class="identifier">pdef</span><span class="plain">-</span><span class="element">>reason</span><span class="plain"> = </span><span class="identifier">reason</span><span class="plain">;</span>
|
||||
<span class="identifier">pdef</span><span class="plain">-</span><span class="element">>deferred_from</span><span class="plain"> = </span><span class="identifier">current_sentence</span><span class="plain">;</span>
|
||||
<span class="identifier">pdef</span><span class="plain">-</span><span class="element">>rtp_iname</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
<span class="identifier">pdef</span><span class="plain">-</span><span class="element">>ppd_iname</span><span class="plain"> = </span><span class="functiontext">Packaging::function</span><span class="plain">(</span><span class="functiontext">Packaging::supply_iname</span><span class="plain">(</span><span class="functiontext">Packaging::current_enclosure</span><span class="plain">(), </span><span class="constant">PROPOSITION_PR_COUNTER</span><span class="plain">), </span><span class="functiontext">Packaging::current_enclosure</span><span class="plain">(), </span><span class="identifier">NULL</span><span class="plain">);</span>
|
||||
|
||||
<span class="identifier">Inter::Symbols::set_flag</span><span class="plain">(</span><span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">pdef</span><span class="plain">-</span><span class="element">>ppd_iname</span><span class="plain">), </span><span class="identifier">MAKE_NAME_UNIQUE</span><span class="plain">);</span>
|
||||
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">PR</span><span class="plain"> = </span><span class="functiontext">Hierarchy::package_in_enclosure</span><span class="plain">(</span><span class="constant">PROPOSITIONS_HAP</span><span class="plain">);</span>
|
||||
<span class="identifier">pdef</span><span class="plain">-</span><span class="element">>ppd_iname</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">PROPOSITION_HL</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">);</span>
|
||||
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">no_further_deferrals</span><span class="plain">) </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"Too late now to defer propositions"</span><span class="plain">);</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">pdef</span><span class="plain">;</span>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<!--Weave of '13/rsfk' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">★</a></li><li><a href="index.html">core</a></li><li><a href="index.html#13">Chapter 13: Bridge to Kinds Module</a></li><li><b>Runtime Support for Kinds</b></li></ul><p class="purpose">To compile I6 material needed at runtime to enable kinds to function as they should.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Definitions</a></li><li><a href="#SP3">§3. Kinds as I6 classes</a></li><li><a href="#SP4">§4. Default values</a></li><li><a href="#SP6">§6. Equality tests</a></li><li><a href="#SP7">§7. Casts at runtime</a></li><li><a href="#SP8">§8. IDs</a></li><li><a href="#SP17">§17. The heap</a></li><li><a href="#SP22">§22. Run-time support for units and enumerations</a></li><li><a href="#SP26_6">§26.6. Further runtime support</a></li></ul><hr class="tocbar">
|
||||
<ul class="toc"><li><a href="#SP1">§1. Definitions</a></li><li><a href="#SP3">§3. Kinds as I6 classes</a></li><li><a href="#SP4">§4. Default values</a></li><li><a href="#SP6">§6. Equality tests</a></li><li><a href="#SP7">§7. Casts at runtime</a></li><li><a href="#SP8">§8. IDs</a></li><li><a href="#SP17">§17. The heap</a></li><li><a href="#SP21">§21. Run-time support for units and enumerations</a></li><li><a href="#SP25_6">§25.6. Further runtime support</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="inwebparagraph"><a id="SP1"></a><b>§1. Definitions. </b></p>
|
||||
|
||||
|
@ -60,7 +60,7 @@ kinds being compiled to an I6 <code class="display"><span class="extract">Class<
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">The function Kinds::RunTime::I6_classname is used in <a href="#SP27">§27</a>, 6/bp (<a href="6-bp.html#SP25">§25</a>), 6/rlt (<a href="6-rlt.html#SP29_2">§29.2</a>, <a href="6-rlt.html#SP29_3">§29.3</a>, <a href="6-rlt.html#SP29_4">§29.4</a>, <a href="6-rlt.html#SP29_5">§29.5</a>, <a href="6-rlt.html#SP29_6">§29.6</a>), 12/ter (<a href="12-ter.html#SP8_6">§8.6</a>), 12/ca (<a href="12-ca.html#SP6_2">§6.2</a>), 12/dtd (<a href="12-dtd.html#SP24">§24</a>), 13/kak (<a href="13-kak.html#SP2">§2</a>), 25/cii (<a href="25-cii.html#SP3_1_1_4_7_1">§3.1.1.4.7.1</a>), 26/iti (<a href="26-iti.html#SP9">§9</a>), 27/is (<a href="27-is.html#SP31_8_1">§31.8.1</a>), 27/hr (<a href="27-hr.html#SP4">§4</a>).</p>
|
||||
<p class="endnote">The function Kinds::RunTime::I6_classname is used in <a href="#SP26">§26</a>, 6/bp (<a href="6-bp.html#SP25">§25</a>), 6/rlt (<a href="6-rlt.html#SP29_2">§29.2</a>, <a href="6-rlt.html#SP29_3">§29.3</a>, <a href="6-rlt.html#SP29_4">§29.4</a>, <a href="6-rlt.html#SP29_5">§29.5</a>, <a href="6-rlt.html#SP29_6">§29.6</a>), 12/ter (<a href="12-ter.html#SP8_6">§8.6</a>), 12/ca (<a href="12-ca.html#SP6_2">§6.2</a>), 12/dtd (<a href="12-dtd.html#SP24">§24</a>), 13/kak (<a href="13-kak.html#SP2">§2</a>), 25/cii (<a href="25-cii.html#SP3_1_1_4_7_1">§3.1.1.4.7.1</a>), 26/iti (<a href="26-iti.html#SP9">§9</a>), 27/is (<a href="27-is.html#SP31_8_1">§31.8.1</a>), 27/hr (<a href="27-hr.html#SP4">§4</a>).</p>
|
||||
|
||||
<p class="endnote">The function Kinds::RunTime::I6_classnumber is used in 16/ic (<a href="16-ic.html#SP6">§6</a>, <a href="16-ic.html#SP12_2">§12.2</a>), 27/in (<a href="27-in.html#SP4">§4</a>).</p>
|
||||
|
||||
|
@ -105,17 +105,21 @@ chosen), but no problem message has been issued about this, or
|
|||
<span class="plain">(</span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">CON_phrase</span><span class="plain">) ||</span>
|
||||
<span class="plain">(</span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">CON_relation</span><span class="plain">)) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">CON_list_of</span><span class="plain">) {</span>
|
||||
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Packaging::enter_current_enclosure</span><span class="plain">();</span>
|
||||
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain"> = </span><span class="functiontext">Kinds::RunTime::begin_block_constant</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">);</span>
|
||||
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">PR</span><span class="plain"> = </span><span class="functiontext">Hierarchy::package_in_enclosure</span><span class="plain">(</span><span class="constant">BLOCK_CONSTANTS_HAP</span><span class="plain">);</span>
|
||||
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">BLOCK_CONSTANT_HL</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">);</span>
|
||||
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Packaging::enter_home_of</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">);</span>
|
||||
<span class="functiontext">Emit::named_late_array_begin</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">, </span><span class="identifier">K_value</span><span class="plain">);</span>
|
||||
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">rks_symb</span><span class="plain"> = </span><span class="functiontext">Kinds::RunTime::compile_default_value_inner</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">);</span>
|
||||
<span class="functiontext">Emit::array_iname_entry</span><span class="plain">(</span><span class="identifier">rks_symb</span><span class="plain">);</span>
|
||||
<span class="functiontext">Emit::array_numeric_entry</span><span class="plain">(0);</span>
|
||||
<span class="functiontext">Kinds::RunTime::end_block_constant</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">);</span>
|
||||
<span class="functiontext">Emit::array_end</span><span class="plain">();</span>
|
||||
<span class="functiontext">Packaging::exit</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">N</span><span class="plain">) </span><span class="functiontext">InterNames::holster</span><span class="plain">(</span><span class="identifier">VH</span><span class="plain">, </span><span class="identifier">N</span><span class="plain">);</span>
|
||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::Compare::eq</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">, </span><span class="identifier">K_stored_action</span><span class="plain">)) {</span>
|
||||
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Packaging::enter_current_enclosure</span><span class="plain">();</span>
|
||||
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain"> = </span><span class="functiontext">Kinds::RunTime::begin_block_constant</span><span class="plain">(</span><span class="identifier">K_stored_action</span><span class="plain">);</span>
|
||||
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">PR</span><span class="plain"> = </span><span class="functiontext">Hierarchy::package_in_enclosure</span><span class="plain">(</span><span class="constant">BLOCK_CONSTANTS_HAP</span><span class="plain">);</span>
|
||||
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">BLOCK_CONSTANT_HL</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">);</span>
|
||||
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Packaging::enter_home_of</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">);</span>
|
||||
<span class="functiontext">Emit::named_late_array_begin</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">, </span><span class="identifier">K_value</span><span class="plain">);</span>
|
||||
<span class="functiontext">Kinds::RunTime::emit_block_value_header</span><span class="plain">(</span><span class="identifier">K_stored_action</span><span class="plain">, </span><span class="identifier">FALSE</span><span class="plain">, 6);</span>
|
||||
<span class="functiontext">Emit::array_iname_entry</span><span class="plain">(</span><span class="identifier">PL::Actions::double_sharp</span><span class="plain">(</span><span class="identifier">PL::Actions::Wait</span><span class="plain">()));</span>
|
||||
<span class="functiontext">Emit::array_numeric_entry</span><span class="plain">(0);</span>
|
||||
|
@ -128,14 +132,16 @@ chosen), but no problem message has been issued about this, or
|
|||
<span class="plain">#</span><span class="identifier">endif</span>
|
||||
<span class="functiontext">Emit::array_numeric_entry</span><span class="plain">(0);</span>
|
||||
<span class="functiontext">Emit::array_numeric_entry</span><span class="plain">(0);</span>
|
||||
<span class="functiontext">Kinds::RunTime::end_block_constant</span><span class="plain">(</span><span class="identifier">K_stored_action</span><span class="plain">);</span>
|
||||
<span class="functiontext">Emit::array_end</span><span class="plain">();</span>
|
||||
<span class="functiontext">Packaging::exit</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">N</span><span class="plain">) </span><span class="functiontext">InterNames::holster</span><span class="plain">(</span><span class="identifier">VH</span><span class="plain">, </span><span class="identifier">N</span><span class="plain">);</span>
|
||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">CON_relation</span><span class="plain">) {</span>
|
||||
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Packaging::enter_current_enclosure</span><span class="plain">();</span>
|
||||
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain"> = </span><span class="functiontext">Kinds::RunTime::begin_block_constant</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">);</span>
|
||||
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">PR</span><span class="plain"> = </span><span class="functiontext">Hierarchy::package_in_enclosure</span><span class="plain">(</span><span class="constant">BLOCK_CONSTANTS_HAP</span><span class="plain">);</span>
|
||||
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">BLOCK_CONSTANT_HL</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">);</span>
|
||||
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Packaging::enter_home_of</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">);</span>
|
||||
<span class="functiontext">Emit::named_late_array_begin</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">, </span><span class="identifier">K_value</span><span class="plain">);</span>
|
||||
<span class="functiontext">Relations::compile_blank_relation</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">);</span>
|
||||
<span class="functiontext">Kinds::RunTime::end_block_constant</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">);</span>
|
||||
<span class="functiontext">Emit::array_end</span><span class="plain">();</span>
|
||||
<span class="functiontext">Packaging::exit</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">N</span><span class="plain">) </span><span class="functiontext">InterNames::holster</span><span class="plain">(</span><span class="identifier">VH</span><span class="plain">, </span><span class="identifier">N</span><span class="plain">);</span>
|
||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> {</span>
|
||||
|
@ -154,11 +160,13 @@ chosen), but no problem message has been issued about this, or
|
|||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::Compare::eq</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">, </span><span class="identifier">K_text</span><span class="plain">)) {</span>
|
||||
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Packaging::enter_current_enclosure</span><span class="plain">();</span>
|
||||
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain"> = </span><span class="functiontext">Kinds::RunTime::begin_block_constant</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">);</span>
|
||||
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">PR</span><span class="plain"> = </span><span class="functiontext">Hierarchy::package_in_enclosure</span><span class="plain">(</span><span class="constant">BLOCK_CONSTANTS_HAP</span><span class="plain">);</span>
|
||||
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">BLOCK_CONSTANT_HL</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">);</span>
|
||||
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Packaging::enter_home_of</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">);</span>
|
||||
<span class="functiontext">Emit::named_late_array_begin</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">, </span><span class="identifier">K_value</span><span class="plain">);</span>
|
||||
<span class="functiontext">Emit::array_iname_entry</span><span class="plain">(</span><span class="functiontext">Hierarchy::find</span><span class="plain">(</span><span class="constant">PACKED_TEXT_STORAGE_HL</span><span class="plain">));</span>
|
||||
<span class="functiontext">Emit::array_iname_entry</span><span class="plain">(</span><span class="functiontext">Hierarchy::find</span><span class="plain">(</span><span class="constant">EMPTY_TEXT_PACKED_HL</span><span class="plain">));</span>
|
||||
<span class="functiontext">Kinds::RunTime::end_block_constant</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">);</span>
|
||||
<span class="functiontext">Emit::array_end</span><span class="plain">();</span>
|
||||
<span class="functiontext">Packaging::exit</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">N</span><span class="plain">) </span><span class="functiontext">InterNames::holster</span><span class="plain">(</span><span class="identifier">VH</span><span class="plain">, </span><span class="identifier">N</span><span class="plain">);</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">TRUE</span><span class="plain">;</span>
|
||||
|
@ -185,7 +193,7 @@ chosen), but no problem message has been issued about this, or
|
|||
|
||||
<p class="endnote">The function Kinds::RunTime::emit_default_value is used in 19/rsft (<a href="19-rsft.html#SP1_1_1_1_1_5">§1.1.1.1.1.5</a>).</p>
|
||||
|
||||
<p class="endnote">The function Kinds::RunTime::emit_default_value_as_val is used in <a href="#SP26_6_2">§26.6.2</a>, 22/pav (<a href="22-pav.html#SP9_2">§9.2</a>), 24/lv (<a href="24-lv.html#SP43">§43</a>), 25/cii (<a href="25-cii.html#SP3_2_1">§3.2.1</a>, <a href="25-cii.html#SP3_5_3">§3.5.3</a>), 25/cp (<a href="25-cp.html#SP3_3_1">§3.3.1</a>).</p>
|
||||
<p class="endnote">The function Kinds::RunTime::emit_default_value_as_val is used in <a href="#SP25_6_2">§25.6.2</a>, 22/pav (<a href="22-pav.html#SP9_2">§9.2</a>), 24/lv (<a href="24-lv.html#SP43">§43</a>), 25/cii (<a href="25-cii.html#SP3_2_1">§3.2.1</a>, <a href="25-cii.html#SP3_5_3">§3.5.3</a>), 25/cp (<a href="25-cp.html#SP3_3_1">§3.3.1</a>).</p>
|
||||
|
||||
<p class="endnote">The function Kinds::RunTime::compile_default_value_vh is used in 5/nv (<a href="5-nv.html#SP25_1">§25.1</a>), 15/vp (<a href="15-vp.html#SP11">§11</a>).</p>
|
||||
|
||||
|
@ -534,7 +542,7 @@ like variables. That's what makes them intermediate.)
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">The function Kinds::RunTime::weak_id is used in <a href="#SP9">§9</a>, <a href="#SP26">§26</a>, <a href="#SP26_1">§26.1</a>, 4/am (<a href="4-am.html#SP20">§20</a>, <a href="4-am.html#SP29_1">§29.1</a>, <a href="4-am.html#SP30">§30</a>, <a href="4-am.html#SP34_2">§34.2</a>).</p>
|
||||
<p class="endnote">The function Kinds::RunTime::weak_id is used in <a href="#SP9">§9</a>, <a href="#SP25">§25</a>, <a href="#SP25_1">§25.1</a>, 4/am (<a href="4-am.html#SP20">§20</a>, <a href="4-am.html#SP29_1">§29.1</a>, <a href="4-am.html#SP30">§30</a>, <a href="4-am.html#SP34_2">§34.2</a>).</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP9"></a><b>§9. </b>And the following compiles an easier-on-the-eye form of the weak ID, but
|
||||
which might occupy up to 31 characters, the maximum length of an I6 identifier:
|
||||
|
@ -570,9 +578,9 @@ which might occupy up to 31 characters, the maximum length of an I6 identifier:
|
|||
|
||||
<p class="endnote">The function Kinds::RunTime::compile_weak_id is used in 12/is (<a href="12-is.html#SP4_3_1">§4.3.1</a>).</p>
|
||||
|
||||
<p class="endnote">The function Kinds::RunTime::emit_weak_id is used in <a href="#SP12">§12</a>, <a href="#SP16_1">§16.1</a>, <a href="#SP21">§21</a>.</p>
|
||||
<p class="endnote">The function Kinds::RunTime::emit_weak_id is used in <a href="#SP12">§12</a>, <a href="#SP16_1">§16.1</a>, <a href="#SP20">§20</a>.</p>
|
||||
|
||||
<p class="endnote">The function Kinds::RunTime::emit_weak_id_as_val is used in <a href="#SP12">§12</a>, <a href="#SP26_6_1">§26.6.1</a>, <a href="#SP26_6_2">§26.6.2</a>, <a href="#SP26_6_3">§26.6.3</a>, <a href="#SP26_6_4">§26.6.4</a>, <a href="#SP26_6_5">§26.6.5</a>, <a href="#SP26_6_6">§26.6.6</a>, 12/is (<a href="12-is.html#SP8">§8</a>), 14/lv (<a href="14-lv.html#SP14_3">§14.3</a>), 21/fao (<a href="21-fao.html#SP10">§10</a>), 25/cii (<a href="25-cii.html#SP3_2_8">§3.2.8</a>).</p>
|
||||
<p class="endnote">The function Kinds::RunTime::emit_weak_id_as_val is used in <a href="#SP12">§12</a>, <a href="#SP25_6_1">§25.6.1</a>, <a href="#SP25_6_2">§25.6.2</a>, <a href="#SP25_6_3">§25.6.3</a>, <a href="#SP25_6_4">§25.6.4</a>, <a href="#SP25_6_5">§25.6.5</a>, <a href="#SP25_6_6">§25.6.6</a>, 12/is (<a href="12-is.html#SP8">§8</a>), 14/lv (<a href="14-lv.html#SP14_3">§14.3</a>), 21/fao (<a href="21-fao.html#SP10">§10</a>), 25/cii (<a href="25-cii.html#SP3_2_8">§3.2.8</a>).</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP10"></a><b>§10. </b>The strong ID is a faithful representation of the <code class="display"><span class="extract">kind</span></code> structure,
|
||||
so we don't need access to its value for comparison purposes; we just need
|
||||
|
@ -651,7 +659,7 @@ turns up. This means remembering everything we've seen, using a new structure:
|
|||
|
||||
<p class="endnote">The function Kinds::RunTime::emit_strong_id is used in <a href="#SP16_1_1">§16.1.1</a>, <a href="#SP16_1_1_1">§16.1.1.1</a>, <a href="#SP16_1_1_2">§16.1.1.2</a>, 6/rlt (<a href="6-rlt.html#SP15_1_4">§15.1.4</a>, <a href="6-rlt.html#SP16">§16</a>), 18/lc (<a href="18-lc.html#SP12_1">§12.1</a>, <a href="18-lc.html#SP13">§13</a>), 22/pav (<a href="22-pav.html#SP8_1">§8.1</a>, <a href="22-pav.html#SP9_1">§9.1</a>).</p>
|
||||
|
||||
<p class="endnote">The function Kinds::RunTime::emit_strong_id_as_val is used in <a href="#SP16_3">§16.3</a>, <a href="#SP20">§20</a>, 6/rlt (<a href="6-rlt.html#SP15">§15</a>, <a href="6-rlt.html#SP15_2_9_1">§15.2.9.1</a>), 12/dtd (<a href="12-dtd.html#SP16">§16</a>, <a href="12-dtd.html#SP17">§17</a>, <a href="12-dtd.html#SP27">§27</a>), 19/tc (<a href="19-tc.html#SP8">§8</a>), 22/pav (<a href="22-pav.html#SP9_2">§9.2</a>), 25/cii (<a href="25-cii.html#SP3_2_7">§3.2.7</a>).</p>
|
||||
<p class="endnote">The function Kinds::RunTime::emit_strong_id_as_val is used in <a href="#SP16_3">§16.3</a>, <a href="#SP19">§19</a>, 6/rlt (<a href="6-rlt.html#SP15">§15</a>, <a href="6-rlt.html#SP15_2_9_1">§15.2.9.1</a>), 12/dtd (<a href="12-dtd.html#SP16">§16</a>, <a href="12-dtd.html#SP17">§17</a>, <a href="12-dtd.html#SP27">§27</a>), 19/tc (<a href="19-tc.html#SP8">§8</a>), 22/pav (<a href="22-pav.html#SP9_2">§9.2</a>), 25/cii (<a href="25-cii.html#SP3_2_7">§3.2.7</a>).</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP13"></a><b>§13. </b>Thus the following routine must return <code class="display"><span class="extract">NULL</span></code> if K is a kind whose weak
|
||||
ID is the same as its strong ID — if it's a base kind, in other words —
|
||||
|
@ -741,15 +749,16 @@ compile under Inform 6.
|
|||
<span class="identifier">rks</span><span class="plain">-</span><span class="element">>kind_described</span><span class="plain"> = </span><span class="identifier">K</span><span class="plain">;</span>
|
||||
<span class="identifier">rks</span><span class="plain">-</span><span class="element">>make_default</span><span class="plain"> = </span><span class="identifier">FALSE</span><span class="plain">;</span>
|
||||
<span class="identifier">rks</span><span class="plain">-</span><span class="element">>default_requested_here</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
<span class="identifier">rks</span><span class="plain">-</span><span class="element">>rks_iname</span><span class="plain"> = </span><span class="functiontext">InterNames::new</span><span class="plain">(</span><span class="constant">KIND_ID_INAMEF</span><span class="plain">);</span>
|
||||
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">PR</span><span class="plain"> = </span><span class="identifier">Kinds::Behaviour::package</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">);</span>
|
||||
<span class="functiontext">Packaging::house</span><span class="plain">(</span><span class="identifier">rks</span><span class="plain">-</span><span class="element">>rks_iname</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">);</span>
|
||||
<span class="comment">rks->rks_iname = InterNames::new(KIND_ID_INAMEF);</span>
|
||||
<span class="comment">Packaging::house(rks->rks_iname, PR);</span>
|
||||
<span class="identifier">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">TEMP</span><span class="plain">);</span>
|
||||
<span class="identifier">Kinds::Textual::write</span><span class="plain">(</span><span class="identifier">TEMP</span><span class="plain">, </span><span class="identifier">K</span><span class="plain">);</span>
|
||||
<span class="identifier">wording</span><span class="plain"> </span><span class="identifier">W</span><span class="plain"> = </span><span class="identifier">Feeds::feed_stream</span><span class="plain">(</span><span class="identifier">TEMP</span><span class="plain">);</span>
|
||||
<span class="identifier">rks</span><span class="plain">-</span><span class="element">>rks_iname</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_with_memo</span><span class="plain">(</span><span class="constant">KIND_HL</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">);</span>
|
||||
<span class="identifier">DISCARD_TEXT</span><span class="plain">(</span><span class="identifier">TEMP</span><span class="plain">);</span>
|
||||
<span class="functiontext">InterNames::attach_memo</span><span class="plain">(</span><span class="identifier">rks</span><span class="plain">-</span><span class="element">>rks_iname</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">);</span>
|
||||
<span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">rks</span><span class="plain">-</span><span class="element">>rks_iname</span><span class="plain">);</span>
|
||||
<span class="comment">InterNames::attach_memo(rks->rks_iname, W);</span>
|
||||
<span class="comment">InterNames::to_symbol(rks->rks_iname);</span>
|
||||
<span class="identifier">rks</span><span class="plain">-</span><span class="element">>rks_dv_iname</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">DEFAULT_VALUE_HL</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">);</span>
|
||||
</pre>
|
||||
|
||||
|
@ -783,7 +792,7 @@ values for kinds, since both involve tracking constructions uniquely.
|
|||
|
||||
<p class="endnote">The function Kinds::RunTime::compile_default_value_inner is used in <a href="#SP4">§4</a>.</p>
|
||||
|
||||
<p class="endnote">The function Kinds::RunTime::precompile_default_value is used in <a href="#SP20">§20</a>.</p>
|
||||
<p class="endnote">The function Kinds::RunTime::precompile_default_value is used in <a href="#SP19">§19</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP15"></a><b>§15. </b>Convenient storage for some names.
|
||||
</p>
|
||||
|
@ -1085,29 +1094,7 @@ has essentially no memory constraints compared with the Z-machine.
|
|||
|
||||
<p class="endnote">This code is used in <a href="#SP18">§18</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP19"></a><b>§19. </b></p>
|
||||
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="functiontext">Kinds::RunTime::begin_block_constant</span><span class="plain">(</span><span class="identifier">kind</span><span class="plain"> *</span><span class="identifier">K</span><span class="plain">) {</span>
|
||||
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain"> = </span><span class="functiontext">Packaging::supply_iname</span><span class="plain">(</span><span class="functiontext">Packaging::current_enclosure</span><span class="plain">(), </span><span class="constant">BLOCK_CONSTANT_PR_COUNTER</span><span class="plain">);</span>
|
||||
<span class="identifier">Inter::Symbols::set_flag</span><span class="plain">(</span><span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">), </span><span class="identifier">MAKE_NAME_UNIQUE</span><span class="plain">);</span>
|
||||
<span class="functiontext">Emit::named_late_array_begin</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">, </span><span class="identifier">K_value</span><span class="plain">);</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">N</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Kinds::RunTime::end_block_constant</span><span class="plain">(</span><span class="identifier">kind</span><span class="plain"> *</span><span class="identifier">K</span><span class="plain">) {</span>
|
||||
<span class="functiontext">Emit::array_end</span><span class="plain">();</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">The function Kinds::RunTime::begin_block_constant is used in <a href="#SP4">§4</a>, 17/tl (<a href="17-tl.html#SP16">§16</a>), 17/ts (<a href="17-ts.html#SP8_1">§8.1</a>), 18/lc (<a href="18-lc.html#SP11">§11</a>).</p>
|
||||
|
||||
<p class="endnote">The function Kinds::RunTime::end_block_constant is used in <a href="#SP4">§4</a>, 17/tl (<a href="17-tl.html#SP16">§16</a>), 17/ts (<a href="17-ts.html#SP8_1">§8.1</a>), 18/lc (<a href="18-lc.html#SP11">§11</a>).</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP20"></a><b>§20. </b>The following routine both compiles code to create a pointer value, and
|
||||
<p class="inwebparagraph"><a id="SP19"></a><b>§19. </b>The following routine both compiles code to create a pointer value, and
|
||||
also increments the heap allocation suitably. Each pointer-value kind comes
|
||||
with an estimate of its likely size needs — its exact size needs if it is
|
||||
fixed in size, and a reasonable overestimate of typical usage if it is
|
||||
|
@ -1169,7 +1156,7 @@ list of 20 texts. For the cases above, it's always 1.
|
|||
|
||||
<p class="endnote">The structure heap_allocation is private to this section.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP21"></a><b>§21. </b></p>
|
||||
<p class="inwebparagraph"><a id="SP20"></a><b>§20. </b></p>
|
||||
|
||||
|
||||
<pre class="definitions">
|
||||
|
@ -1203,7 +1190,7 @@ list of 20 texts. For the cases above, it's always 1.
|
|||
|
||||
<p class="endnote">The function Kinds::RunTime::emit_block_value_header is used in <a href="#SP4">§4</a>, 6/rlt (<a href="6-rlt.html#SP15_1">§15.1</a>, <a href="6-rlt.html#SP16">§16</a>), 18/lc (<a href="18-lc.html#SP12_1">§12.1</a>, <a href="18-lc.html#SP13">§13</a>).</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP22"></a><b>§22. Run-time support for units and enumerations. </b>The following generates a small suite of I6 routines associated with
|
||||
<p class="inwebparagraph"><a id="SP21"></a><b>§21. Run-time support for units and enumerations. </b>The following generates a small suite of I6 routines associated with
|
||||
each such kind, and needed at run-time.
|
||||
</p>
|
||||
|
||||
|
@ -1225,11 +1212,11 @@ each such kind, and needed at run-time.
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">The function Kinds::RunTime::base_represented_in_inter is used in <a href="#SP24">§24</a>, <a href="#SP25">§25</a>, <a href="#SP26">§26</a>.</p>
|
||||
<p class="endnote">The function Kinds::RunTime::base_represented_in_inter is used in <a href="#SP23">§23</a>, <a href="#SP24">§24</a>, <a href="#SP25">§25</a>.</p>
|
||||
|
||||
<p class="endnote">The structure kind_interaction is private to this section.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP23"></a><b>§23. </b></p>
|
||||
<p class="inwebparagraph"><a id="SP22"></a><b>§22. </b></p>
|
||||
|
||||
|
||||
<pre class="display">
|
||||
|
@ -1243,7 +1230,7 @@ each such kind, and needed at run-time.
|
|||
|
||||
<p class="endnote">The function Kinds::RunTime::package is used in <a href="#SP15">§15</a>, 15/epv (<a href="15-epv.html#SP2">§2</a>), 22/pav (<a href="22-pav.html#SP9">§9</a>), 27/ei (<a href="27-ei.html#SP4">§4</a>).</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP24"></a><b>§24. </b></p>
|
||||
<p class="inwebparagraph"><a id="SP23"></a><b>§23. </b></p>
|
||||
|
||||
|
||||
<pre class="definitions">
|
||||
|
@ -1267,13 +1254,13 @@ each such kind, and needed at run-time.
|
|||
<span class="identifier">kind</span><span class="plain"> *</span><span class="identifier">operands</span><span class="plain">[</span><span class="constant">MAX_KIND_ARITY</span><span class="plain">];</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">icon</span><span class="plain"> = -1;</span>
|
||||
<span class="identifier">inter_t</span><span class="plain"> </span><span class="identifier">idt</span><span class="plain"> = </span><span class="identifier">ROUTINE_IDT</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">CON_description</span><span class="plain">) </span><<span class="cwebmacro">Run out inter kind for description</span> <span class="cwebmacronumber">24.2</span>>
|
||||
<span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">CON_list_of</span><span class="plain">) </span><<span class="cwebmacro">Run out inter kind for list</span> <span class="cwebmacronumber">24.1</span>>
|
||||
<span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">CON_phrase</span><span class="plain">) </span><<span class="cwebmacro">Run out inter kind for phrase</span> <span class="cwebmacronumber">24.5</span>>
|
||||
<span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">CON_rule</span><span class="plain">) </span><<span class="cwebmacro">Run out inter kind for rule</span> <span class="cwebmacronumber">24.6</span>>
|
||||
<span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">CON_rulebook</span><span class="plain">) </span><<span class="cwebmacro">Run out inter kind for rulebook</span> <span class="cwebmacronumber">24.7</span>>
|
||||
<span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">CON_table_column</span><span class="plain">) </span><<span class="cwebmacro">Run out inter kind for column</span> <span class="cwebmacronumber">24.3</span>>
|
||||
<span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">CON_relation</span><span class="plain">) </span><<span class="cwebmacro">Run out inter kind for relation</span> <span class="cwebmacronumber">24.4</span>>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">CON_description</span><span class="plain">) </span><<span class="cwebmacro">Run out inter kind for description</span> <span class="cwebmacronumber">23.2</span>>
|
||||
<span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">CON_list_of</span><span class="plain">) </span><<span class="cwebmacro">Run out inter kind for list</span> <span class="cwebmacronumber">23.1</span>>
|
||||
<span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">CON_phrase</span><span class="plain">) </span><<span class="cwebmacro">Run out inter kind for phrase</span> <span class="cwebmacronumber">23.5</span>>
|
||||
<span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">CON_rule</span><span class="plain">) </span><<span class="cwebmacro">Run out inter kind for rule</span> <span class="cwebmacronumber">23.6</span>>
|
||||
<span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">CON_rulebook</span><span class="plain">) </span><<span class="cwebmacro">Run out inter kind for rulebook</span> <span class="cwebmacronumber">23.7</span>>
|
||||
<span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">CON_table_column</span><span class="plain">) </span><<span class="cwebmacro">Run out inter kind for column</span> <span class="cwebmacronumber">23.3</span>>
|
||||
<span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">CON_relation</span><span class="plain">) </span><<span class="cwebmacro">Run out inter kind for relation</span> <span class="cwebmacronumber">23.4</span>>
|
||||
<span class="reserved">else</span><span class="plain"> {</span>
|
||||
<span class="identifier">LOG</span><span class="plain">(</span><span class="string">"Unfortunate kind is: $u\</span><span class="plain">n</span><span class="string">"</span><span class="plain">, </span><span class="identifier">K</span><span class="plain">);</span>
|
||||
<span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"unable to represent kind in inter"</span><span class="plain">);</span>
|
||||
|
@ -1287,10 +1274,10 @@ each such kind, and needed at run-time.
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">The function Kinds::RunTime::iname is used in <a href="#SP3">§3</a>, <a href="#SP23">§23</a>, <a href="#SP26">§26</a>, 15/epv (<a href="15-epv.html#SP1">§1</a>), 16/ic (<a href="16-ic.html#SP10">§10</a>), 27/ei (<a href="27-ei.html#SP3">§3</a>).</p>
|
||||
<p class="endnote">The function Kinds::RunTime::iname is used in <a href="#SP3">§3</a>, <a href="#SP22">§22</a>, <a href="#SP25">§25</a>, 15/epv (<a href="15-epv.html#SP1">§1</a>), 16/ic (<a href="16-ic.html#SP10">§10</a>), 27/ei (<a href="27-ei.html#SP3">§3</a>).</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP24_1"></a><b>§24.1. </b><code class="display">
|
||||
<<span class="cwebmacrodefn">Run out inter kind for list</span> <span class="cwebmacronumber">24.1</span>> =
|
||||
<p class="inwebparagraph"><a id="SP23_1"></a><b>§23.1. </b><code class="display">
|
||||
<<span class="cwebmacrodefn">Run out inter kind for list</span> <span class="cwebmacronumber">23.1</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
|
@ -1303,10 +1290,10 @@ each such kind, and needed at run-time.
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP24">§24</a>.</p>
|
||||
<p class="endnote">This code is used in <a href="#SP23">§23</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP24_2"></a><b>§24.2. </b><code class="display">
|
||||
<<span class="cwebmacrodefn">Run out inter kind for description</span> <span class="cwebmacronumber">24.2</span>> =
|
||||
<p class="inwebparagraph"><a id="SP23_2"></a><b>§23.2. </b><code class="display">
|
||||
<<span class="cwebmacrodefn">Run out inter kind for description</span> <span class="cwebmacronumber">23.2</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
|
@ -1318,10 +1305,10 @@ each such kind, and needed at run-time.
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP24">§24</a>.</p>
|
||||
<p class="endnote">This code is used in <a href="#SP23">§23</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP24_3"></a><b>§24.3. </b><code class="display">
|
||||
<<span class="cwebmacrodefn">Run out inter kind for column</span> <span class="cwebmacronumber">24.3</span>> =
|
||||
<p class="inwebparagraph"><a id="SP23_3"></a><b>§23.3. </b><code class="display">
|
||||
<<span class="cwebmacrodefn">Run out inter kind for column</span> <span class="cwebmacronumber">23.3</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
|
@ -1333,10 +1320,10 @@ each such kind, and needed at run-time.
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP24">§24</a>.</p>
|
||||
<p class="endnote">This code is used in <a href="#SP23">§23</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP24_4"></a><b>§24.4. </b><code class="display">
|
||||
<<span class="cwebmacrodefn">Run out inter kind for relation</span> <span class="cwebmacronumber">24.4</span>> =
|
||||
<p class="inwebparagraph"><a id="SP23_4"></a><b>§23.4. </b><code class="display">
|
||||
<<span class="cwebmacrodefn">Run out inter kind for relation</span> <span class="cwebmacronumber">23.4</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
|
@ -1348,10 +1335,10 @@ each such kind, and needed at run-time.
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP24">§24</a>.</p>
|
||||
<p class="endnote">This code is used in <a href="#SP23">§23</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP24_5"></a><b>§24.5. </b><code class="display">
|
||||
<<span class="cwebmacrodefn">Run out inter kind for phrase</span> <span class="cwebmacronumber">24.5</span>> =
|
||||
<p class="inwebparagraph"><a id="SP23_5"></a><b>§23.5. </b><code class="display">
|
||||
<<span class="cwebmacrodefn">Run out inter kind for phrase</span> <span class="cwebmacronumber">23.5</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
|
@ -1372,10 +1359,10 @@ each such kind, and needed at run-time.
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP24">§24</a>.</p>
|
||||
<p class="endnote">This code is used in <a href="#SP23">§23</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP24_6"></a><b>§24.6. </b><code class="display">
|
||||
<<span class="cwebmacrodefn">Run out inter kind for rule</span> <span class="cwebmacronumber">24.6</span>> =
|
||||
<p class="inwebparagraph"><a id="SP23_6"></a><b>§23.6. </b><code class="display">
|
||||
<<span class="cwebmacrodefn">Run out inter kind for rule</span> <span class="cwebmacronumber">23.6</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
|
@ -1387,10 +1374,10 @@ each such kind, and needed at run-time.
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP24">§24</a>.</p>
|
||||
<p class="endnote">This code is used in <a href="#SP23">§23</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP24_7"></a><b>§24.7. </b><code class="display">
|
||||
<<span class="cwebmacrodefn">Run out inter kind for rulebook</span> <span class="cwebmacronumber">24.7</span>> =
|
||||
<p class="inwebparagraph"><a id="SP23_7"></a><b>§23.7. </b><code class="display">
|
||||
<<span class="cwebmacrodefn">Run out inter kind for rulebook</span> <span class="cwebmacronumber">23.7</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
|
@ -1404,9 +1391,9 @@ each such kind, and needed at run-time.
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP24">§24</a>.</p>
|
||||
<p class="endnote">This code is used in <a href="#SP23">§23</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP25"></a><b>§25. </b></p>
|
||||
<p class="inwebparagraph"><a id="SP24"></a><b>§24. </b></p>
|
||||
|
||||
|
||||
<pre class="display">
|
||||
|
@ -1435,11 +1422,11 @@ each such kind, and needed at run-time.
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">The function Kinds::RunTime::iname_inner is used in <a href="#SP24">§24</a>.</p>
|
||||
<p class="endnote">The function Kinds::RunTime::iname_inner is used in <a href="#SP23">§23</a>.</p>
|
||||
|
||||
<p class="endnote">The function Kinds::RunTime::assure_iname_exists is used in 5/un (<a href="5-un.html#SP2">§2</a>).</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP26"></a><b>§26. </b></p>
|
||||
<p class="inwebparagraph"><a id="SP25"></a><b>§25. </b></p>
|
||||
|
||||
|
||||
<pre class="display">
|
||||
|
@ -1509,9 +1496,9 @@ each such kind, and needed at run-time.
|
|||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::Behaviour::stored_as</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">NULL</span><span class="plain">)</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::Behaviour::is_an_enumeration</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">)) {</span>
|
||||
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">printing_rule_name</span><span class="plain"> = </span><span class="identifier">Kinds::Behaviour::get_iname</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">);</span>
|
||||
<<span class="cwebmacro">Compile I6 printing routine for an enumerated kind</span> <span class="cwebmacronumber">26.3</span>><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Compile the A and B routines for an enumerated kind</span> <span class="cwebmacronumber">26.4</span>><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Compile random-ranger routine for this kind</span> <span class="cwebmacronumber">26.5</span>><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Compile I6 printing routine for an enumerated kind</span> <span class="cwebmacronumber">25.3</span>><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Compile the A and B routines for an enumerated kind</span> <span class="cwebmacronumber">25.4</span>><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Compile random-ranger routine for this kind</span> <span class="cwebmacronumber">25.5</span>><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="identifier">LOOP_OVER_BASE_KINDS</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) {</span>
|
||||
|
@ -1521,15 +1508,15 @@ each such kind, and needed at run-time.
|
|||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::Behaviour::stored_as</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">NULL</span><span class="plain">) {</span>
|
||||
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">printing_rule_name</span><span class="plain"> = </span><span class="identifier">Kinds::Behaviour::get_iname</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::Behaviour::is_quasinumerical</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">)) {</span>
|
||||
<<span class="cwebmacro">Compile I6 printing routine for a unit kind</span> <span class="cwebmacronumber">26.2</span>><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Compile random-ranger routine for this kind</span> <span class="cwebmacronumber">26.5</span>><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Compile I6 printing routine for a unit kind</span> <span class="cwebmacronumber">25.2</span>><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Compile random-ranger routine for this kind</span> <span class="cwebmacronumber">25.5</span>><span class="plain">;</span>
|
||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> {</span>
|
||||
<<span class="cwebmacro">Compile I6 printing routine for a vacant but named kind</span> <span class="cwebmacronumber">26.1</span>><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Compile I6 printing routine for a vacant but named kind</span> <span class="cwebmacronumber">25.1</span>><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<<span class="cwebmacro">Compile a suite of I6 routines taking kind IDs as arguments</span> <span class="cwebmacronumber">26.6</span>><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Compile a suite of I6 routines taking kind IDs as arguments</span> <span class="cwebmacronumber">25.6</span>><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
||||
|
@ -1545,7 +1532,7 @@ each such kind, and needed at run-time.
|
|||
|
||||
<p class="endnote">The function Kinds::RunTime::compile_data_type_support_routines is used in 1/mr (<a href="1-mr.html#SP4_14">§4.14</a>).</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP26_1"></a><b>§26.1. </b>A slightly bogus case first. If the source text declares a kind but never
|
||||
<p class="inwebparagraph"><a id="SP25_1"></a><b>§25.1. </b>A slightly bogus case first. If the source text declares a kind but never
|
||||
gives any enumerated values or literal patterns, then such values will never
|
||||
appear at run-time; but we need the printing routine to exist to avoid
|
||||
compilation errors.
|
||||
|
@ -1553,7 +1540,7 @@ compilation errors.
|
|||
|
||||
|
||||
<p class="macrodefinition"><code class="display">
|
||||
<<span class="cwebmacrodefn">Compile I6 printing routine for a vacant but named kind</span> <span class="cwebmacronumber">26.1</span>> =
|
||||
<<span class="cwebmacrodefn">Compile I6 printing routine for a vacant but named kind</span> <span class="cwebmacronumber">25.1</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
|
@ -1573,16 +1560,16 @@ compilation errors.
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP26">§26</a>.</p>
|
||||
<p class="endnote">This code is used in <a href="#SP25">§25</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP26_2"></a><b>§26.2. </b>A unit is printed back with its earliest-defined literal pattern used as
|
||||
<p class="inwebparagraph"><a id="SP25_2"></a><b>§25.2. </b>A unit is printed back with its earliest-defined literal pattern used as
|
||||
notation. If it had no literal patterns, it would come out as decimal numbers,
|
||||
but at present this can't happen.
|
||||
</p>
|
||||
|
||||
|
||||
<p class="macrodefinition"><code class="display">
|
||||
<<span class="cwebmacrodefn">Compile I6 printing routine for a unit kind</span> <span class="cwebmacronumber">26.2</span>> =
|
||||
<<span class="cwebmacrodefn">Compile I6 printing routine for a unit kind</span> <span class="cwebmacronumber">25.2</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
|
@ -1603,10 +1590,10 @@ but at present this can't happen.
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP26">§26</a>.</p>
|
||||
<p class="endnote">This code is used in <a href="#SP25">§25</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP26_3"></a><b>§26.3. </b><code class="display">
|
||||
<<span class="cwebmacrodefn">Compile I6 printing routine for an enumerated kind</span> <span class="cwebmacronumber">26.3</span>> =
|
||||
<p class="inwebparagraph"><a id="SP25_3"></a><b>§25.3. </b><code class="display">
|
||||
<<span class="cwebmacrodefn">Compile I6 printing routine for an enumerated kind</span> <span class="cwebmacronumber">25.3</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
|
@ -1665,9 +1652,9 @@ but at present this can't happen.
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP26">§26</a>.</p>
|
||||
<p class="endnote">This code is used in <a href="#SP25">§25</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP26_4"></a><b>§26.4. </b>The suite of standard routines provided for enumerative types is a little
|
||||
<p class="inwebparagraph"><a id="SP25_4"></a><b>§25.4. </b>The suite of standard routines provided for enumerative types is a little
|
||||
like the one in Ada (<code class="display"><span class="extract">T'Succ</span></code>, <code class="display"><span class="extract">T'Pred</span></code>, and so on).
|
||||
</p>
|
||||
|
||||
|
@ -1684,7 +1671,7 @@ to <code class="display"><span class="extract">A_T1_colour(v)</span></code>.
|
|||
</li></ul>
|
||||
|
||||
<p class="macrodefinition"><code class="display">
|
||||
<<span class="cwebmacrodefn">Compile the A and B routines for an enumerated kind</span> <span class="cwebmacronumber">26.4</span>> =
|
||||
<<span class="cwebmacrodefn">Compile the A and B routines for an enumerated kind</span> <span class="cwebmacronumber">25.4</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
|
@ -1695,26 +1682,26 @@ to <code class="display"><span class="extract">A_T1_colour(v)</span></code>.
|
|||
|
||||
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">iname_i</span><span class="plain"> = </span><span class="identifier">Kinds::Behaviour::get_inc_iname</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">);</span>
|
||||
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Routines::begin</span><span class="plain">(</span><span class="identifier">iname_i</span><span class="plain">);</span>
|
||||
<<span class="cwebmacro">Implement the A routine</span> <span class="cwebmacronumber">26.4.1</span>><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Implement the A routine</span> <span class="cwebmacronumber">25.4.1</span>><span class="plain">;</span>
|
||||
<span class="functiontext">Routines::end</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
|
||||
|
||||
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">iname_d</span><span class="plain"> = </span><span class="identifier">Kinds::Behaviour::get_dec_iname</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">);</span>
|
||||
<span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Routines::begin</span><span class="plain">(</span><span class="identifier">iname_d</span><span class="plain">);</span>
|
||||
<<span class="cwebmacro">Implement the B routine</span> <span class="cwebmacronumber">26.4.2</span>><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Implement the B routine</span> <span class="cwebmacronumber">25.4.2</span>><span class="plain">;</span>
|
||||
<span class="functiontext">Routines::end</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP26">§26</a>.</p>
|
||||
<p class="endnote">This code is used in <a href="#SP25">§25</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP26_4_1"></a><b>§26.4.1. </b>There should be a blue historical plaque on the wall here: this was the
|
||||
<p class="inwebparagraph"><a id="SP25_4_1"></a><b>§25.4.1. </b>There should be a blue historical plaque on the wall here: this was the
|
||||
first routine implemented by emitting Inter code, on 12 November 2017.
|
||||
</p>
|
||||
|
||||
|
||||
<p class="macrodefinition"><code class="display">
|
||||
<<span class="cwebmacrodefn">Implement the A routine</span> <span class="cwebmacronumber">26.4.1</span>> =
|
||||
<<span class="cwebmacrodefn">Implement the A routine</span> <span class="cwebmacronumber">25.4.1</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
|
@ -1749,14 +1736,14 @@ first routine implemented by emitting Inter code, on 12 November 2017.
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP26_4">§26.4</a>.</p>
|
||||
<p class="endnote">This code is used in <a href="#SP25_4">§25.4</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP26_4_2"></a><b>§26.4.2. </b>And this was the second, a few minutes later.
|
||||
<p class="inwebparagraph"><a id="SP25_4_2"></a><b>§25.4.2. </b>And this was the second, a few minutes later.
|
||||
</p>
|
||||
|
||||
|
||||
<p class="macrodefinition"><code class="display">
|
||||
<<span class="cwebmacrodefn">Implement the B routine</span> <span class="cwebmacronumber">26.4.2</span>> =
|
||||
<<span class="cwebmacrodefn">Implement the B routine</span> <span class="cwebmacronumber">25.4.2</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
|
@ -1804,9 +1791,9 @@ first routine implemented by emitting Inter code, on 12 November 2017.
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP26_4">§26.4</a>.</p>
|
||||
<p class="endnote">This code is used in <a href="#SP25_4">§25.4</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP26_5"></a><b>§26.5. </b>And here we add:
|
||||
<p class="inwebparagraph"><a id="SP25_5"></a><b>§25.5. </b>And here we add:
|
||||
</p>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
@ -1819,7 +1806,7 @@ and <code class="display"><span class="extract">b</span></code> inclusive.
|
|||
</li></ul>
|
||||
|
||||
<p class="macrodefinition"><code class="display">
|
||||
<<span class="cwebmacrodefn">Compile random-ranger routine for this kind</span> <span class="cwebmacronumber">26.5</span>> =
|
||||
<<span class="cwebmacrodefn">Compile random-ranger routine for this kind</span> <span class="cwebmacronumber">25.5</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
|
@ -1889,7 +1876,7 @@ and <code class="display"><span class="extract">b</span></code> inclusive.
|
|||
<span class="functiontext">Emit::inv_primitive</span><span class="plain">(</span><span class="identifier">return_interp</span><span class="plain">);</span>
|
||||
<span class="functiontext">Emit::down</span><span class="plain">();</span>
|
||||
<span class="identifier">smaller</span><span class="plain"> = </span><span class="identifier">b_s</span><span class="plain">; </span><span class="identifier">larger</span><span class="plain"> = </span><span class="identifier">a_s</span><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Formula for range</span> <span class="cwebmacronumber">26.5.1</span>><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Formula for range</span> <span class="cwebmacronumber">25.5.1</span>><span class="plain">;</span>
|
||||
<span class="functiontext">Emit::up</span><span class="plain">();</span>
|
||||
<span class="functiontext">Emit::up</span><span class="plain">();</span>
|
||||
<span class="functiontext">Emit::up</span><span class="plain">();</span>
|
||||
|
@ -1897,7 +1884,7 @@ and <code class="display"><span class="extract">b</span></code> inclusive.
|
|||
<span class="functiontext">Emit::inv_primitive</span><span class="plain">(</span><span class="identifier">return_interp</span><span class="plain">);</span>
|
||||
<span class="functiontext">Emit::down</span><span class="plain">();</span>
|
||||
<span class="identifier">smaller</span><span class="plain"> = </span><span class="identifier">a_s</span><span class="plain">; </span><span class="identifier">larger</span><span class="plain"> = </span><span class="identifier">b_s</span><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Formula for range</span> <span class="cwebmacronumber">26.5.1</span>><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Formula for range</span> <span class="cwebmacronumber">25.5.1</span>><span class="plain">;</span>
|
||||
<span class="functiontext">Emit::up</span><span class="plain">();</span>
|
||||
|
||||
<span class="functiontext">Routines::end</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
|
||||
|
@ -1905,10 +1892,10 @@ and <code class="display"><span class="extract">b</span></code> inclusive.
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP26">§26</a> (twice).</p>
|
||||
<p class="endnote">This code is used in <a href="#SP25">§25</a> (twice).</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP26_5_1"></a><b>§26.5.1. </b><code class="display">
|
||||
<<span class="cwebmacrodefn">Formula for range</span> <span class="cwebmacronumber">26.5.1</span>> =
|
||||
<p class="inwebparagraph"><a id="SP25_5_1"></a><b>§25.5.1. </b><code class="display">
|
||||
<<span class="cwebmacrodefn">Formula for range</span> <span class="cwebmacronumber">25.5.1</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
|
@ -1937,39 +1924,39 @@ and <code class="display"><span class="extract">b</span></code> inclusive.
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP26_5">§26.5</a> (twice).</p>
|
||||
<p class="endnote">This code is used in <a href="#SP25_5">§25.5</a> (twice).</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP26_6"></a><b>§26.6. Further runtime support. </b>These last routines are synoptic: they take the ID number of the kind as an
|
||||
<p class="inwebparagraph"><a id="SP25_6"></a><b>§25.6. Further runtime support. </b>These last routines are synoptic: they take the ID number of the kind as an
|
||||
argument, so there is only one of each routine.
|
||||
</p>
|
||||
|
||||
|
||||
<p class="macrodefinition"><code class="display">
|
||||
<<span class="cwebmacrodefn">Compile a suite of I6 routines taking kind IDs as arguments</span> <span class="cwebmacronumber">26.6</span>> =
|
||||
<<span class="cwebmacrodefn">Compile a suite of I6 routines taking kind IDs as arguments</span> <span class="cwebmacronumber">25.6</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
<pre class="displaydefn">
|
||||
<<span class="cwebmacro">Compile PrintKindValuePair</span> <span class="cwebmacronumber">26.6.1</span>><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Compile DefaultValueOfKOV</span> <span class="cwebmacronumber">26.6.2</span>><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Compile KOVComparisonFunction</span> <span class="cwebmacronumber">26.6.3</span>><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Compile KOVDomainSize</span> <span class="cwebmacronumber">26.6.4</span>><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Compile KOVIsBlockValue</span> <span class="cwebmacronumber">26.6.5</span>><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Compile KOVSupportFunction</span> <span class="cwebmacronumber">26.6.6</span>><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Compile PrintKindValuePair</span> <span class="cwebmacronumber">25.6.1</span>><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Compile DefaultValueOfKOV</span> <span class="cwebmacronumber">25.6.2</span>><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Compile KOVComparisonFunction</span> <span class="cwebmacronumber">25.6.3</span>><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Compile KOVDomainSize</span> <span class="cwebmacronumber">25.6.4</span>><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Compile KOVIsBlockValue</span> <span class="cwebmacronumber">25.6.5</span>><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Compile KOVSupportFunction</span> <span class="cwebmacronumber">25.6.6</span>><span class="plain">;</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP26">§26</a>.</p>
|
||||
<p class="endnote">This code is used in <a href="#SP25">§25</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP26_6_1"></a><b>§26.6.1. </b><code class="display"><span class="extract">PrintKindValuePair(K, V)</span></code> prints out the value <code class="display"><span class="extract">V</span></code>, declaring its kind to
|
||||
<p class="inwebparagraph"><a id="SP25_6_1"></a><b>§25.6.1. </b><code class="display"><span class="extract">PrintKindValuePair(K, V)</span></code> prints out the value <code class="display"><span class="extract">V</span></code>, declaring its kind to
|
||||
be <code class="display"><span class="extract">K</span></code>. (Since I6 is typeless and in general the kind of <code class="display"><span class="extract">V</span></code> cannot be
|
||||
deduced from its value alone, <code class="display"><span class="extract">K</span></code> must explicitly be supplied.)
|
||||
</p>
|
||||
|
||||
|
||||
<p class="macrodefinition"><code class="display">
|
||||
<<span class="cwebmacrodefn">Compile PrintKindValuePair</span> <span class="cwebmacronumber">26.6.1</span>> =
|
||||
<<span class="cwebmacrodefn">Compile PrintKindValuePair</span> <span class="cwebmacronumber">25.6.1</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
|
@ -2027,16 +2014,16 @@ deduced from its value alone, <code class="display"><span class="extract">K</spa
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP26_6">§26.6</a>.</p>
|
||||
<p class="endnote">This code is used in <a href="#SP25_6">§25.6</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP26_6_2"></a><b>§26.6.2. </b><code class="display"><span class="extract">DefaultValueOfKOV(K)</span></code> returns the default value for kind <code class="display"><span class="extract">K</span></code>: it's needed,
|
||||
<p class="inwebparagraph"><a id="SP25_6_2"></a><b>§25.6.2. </b><code class="display"><span class="extract">DefaultValueOfKOV(K)</span></code> returns the default value for kind <code class="display"><span class="extract">K</span></code>: it's needed,
|
||||
for instance, when increasing the size of a list of K to include new entries,
|
||||
which have to be given some type-safe value to start out at.
|
||||
</p>
|
||||
|
||||
|
||||
<p class="macrodefinition"><code class="display">
|
||||
<<span class="cwebmacrodefn">Compile DefaultValueOfKOV</span> <span class="cwebmacronumber">26.6.2</span>> =
|
||||
<<span class="cwebmacrodefn">Compile DefaultValueOfKOV</span> <span class="cwebmacronumber">25.6.2</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
|
@ -2104,9 +2091,9 @@ which have to be given some type-safe value to start out at.
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP26_6">§26.6</a>.</p>
|
||||
<p class="endnote">This code is used in <a href="#SP25_6">§25.6</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP26_6_3"></a><b>§26.6.3. </b><code class="display"><span class="extract">KOVComparisonFunction(K)</span></code> returns either the address of a function to
|
||||
<p class="inwebparagraph"><a id="SP25_6_3"></a><b>§25.6.3. </b><code class="display"><span class="extract">KOVComparisonFunction(K)</span></code> returns either the address of a function to
|
||||
perform a comparison between two values, or else 0 to signal that no
|
||||
special sort of comparison is needed. (In which case signed numerical
|
||||
comparison will be used.) The function <code class="display"><span class="extract">F</span></code> may be used in a sorting algorithm,
|
||||
|
@ -2117,7 +2104,7 @@ unless the two values are genuinely equal.
|
|||
|
||||
|
||||
<p class="macrodefinition"><code class="display">
|
||||
<<span class="cwebmacrodefn">Compile KOVComparisonFunction</span> <span class="cwebmacronumber">26.6.3</span>> =
|
||||
<<span class="cwebmacrodefn">Compile KOVComparisonFunction</span> <span class="cwebmacronumber">25.6.3</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
|
@ -2179,10 +2166,10 @@ unless the two values are genuinely equal.
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP26_6">§26.6</a>.</p>
|
||||
<p class="endnote">This code is used in <a href="#SP25_6">§25.6</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP26_6_4"></a><b>§26.6.4. </b><code class="display">
|
||||
<<span class="cwebmacrodefn">Compile KOVDomainSize</span> <span class="cwebmacronumber">26.6.4</span>> =
|
||||
<p class="inwebparagraph"><a id="SP25_6_4"></a><b>§25.6.4. </b><code class="display">
|
||||
<<span class="cwebmacrodefn">Compile KOVDomainSize</span> <span class="cwebmacronumber">25.6.4</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
|
@ -2242,15 +2229,15 @@ unless the two values are genuinely equal.
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP26_6">§26.6</a>.</p>
|
||||
<p class="endnote">This code is used in <a href="#SP25_6">§25.6</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP26_6_5"></a><b>§26.6.5. </b><code class="display"><span class="extract">KOVIsBlockValue(K)</span></code> is true if and only if <code class="display"><span class="extract">K</span></code> is the I6 ID of a kind
|
||||
<p class="inwebparagraph"><a id="SP25_6_5"></a><b>§25.6.5. </b><code class="display"><span class="extract">KOVIsBlockValue(K)</span></code> is true if and only if <code class="display"><span class="extract">K</span></code> is the I6 ID of a kind
|
||||
storing pointers to blocks on the heap.
|
||||
</p>
|
||||
|
||||
|
||||
<p class="macrodefinition"><code class="display">
|
||||
<<span class="cwebmacrodefn">Compile KOVIsBlockValue</span> <span class="cwebmacronumber">26.6.5</span>> =
|
||||
<<span class="cwebmacrodefn">Compile KOVIsBlockValue</span> <span class="cwebmacronumber">25.6.5</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
|
@ -2293,16 +2280,16 @@ storing pointers to blocks on the heap.
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP26_6">§26.6</a>.</p>
|
||||
<p class="endnote">This code is used in <a href="#SP25_6">§25.6</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP26_6_6"></a><b>§26.6.6. </b><code class="display"><span class="extract">KOVSupportFunction(K)</span></code> returns the address of the specific support function
|
||||
<p class="inwebparagraph"><a id="SP25_6_6"></a><b>§25.6.6. </b><code class="display"><span class="extract">KOVSupportFunction(K)</span></code> returns the address of the specific support function
|
||||
for a pointer-value kind <code class="display"><span class="extract">K</span></code>, or returns 0 if <code class="display"><span class="extract">K</span></code> is not such a kind. For what
|
||||
such a function does, see "BlockValues.i6t".
|
||||
</p>
|
||||
|
||||
|
||||
<p class="macrodefinition"><code class="display">
|
||||
<<span class="cwebmacrodefn">Compile KOVSupportFunction</span> <span class="cwebmacronumber">26.6.6</span>> =
|
||||
<<span class="cwebmacrodefn">Compile KOVSupportFunction</span> <span class="cwebmacronumber">25.6.6</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
|
@ -2364,9 +2351,9 @@ such a function does, see "BlockValues.i6t".
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP26_6">§26.6</a>.</p>
|
||||
<p class="endnote">This code is used in <a href="#SP25_6">§25.6</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP27"></a><b>§27. </b>Code for printing names of kinds at run-time. This needn't run quickly, and
|
||||
<p class="inwebparagraph"><a id="SP26"></a><b>§26. </b>Code for printing names of kinds at run-time. This needn't run quickly, and
|
||||
making it a routine rather than using an array saves a few bytes of precious
|
||||
Z-machine array space.
|
||||
</p>
|
||||
|
@ -2406,7 +2393,7 @@ Z-machine array space.
|
|||
|
||||
<p class="endnote">The function Kinds::RunTime::I7_Kind_Name_routine is used in 1/mr (<a href="1-mr.html#SP4_14">§4.14</a>).</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP28"></a><b>§28. </b></p>
|
||||
<p class="inwebparagraph"><a id="SP27"></a><b>§27. </b></p>
|
||||
|
||||
|
||||
<pre class="display">
|
||||
|
|
|
@ -156,10 +156,9 @@ in the source.
|
|||
<span class="identifier">x</span><span class="plain">-</span><span class="element">>unexpanded</span><span class="plain"> = </span><span class="identifier">FALSE</span><span class="plain">;</span>
|
||||
<span class="identifier">x</span><span class="plain">-</span><span class="element">>small_block_array_needed</span><span class="plain"> = </span><span class="identifier">FALSE</span><span class="plain">;</span>
|
||||
<span class="identifier">x</span><span class="plain">-</span><span class="element">>lt_sba_iname</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
<span class="identifier">x</span><span class="plain">-</span><span class="element">>lt_iname</span><span class="plain"> = </span><span class="functiontext">Packaging::supply_iname</span><span class="plain">(</span><span class="functiontext">Packaging::current_enclosure</span><span class="plain">(), </span><span class="constant">LITERAL_PR_COUNTER</span><span class="plain">);</span>
|
||||
<span class="identifier">Inter::Symbols::set_flag</span><span class="plain">(</span><span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">x</span><span class="plain">-</span><span class="element">>lt_iname</span><span class="plain">), </span><span class="identifier">MAKE_NAME_UNIQUE</span><span class="plain">);</span>
|
||||
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">PR</span><span class="plain"> = </span><span class="functiontext">Hierarchy::package_in_enclosure</span><span class="plain">(</span><span class="constant">LITERALS_HAP</span><span class="plain">);</span>
|
||||
<span class="identifier">x</span><span class="plain">-</span><span class="element">>lt_iname</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">TEXT_LITERAL_HL</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">);</span>
|
||||
<span class="functiontext">Emit::annotate_symbol_i</span><span class="plain">(</span><span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">x</span><span class="plain">-</span><span class="element">>lt_iname</span><span class="plain">), </span><span class="identifier">TEXT_LITERAL_IANN</span><span class="plain">, 1);</span>
|
||||
<span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">x</span><span class="plain">-</span><span class="element">>lt_iname</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">wn_quote_suppressed</span><span class="plain"> >= 0) && (</span><span class="identifier">w1</span><span class="plain"> == </span><span class="identifier">wn_quote_suppressed</span><span class="plain">)) </span><span class="identifier">x</span><span class="plain">-</span><span class="element">>unexpanded</span><span class="plain"> = </span><span class="identifier">TRUE</span><span class="plain">;</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">x</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
|
@ -392,7 +391,7 @@ different for compilation purposes.
|
|||
|
||||
<p class="endnote">The function Strings::TextLiterals::compile_quotation is used in 17/rs (<a href="17-rs.html#SP12">§12</a>).</p>
|
||||
|
||||
<p class="endnote">The function Strings::TextLiterals::CCOUNT_QUOTATIONS is used in 13/rsfk (<a href="13-rsfk.html#SP26">§26</a>).</p>
|
||||
<p class="endnote">The function Strings::TextLiterals::CCOUNT_QUOTATIONS is used in 13/rsfk (<a href="13-rsfk.html#SP25">§25</a>).</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP13"></a><b>§13. </b>A version from fixed text:
|
||||
</p>
|
||||
|
@ -533,15 +532,17 @@ number <code class="display"><span class="extract">-1</span></code>).
|
|||
<span class="reserved">literal_text</span><span class="plain"> *</span><span class="functiontext">Strings::TextLiterals::compile_literal_sb</span><span class="plain">(</span><span class="reserved">value_holster</span><span class="plain"> *</span><span class="identifier">VH</span><span class="plain">, </span><span class="identifier">wording</span><span class="plain"> </span><span class="identifier">W</span><span class="plain">) {</span>
|
||||
<span class="reserved">literal_text</span><span class="plain"> *</span><span class="identifier">lt</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">TEST_COMPILATION_MODE</span><span class="plain">(</span><span class="constant">CONSTANT_CMODE</span><span class="plain">)) {</span>
|
||||
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Packaging::enter_current_enclosure</span><span class="plain">();</span>
|
||||
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain"> = </span><span class="functiontext">Kinds::RunTime::begin_block_constant</span><span class="plain">(</span><span class="identifier">K_text</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">N</span><span class="plain">) </span><span class="functiontext">InterNames::holster</span><span class="plain">(</span><span class="identifier">VH</span><span class="plain">, </span><span class="identifier">N</span><span class="plain">);</span>
|
||||
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">PR</span><span class="plain"> = </span><span class="functiontext">Hierarchy::package_in_enclosure</span><span class="plain">(</span><span class="constant">BLOCK_CONSTANTS_HAP</span><span class="plain">);</span>
|
||||
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">BLOCK_CONSTANT_HL</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">);</span>
|
||||
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Packaging::enter_home_of</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">);</span>
|
||||
<span class="functiontext">Emit::named_late_array_begin</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">, </span><span class="identifier">K_value</span><span class="plain">);</span>
|
||||
<span class="identifier">lt</span><span class="plain"> = </span><span class="functiontext">Strings::TextLiterals::compile_literal</span><span class="plain">(</span><span class="identifier">NULL</span><span class="plain">, </span><span class="identifier">FALSE</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">);</span>
|
||||
<span class="functiontext">Emit::array_iname_entry</span><span class="plain">(</span><span class="functiontext">Hierarchy::find</span><span class="plain">(</span><span class="constant">PACKED_TEXT_STORAGE_HL</span><span class="plain">));</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">lt</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="functiontext">Emit::array_iname_entry</span><span class="plain">(</span><span class="functiontext">Hierarchy::find</span><span class="plain">(</span><span class="constant">EMPTY_TEXT_PACKED_HL</span><span class="plain">));</span>
|
||||
<span class="reserved">else</span><span class="plain"> </span><span class="functiontext">Emit::array_iname_entry</span><span class="plain">(</span><span class="identifier">lt</span><span class="plain">-</span><span class="element">>lt_iname</span><span class="plain">);</span>
|
||||
<span class="functiontext">Kinds::RunTime::end_block_constant</span><span class="plain">(</span><span class="identifier">K_text</span><span class="plain">);</span>
|
||||
<span class="functiontext">Emit::array_end</span><span class="plain">();</span>
|
||||
<span class="functiontext">Packaging::exit</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">N</span><span class="plain">) </span><span class="functiontext">InterNames::holster</span><span class="plain">(</span><span class="identifier">VH</span><span class="plain">, </span><span class="identifier">N</span><span class="plain">);</span>
|
||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> {</span>
|
||||
<span class="identifier">lt</span><span class="plain"> = </span><span class="functiontext">Strings::TextLiterals::compile_literal</span><span class="plain">(</span><span class="identifier">VH</span><span class="plain">, </span><span class="identifier">TRUE</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
|
|
@ -245,13 +245,15 @@ that routine later. This appearance of the routine name is called the "cue".
|
|||
<span class="reserved">text_substitution</span><span class="plain"> *</span><span class="identifier">ts</span><span class="plain"> = </span><span class="functiontext">Strings::TextSubstitutions::new_text_substitution</span><span class="plain">(</span><span class="identifier">W</span><span class="plain">, </span><span class="identifier">phsf</span><span class="plain">,</span>
|
||||
<span class="identifier">adopted_rule_for_compilation</span><span class="plain">, </span><span class="identifier">adopted_marker_for_compilation</span><span class="plain">, </span><span class="functiontext">Packaging::current_enclosure</span><span class="plain">());</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">TEST_COMPILATION_MODE</span><span class="plain">(</span><span class="constant">CONSTANT_CMODE</span><span class="plain">)) {</span>
|
||||
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Packaging::enter_current_enclosure</span><span class="plain">();</span>
|
||||
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain"> = </span><span class="functiontext">Kinds::RunTime::begin_block_constant</span><span class="plain">(</span><span class="identifier">K_text</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">N</span><span class="plain">) </span><span class="functiontext">InterNames::holster</span><span class="plain">(</span><span class="identifier">VH</span><span class="plain">, </span><span class="identifier">N</span><span class="plain">);</span>
|
||||
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">PR</span><span class="plain"> = </span><span class="functiontext">Hierarchy::package_in_enclosure</span><span class="plain">(</span><span class="constant">BLOCK_CONSTANTS_HAP</span><span class="plain">);</span>
|
||||
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">BLOCK_CONSTANT_HL</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">);</span>
|
||||
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Packaging::enter_home_of</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">);</span>
|
||||
<span class="functiontext">Emit::named_late_array_begin</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">, </span><span class="identifier">K_value</span><span class="plain">);</span>
|
||||
<span class="functiontext">Emit::array_iname_entry</span><span class="plain">(</span><span class="functiontext">Hierarchy::find</span><span class="plain">(</span><span class="constant">CONSTANT_PACKED_TEXT_STORAGE_HL</span><span class="plain">));</span>
|
||||
<span class="functiontext">Emit::array_iname_entry</span><span class="plain">(</span><span class="identifier">ts</span><span class="plain">-</span><span class="element">>ts_routine_iname</span><span class="plain">);</span>
|
||||
<span class="functiontext">Kinds::RunTime::end_block_constant</span><span class="plain">(</span><span class="identifier">K_text</span><span class="plain">);</span>
|
||||
<span class="functiontext">Emit::array_end</span><span class="plain">();</span>
|
||||
<span class="functiontext">Packaging::exit</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">N</span><span class="plain">) </span><span class="functiontext">InterNames::holster</span><span class="plain">(</span><span class="identifier">VH</span><span class="plain">, </span><span class="identifier">N</span><span class="plain">);</span>
|
||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> {</span>
|
||||
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">tin</span><span class="plain"> = </span><span class="functiontext">Strings::TextSubstitutions::text_substitution_iname</span><span class="plain">(</span><span class="identifier">ts</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext">Holsters::data_acceptable</span><span class="plain">(</span><span class="identifier">VH</span><span class="plain">)) {</span>
|
||||
|
|
|
@ -391,12 +391,14 @@ so there was once a two-page explanation here, but it is now blessedly simple.
|
|||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">incipit</span><span class="plain"> = </span><span class="identifier">Wordings::first_wn</span><span class="plain">(</span><span class="identifier">W</span><span class="plain">);</span>
|
||||
<span class="reserved">literal_list</span><span class="plain"> *</span><span class="identifier">ll</span><span class="plain"> = </span><span class="functiontext">Lists::find_list_at</span><span class="plain">(</span><span class="identifier">incipit</span><span class="plain">+1);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">ll</span><span class="plain">) {</span>
|
||||
<span class="identifier">kind</span><span class="plain"> *</span><span class="identifier">K</span><span class="plain"> = </span><span class="functiontext">Lists::kind_of_ll</span><span class="plain">(</span><span class="identifier">ll</span><span class="plain">, </span><span class="identifier">FALSE</span><span class="plain">);</span>
|
||||
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Packaging::enter_current_enclosure</span><span class="plain">();</span>
|
||||
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain"> = </span><span class="functiontext">Kinds::RunTime::begin_block_constant</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">);</span>
|
||||
<span class="functiontext">Lists::kind_of_ll</span><span class="plain">(</span><span class="identifier">ll</span><span class="plain">, </span><span class="identifier">FALSE</span><span class="plain">);</span>
|
||||
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">PR</span><span class="plain"> = </span><span class="functiontext">Hierarchy::package_in_enclosure</span><span class="plain">(</span><span class="constant">BLOCK_CONSTANTS_HAP</span><span class="plain">);</span>
|
||||
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">BLOCK_CONSTANT_HL</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">);</span>
|
||||
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Packaging::enter_home_of</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">);</span>
|
||||
<span class="functiontext">Emit::named_late_array_begin</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">, </span><span class="identifier">K_value</span><span class="plain">);</span>
|
||||
<span class="functiontext">Emit::array_iname_entry</span><span class="plain">(</span><span class="functiontext">Lists::iname</span><span class="plain">(</span><span class="identifier">ll</span><span class="plain">));</span>
|
||||
<span class="functiontext">Emit::array_numeric_entry</span><span class="plain">(0);</span>
|
||||
<span class="functiontext">Kinds::RunTime::end_block_constant</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">);</span>
|
||||
<span class="functiontext">Emit::array_end</span><span class="plain">();</span>
|
||||
<span class="functiontext">Packaging::exit</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">N</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
|
@ -405,8 +407,8 @@ so there was once a two-page explanation here, but it is now blessedly simple.
|
|||
|
||||
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="functiontext">Lists::iname</span><span class="plain">(</span><span class="reserved">literal_list</span><span class="plain"> *</span><span class="identifier">ll</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">ll</span><span class="plain">-</span><span class="element">>ll_iname</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) {</span>
|
||||
<span class="identifier">ll</span><span class="plain">-</span><span class="element">>ll_iname</span><span class="plain"> = </span><span class="functiontext">Packaging::supply_iname</span><span class="plain">(</span><span class="functiontext">Packaging::current_enclosure</span><span class="plain">(), </span><span class="constant">LITERAL_PR_COUNTER</span><span class="plain">);</span>
|
||||
<span class="identifier">Inter::Symbols::set_flag</span><span class="plain">(</span><span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">ll</span><span class="plain">-</span><span class="element">>ll_iname</span><span class="plain">), </span><span class="identifier">MAKE_NAME_UNIQUE</span><span class="plain">);</span>
|
||||
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">PR</span><span class="plain"> = </span><span class="functiontext">Hierarchy::package_in_enclosure</span><span class="plain">(</span><span class="constant">LITERALS_HAP</span><span class="plain">);</span>
|
||||
<span class="identifier">ll</span><span class="plain">-</span><span class="element">>ll_iname</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">LIST_LITERAL_HL</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">ll</span><span class="plain">-</span><span class="element">>ll_iname</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
|
|
|
@ -164,7 +164,7 @@ this as some kind of marginal will-never-happen case.
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">The function Problems::quote_kind is used in <a href="#SP4">§4</a>, 5/lp (<a href="5-lp.html#SP34_5">§34.5</a>, <a href="5-lp.html#SP34_6">§34.6</a>), 5/ins (<a href="5-ins.html#SP19_1">§19.1</a>), 5/nv (<a href="5-nv.html#SP7_1">§7.1</a>, <a href="5-nv.html#SP23">§23</a>, <a href="5-nv.html#SP25_2">§25.2</a>), 6/tur (<a href="6-tur.html#SP5">§5</a>), 9/tc (<a href="9-tc.html#SP5_4_2_6">§5.4.2.6</a>, <a href="9-tc.html#SP5_4_2_7">§5.4.2.7</a>, <a href="9-tc.html#SP5_4_2_8">§5.4.2.8</a>, <a href="9-tc.html#SP8_1">§8.1</a>), 9/ma (<a href="9-ma.html#SP3_3_39_1">§3.3.39.1</a>), 9/pk (<a href="9-pk.html#SP2_1">§2.1</a>, <a href="9-pk.html#SP4_4">§4.4</a>), 9/pd (<a href="9-pd.html#SP5_6_1">§5.6.1</a>, <a href="9-pd.html#SP7_1_3">§7.1.3</a>), 11/tc (<a href="11-tc.html#SP7_1">§7.1</a>), 11/tcp (<a href="11-tcp.html#SP6_9">§6.9</a>, <a href="11-tcp.html#SP6_10">§6.10</a>, <a href="11-tcp.html#SP6_11">§6.11</a>, <a href="11-tcp.html#SP10">§10</a>, <a href="11-tcp.html#SP11">§11</a>, <a href="11-tcp.html#SP11_3">§11.3</a>, <a href="11-tcp.html#SP12">§12</a>), 12/ter (<a href="12-ter.html#SP5_1">§5.1</a>, <a href="12-ter.html#SP8_4">§8.4</a>), 12/qr (<a href="12-qr.html#SP5">§5</a>), 12/ca (<a href="12-ca.html#SP6_2">§6.2</a>), 13/kak (<a href="13-kak.html#SP7">§7</a>), 13/rsfk (<a href="13-rsfk.html#SP4_1">§4.1</a>, <a href="13-rsfk.html#SP4_2">§4.2</a>, <a href="13-rsfk.html#SP16_2">§16.2</a>, <a href="13-rsfk.html#SP28">§28</a>), 14/ds2 (<a href="14-ds2.html#SP10_1_1_3_1">§10.1.1.3.1</a>, <a href="14-ds2.html#SP11_8_1">§11.8.1</a>, <a href="14-ds2.html#SP11_9_1_1_2_2_2">§11.9.1.1.2.2.2</a>, <a href="14-ds2.html#SP11_9_1_1_3_1_1">§11.9.1.1.3.1.1</a>, <a href="14-ds2.html#SP11_9_1_1_5_2">§11.9.1.1.5.2</a>, <a href="14-ds2.html#SP11_9_1_2_3_3">§11.9.1.2.3.3</a>, <a href="14-ds2.html#SP11_9_1_2_4">§11.9.1.2.4</a>, <a href="14-ds2.html#SP15_4">§15.4</a>, <a href="14-ds2.html#SP19_1">§19.1</a>, <a href="14-ds2.html#SP19_2">§19.2</a>, <a href="14-ds2.html#SP19_2_1">§19.2.1</a>, <a href="14-ds2.html#SP19_5_3_2">§19.5.3.2</a>, <a href="14-ds2.html#SP19_6_1_1">§19.6.1.1</a>, <a href="14-ds2.html#SP19_6_2_1">§19.6.2.1</a>, <a href="14-ds2.html#SP19_6_2_2">§19.6.2.2</a>), 15/vp (<a href="15-vp.html#SP5">§5</a>), 15/cp (<a href="15-cp.html#SP3">§3</a>), 15/tpr (<a href="15-tpr.html#SP5">§5</a>), 15/spr2 (<a href="15-spr2.html#SP9_1">§9.1</a>, <a href="15-spr2.html#SP9_2">§9.2</a>), 15/pov (<a href="15-pov.html#SP4_1">§4.1</a>), 16/in (<a href="16-in.html#SP14">§14</a>), 18/lc (<a href="18-lc.html#SP8_2_1">§8.2.1</a>), 19/tc (<a href="19-tc.html#SP6_1">§6.1</a>, <a href="19-tc.html#SP14_1">§14.1</a>, <a href="19-tc.html#SP15">§15</a>, <a href="19-tc.html#SP15_6">§15.6</a>), 19/tod (<a href="19-tod.html#SP6_2">§6.2</a>, <a href="19-tod.html#SP6_3_3">§6.3.3</a>), 20/eq (<a href="20-eq.html#SP41_4_1">§41.4.1</a>, <a href="20-eq.html#SP41_4_2">§41.4.2</a>, <a href="20-eq.html#SP47_3_2">§47.3.2</a>), 21/rl (<a href="21-rl.html#SP15">§15</a>, <a href="21-rl.html#SP18">§18</a>), 22/pu (<a href="22-pu.html#SP20_1_1_2">§20.1.1.2</a>), 25/ci (<a href="25-ci.html#SP3_1_1_2">§3.1.1.2</a>), 25/cii (<a href="25-cii.html#SP3_2_1_1">§3.2.1.1</a>, <a href="25-cii.html#SP3_1_1_4_7_1_2">§3.1.1.4.7.1.2</a>, <a href="25-cii.html#SP3_5_3">§3.5.3</a>, <a href="25-cii.html#SP3_5_4_3">§3.5.4.3</a>), 25/cp (<a href="25-cp.html#SP5_3_5">§5.3.5</a>).</p>
|
||||
<p class="endnote">The function Problems::quote_kind is used in <a href="#SP4">§4</a>, 5/lp (<a href="5-lp.html#SP34_5">§34.5</a>, <a href="5-lp.html#SP34_6">§34.6</a>), 5/ins (<a href="5-ins.html#SP19_1">§19.1</a>), 5/nv (<a href="5-nv.html#SP7_1">§7.1</a>, <a href="5-nv.html#SP23">§23</a>, <a href="5-nv.html#SP25_2">§25.2</a>), 6/tur (<a href="6-tur.html#SP5">§5</a>), 9/tc (<a href="9-tc.html#SP5_4_2_6">§5.4.2.6</a>, <a href="9-tc.html#SP5_4_2_7">§5.4.2.7</a>, <a href="9-tc.html#SP5_4_2_8">§5.4.2.8</a>, <a href="9-tc.html#SP8_1">§8.1</a>), 9/ma (<a href="9-ma.html#SP3_3_39_1">§3.3.39.1</a>), 9/pk (<a href="9-pk.html#SP2_1">§2.1</a>, <a href="9-pk.html#SP4_4">§4.4</a>), 9/pd (<a href="9-pd.html#SP5_6_1">§5.6.1</a>, <a href="9-pd.html#SP7_1_3">§7.1.3</a>), 11/tc (<a href="11-tc.html#SP7_1">§7.1</a>), 11/tcp (<a href="11-tcp.html#SP6_9">§6.9</a>, <a href="11-tcp.html#SP6_10">§6.10</a>, <a href="11-tcp.html#SP6_11">§6.11</a>, <a href="11-tcp.html#SP10">§10</a>, <a href="11-tcp.html#SP11">§11</a>, <a href="11-tcp.html#SP11_3">§11.3</a>, <a href="11-tcp.html#SP12">§12</a>), 12/ter (<a href="12-ter.html#SP5_1">§5.1</a>, <a href="12-ter.html#SP8_4">§8.4</a>), 12/qr (<a href="12-qr.html#SP5">§5</a>), 12/ca (<a href="12-ca.html#SP6_2">§6.2</a>), 13/kak (<a href="13-kak.html#SP7">§7</a>), 13/rsfk (<a href="13-rsfk.html#SP4_1">§4.1</a>, <a href="13-rsfk.html#SP4_2">§4.2</a>, <a href="13-rsfk.html#SP16_2">§16.2</a>, <a href="13-rsfk.html#SP27">§27</a>), 14/ds2 (<a href="14-ds2.html#SP10_1_1_3_1">§10.1.1.3.1</a>, <a href="14-ds2.html#SP11_8_1">§11.8.1</a>, <a href="14-ds2.html#SP11_9_1_1_2_2_2">§11.9.1.1.2.2.2</a>, <a href="14-ds2.html#SP11_9_1_1_3_1_1">§11.9.1.1.3.1.1</a>, <a href="14-ds2.html#SP11_9_1_1_5_2">§11.9.1.1.5.2</a>, <a href="14-ds2.html#SP11_9_1_2_3_3">§11.9.1.2.3.3</a>, <a href="14-ds2.html#SP11_9_1_2_4">§11.9.1.2.4</a>, <a href="14-ds2.html#SP15_4">§15.4</a>, <a href="14-ds2.html#SP19_1">§19.1</a>, <a href="14-ds2.html#SP19_2">§19.2</a>, <a href="14-ds2.html#SP19_2_1">§19.2.1</a>, <a href="14-ds2.html#SP19_5_3_2">§19.5.3.2</a>, <a href="14-ds2.html#SP19_6_1_1">§19.6.1.1</a>, <a href="14-ds2.html#SP19_6_2_1">§19.6.2.1</a>, <a href="14-ds2.html#SP19_6_2_2">§19.6.2.2</a>), 15/vp (<a href="15-vp.html#SP5">§5</a>), 15/cp (<a href="15-cp.html#SP3">§3</a>), 15/tpr (<a href="15-tpr.html#SP5">§5</a>), 15/spr2 (<a href="15-spr2.html#SP9_1">§9.1</a>, <a href="15-spr2.html#SP9_2">§9.2</a>), 15/pov (<a href="15-pov.html#SP4_1">§4.1</a>), 16/in (<a href="16-in.html#SP14">§14</a>), 18/lc (<a href="18-lc.html#SP8_2_1">§8.2.1</a>), 19/tc (<a href="19-tc.html#SP6_1">§6.1</a>, <a href="19-tc.html#SP14_1">§14.1</a>, <a href="19-tc.html#SP15">§15</a>, <a href="19-tc.html#SP15_6">§15.6</a>), 19/tod (<a href="19-tod.html#SP6_2">§6.2</a>, <a href="19-tod.html#SP6_3_3">§6.3.3</a>), 20/eq (<a href="20-eq.html#SP41_4_1">§41.4.1</a>, <a href="20-eq.html#SP41_4_2">§41.4.2</a>, <a href="20-eq.html#SP47_3_2">§47.3.2</a>), 21/rl (<a href="21-rl.html#SP15">§15</a>, <a href="21-rl.html#SP18">§18</a>), 22/pu (<a href="22-pu.html#SP20_1_1_2">§20.1.1.2</a>), 25/ci (<a href="25-ci.html#SP3_1_1_2">§3.1.1.2</a>), 25/cii (<a href="25-cii.html#SP3_2_1_1">§3.2.1.1</a>, <a href="25-cii.html#SP3_1_1_4_7_1_2">§3.1.1.4.7.1.2</a>, <a href="25-cii.html#SP3_5_3">§3.5.3</a>, <a href="25-cii.html#SP3_5_4_3">§3.5.4.3</a>), 25/cp (<a href="25-cp.html#SP5_3_5">§5.3.5</a>).</p>
|
||||
|
||||
<p class="endnote">The function Problems::expand_kind appears nowhere else.</p>
|
||||
|
||||
|
|
|
@ -460,13 +460,13 @@ scratch work-space which can be used in the compiled code.
|
|||
|
||||
<p class="endnote">The function LocalVariables::add_internal_local_as_symbol_noting is used in 12/cdp (<a href="12-cdp.html#SP2_1_5">§2.1.5</a>).</p>
|
||||
|
||||
<p class="endnote">The function LocalVariables::add_named_call is used in <a href="#SP47">§47</a>, 13/rsfk (<a href="13-rsfk.html#SP26_6_3">§26.6.3</a>), 21/rb (<a href="21-rb.html#SP23">§23</a>), 22/pav (<a href="22-pav.html#SP9_2">§9.2</a>).</p>
|
||||
<p class="endnote">The function LocalVariables::add_named_call is used in <a href="#SP47">§47</a>, 13/rsfk (<a href="13-rsfk.html#SP25_6_3">§25.6.3</a>), 21/rb (<a href="21-rb.html#SP23">§23</a>), 22/pav (<a href="22-pav.html#SP9_2">§9.2</a>).</p>
|
||||
|
||||
<p class="endnote">The function LocalVariables::add_named_call_as_symbol is used in 4/am (<a href="4-am.html#SP43">§43</a>), 5/lp (<a href="5-lp.html#SP27">§27</a>), 6/rlt (<a href="6-rlt.html#SP15_2">§15.2</a>, <a href="6-rlt.html#SP17">§17</a>, <a href="6-rlt.html#SP29_1">§29.1</a>), 6/nv (<a href="6-nv.html#SP18_1">§18.1</a>, <a href="6-nv.html#SP18_2">§18.2</a>), 8/ef (<a href="8-ef.html#SP19">§19</a>), 12/cad (<a href="12-cad.html#SP5">§5</a>), 12/cdp (<a href="12-cdp.html#SP2_1_5">§2.1.5</a>, <a href="12-cdp.html#SP2_1_5_2">§2.1.5.2</a>), 13/rsfk (<a href="13-rsfk.html#SP16_3">§16.3</a>, <a href="13-rsfk.html#SP26_1">§26.1</a>, <a href="13-rsfk.html#SP26_2">§26.2</a>, <a href="13-rsfk.html#SP26_3">§26.3</a>, <a href="13-rsfk.html#SP26_5">§26.5</a>, <a href="13-rsfk.html#SP26_6_1">§26.6.1</a>, <a href="13-rsfk.html#SP26_6_2">§26.6.2</a>, <a href="13-rsfk.html#SP26_6_5">§26.6.5</a>, <a href="13-rsfk.html#SP26_6_6">§26.6.6</a>, <a href="13-rsfk.html#SP27">§27</a>), 17/rs (<a href="17-rs.html#SP6_2">§6.2</a>, <a href="17-rs.html#SP7_2">§7.2</a>), 19/tc (<a href="19-tc.html#SP8">§8</a>), 19/rsft (<a href="19-rsft.html#SP2">§2</a>), 21/rl (<a href="21-rl.html#SP20">§20</a>), 21/rb (<a href="21-rb.html#SP24_1_1">§24.1.1</a>), 21/rl2 (<a href="21-rl2.html#SP14_1">§14.1</a>), 21/fao (<a href="21-fao.html#SP10">§10</a>), 21/sv (<a href="21-sv.html#SP3">§3</a>), 24/ch (<a href="24-ch.html#SP7">§7</a>), 26/uo (<a href="26-uo.html#SP21_1">§21.1</a>, <a href="26-uo.html#SP21_2">§21.2</a>).</p>
|
||||
<p class="endnote">The function LocalVariables::add_named_call_as_symbol is used in 4/am (<a href="4-am.html#SP43">§43</a>), 5/lp (<a href="5-lp.html#SP27">§27</a>), 6/rlt (<a href="6-rlt.html#SP15_2">§15.2</a>, <a href="6-rlt.html#SP17">§17</a>, <a href="6-rlt.html#SP29_1">§29.1</a>), 6/nv (<a href="6-nv.html#SP18_1">§18.1</a>, <a href="6-nv.html#SP18_2">§18.2</a>), 8/ef (<a href="8-ef.html#SP19">§19</a>), 12/cad (<a href="12-cad.html#SP5">§5</a>), 12/cdp (<a href="12-cdp.html#SP2_1_5">§2.1.5</a>, <a href="12-cdp.html#SP2_1_5_2">§2.1.5.2</a>), 13/rsfk (<a href="13-rsfk.html#SP16_3">§16.3</a>, <a href="13-rsfk.html#SP25_1">§25.1</a>, <a href="13-rsfk.html#SP25_2">§25.2</a>, <a href="13-rsfk.html#SP25_3">§25.3</a>, <a href="13-rsfk.html#SP25_5">§25.5</a>, <a href="13-rsfk.html#SP25_6_1">§25.6.1</a>, <a href="13-rsfk.html#SP25_6_2">§25.6.2</a>, <a href="13-rsfk.html#SP25_6_5">§25.6.5</a>, <a href="13-rsfk.html#SP25_6_6">§25.6.6</a>, <a href="13-rsfk.html#SP26">§26</a>), 17/rs (<a href="17-rs.html#SP6_2">§6.2</a>, <a href="17-rs.html#SP7_2">§7.2</a>), 19/tc (<a href="19-tc.html#SP8">§8</a>), 19/rsft (<a href="19-rsft.html#SP2">§2</a>), 21/rl (<a href="21-rl.html#SP20">§20</a>), 21/rb (<a href="21-rb.html#SP24_1_1">§24.1.1</a>), 21/rl2 (<a href="21-rl2.html#SP14_1">§14.1</a>), 21/fao (<a href="21-fao.html#SP10">§10</a>), 21/sv (<a href="21-sv.html#SP3">§3</a>), 24/ch (<a href="24-ch.html#SP7">§7</a>), 26/uo (<a href="26-uo.html#SP21_1">§21.1</a>, <a href="26-uo.html#SP21_2">§21.2</a>).</p>
|
||||
|
||||
<p class="endnote">The function LocalVariables::add_named_call_as_symbol_noting is used in 6/rlt (<a href="6-rlt.html#SP15_2">§15.2</a>).</p>
|
||||
|
||||
<p class="endnote">The function LocalVariables::add_internal_local_c is used in <a href="#SP12">§12</a>, <a href="#SP13">§13</a>, 13/rsfk (<a href="13-rsfk.html#SP26_6_2">§26.6.2</a>, <a href="13-rsfk.html#SP26_6_3">§26.6.3</a>, <a href="13-rsfk.html#SP26_6_4">§26.6.4</a>).</p>
|
||||
<p class="endnote">The function LocalVariables::add_internal_local_c is used in <a href="#SP12">§12</a>, <a href="#SP13">§13</a>, 13/rsfk (<a href="13-rsfk.html#SP25_6_2">§25.6.2</a>, <a href="13-rsfk.html#SP25_6_3">§25.6.3</a>, <a href="13-rsfk.html#SP25_6_4">§25.6.4</a>).</p>
|
||||
|
||||
<p class="endnote">The function LocalVariables::add_internal_local_c_as_symbol is used in 6/rlt (<a href="6-rlt.html#SP15">§15</a>), 21/rb (<a href="21-rb.html#SP24_1_1">§24.1.1</a>).</p>
|
||||
|
||||
|
@ -1648,9 +1648,9 @@ need in the compilation of any given routine:
|
|||
|
||||
<p class="endnote">The function LocalVariables::declare is used in 26/rt (<a href="26-rt.html#SP3">§3</a>, <a href="26-rt.html#SP4">§4</a>, <a href="26-rt.html#SP4_1_1">§4.1.1</a>).</p>
|
||||
|
||||
<p class="endnote">The function LocalVariables::declare_this is used in <a href="#SP8">§8</a>, <a href="#SP10">§10</a>, <a href="#SP11">§11</a>, <a href="#SP27">§27</a>, <a href="#SP28">§28</a>, <a href="#SP29">§29</a>, <a href="#SP41">§41</a>, <a href="#SP43">§43</a>, <a href="#SP45">§45</a>, 4/am (<a href="4-am.html#SP34_2">§34.2</a>), 11/tr (<a href="11-tr.html#SP10">§10</a>), 12/dtd (<a href="12-dtd.html#SP9">§9</a>, <a href="12-dtd.html#SP23">§23</a>, <a href="12-dtd.html#SP25">§25</a>, <a href="12-dtd.html#SP26">§26</a>, <a href="12-dtd.html#SP27">§27</a>), 12/cad (<a href="12-cad.html#SP7">§7</a>), 13/rsfk (<a href="13-rsfk.html#SP26_6_2">§26.6.2</a>, <a href="13-rsfk.html#SP26_6_3">§26.6.3</a>, <a href="13-rsfk.html#SP26_6_4">§26.6.4</a>), 14/lv (<a href="14-lv.html#SP14_1">§14.1</a>, <a href="14-lv.html#SP14_5">§14.5</a>), 14/cn (<a href="14-cn.html#SP16_3">§16.3</a>), 20/eq (<a href="20-eq.html#SP48">§48</a>), 25/cii (<a href="25-cii.html#SP1_2_1">§1.2.1</a>, <a href="25-cii.html#SP3_5_1">§3.5.1</a>, <a href="25-cii.html#SP3_5_3">§3.5.3</a>), 25/cp (<a href="25-cp.html#SP5_3_5">§5.3.5</a>), 27/is (<a href="27-is.html#SP31_9">§31.9</a>).</p>
|
||||
<p class="endnote">The function LocalVariables::declare_this is used in <a href="#SP8">§8</a>, <a href="#SP10">§10</a>, <a href="#SP11">§11</a>, <a href="#SP27">§27</a>, <a href="#SP28">§28</a>, <a href="#SP29">§29</a>, <a href="#SP41">§41</a>, <a href="#SP43">§43</a>, <a href="#SP45">§45</a>, 4/am (<a href="4-am.html#SP34_2">§34.2</a>), 11/tr (<a href="11-tr.html#SP10">§10</a>), 12/dtd (<a href="12-dtd.html#SP9">§9</a>, <a href="12-dtd.html#SP23">§23</a>, <a href="12-dtd.html#SP25">§25</a>, <a href="12-dtd.html#SP26">§26</a>, <a href="12-dtd.html#SP27">§27</a>), 12/cad (<a href="12-cad.html#SP7">§7</a>), 13/rsfk (<a href="13-rsfk.html#SP25_6_2">§25.6.2</a>, <a href="13-rsfk.html#SP25_6_3">§25.6.3</a>, <a href="13-rsfk.html#SP25_6_4">§25.6.4</a>), 14/lv (<a href="14-lv.html#SP14_1">§14.1</a>, <a href="14-lv.html#SP14_5">§14.5</a>), 14/cn (<a href="14-cn.html#SP16_3">§16.3</a>), 20/eq (<a href="20-eq.html#SP48">§48</a>), 25/cii (<a href="25-cii.html#SP1_2_1">§1.2.1</a>, <a href="25-cii.html#SP3_5_1">§3.5.1</a>, <a href="25-cii.html#SP3_5_3">§3.5.3</a>), 25/cp (<a href="25-cp.html#SP5_3_5">§5.3.5</a>), 27/is (<a href="27-is.html#SP31_9">§31.9</a>).</p>
|
||||
|
||||
<p class="endnote">The function LocalVariables::create_and_declare is used in 13/rsfk (<a href="13-rsfk.html#SP26_4_1">§26.4.1</a>, <a href="13-rsfk.html#SP26_4_2">§26.4.2</a>).</p>
|
||||
<p class="endnote">The function LocalVariables::create_and_declare is used in 13/rsfk (<a href="13-rsfk.html#SP25_4_1">§25.4.1</a>, <a href="13-rsfk.html#SP25_4_2">§25.4.2</a>).</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP48"></a><b>§48. </b>Note that a deallocated "let" variable retains its most recent name.
|
||||
</p>
|
||||
|
|
|
@ -189,7 +189,7 @@ behave more like dictionary words and the <code class="display"><span class="ext
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">The function CompiledText::from_wide_string is used in <a href="#SP5">§5</a>, 5/lp (<a href="5-lp.html#SP27_3_1">§27.3.1</a>), 13/rsfk (<a href="13-rsfk.html#SP26_3">§26.3</a>), 17/tl (<a href="17-tl.html#SP14_1">§14.1</a>).</p>
|
||||
<p class="endnote">The function CompiledText::from_wide_string is used in <a href="#SP5">§5</a>, 5/lp (<a href="5-lp.html#SP27_3_1">§27.3.1</a>), 13/rsfk (<a href="13-rsfk.html#SP25_3">§25.3</a>), 17/tl (<a href="17-tl.html#SP14_1">§14.1</a>).</p>
|
||||
|
||||
<p class="endnote">The function CompiledText::from_wide_string_for_emission is used in 25/cii (<a href="25-cii.html#SP3_5_8_1">§3.5.8.1</a>).</p>
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ an I6 routine. Sometimes that's in order to define a phrase, but often not.
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">The function Routines::begin is used in 4/am (<a href="4-am.html#SP34_2">§34.2</a>, <a href="4-am.html#SP43">§43</a>), 5/lp (<a href="5-lp.html#SP27">§27</a>), 5/nv (<a href="5-nv.html#SP16">§16</a>), 6/bp (<a href="6-bp.html#SP33">§33</a>), 6/rlt (<a href="6-rlt.html#SP15">§15</a>, <a href="6-rlt.html#SP15_2">§15.2</a>, <a href="6-rlt.html#SP17">§17</a>, <a href="6-rlt.html#SP29_1">§29.1</a>, <a href="6-rlt.html#SP29_2">§29.2</a>, <a href="6-rlt.html#SP29_3">§29.3</a>, <a href="6-rlt.html#SP29_4">§29.4</a>, <a href="6-rlt.html#SP29_5">§29.5</a>, <a href="6-rlt.html#SP29_6">§29.6</a>, <a href="6-rlt.html#SP30">§30</a>), 6/nv (<a href="6-nv.html#SP18_1">§18.1</a>, <a href="6-nv.html#SP18_2">§18.2</a>), 8/ef (<a href="8-ef.html#SP19">§19</a>), 12/cdp (<a href="12-cdp.html#SP2_1">§2.1</a>), 13/rsfk (<a href="13-rsfk.html#SP16_3">§16.3</a>, <a href="13-rsfk.html#SP26_1">§26.1</a>, <a href="13-rsfk.html#SP26_2">§26.2</a>, <a href="13-rsfk.html#SP26_3">§26.3</a>, <a href="13-rsfk.html#SP26_4">§26.4</a>, <a href="13-rsfk.html#SP26_5">§26.5</a>, <a href="13-rsfk.html#SP26_6_1">§26.6.1</a>, <a href="13-rsfk.html#SP26_6_2">§26.6.2</a>, <a href="13-rsfk.html#SP26_6_3">§26.6.3</a>, <a href="13-rsfk.html#SP26_6_4">§26.6.4</a>, <a href="13-rsfk.html#SP26_6_5">§26.6.5</a>, <a href="13-rsfk.html#SP26_6_6">§26.6.6</a>, <a href="13-rsfk.html#SP27">§27</a>), 15/ma (<a href="15-ma.html#SP13">§13</a>), 17/tl (<a href="17-tl.html#SP14_2">§14.2</a>), 17/ts (<a href="17-ts.html#SP11">§11</a>), 17/rs (<a href="17-rs.html#SP6_1">§6.1</a>, <a href="17-rs.html#SP6_2">§6.2</a>, <a href="17-rs.html#SP7_2">§7.2</a>), 19/tc (<a href="19-tc.html#SP8">§8</a>), 19/rsft (<a href="19-rsft.html#SP2">§2</a>), 20/eq (<a href="20-eq.html#SP43">§43</a>), 21/rl (<a href="21-rl.html#SP20">§20</a>, <a href="21-rl.html#SP22_1">§22.1</a>), 21/rb (<a href="21-rb.html#SP23">§23</a>), 21/rl2 (<a href="21-rl2.html#SP14_1">§14.1</a>), 21/fao (<a href="21-fao.html#SP10">§10</a>), 21/sv (<a href="21-sv.html#SP3">§3</a>), 22/pav (<a href="22-pav.html#SP9_2">§9.2</a>), 24/ch (<a href="24-ch.html#SP6">§6</a>, <a href="24-ch.html#SP7">§7</a>), 26/uo (<a href="26-uo.html#SP21_1">§21.1</a>, <a href="26-uo.html#SP21_2">§21.2</a>), 26/lt (<a href="26-lt.html#SP4_1">§4.1</a>), 26/ts (<a href="26-ts.html#SP10">§10</a>, <a href="26-ts.html#SP11">§11</a>).</p>
|
||||
<p class="endnote">The function Routines::begin is used in 4/am (<a href="4-am.html#SP34_2">§34.2</a>, <a href="4-am.html#SP43">§43</a>), 5/lp (<a href="5-lp.html#SP27">§27</a>), 5/nv (<a href="5-nv.html#SP16">§16</a>), 6/bp (<a href="6-bp.html#SP33">§33</a>), 6/rlt (<a href="6-rlt.html#SP15">§15</a>, <a href="6-rlt.html#SP15_2">§15.2</a>, <a href="6-rlt.html#SP17">§17</a>, <a href="6-rlt.html#SP29_1">§29.1</a>, <a href="6-rlt.html#SP29_2">§29.2</a>, <a href="6-rlt.html#SP29_3">§29.3</a>, <a href="6-rlt.html#SP29_4">§29.4</a>, <a href="6-rlt.html#SP29_5">§29.5</a>, <a href="6-rlt.html#SP29_6">§29.6</a>, <a href="6-rlt.html#SP30">§30</a>), 6/nv (<a href="6-nv.html#SP18_1">§18.1</a>, <a href="6-nv.html#SP18_2">§18.2</a>), 8/ef (<a href="8-ef.html#SP19">§19</a>), 12/cdp (<a href="12-cdp.html#SP2_1">§2.1</a>), 13/rsfk (<a href="13-rsfk.html#SP16_3">§16.3</a>, <a href="13-rsfk.html#SP25_1">§25.1</a>, <a href="13-rsfk.html#SP25_2">§25.2</a>, <a href="13-rsfk.html#SP25_3">§25.3</a>, <a href="13-rsfk.html#SP25_4">§25.4</a>, <a href="13-rsfk.html#SP25_5">§25.5</a>, <a href="13-rsfk.html#SP25_6_1">§25.6.1</a>, <a href="13-rsfk.html#SP25_6_2">§25.6.2</a>, <a href="13-rsfk.html#SP25_6_3">§25.6.3</a>, <a href="13-rsfk.html#SP25_6_4">§25.6.4</a>, <a href="13-rsfk.html#SP25_6_5">§25.6.5</a>, <a href="13-rsfk.html#SP25_6_6">§25.6.6</a>, <a href="13-rsfk.html#SP26">§26</a>), 15/ma (<a href="15-ma.html#SP13">§13</a>), 17/tl (<a href="17-tl.html#SP14_2">§14.2</a>), 17/ts (<a href="17-ts.html#SP11">§11</a>), 17/rs (<a href="17-rs.html#SP6_1">§6.1</a>, <a href="17-rs.html#SP6_2">§6.2</a>, <a href="17-rs.html#SP7_2">§7.2</a>), 19/tc (<a href="19-tc.html#SP8">§8</a>), 19/rsft (<a href="19-rsft.html#SP2">§2</a>), 20/eq (<a href="20-eq.html#SP43">§43</a>), 21/rl (<a href="21-rl.html#SP20">§20</a>, <a href="21-rl.html#SP22_1">§22.1</a>), 21/rb (<a href="21-rb.html#SP23">§23</a>), 21/rl2 (<a href="21-rl2.html#SP14_1">§14.1</a>), 21/fao (<a href="21-fao.html#SP10">§10</a>), 21/sv (<a href="21-sv.html#SP3">§3</a>), 22/pav (<a href="22-pav.html#SP9_2">§9.2</a>), 24/ch (<a href="24-ch.html#SP6">§6</a>, <a href="24-ch.html#SP7">§7</a>), 26/uo (<a href="26-uo.html#SP21_1">§21.1</a>, <a href="26-uo.html#SP21_2">§21.2</a>), 26/lt (<a href="26-lt.html#SP4_1">§4.1</a>), 26/ts (<a href="26-ts.html#SP10">§10</a>, <a href="26-ts.html#SP11">§11</a>).</p>
|
||||
|
||||
<p class="endnote">The function Routines::begin_in_current_package is used in 21/rb (<a href="21-rb.html#SP24_1_1">§24.1.1</a>).</p>
|
||||
|
||||
|
@ -134,9 +134,7 @@ create a new nonphrasal stack frame.
|
|||
<span class="identifier">kernel_name</span><span class="plain"> = </span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"kernel"</span><span class="plain">, </span><span class="identifier">public_name</span><span class="plain">-</span><span class="element">>eventual_owner</span><span class="plain">);</span>
|
||||
<span class="identifier">Inter::Symbols::set_flag</span><span class="plain">(</span><span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">kernel_name</span><span class="plain">), </span><span class="identifier">MAKE_NAME_UNIQUE</span><span class="plain">);</span>
|
||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> {</span>
|
||||
<span class="identifier">kernel_name</span><span class="plain"> = </span><span class="functiontext">InterNames::new_in</span><span class="plain">(</span><span class="constant">KERNEL_ROUTINE_INAMEF</span><span class="plain">, </span><span class="functiontext">InterNames::to_module</span><span class="plain">(</span><span class="identifier">public_name</span><span class="plain">));</span>
|
||||
<span class="identifier">LOG</span><span class="plain">(</span><span class="string">"PN is %n\</span><span class="plain">n</span><span class="string">"</span><span class="plain">, </span><span class="identifier">public_name</span><span class="plain">);</span>
|
||||
<span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"Routine not in function"</span><span class="plain">);</span>
|
||||
<span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"routine not housed in function"</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="functiontext">Packaging::house_with</span><span class="plain">(</span><span class="identifier">kernel_name</span><span class="plain">, </span><span class="identifier">public_name</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
@ -162,7 +160,7 @@ create a new nonphrasal stack frame.
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">The function Routines::end is used in 4/am (<a href="4-am.html#SP34_2">§34.2</a>, <a href="4-am.html#SP43">§43</a>), 5/lp (<a href="5-lp.html#SP27">§27</a>), 5/nv (<a href="5-nv.html#SP16">§16</a>), 6/bp (<a href="6-bp.html#SP33">§33</a>), 6/rlt (<a href="6-rlt.html#SP15">§15</a>, <a href="6-rlt.html#SP15_2">§15.2</a>, <a href="6-rlt.html#SP17">§17</a>, <a href="6-rlt.html#SP29_1">§29.1</a>, <a href="6-rlt.html#SP29_2">§29.2</a>, <a href="6-rlt.html#SP29_3">§29.3</a>, <a href="6-rlt.html#SP29_4">§29.4</a>, <a href="6-rlt.html#SP29_5">§29.5</a>, <a href="6-rlt.html#SP29_6">§29.6</a>, <a href="6-rlt.html#SP30">§30</a>), 6/nv (<a href="6-nv.html#SP18_1">§18.1</a>, <a href="6-nv.html#SP18_2">§18.2</a>), 8/ef (<a href="8-ef.html#SP19">§19</a>), 12/cdp (<a href="12-cdp.html#SP2_1">§2.1</a>), 13/rsfk (<a href="13-rsfk.html#SP16_3">§16.3</a>, <a href="13-rsfk.html#SP26_1">§26.1</a>, <a href="13-rsfk.html#SP26_2">§26.2</a>, <a href="13-rsfk.html#SP26_3">§26.3</a>, <a href="13-rsfk.html#SP26_4">§26.4</a>, <a href="13-rsfk.html#SP26_5">§26.5</a>, <a href="13-rsfk.html#SP26_6_1">§26.6.1</a>, <a href="13-rsfk.html#SP26_6_2">§26.6.2</a>, <a href="13-rsfk.html#SP26_6_3">§26.6.3</a>, <a href="13-rsfk.html#SP26_6_4">§26.6.4</a>, <a href="13-rsfk.html#SP26_6_5">§26.6.5</a>, <a href="13-rsfk.html#SP26_6_6">§26.6.6</a>, <a href="13-rsfk.html#SP27">§27</a>), 15/ma (<a href="15-ma.html#SP13">§13</a>), 17/tl (<a href="17-tl.html#SP14_2">§14.2</a>), 17/ts (<a href="17-ts.html#SP11">§11</a>), 17/rs (<a href="17-rs.html#SP6_1">§6.1</a>, <a href="17-rs.html#SP6_2">§6.2</a>, <a href="17-rs.html#SP7_2">§7.2</a>), 19/tc (<a href="19-tc.html#SP8">§8</a>), 19/rsft (<a href="19-rsft.html#SP2">§2</a>), 20/eq (<a href="20-eq.html#SP43">§43</a>), 21/rl (<a href="21-rl.html#SP20">§20</a>, <a href="21-rl.html#SP22_1">§22.1</a>), 21/rb (<a href="21-rb.html#SP23">§23</a>), 21/rl2 (<a href="21-rl2.html#SP14_1">§14.1</a>), 21/fao (<a href="21-fao.html#SP10">§10</a>), 21/sv (<a href="21-sv.html#SP3">§3</a>), 22/pav (<a href="22-pav.html#SP9_2">§9.2</a>), 24/ch (<a href="24-ch.html#SP6">§6</a>, <a href="24-ch.html#SP7">§7</a>), 26/uo (<a href="26-uo.html#SP21_1">§21.1</a>, <a href="26-uo.html#SP21_2">§21.2</a>), 26/lt (<a href="26-lt.html#SP4_1">§4.1</a>), 26/ts (<a href="26-ts.html#SP10">§10</a>, <a href="26-ts.html#SP11">§11</a>).</p>
|
||||
<p class="endnote">The function Routines::end is used in 4/am (<a href="4-am.html#SP34_2">§34.2</a>, <a href="4-am.html#SP43">§43</a>), 5/lp (<a href="5-lp.html#SP27">§27</a>), 5/nv (<a href="5-nv.html#SP16">§16</a>), 6/bp (<a href="6-bp.html#SP33">§33</a>), 6/rlt (<a href="6-rlt.html#SP15">§15</a>, <a href="6-rlt.html#SP15_2">§15.2</a>, <a href="6-rlt.html#SP17">§17</a>, <a href="6-rlt.html#SP29_1">§29.1</a>, <a href="6-rlt.html#SP29_2">§29.2</a>, <a href="6-rlt.html#SP29_3">§29.3</a>, <a href="6-rlt.html#SP29_4">§29.4</a>, <a href="6-rlt.html#SP29_5">§29.5</a>, <a href="6-rlt.html#SP29_6">§29.6</a>, <a href="6-rlt.html#SP30">§30</a>), 6/nv (<a href="6-nv.html#SP18_1">§18.1</a>, <a href="6-nv.html#SP18_2">§18.2</a>), 8/ef (<a href="8-ef.html#SP19">§19</a>), 12/cdp (<a href="12-cdp.html#SP2_1">§2.1</a>), 13/rsfk (<a href="13-rsfk.html#SP16_3">§16.3</a>, <a href="13-rsfk.html#SP25_1">§25.1</a>, <a href="13-rsfk.html#SP25_2">§25.2</a>, <a href="13-rsfk.html#SP25_3">§25.3</a>, <a href="13-rsfk.html#SP25_4">§25.4</a>, <a href="13-rsfk.html#SP25_5">§25.5</a>, <a href="13-rsfk.html#SP25_6_1">§25.6.1</a>, <a href="13-rsfk.html#SP25_6_2">§25.6.2</a>, <a href="13-rsfk.html#SP25_6_3">§25.6.3</a>, <a href="13-rsfk.html#SP25_6_4">§25.6.4</a>, <a href="13-rsfk.html#SP25_6_5">§25.6.5</a>, <a href="13-rsfk.html#SP25_6_6">§25.6.6</a>, <a href="13-rsfk.html#SP26">§26</a>), 15/ma (<a href="15-ma.html#SP13">§13</a>), 17/tl (<a href="17-tl.html#SP14_2">§14.2</a>), 17/ts (<a href="17-ts.html#SP11">§11</a>), 17/rs (<a href="17-rs.html#SP6_1">§6.1</a>, <a href="17-rs.html#SP6_2">§6.2</a>, <a href="17-rs.html#SP7_2">§7.2</a>), 19/tc (<a href="19-tc.html#SP8">§8</a>), 19/rsft (<a href="19-rsft.html#SP2">§2</a>), 20/eq (<a href="20-eq.html#SP43">§43</a>), 21/rl (<a href="21-rl.html#SP20">§20</a>, <a href="21-rl.html#SP22_1">§22.1</a>), 21/rb (<a href="21-rb.html#SP23">§23</a>), 21/rl2 (<a href="21-rl2.html#SP14_1">§14.1</a>), 21/fao (<a href="21-fao.html#SP10">§10</a>), 21/sv (<a href="21-sv.html#SP3">§3</a>), 22/pav (<a href="22-pav.html#SP9_2">§9.2</a>), 24/ch (<a href="24-ch.html#SP6">§6</a>, <a href="24-ch.html#SP7">§7</a>), 26/uo (<a href="26-uo.html#SP21_1">§21.1</a>, <a href="26-uo.html#SP21_2">§21.2</a>), 26/lt (<a href="26-lt.html#SP4_1">§4.1</a>), 26/ts (<a href="26-ts.html#SP10">§10</a>, <a href="26-ts.html#SP11">§11</a>).</p>
|
||||
|
||||
<p class="endnote">The function Routines::end_in_current_package is used in 21/rb (<a href="21-rb.html#SP24_1_5">§24.1.5</a>), 25/cp (<a href="25-cp.html#SP3">§3</a>).</p>
|
||||
|
||||
|
|
|
@ -172,7 +172,7 @@ target VM are 16 or 32 bits wide:
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">The function VirtualMachines::is_16_bit is used in <a href="#SP9">§9</a>, <a href="#SP19">§19</a>, <a href="#SP21">§21</a>, 5/lp (<a href="5-lp.html#SP12_2">§12.2</a>, <a href="5-lp.html#SP18_3">§18.3</a>), 6/rlt (<a href="6-rlt.html#SP14">§14</a>), 13/rsfk (<a href="13-rsfk.html#SP18_1">§18.1</a>, <a href="13-rsfk.html#SP21">§21</a>), 25/cii (<a href="25-cii.html#SP3_5_8_3">§3.5.8.3</a>).</p>
|
||||
<p class="endnote">The function VirtualMachines::is_16_bit is used in <a href="#SP9">§9</a>, <a href="#SP19">§19</a>, <a href="#SP21">§21</a>, 5/lp (<a href="5-lp.html#SP12_2">§12.2</a>, <a href="5-lp.html#SP18_3">§18.3</a>), 6/rlt (<a href="6-rlt.html#SP14">§14</a>), 13/rsfk (<a href="13-rsfk.html#SP18_1">§18.1</a>, <a href="13-rsfk.html#SP20">§20</a>), 25/cii (<a href="25-cii.html#SP3_5_8_3">§3.5.8.3</a>).</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP8"></a><b>§8. </b>Fundamental constants are emitted about our choice of virtual machine.
|
||||
</p>
|
||||
|
@ -358,7 +358,7 @@ at 15, but Glulx allows it to be set with an I6 memory setting.
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">The function VirtualMachines::supports is used in 13/rsfk (<a href="13-rsfk.html#SP28">§28</a>), 20/eq (<a href="20-eq.html#SP41">§41</a>).</p>
|
||||
<p class="endnote">The function VirtualMachines::supports is used in 13/rsfk (<a href="13-rsfk.html#SP27">§27</a>), 20/eq (<a href="20-eq.html#SP41">§41</a>).</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP12"></a><b>§12. </b>When releasing a blorbed story file, the file extension depends on the
|
||||
story file wrapped inside. (This is a dubious idea, in the opinion of
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -18,6 +18,7 @@
|
|||
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">this_mundane_package</span><span class="plain">;</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">this_exotic_package</span><span class="plain">;</span>
|
||||
<span class="reserved">struct</span><span class="plain"> </span><span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">any_package_of_this_type</span><span class="plain">;</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">any_enclosure</span><span class="plain">;</span>
|
||||
<span class="plain">} </span><span class="reserved">location_requirement</span><span class="plain">;</span>
|
||||
|
||||
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="functiontext">HierarchyLocations::blank</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||
|
@ -26,6 +27,7 @@
|
|||
<span class="identifier">req</span><span class="element">.this_mundane_package</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
<span class="identifier">req</span><span class="element">.this_exotic_package</span><span class="plain"> = -1;</span>
|
||||
<span class="identifier">req</span><span class="element">.any_package_of_this_type</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
<span class="identifier">req</span><span class="element">.any_enclosure</span><span class="plain"> = </span><span class="identifier">FALSE</span><span class="plain">;</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">req</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
|
@ -53,6 +55,12 @@
|
|||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">req</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="functiontext">HierarchyLocations::any_enclosure</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">req</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::blank</span><span class="plain">();</span>
|
||||
<span class="identifier">req</span><span class="element">.any_enclosure</span><span class="plain"> = </span><span class="identifier">TRUE</span><span class="plain">;</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">req</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="functiontext">HierarchyLocations::this_package</span><span class="plain">(</span><span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">) {</span>
|
||||
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">req</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::blank</span><span class="plain">();</span>
|
||||
<span class="identifier">req</span><span class="element">.this_mundane_package</span><span class="plain"> = </span><span class="identifier">P</span><span class="plain">;</span>
|
||||
|
@ -265,21 +273,23 @@
|
|||
|
||||
<p class="endnote">The function HierarchyLocations::synoptic_submodule is used in 27/hr (<a href="27-hr.html#SP1_2">§1.2</a>, <a href="27-hr.html#SP1_4">§1.4</a>, <a href="27-hr.html#SP1_6">§1.6</a>, <a href="27-hr.html#SP1_10">§1.10</a>, <a href="27-hr.html#SP1_12">§1.12</a>, <a href="27-hr.html#SP1_18">§1.18</a>, <a href="27-hr.html#SP1_22">§1.22</a>, <a href="27-hr.html#SP1_26">§1.26</a>, <a href="27-hr.html#SP1_28">§1.28</a>, <a href="27-hr.html#SP1_32">§1.32</a>, <a href="27-hr.html#SP1_34">§1.34</a>, <a href="27-hr.html#SP1_36">§1.36</a>, <a href="27-hr.html#SP1_38">§1.38</a>, <a href="27-hr.html#SP1_40">§1.40</a>, <a href="27-hr.html#SP1_42">§1.42</a>).</p>
|
||||
|
||||
<p class="endnote">The function HierarchyLocations::any_package_of_type is used in 27/hr (<a href="27-hr.html#SP1_4">§1.4</a>, <a href="27-hr.html#SP1_6">§1.6</a>, <a href="27-hr.html#SP1_8">§1.8</a>, <a href="27-hr.html#SP1_12">§1.12</a>, <a href="27-hr.html#SP1_14">§1.14</a>, <a href="27-hr.html#SP1_16">§1.16</a>, <a href="27-hr.html#SP1_20">§1.20</a>, <a href="27-hr.html#SP1_22">§1.22</a>, <a href="27-hr.html#SP1_24">§1.24</a>, <a href="27-hr.html#SP1_28">§1.28</a>, <a href="27-hr.html#SP1_30">§1.30</a>, <a href="27-hr.html#SP1_32">§1.32</a>, <a href="27-hr.html#SP1_34">§1.34</a>, <a href="27-hr.html#SP1_36">§1.36</a>, <a href="27-hr.html#SP1_38">§1.38</a>, <a href="27-hr.html#SP1_40">§1.40</a>, <a href="27-hr.html#SP1_42">§1.42</a>, <a href="27-hr.html#SP1_44">§1.44</a>).</p>
|
||||
<p class="endnote">The function HierarchyLocations::any_package_of_type is used in 27/hr (<a href="27-hr.html#SP1_4">§1.4</a>, <a href="27-hr.html#SP1_6">§1.6</a>, <a href="27-hr.html#SP1_8">§1.8</a>, <a href="27-hr.html#SP1_12">§1.12</a>, <a href="27-hr.html#SP1_14">§1.14</a>, <a href="27-hr.html#SP1_16">§1.16</a>, <a href="27-hr.html#SP1_20">§1.20</a>, <a href="27-hr.html#SP1_22">§1.22</a>, <a href="27-hr.html#SP1_24">§1.24</a>, <a href="27-hr.html#SP1_28">§1.28</a>, <a href="27-hr.html#SP1_30">§1.30</a>, <a href="27-hr.html#SP1_32">§1.32</a>, <a href="27-hr.html#SP1_34">§1.34</a>, <a href="27-hr.html#SP1_36">§1.36</a>, <a href="27-hr.html#SP1_38">§1.38</a>, <a href="27-hr.html#SP1_40">§1.40</a>, <a href="27-hr.html#SP1_42">§1.42</a>, <a href="27-hr.html#SP1_44">§1.44</a>, <a href="27-hr.html#SP1_46">§1.46</a>).</p>
|
||||
|
||||
<p class="endnote">The function HierarchyLocations::this_package is used in 27/hr (<a href="27-hr.html#SP1_48">§1.48</a>, <a href="27-hr.html#SP5">§5</a>).</p>
|
||||
<p class="endnote">The function HierarchyLocations::any_enclosure is used in 27/hr (<a href="27-hr.html#SP1_46">§1.46</a>).</p>
|
||||
|
||||
<p class="endnote">The function HierarchyLocations::this_exotic_package is used in 27/hr (<a href="27-hr.html#SP1_46">§1.46</a>).</p>
|
||||
<p class="endnote">The function HierarchyLocations::this_package is used in 27/hr (<a href="27-hr.html#SP1_50">§1.50</a>, <a href="27-hr.html#SP5">§5</a>).</p>
|
||||
|
||||
<p class="endnote">The function HierarchyLocations::this_exotic_package is used in 27/hr (<a href="27-hr.html#SP1_48">§1.48</a>).</p>
|
||||
|
||||
<p class="endnote">The function HierarchyLocations::new appears nowhere else.</p>
|
||||
|
||||
<p class="endnote">The function HierarchyLocations::con is used in 27/hr (<a href="27-hr.html#SP1_2">§1.2</a>, <a href="27-hr.html#SP1_4">§1.4</a>, <a href="27-hr.html#SP1_6">§1.6</a>, <a href="27-hr.html#SP1_8">§1.8</a>, <a href="27-hr.html#SP1_10">§1.10</a>, <a href="27-hr.html#SP1_12">§1.12</a>, <a href="27-hr.html#SP1_14">§1.14</a>, <a href="27-hr.html#SP1_20">§1.20</a>, <a href="27-hr.html#SP1_22">§1.22</a>, <a href="27-hr.html#SP1_26">§1.26</a>, <a href="27-hr.html#SP1_28">§1.28</a>, <a href="27-hr.html#SP1_30">§1.30</a>, <a href="27-hr.html#SP1_32">§1.32</a>, <a href="27-hr.html#SP1_34">§1.34</a>, <a href="27-hr.html#SP1_36">§1.36</a>, <a href="27-hr.html#SP1_38">§1.38</a>, <a href="27-hr.html#SP1_40">§1.40</a>, <a href="27-hr.html#SP1_42">§1.42</a>, <a href="27-hr.html#SP1_44">§1.44</a>, <a href="27-hr.html#SP1_46">§1.46</a>, <a href="27-hr.html#SP1_48">§1.48</a>, <a href="27-hr.html#SP5">§5</a>).</p>
|
||||
<p class="endnote">The function HierarchyLocations::con is used in 27/hr (<a href="27-hr.html#SP1_2">§1.2</a>, <a href="27-hr.html#SP1_4">§1.4</a>, <a href="27-hr.html#SP1_6">§1.6</a>, <a href="27-hr.html#SP1_8">§1.8</a>, <a href="27-hr.html#SP1_10">§1.10</a>, <a href="27-hr.html#SP1_12">§1.12</a>, <a href="27-hr.html#SP1_14">§1.14</a>, <a href="27-hr.html#SP1_20">§1.20</a>, <a href="27-hr.html#SP1_22">§1.22</a>, <a href="27-hr.html#SP1_26">§1.26</a>, <a href="27-hr.html#SP1_28">§1.28</a>, <a href="27-hr.html#SP1_30">§1.30</a>, <a href="27-hr.html#SP1_32">§1.32</a>, <a href="27-hr.html#SP1_34">§1.34</a>, <a href="27-hr.html#SP1_36">§1.36</a>, <a href="27-hr.html#SP1_38">§1.38</a>, <a href="27-hr.html#SP1_40">§1.40</a>, <a href="27-hr.html#SP1_42">§1.42</a>, <a href="27-hr.html#SP1_44">§1.44</a>, <a href="27-hr.html#SP1_46">§1.46</a>, <a href="27-hr.html#SP1_48">§1.48</a>, <a href="27-hr.html#SP1_50">§1.50</a>, <a href="27-hr.html#SP5">§5</a>).</p>
|
||||
|
||||
<p class="endnote">The function HierarchyLocations::package is used in 27/hr (<a href="27-hr.html#SP1_4">§1.4</a>, <a href="27-hr.html#SP1_6">§1.6</a>).</p>
|
||||
|
||||
<p class="endnote">The function HierarchyLocations::make_as is used in 27/hr (<a href="27-hr.html#SP5">§5</a>).</p>
|
||||
|
||||
<p class="endnote">The function HierarchyLocations::func is used in 27/hr (<a href="27-hr.html#SP1_4">§1.4</a>, <a href="27-hr.html#SP1_6">§1.6</a>, <a href="27-hr.html#SP1_8">§1.8</a>, <a href="27-hr.html#SP1_12">§1.12</a>, <a href="27-hr.html#SP1_14">§1.14</a>, <a href="27-hr.html#SP1_16">§1.16</a>, <a href="27-hr.html#SP1_18">§1.18</a>, <a href="27-hr.html#SP1_22">§1.22</a>, <a href="27-hr.html#SP1_24">§1.24</a>, <a href="27-hr.html#SP1_26">§1.26</a>, <a href="27-hr.html#SP1_28">§1.28</a>, <a href="27-hr.html#SP1_30">§1.30</a>, <a href="27-hr.html#SP1_32">§1.32</a>, <a href="27-hr.html#SP1_34">§1.34</a>, <a href="27-hr.html#SP1_36">§1.36</a>, <a href="27-hr.html#SP1_38">§1.38</a>, <a href="27-hr.html#SP1_40">§1.40</a>, <a href="27-hr.html#SP1_42">§1.42</a>, <a href="27-hr.html#SP1_46">§1.46</a>).</p>
|
||||
<p class="endnote">The function HierarchyLocations::func is used in 27/hr (<a href="27-hr.html#SP1_4">§1.4</a>, <a href="27-hr.html#SP1_6">§1.6</a>, <a href="27-hr.html#SP1_8">§1.8</a>, <a href="27-hr.html#SP1_12">§1.12</a>, <a href="27-hr.html#SP1_14">§1.14</a>, <a href="27-hr.html#SP1_16">§1.16</a>, <a href="27-hr.html#SP1_18">§1.18</a>, <a href="27-hr.html#SP1_22">§1.22</a>, <a href="27-hr.html#SP1_24">§1.24</a>, <a href="27-hr.html#SP1_26">§1.26</a>, <a href="27-hr.html#SP1_28">§1.28</a>, <a href="27-hr.html#SP1_30">§1.30</a>, <a href="27-hr.html#SP1_32">§1.32</a>, <a href="27-hr.html#SP1_34">§1.34</a>, <a href="27-hr.html#SP1_36">§1.36</a>, <a href="27-hr.html#SP1_38">§1.38</a>, <a href="27-hr.html#SP1_40">§1.40</a>, <a href="27-hr.html#SP1_42">§1.42</a>, <a href="27-hr.html#SP1_46">§1.46</a>, <a href="27-hr.html#SP1_48">§1.48</a>).</p>
|
||||
|
||||
<p class="endnote">The function HierarchyLocations::datum is used in 27/hr (<a href="27-hr.html#SP1_10">§1.10</a>).</p>
|
||||
|
||||
|
@ -313,11 +323,8 @@
|
|||
<span class="identifier">P</span><span class="plain">,</span>
|
||||
<span class="identifier">NULL</span><span class="plain">);</span>
|
||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Str::len</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>access_name</span><span class="plain">) == 0) {</span>
|
||||
<span class="identifier">LOG</span><span class="plain">(</span><span class="string">"********** %S\</span><span class="plain">n</span><span class="string">"</span><span class="plain">, </span><span class="identifier">T</span><span class="plain">);</span>
|
||||
<span class="identifier">iname</span><span class="plain"> = </span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">T</span><span class="plain">, </span><span class="identifier">P</span><span class="plain">);</span>
|
||||
<span class="plain">} </span><span class="reserved">else</span>
|
||||
<span class="identifier">iname</span><span class="plain"> = </span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>access_name</span><span class="plain">, </span><span class="identifier">P</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Str::len</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>access_name</span><span class="plain">) == 0) </span><span class="identifier">iname</span><span class="plain"> = </span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">T</span><span class="plain">, </span><span class="identifier">P</span><span class="plain">);</span>
|
||||
<span class="reserved">else</span><span class="plain"> </span><span class="identifier">iname</span><span class="plain"> = </span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>access_name</span><span class="plain">, </span><span class="identifier">P</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="reserved">if</span><span class="plain"> (!</span><span class="identifier">Wordings::empty</span><span class="plain">(</span><span class="identifier">W</span><span class="plain">)) </span><span class="functiontext">InterNames::attach_memo</span><span class="plain">(</span><span class="identifier">iname</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">Str::len</span><span class="plain">(</span><span class="identifier">T</span><span class="plain">) > 0) && (</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>access_name</span><span class="plain">)) </span><span class="functiontext">InterNames::translate</span><span class="plain">(</span><span class="identifier">iname</span><span class="plain">, </span><span class="identifier">T</span><span class="plain">);</span>
|
||||
|
@ -336,9 +343,17 @@
|
|||
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">id</span><span class="plain"> < 0) || (</span><span class="identifier">id</span><span class="plain"> >= </span><span class="constant">MAX_HL</span><span class="plain">) || (</span><span class="identifier">nrls_indexed_by_id</span><span class="plain">[</span><span class="identifier">id</span><span class="plain">] == </span><span class="identifier">NULL</span><span class="plain">))</span>
|
||||
<span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"bad nrl ID"</span><span class="plain">);</span>
|
||||
<span class="reserved">named_resource_location</span><span class="plain"> *</span><span class="identifier">nrl</span><span class="plain"> = </span><span class="identifier">nrls_indexed_by_id</span><span class="plain">[</span><span class="identifier">id</span><span class="plain">];</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>requirements.any_package_of_this_type</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"NRL accessed inappropriately"</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">P</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) || (</span><span class="identifier">P</span><span class="plain">-</span><span class="element">>eventual_type</span><span class="plain"> != </span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>requirements.any_package_of_this_type</span><span class="plain">)) </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"subpackage in wrong superpackage"</span><span class="plain">);</span>
|
||||
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">P</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"no superpackage"</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>package_type</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"package_in_package used wrongly"</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>requirements.any_package_of_this_type</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">P</span><span class="plain">-</span><span class="element">>eventual_type</span><span class="plain"> != </span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>requirements.any_package_of_this_type</span><span class="plain">)</span>
|
||||
<span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"subpackage in wrong superpackage"</span><span class="plain">);</span>
|
||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>requirements.any_enclosure</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Inter::Symbols::read_annotation</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">-</span><span class="element">>eventual_type</span><span class="plain">, </span><span class="identifier">ENCLOSING_IANN</span><span class="plain">) != 1)</span>
|
||||
<span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"subpackage not in enclosing superpackage"</span><span class="plain">);</span>
|
||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"NRL accessed inappropriately"</span><span class="plain">);</span>
|
||||
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="functiontext">Packaging::request</span><span class="plain">(</span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>access_name</span><span class="plain">, </span><span class="identifier">P</span><span class="plain">), </span><span class="identifier">P</span><span class="plain">, </span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>package_type</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
@ -412,7 +427,7 @@
|
|||
|
||||
<p class="endnote">The function HierarchyLocations::index_ap appears nowhere else.</p>
|
||||
|
||||
<p class="endnote">The function HierarchyLocations::ap is used in 27/hr (<a href="27-hr.html#SP1_4">§1.4</a>, <a href="27-hr.html#SP1_6">§1.6</a>, <a href="27-hr.html#SP1_8">§1.8</a>, <a href="27-hr.html#SP1_12">§1.12</a>, <a href="27-hr.html#SP1_14">§1.14</a>, <a href="27-hr.html#SP1_16">§1.16</a>, <a href="27-hr.html#SP1_20">§1.20</a>, <a href="27-hr.html#SP1_22">§1.22</a>, <a href="27-hr.html#SP1_24">§1.24</a>, <a href="27-hr.html#SP1_28">§1.28</a>, <a href="27-hr.html#SP1_30">§1.30</a>, <a href="27-hr.html#SP1_32">§1.32</a>, <a href="27-hr.html#SP1_34">§1.34</a>, <a href="27-hr.html#SP1_36">§1.36</a>, <a href="27-hr.html#SP1_38">§1.38</a>, <a href="27-hr.html#SP1_40">§1.40</a>, <a href="27-hr.html#SP1_42">§1.42</a>, <a href="27-hr.html#SP1_44">§1.44</a>).</p>
|
||||
<p class="endnote">The function HierarchyLocations::ap is used in 27/hr (<a href="27-hr.html#SP1_4">§1.4</a>, <a href="27-hr.html#SP1_6">§1.6</a>, <a href="27-hr.html#SP1_8">§1.8</a>, <a href="27-hr.html#SP1_12">§1.12</a>, <a href="27-hr.html#SP1_14">§1.14</a>, <a href="27-hr.html#SP1_16">§1.16</a>, <a href="27-hr.html#SP1_20">§1.20</a>, <a href="27-hr.html#SP1_22">§1.22</a>, <a href="27-hr.html#SP1_24">§1.24</a>, <a href="27-hr.html#SP1_28">§1.28</a>, <a href="27-hr.html#SP1_30">§1.30</a>, <a href="27-hr.html#SP1_32">§1.32</a>, <a href="27-hr.html#SP1_34">§1.34</a>, <a href="27-hr.html#SP1_36">§1.36</a>, <a href="27-hr.html#SP1_38">§1.38</a>, <a href="27-hr.html#SP1_40">§1.40</a>, <a href="27-hr.html#SP1_42">§1.42</a>, <a href="27-hr.html#SP1_44">§1.44</a>, <a href="27-hr.html#SP1_46">§1.46</a>).</p>
|
||||
|
||||
<p class="endnote">The function HierarchyLocations::attach_new_package is used in 27/hr (<a href="27-hr.html#SP5">§5</a>).</p>
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -155,13 +155,13 @@
|
|||
|
||||
<p class="endnote">The function Packaging::stateless is used in 15/epv (<a href="15-epv.html#SP2">§2</a>).</p>
|
||||
|
||||
<p class="endnote">The function Packaging::home_of is used in 12/cdp (<a href="12-cdp.html#SP5">§5</a>), 27/hl (<a href="27-hl.html#SP1">§1</a>), 27/hr (<a href="27-hr.html#SP3">§3</a>).</p>
|
||||
<p class="endnote">The function Packaging::home_of is used in 12/cdp (<a href="12-cdp.html#SP5">§5</a>), 27/in (<a href="27-in.html#SP4">§4</a>), 27/hl (<a href="27-hl.html#SP1">§1</a>), 27/hr (<a href="27-hr.html#SP3">§3</a>).</p>
|
||||
|
||||
<p class="endnote">The function Packaging::enter_home_of is used in 6/bp (<a href="6-bp.html#SP42">§42</a>), 6/rlt (<a href="6-rlt.html#SP14">§14</a>, <a href="6-rlt.html#SP15_1">§15.1</a>, <a href="6-rlt.html#SP20">§20</a>, <a href="6-rlt.html#SP20_3">§20.3</a>), 6/nv (<a href="6-nv.html#SP18">§18</a>), 12/cdp (<a href="12-cdp.html#SP2_1_1">§2.1.1</a>), 13/kak (<a href="13-kak.html#SP5">§5</a>), 13/rsfk (<a href="13-rsfk.html#SP16_2">§16.2</a>, <a href="13-rsfk.html#SP26">§26</a>), 15/pr (<a href="15-pr.html#SP27">§27</a>), 15/epv (<a href="15-epv.html#SP1_1_2">§1.1.2</a>), 17/tl (<a href="17-tl.html#SP14_1">§14.1</a>, <a href="17-tl.html#SP14_2">§14.2</a>), 17/ts (<a href="17-ts.html#SP11">§11</a>), 17/rs (<a href="17-rs.html#SP7_3">§7.3</a>), 18/lc (<a href="18-lc.html#SP12_1">§12.1</a>), 19/rsft (<a href="19-rsft.html#SP1_1_1_1">§1.1.1.1</a>, <a href="19-rsft.html#SP1_1_1_1_1">§1.1.1.1.1</a>, <a href="19-rsft.html#SP1_2">§1.2</a>, <a href="19-rsft.html#SP1_3">§1.3</a>), 21/rl2 (<a href="21-rl2.html#SP14">§14</a>, <a href="21-rl2.html#SP20">§20</a>), 21/fao (<a href="21-fao.html#SP10">§10</a>), 21/ac (<a href="21-ac.html#SP6">§6</a>, <a href="21-ac.html#SP8">§8</a>, <a href="21-ac.html#SP14">§14</a>), 22/cs (<a href="22-cs.html#SP8">§8</a>), 22/pav (<a href="22-pav.html#SP8_1">§8.1</a>), 22/tp2 (<a href="22-tp2.html#SP4">§4</a>), 24/ch (<a href="24-ch.html#SP6">§6</a>, <a href="24-ch.html#SP8">§8</a>), 26/vm (<a href="26-vm.html#SP8">§8</a>), 26/uo (<a href="26-uo.html#SP21">§21</a>), 26/lt (<a href="26-lt.html#SP4_1">§4.1</a>), 26/jl (<a href="26-jl.html#SP6">§6</a>), 26/rt (<a href="26-rt.html#SP1">§1</a>), 26/iti (<a href="26-iti.html#SP10">§10</a>), 26/pl (<a href="26-pl.html#SP12">§12</a>), 26/ts (<a href="26-ts.html#SP10">§10</a>), 27/ei (<a href="27-ei.html#SP3">§3</a>, <a href="27-ei.html#SP4">§4</a>), 27/hr (<a href="27-hr.html#SP4">§4</a>).</p>
|
||||
<p class="endnote">The function Packaging::enter_home_of is used in 6/bp (<a href="6-bp.html#SP42">§42</a>), 6/rlt (<a href="6-rlt.html#SP14">§14</a>, <a href="6-rlt.html#SP15_1">§15.1</a>, <a href="6-rlt.html#SP20">§20</a>, <a href="6-rlt.html#SP20_3">§20.3</a>), 6/nv (<a href="6-nv.html#SP18">§18</a>), 12/cdp (<a href="12-cdp.html#SP2_1_1">§2.1.1</a>), 13/kak (<a href="13-kak.html#SP5">§5</a>), 13/rsfk (<a href="13-rsfk.html#SP4">§4</a>, <a href="13-rsfk.html#SP16_2">§16.2</a>, <a href="13-rsfk.html#SP25">§25</a>), 15/pr (<a href="15-pr.html#SP27">§27</a>), 15/epv (<a href="15-epv.html#SP1_1_2">§1.1.2</a>), 17/tl (<a href="17-tl.html#SP14_1">§14.1</a>, <a href="17-tl.html#SP14_2">§14.2</a>, <a href="17-tl.html#SP16">§16</a>), 17/ts (<a href="17-ts.html#SP8_1">§8.1</a>, <a href="17-ts.html#SP11">§11</a>), 17/rs (<a href="17-rs.html#SP7_3">§7.3</a>), 18/lc (<a href="18-lc.html#SP11">§11</a>, <a href="18-lc.html#SP12_1">§12.1</a>), 19/rsft (<a href="19-rsft.html#SP1_1_1_1">§1.1.1.1</a>, <a href="19-rsft.html#SP1_1_1_1_1">§1.1.1.1.1</a>, <a href="19-rsft.html#SP1_2">§1.2</a>, <a href="19-rsft.html#SP1_3">§1.3</a>), 21/rl2 (<a href="21-rl2.html#SP14">§14</a>, <a href="21-rl2.html#SP20">§20</a>), 21/fao (<a href="21-fao.html#SP10">§10</a>), 21/ac (<a href="21-ac.html#SP6">§6</a>, <a href="21-ac.html#SP8">§8</a>, <a href="21-ac.html#SP14">§14</a>), 22/cs (<a href="22-cs.html#SP8">§8</a>), 22/pav (<a href="22-pav.html#SP8_1">§8.1</a>), 22/tp2 (<a href="22-tp2.html#SP4">§4</a>), 24/ch (<a href="24-ch.html#SP6">§6</a>, <a href="24-ch.html#SP8">§8</a>), 26/vm (<a href="26-vm.html#SP8">§8</a>), 26/uo (<a href="26-uo.html#SP21">§21</a>), 26/lt (<a href="26-lt.html#SP4_1">§4.1</a>), 26/jl (<a href="26-jl.html#SP6">§6</a>), 26/rt (<a href="26-rt.html#SP1">§1</a>), 26/iti (<a href="26-iti.html#SP10">§10</a>), 26/pl (<a href="26-pl.html#SP12">§12</a>), 26/ts (<a href="26-ts.html#SP10">§10</a>), 27/ei (<a href="27-ei.html#SP3">§3</a>, <a href="27-ei.html#SP4">§4</a>), 27/hr (<a href="27-hr.html#SP4">§4</a>).</p>
|
||||
|
||||
<p class="endnote">The function Packaging::enter_current_enclosure is used in 13/rsfk (<a href="13-rsfk.html#SP4">§4</a>), 17/tl (<a href="17-tl.html#SP16">§16</a>), 17/ts (<a href="17-ts.html#SP8_1">§8.1</a>), 18/lc (<a href="18-lc.html#SP11">§11</a>).</p>
|
||||
<p class="endnote">The function Packaging::enter_current_enclosure appears nowhere else.</p>
|
||||
|
||||
<p class="endnote">The function Packaging::current_enclosure is used in 12/dtd (<a href="12-dtd.html#SP4">§4</a>), 13/rsfk (<a href="13-rsfk.html#SP19">§19</a>), 17/tl (<a href="17-tl.html#SP7">§7</a>, <a href="17-tl.html#SP10_2_1">§10.2.1</a>, <a href="17-tl.html#SP14_2">§14.2</a>), 17/ts (<a href="17-ts.html#SP8">§8</a>, <a href="17-ts.html#SP8_1">§8.1</a>), 18/lc (<a href="18-lc.html#SP5">§5</a>, <a href="18-lc.html#SP11">§11</a>), 26/iti (<a href="26-iti.html#SP9">§9</a>).</p>
|
||||
<p class="endnote">The function Packaging::current_enclosure is used in 17/tl (<a href="17-tl.html#SP10_2_1">§10.2.1</a>, <a href="17-tl.html#SP14_2">§14.2</a>), 17/ts (<a href="17-ts.html#SP8">§8</a>, <a href="17-ts.html#SP8_1">§8.1</a>), 18/lc (<a href="18-lc.html#SP5">§5</a>), 26/iti (<a href="26-iti.html#SP9">§9</a>), 27/hr (<a href="27-hr.html#SP5">§5</a>).</p>
|
||||
|
||||
<p class="endnote">The structure packaging_state is private to this section.</p>
|
||||
|
||||
|
@ -236,9 +236,9 @@
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">The function Packaging::enter is used in <a href="#SP5">§5</a>, 5/ins (<a href="5-ins.html#SP34">§34</a>), 5/nv (<a href="5-nv.html#SP16">§16</a>), 13/rsfk (<a href="13-rsfk.html#SP16_1">§16.1</a>, <a href="13-rsfk.html#SP26">§26</a>), 15/epv (<a href="15-epv.html#SP2">§2</a>), 16/ic (<a href="16-ic.html#SP10">§10</a>), 17/rs (<a href="17-rs.html#SP6_1">§6.1</a>, <a href="17-rs.html#SP7_1">§7.1</a>), 21/rl (<a href="21-rl.html#SP9">§9</a>), 21/rl2 (<a href="21-rl2.html#SP20">§20</a>), 22/ph (<a href="22-ph.html#SP12">§12</a>), 27/ei (<a href="27-ei.html#SP3">§3</a>, <a href="27-ei.html#SP4">§4</a>), 27/hl (<a href="27-hl.html#SP1">§1</a>).</p>
|
||||
<p class="endnote">The function Packaging::enter is used in <a href="#SP5">§5</a>, 5/ins (<a href="5-ins.html#SP34">§34</a>), 5/nv (<a href="5-nv.html#SP16">§16</a>), 13/rsfk (<a href="13-rsfk.html#SP16_1">§16.1</a>, <a href="13-rsfk.html#SP25">§25</a>), 15/epv (<a href="15-epv.html#SP2">§2</a>), 16/ic (<a href="16-ic.html#SP10">§10</a>), 17/rs (<a href="17-rs.html#SP6_1">§6.1</a>, <a href="17-rs.html#SP7_1">§7.1</a>), 21/rl (<a href="21-rl.html#SP9">§9</a>), 21/rl2 (<a href="21-rl2.html#SP20">§20</a>), 22/ph (<a href="22-ph.html#SP12">§12</a>), 27/ei (<a href="27-ei.html#SP3">§3</a>, <a href="27-ei.html#SP4">§4</a>), 27/hl (<a href="27-hl.html#SP1">§1</a>).</p>
|
||||
|
||||
<p class="endnote">The function Packaging::exit is used in 5/ins (<a href="5-ins.html#SP34">§34</a>), 5/nv (<a href="5-nv.html#SP16">§16</a>), 6/bp (<a href="6-bp.html#SP42">§42</a>), 6/rlt (<a href="6-rlt.html#SP14">§14</a>, <a href="6-rlt.html#SP15_1">§15.1</a>, <a href="6-rlt.html#SP20">§20</a>, <a href="6-rlt.html#SP20_3">§20.3</a>), 6/nv (<a href="6-nv.html#SP18">§18</a>), 12/cdp (<a href="12-cdp.html#SP2_1_1">§2.1.1</a>), 13/kak (<a href="13-kak.html#SP5">§5</a>), 13/rsfk (<a href="13-rsfk.html#SP4">§4</a>, <a href="13-rsfk.html#SP16_1">§16.1</a>, <a href="13-rsfk.html#SP16_2">§16.2</a>, <a href="13-rsfk.html#SP26">§26</a>), 15/pr (<a href="15-pr.html#SP27">§27</a>), 15/epv (<a href="15-epv.html#SP1_1_2">§1.1.2</a>, <a href="15-epv.html#SP2">§2</a>), 16/ic (<a href="16-ic.html#SP10">§10</a>), 17/tl (<a href="17-tl.html#SP14_1">§14.1</a>, <a href="17-tl.html#SP14_2">§14.2</a>, <a href="17-tl.html#SP16">§16</a>), 17/ts (<a href="17-ts.html#SP8_1">§8.1</a>, <a href="17-ts.html#SP11">§11</a>), 17/rs (<a href="17-rs.html#SP6_1">§6.1</a>, <a href="17-rs.html#SP7_1">§7.1</a>, <a href="17-rs.html#SP7_3">§7.3</a>), 18/lc (<a href="18-lc.html#SP11">§11</a>, <a href="18-lc.html#SP12_1">§12.1</a>), 19/rsft (<a href="19-rsft.html#SP1_1_1_1">§1.1.1.1</a>, <a href="19-rsft.html#SP1_1_1_1_1">§1.1.1.1.1</a>, <a href="19-rsft.html#SP1_2">§1.2</a>, <a href="19-rsft.html#SP1_3">§1.3</a>), 21/rl (<a href="21-rl.html#SP9">§9</a>), 21/rl2 (<a href="21-rl2.html#SP14">§14</a>, <a href="21-rl2.html#SP20">§20</a>), 21/fao (<a href="21-fao.html#SP10">§10</a>), 21/ac (<a href="21-ac.html#SP6">§6</a>, <a href="21-ac.html#SP8">§8</a>, <a href="21-ac.html#SP14">§14</a>), 22/cs (<a href="22-cs.html#SP8">§8</a>), 22/ph (<a href="22-ph.html#SP12">§12</a>), 22/pav (<a href="22-pav.html#SP8_1">§8.1</a>), 22/tp2 (<a href="22-tp2.html#SP4">§4</a>), 24/ch (<a href="24-ch.html#SP6">§6</a>, <a href="24-ch.html#SP8">§8</a>), 26/vm (<a href="26-vm.html#SP8">§8</a>), 26/uo (<a href="26-uo.html#SP21">§21</a>), 26/lt (<a href="26-lt.html#SP4_1">§4.1</a>), 26/jl (<a href="26-jl.html#SP6">§6</a>), 26/rt (<a href="26-rt.html#SP4">§4</a>), 26/iti (<a href="26-iti.html#SP10">§10</a>), 26/pl (<a href="26-pl.html#SP12">§12</a>), 26/ts (<a href="26-ts.html#SP10">§10</a>), 27/ei (<a href="27-ei.html#SP3">§3</a>, <a href="27-ei.html#SP4">§4</a>), 27/hl (<a href="27-hl.html#SP1">§1</a>), 27/hr (<a href="27-hr.html#SP4">§4</a>).</p>
|
||||
<p class="endnote">The function Packaging::exit is used in 5/ins (<a href="5-ins.html#SP34">§34</a>), 5/nv (<a href="5-nv.html#SP16">§16</a>), 6/bp (<a href="6-bp.html#SP42">§42</a>), 6/rlt (<a href="6-rlt.html#SP14">§14</a>, <a href="6-rlt.html#SP15_1">§15.1</a>, <a href="6-rlt.html#SP20">§20</a>, <a href="6-rlt.html#SP20_3">§20.3</a>), 6/nv (<a href="6-nv.html#SP18">§18</a>), 12/cdp (<a href="12-cdp.html#SP2_1_1">§2.1.1</a>), 13/kak (<a href="13-kak.html#SP5">§5</a>), 13/rsfk (<a href="13-rsfk.html#SP4">§4</a>, <a href="13-rsfk.html#SP16_1">§16.1</a>, <a href="13-rsfk.html#SP16_2">§16.2</a>, <a href="13-rsfk.html#SP25">§25</a>), 15/pr (<a href="15-pr.html#SP27">§27</a>), 15/epv (<a href="15-epv.html#SP1_1_2">§1.1.2</a>, <a href="15-epv.html#SP2">§2</a>), 16/ic (<a href="16-ic.html#SP10">§10</a>), 17/tl (<a href="17-tl.html#SP14_1">§14.1</a>, <a href="17-tl.html#SP14_2">§14.2</a>, <a href="17-tl.html#SP16">§16</a>), 17/ts (<a href="17-ts.html#SP8_1">§8.1</a>, <a href="17-ts.html#SP11">§11</a>), 17/rs (<a href="17-rs.html#SP6_1">§6.1</a>, <a href="17-rs.html#SP7_1">§7.1</a>, <a href="17-rs.html#SP7_3">§7.3</a>), 18/lc (<a href="18-lc.html#SP11">§11</a>, <a href="18-lc.html#SP12_1">§12.1</a>), 19/rsft (<a href="19-rsft.html#SP1_1_1_1">§1.1.1.1</a>, <a href="19-rsft.html#SP1_1_1_1_1">§1.1.1.1.1</a>, <a href="19-rsft.html#SP1_2">§1.2</a>, <a href="19-rsft.html#SP1_3">§1.3</a>), 21/rl (<a href="21-rl.html#SP9">§9</a>), 21/rl2 (<a href="21-rl2.html#SP14">§14</a>, <a href="21-rl2.html#SP20">§20</a>), 21/fao (<a href="21-fao.html#SP10">§10</a>), 21/ac (<a href="21-ac.html#SP6">§6</a>, <a href="21-ac.html#SP8">§8</a>, <a href="21-ac.html#SP14">§14</a>), 22/cs (<a href="22-cs.html#SP8">§8</a>), 22/ph (<a href="22-ph.html#SP12">§12</a>), 22/pav (<a href="22-pav.html#SP8_1">§8.1</a>), 22/tp2 (<a href="22-tp2.html#SP4">§4</a>), 24/ch (<a href="24-ch.html#SP6">§6</a>, <a href="24-ch.html#SP8">§8</a>), 26/vm (<a href="26-vm.html#SP8">§8</a>), 26/uo (<a href="26-uo.html#SP21">§21</a>), 26/lt (<a href="26-lt.html#SP4_1">§4.1</a>), 26/jl (<a href="26-jl.html#SP6">§6</a>), 26/rt (<a href="26-rt.html#SP4">§4</a>), 26/iti (<a href="26-iti.html#SP10">§10</a>), 26/pl (<a href="26-pl.html#SP12">§12</a>), 26/ts (<a href="26-ts.html#SP10">§10</a>), 27/ei (<a href="27-ei.html#SP3">§3</a>, <a href="27-ei.html#SP4">§4</a>), 27/hl (<a href="27-hl.html#SP1">§1</a>), 27/hr (<a href="27-hr.html#SP4">§4</a>).</p>
|
||||
|
||||
<p class="endnote">The function Packaging::incarnate is used in 21/rl (<a href="21-rl.html#SP9">§9</a>), 27/ei (<a href="27-ei.html#SP3">§3</a>).</p>
|
||||
|
||||
|
@ -498,15 +498,15 @@
|
|||
|
||||
<p class="endnote">The function Packaging::register_ptype is used in 27/hl (<a href="27-hl.html#SP4">§4</a>).</p>
|
||||
|
||||
<p class="endnote">The function Packaging::supply_iname is used in 6/rlt (<a href="6-rlt.html#SP15_1_2">§15.1.2</a>), 12/dtd (<a href="12-dtd.html#SP4">§4</a>), 13/rsfk (<a href="13-rsfk.html#SP19">§19</a>), 17/tl (<a href="17-tl.html#SP7">§7</a>, <a href="17-tl.html#SP10_2_1">§10.2.1</a>, <a href="17-tl.html#SP14_2">§14.2</a>), 17/ts (<a href="17-ts.html#SP5">§5</a>), 18/lc (<a href="18-lc.html#SP11">§11</a>), 27/ei (<a href="27-ei.html#SP4">§4</a>), 27/hl (<a href="27-hl.html#SP3">§3</a>).</p>
|
||||
<p class="endnote">The function Packaging::supply_iname is used in 17/tl (<a href="17-tl.html#SP10_2_1">§10.2.1</a>, <a href="17-tl.html#SP14_2">§14.2</a>), 17/ts (<a href="17-ts.html#SP5">§5</a>), 27/ei (<a href="27-ei.html#SP4">§4</a>), 27/hl (<a href="27-hl.html#SP3">§3</a>).</p>
|
||||
|
||||
<p class="endnote">The function Packaging::function is used in 12/dtd (<a href="12-dtd.html#SP4">§4</a>), 17/tl (<a href="17-tl.html#SP14_2">§14.2</a>), 17/ts (<a href="17-ts.html#SP5">§5</a>), 27/hl (<a href="27-hl.html#SP1">§1</a>).</p>
|
||||
<p class="endnote">The function Packaging::function is used in 17/tl (<a href="17-tl.html#SP14_2">§14.2</a>), 17/ts (<a href="17-ts.html#SP5">§5</a>), 27/hl (<a href="27-hl.html#SP1">§1</a>).</p>
|
||||
|
||||
<p class="endnote">The function Packaging::function_text is used in 21/rl (<a href="21-rl.html#SP9">§9</a>), 27/hl (<a href="27-hl.html#SP1">§1</a>, <a href="27-hl.html#SP1_1">§1.1</a>).</p>
|
||||
|
||||
<p class="endnote">The function Packaging::datum_text is used in 27/hl (<a href="27-hl.html#SP1">§1</a>).</p>
|
||||
|
||||
<p class="endnote">The function Packaging::house is used in 13/rsfk (<a href="13-rsfk.html#SP13_1_1">§13.1.1</a>, <a href="13-rsfk.html#SP26">§26</a>), 15/ep (<a href="15-ep.html#SP4">§4</a>), 27/in (<a href="27-in.html#SP5">§5</a>).</p>
|
||||
<p class="endnote">The function Packaging::house is used in 13/rsfk (<a href="13-rsfk.html#SP13_1_1">§13.1.1</a>, <a href="13-rsfk.html#SP25">§25</a>), 15/ep (<a href="15-ep.html#SP4">§4</a>), 27/in (<a href="27-in.html#SP5">§5</a>).</p>
|
||||
|
||||
<p class="endnote">The function Packaging::house_with is used in 26/rt (<a href="26-rt.html#SP4">§4</a>), 27/ei (<a href="27-ei.html#SP4">§4</a>), 27/in (<a href="27-in.html#SP4">§4</a>).</p>
|
||||
|
||||
|
|
|
@ -64,15 +64,15 @@
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">The function Translation::same is used in 27/hl (<a href="27-hl.html#SP1">§1</a>), 27/hr (<a href="27-hr.html#SP1_2">§1.2</a>, <a href="27-hr.html#SP1_4">§1.4</a>, <a href="27-hr.html#SP1_6">§1.6</a>, <a href="27-hr.html#SP1_10">§1.10</a>, <a href="27-hr.html#SP1_12">§1.12</a>, <a href="27-hr.html#SP1_14">§1.14</a>, <a href="27-hr.html#SP1_22">§1.22</a>, <a href="27-hr.html#SP1_26">§1.26</a>, <a href="27-hr.html#SP1_28">§1.28</a>, <a href="27-hr.html#SP1_34">§1.34</a>, <a href="27-hr.html#SP1_36">§1.36</a>, <a href="27-hr.html#SP1_38">§1.38</a>, <a href="27-hr.html#SP1_40">§1.40</a>, <a href="27-hr.html#SP1_42">§1.42</a>, <a href="27-hr.html#SP1_46">§1.46</a>, <a href="27-hr.html#SP1_48">§1.48</a>, <a href="27-hr.html#SP5">§5</a>).</p>
|
||||
<p class="endnote">The function Translation::same is used in 27/hl (<a href="27-hl.html#SP1">§1</a>), 27/hr (<a href="27-hr.html#SP1_2">§1.2</a>, <a href="27-hr.html#SP1_4">§1.4</a>, <a href="27-hr.html#SP1_6">§1.6</a>, <a href="27-hr.html#SP1_10">§1.10</a>, <a href="27-hr.html#SP1_12">§1.12</a>, <a href="27-hr.html#SP1_14">§1.14</a>, <a href="27-hr.html#SP1_22">§1.22</a>, <a href="27-hr.html#SP1_26">§1.26</a>, <a href="27-hr.html#SP1_28">§1.28</a>, <a href="27-hr.html#SP1_34">§1.34</a>, <a href="27-hr.html#SP1_36">§1.36</a>, <a href="27-hr.html#SP1_38">§1.38</a>, <a href="27-hr.html#SP1_40">§1.40</a>, <a href="27-hr.html#SP1_42">§1.42</a>, <a href="27-hr.html#SP1_48">§1.48</a>, <a href="27-hr.html#SP1_50">§1.50</a>, <a href="27-hr.html#SP5">§5</a>).</p>
|
||||
|
||||
<p class="endnote">The function Translation::uniqued is used in 27/hr (<a href="27-hr.html#SP1_4">§1.4</a>, <a href="27-hr.html#SP1_6">§1.6</a>, <a href="27-hr.html#SP1_8">§1.8</a>, <a href="27-hr.html#SP1_16">§1.16</a>, <a href="27-hr.html#SP1_20">§1.20</a>, <a href="27-hr.html#SP1_22">§1.22</a>, <a href="27-hr.html#SP1_24">§1.24</a>, <a href="27-hr.html#SP1_28">§1.28</a>, <a href="27-hr.html#SP1_30">§1.30</a>, <a href="27-hr.html#SP1_32">§1.32</a>, <a href="27-hr.html#SP1_36">§1.36</a>, <a href="27-hr.html#SP1_38">§1.38</a>, <a href="27-hr.html#SP1_40">§1.40</a>, <a href="27-hr.html#SP1_42">§1.42</a>).</p>
|
||||
<p class="endnote">The function Translation::uniqued is used in 27/hr (<a href="27-hr.html#SP1_4">§1.4</a>, <a href="27-hr.html#SP1_6">§1.6</a>, <a href="27-hr.html#SP1_8">§1.8</a>, <a href="27-hr.html#SP1_14">§1.14</a>, <a href="27-hr.html#SP1_16">§1.16</a>, <a href="27-hr.html#SP1_20">§1.20</a>, <a href="27-hr.html#SP1_22">§1.22</a>, <a href="27-hr.html#SP1_24">§1.24</a>, <a href="27-hr.html#SP1_28">§1.28</a>, <a href="27-hr.html#SP1_30">§1.30</a>, <a href="27-hr.html#SP1_32">§1.32</a>, <a href="27-hr.html#SP1_36">§1.36</a>, <a href="27-hr.html#SP1_38">§1.38</a>, <a href="27-hr.html#SP1_40">§1.40</a>, <a href="27-hr.html#SP1_42">§1.42</a>, <a href="27-hr.html#SP1_46">§1.46</a>).</p>
|
||||
|
||||
<p class="endnote">The function Translation::to is used in 27/hr (<a href="27-hr.html#SP1_4">§1.4</a>, <a href="27-hr.html#SP1_10">§1.10</a>, <a href="27-hr.html#SP1_12">§1.12</a>, <a href="27-hr.html#SP1_18">§1.18</a>, <a href="27-hr.html#SP1_22">§1.22</a>, <a href="27-hr.html#SP1_26">§1.26</a>, <a href="27-hr.html#SP1_28">§1.28</a>, <a href="27-hr.html#SP1_36">§1.36</a>, <a href="27-hr.html#SP1_38">§1.38</a>, <a href="27-hr.html#SP1_40">§1.40</a>, <a href="27-hr.html#SP1_42">§1.42</a>, <a href="27-hr.html#SP1_46">§1.46</a>).</p>
|
||||
<p class="endnote">The function Translation::to is used in 27/hr (<a href="27-hr.html#SP1_4">§1.4</a>, <a href="27-hr.html#SP1_10">§1.10</a>, <a href="27-hr.html#SP1_12">§1.12</a>, <a href="27-hr.html#SP1_18">§1.18</a>, <a href="27-hr.html#SP1_22">§1.22</a>, <a href="27-hr.html#SP1_26">§1.26</a>, <a href="27-hr.html#SP1_28">§1.28</a>, <a href="27-hr.html#SP1_36">§1.36</a>, <a href="27-hr.html#SP1_38">§1.38</a>, <a href="27-hr.html#SP1_40">§1.40</a>, <a href="27-hr.html#SP1_42">§1.42</a>, <a href="27-hr.html#SP1_48">§1.48</a>).</p>
|
||||
|
||||
<p class="endnote">The function Translation::to_uniqued appears nowhere else.</p>
|
||||
|
||||
<p class="endnote">The function Translation::generate is used in 27/hr (<a href="27-hr.html#SP1_6">§1.6</a>, <a href="27-hr.html#SP1_8">§1.8</a>, <a href="27-hr.html#SP1_12">§1.12</a>, <a href="27-hr.html#SP1_14">§1.14</a>, <a href="27-hr.html#SP1_22">§1.22</a>, <a href="27-hr.html#SP1_24">§1.24</a>, <a href="27-hr.html#SP1_28">§1.28</a>, <a href="27-hr.html#SP1_30">§1.30</a>, <a href="27-hr.html#SP1_34">§1.34</a>, <a href="27-hr.html#SP1_36">§1.36</a>, <a href="27-hr.html#SP1_44">§1.44</a>).</p>
|
||||
<p class="endnote">The function Translation::generate is used in 27/hr (<a href="27-hr.html#SP1_4">§1.4</a>, <a href="27-hr.html#SP1_6">§1.6</a>, <a href="27-hr.html#SP1_8">§1.8</a>, <a href="27-hr.html#SP1_12">§1.12</a>, <a href="27-hr.html#SP1_14">§1.14</a>, <a href="27-hr.html#SP1_22">§1.22</a>, <a href="27-hr.html#SP1_24">§1.24</a>, <a href="27-hr.html#SP1_28">§1.28</a>, <a href="27-hr.html#SP1_30">§1.30</a>, <a href="27-hr.html#SP1_34">§1.34</a>, <a href="27-hr.html#SP1_36">§1.36</a>, <a href="27-hr.html#SP1_44">§1.44</a>).</p>
|
||||
|
||||
<p class="endnote">The function Translation::generate_in is used in 27/hr (<a href="27-hr.html#SP1_32">§1.32</a>, <a href="27-hr.html#SP1_40">§1.40</a>).</p>
|
||||
|
||||
|
|
|
@ -461,7 +461,7 @@ turns up subsequently, e.g., in response to
|
|||
|
||||
<p class="endnote">The function Instances::get_name is used in <a href="#SP15_1">§15.1</a>, <a href="#SP15_2">§15.2</a>, <a href="#SP27">§27</a>, <a href="#SP37">§37</a>, <a href="#SP38_2">§38.2</a>, 2/sq (<a href="2-sq.html#SP2">§2</a>), 5/ipw (<a href="5-ipw.html#SP2_2_1">§2.2.1</a>), 8/ed2 (<a href="8-ed2.html#SP3_2_1_7_2">§3.2.1.7.2</a>, <a href="8-ed2.html#SP3_2_1_7_4">§3.2.1.7.4</a>), 9/rpt (<a href="9-rpt.html#SP9_5_1">§9.5.1</a>), 9/tc (<a href="9-tc.html#SP5_4_1">§5.4.1</a>), 14/rv (<a href="14-rv.html#SP3">§3</a>).</p>
|
||||
|
||||
<p class="endnote">The function Instances::get_name_in_play is used in <a href="#SP25">§25</a>, 13/rsfk (<a href="13-rsfk.html#SP26_3">§26.3</a>).</p>
|
||||
<p class="endnote">The function Instances::get_name_in_play is used in <a href="#SP25">§25</a>, 13/rsfk (<a href="13-rsfk.html#SP25_3">§25.3</a>).</p>
|
||||
|
||||
<p class="endnote">The function Instances::full_name_includes appears nowhere else.</p>
|
||||
|
||||
|
@ -469,7 +469,7 @@ turns up subsequently, e.g., in response to
|
|||
|
||||
<p class="endnote">The function Instances::identifier appears nowhere else.</p>
|
||||
|
||||
<p class="endnote">The function Instances::iname is used in <a href="#SP6">§6</a>, <a href="#SP15">§15</a>, <a href="#SP29">§29</a>, <a href="#SP34">§34</a>, 13/rsfk (<a href="13-rsfk.html#SP4">§4</a>, <a href="13-rsfk.html#SP26_3">§26.3</a>), 26/iti (<a href="26-iti.html#SP9">§9</a>), 26/ts (<a href="26-ts.html#SP10">§10</a>).</p>
|
||||
<p class="endnote">The function Instances::iname is used in <a href="#SP6">§6</a>, <a href="#SP15">§15</a>, <a href="#SP29">§29</a>, <a href="#SP34">§34</a>, 13/rsfk (<a href="13-rsfk.html#SP4">§4</a>, <a href="13-rsfk.html#SP25_3">§25.3</a>), 26/iti (<a href="26-iti.html#SP9">§9</a>), 26/ts (<a href="26-ts.html#SP10">§10</a>).</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP15"></a><b>§15. Writer. </b></p>
|
||||
|
||||
|
@ -751,7 +751,7 @@ are allowed to refine it. Such revisions are allowed to specialise the kind
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">The function Instances::count is used in <a href="#SP37">§37</a>, 5/ipw (<a href="5-ipw.html#SP3_3">§3.3</a>), 13/rsfk (<a href="13-rsfk.html#SP26">§26</a>), 13/ki (<a href="13-ki.html#SP4">§4</a>), 19/tb (<a href="19-tb.html#SP26_3">§26.3</a>).</p>
|
||||
<p class="endnote">The function Instances::count is used in <a href="#SP37">§37</a>, 5/ipw (<a href="5-ipw.html#SP3_3">§3.3</a>), 13/rsfk (<a href="13-rsfk.html#SP25">§25</a>), 13/ki (<a href="13-ki.html#SP4">§4</a>), 19/tb (<a href="19-tb.html#SP26_3">§26.3</a>).</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP23"></a><b>§23. Connections. </b>Some of Inform's plugins give special meanings to particular kinds, in such
|
||||
a way that they need to be given additional structure. For example, the
|
||||
|
|
|
@ -2531,7 +2531,7 @@ note that the following uses the raw text of the word.
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">The function LiteralPatterns::printing_routine is used in 13/rsfk (<a href="13-rsfk.html#SP26_2">§26.2</a>).</p>
|
||||
<p class="endnote">The function LiteralPatterns::printing_routine is used in 13/rsfk (<a href="13-rsfk.html#SP25_2">§25.2</a>).</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP27_1"></a><b>§27.1. </b>This was at one time a more complicated criterion, which masked bugs in
|
||||
the sorting measure.
|
||||
|
@ -4189,7 +4189,7 @@ set.
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">The function LiteralPatterns::list_of_literal_forms is used in <a href="#SP2">§2</a>, <a href="#SP34">§34</a>, 13/rsfk (<a href="13-rsfk.html#SP26_2">§26.2</a>), 13/ki (<a href="13-ki.html#SP1_8">§1.8</a>, <a href="13-ki.html#SP5_1_1">§5.1.1</a>).</p>
|
||||
<p class="endnote">The function LiteralPatterns::list_of_literal_forms is used in <a href="#SP2">§2</a>, <a href="#SP34">§34</a>, 13/rsfk (<a href="13-rsfk.html#SP25_2">§25.2</a>), 13/ki (<a href="13-ki.html#SP1_8">§1.8</a>, <a href="13-ki.html#SP5_1_1">§5.1.1</a>).</p>
|
||||
|
||||
<hr class="tocbar">
|
||||
<ul class="toc"><li><i>(This section begins Chapter 5: Nouns.)</i></li><li><a href="5-tod.html">Continue with 'Times of Day'</a></li></ul><hr class="tocbar">
|
||||
|
|
|
@ -609,6 +609,7 @@ there's very little to say.
|
|||
<span class="identifier">text_stream</span><span class="plain"> *</span><span class="identifier">rvalue</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">nlv</span><span class="plain">-</span><span class="element">>housed_in_variables_array</span><span class="plain"> == </span><span class="identifier">FALSE</span><span class="plain">)</span>
|
||||
<span class="identifier">rvalue</span><span class="plain"> = </span><span class="functiontext">NonlocalVariables::identifier</span><span class="plain">(</span><span class="identifier">nlv</span><span class="plain">);</span>
|
||||
<span class="identifier">LOG</span><span class="plain">(</span><span class="string">"Doing stuff with %W %n %S as rvalue\</span><span class="plain">n</span><span class="string">"</span><span class="plain">, </span><span class="identifier">nlv</span><span class="plain">-</span><span class="element">>name</span><span class="plain">, </span><span class="identifier">iname</span><span class="plain">, </span><span class="identifier">rvalue</span><span class="plain">);</span>
|
||||
<span class="functiontext">Emit::variable</span><span class="plain">(</span><span class="identifier">iname</span><span class="plain">, </span><span class="identifier">nlv</span><span class="plain">-</span><span class="element">>nlv_kind</span><span class="plain">, </span><span class="identifier">v1</span><span class="plain">, </span><span class="identifier">v2</span><span class="plain">, </span><span class="identifier">rvalue</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">nlv</span><span class="plain"> == </span><span class="identifier">command_prompt_VAR</span><span class="plain">) {</span>
|
||||
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Routines::begin</span><span class="plain">(</span><span class="functiontext">Hierarchy::find</span><span class="plain">(</span><span class="constant">COMMANDPROMPTTEXT_HL</span><span class="plain">));</span>
|
||||
|
|
|
@ -67,13 +67,13 @@ it's convenient to associate them with nametags.
|
|||
|
||||
<p class="endnote">The function UseNouns::identifier is used in 5/ins (<a href="5-ins.html#SP14">§14</a>), 5/ipw (<a href="5-ipw.html#SP3_1">§3.1</a>, <a href="5-ipw.html#SP3_5">§3.5</a>).</p>
|
||||
|
||||
<p class="endnote">The function UseNouns::iname is used in 5/ins (<a href="5-ins.html#SP14">§14</a>), 13/rsfk (<a href="13-rsfk.html#SP25">§25</a>).</p>
|
||||
<p class="endnote">The function UseNouns::iname is used in 5/ins (<a href="5-ins.html#SP14">§14</a>), 13/rsfk (<a href="13-rsfk.html#SP24">§24</a>).</p>
|
||||
|
||||
<p class="endnote">The function UseNouns::iname_set is used in 13/rsfk (<a href="13-rsfk.html#SP25">§25</a>).</p>
|
||||
<p class="endnote">The function UseNouns::iname_set is used in 13/rsfk (<a href="13-rsfk.html#SP24">§24</a>).</p>
|
||||
|
||||
<p class="endnote">The function UseNouns::noun_compose_identifier is used in 5/ins (<a href="5-ins.html#SP14">§14</a>).</p>
|
||||
|
||||
<p class="endnote">The function UseNouns::noun_impose_identifier is used in 13/rsfk (<a href="13-rsfk.html#SP25">§25</a>).</p>
|
||||
<p class="endnote">The function UseNouns::noun_impose_identifier is used in 13/rsfk (<a href="13-rsfk.html#SP24">§24</a>).</p>
|
||||
|
||||
<p class="endnote">The function UseNouns::noun_set_I6_representation is used in <a href="#SP2_1">§2.1</a>.</p>
|
||||
|
||||
|
|
|
@ -1395,8 +1395,7 @@ logical properties of the two terms of the BP being defined.
|
|||
<pre class="displaydefn">
|
||||
<span class="reserved">binary_predicate</span><span class="plain"> *</span><span class="identifier">dbp</span><span class="plain"> = </span><span class="identifier">bp</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">bp</span><span class="plain">-</span><span class="element">>right_way_round</span><span class="plain"> == </span><span class="identifier">FALSE</span><span class="plain">) </span><span class="identifier">dbp</span><span class="plain"> = </span><span class="identifier">bp</span><span class="plain">-</span><span class="element">>reversal</span><span class="plain">;</span>
|
||||
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">bm_symb</span><span class="plain"> = </span><span class="functiontext">Packaging::supply_iname</span><span class="plain">(</span><span class="identifier">bp</span><span class="plain">-</span><span class="element">>bp_package</span><span class="plain">, </span><span class="constant">MISC_PR_COUNTER</span><span class="plain">);</span>
|
||||
<span class="identifier">Inter::Symbols::set_flag</span><span class="plain">(</span><span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">bm_symb</span><span class="plain">), </span><span class="identifier">MAKE_NAME_UNIQUE</span><span class="plain">);</span>
|
||||
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">bm_symb</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">ABILITIES_HL</span><span class="plain">, </span><span class="identifier">bp</span><span class="plain">-</span><span class="element">>bp_package</span><span class="plain">);</span>
|
||||
<span class="functiontext">Emit::sum_constant_begin</span><span class="plain">(</span><span class="identifier">bm_symb</span><span class="plain">, </span><span class="identifier">K_value</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">RELS_TEST_iname</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"no RELS symbols yet"</span><span class="plain">);</span>
|
||||
<span class="functiontext">Emit::array_iname_entry</span><span class="plain">(</span><span class="identifier">RELS_TEST_iname</span><span class="plain">);</span>
|
||||
|
|
|
@ -331,8 +331,7 @@ make that explicit: for instance, "taking" becomes "the taking action".
|
|||
<span class="identifier">an</span><span class="plain">-</span><span class="element">>translated</span><span class="plain"> = </span><span class="identifier">FALSE</span><span class="plain">;</span>
|
||||
|
||||
<span class="identifier">an</span><span class="plain">-</span><span class="element">>an_package</span><span class="plain"> = </span><span class="identifier">Hierarchy::local_package</span><span class="plain">(</span><span class="identifier">ACTIONS_HAP</span><span class="plain">);</span>
|
||||
<span class="identifier">an</span><span class="plain">-</span><span class="element">>an_base_iname</span><span class="plain"> = </span><span class="identifier">InterNames::new</span><span class="plain">(</span><span class="identifier">ACTION_BASE_INAMEF</span><span class="plain">);</span>
|
||||
<span class="identifier">InterNames::attach_memo</span><span class="plain">(</span><span class="identifier">an</span><span class="plain">-</span><span class="element">>an_base_iname</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">);</span>
|
||||
<span class="identifier">an</span><span class="plain">-</span><span class="element">>an_base_iname</span><span class="plain"> = </span><span class="identifier">Hierarchy::make_iname_with_memo</span><span class="plain">(</span><span class="identifier">ACTION_BASE_NAME_HL</span><span class="plain">, </span><span class="identifier">an</span><span class="plain">-</span><span class="element">>an_package</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">);</span>
|
||||
<span class="identifier">an</span><span class="plain">-</span><span class="element">>use_verb_routine_in_I6_library</span><span class="plain"> = </span><span class="identifier">TRUE</span><span class="plain">;</span>
|
||||
<span class="identifier">an</span><span class="plain">-</span><span class="element">>check_rules</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
<span class="identifier">an</span><span class="plain">-</span><span class="element">>carry_out_rules</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
|
|
|
@ -2081,9 +2081,10 @@ and in this case we therefore ignore <code class="display"><span class="extract"
|
|||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">PL::Actions::Patterns::as_stored_action</span><span class="plain">(</span><span class="identifier">value_holster</span><span class="plain"> *</span><span class="identifier">VH</span><span class="plain">, </span><span class="reserved">action_pattern</span><span class="plain"> *</span><span class="identifier">ap</span><span class="plain">) {</span>
|
||||
<span class="identifier">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="identifier">Packaging::enter_current_enclosure</span><span class="plain">();</span>
|
||||
<span class="identifier">inter_name</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain"> = </span><span class="identifier">Kinds::RunTime::begin_block_constant</span><span class="plain">(</span><span class="identifier">K_stored_action</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">N</span><span class="plain">) </span><span class="identifier">InterNames::holster</span><span class="plain">(</span><span class="identifier">VH</span><span class="plain">, </span><span class="identifier">N</span><span class="plain">);</span>
|
||||
<span class="identifier">package_request</span><span class="plain"> *</span><span class="identifier">PR</span><span class="plain"> = </span><span class="identifier">Hierarchy::package_in_enclosure</span><span class="plain">(</span><span class="identifier">BLOCK_CONSTANTS_HAP</span><span class="plain">);</span>
|
||||
<span class="identifier">inter_name</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain"> = </span><span class="identifier">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="identifier">BLOCK_CONSTANT_HL</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">);</span>
|
||||
<span class="identifier">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="identifier">Packaging::enter_home_of</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">);</span>
|
||||
<span class="identifier">Emit::named_late_array_begin</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">, </span><span class="identifier">K_value</span><span class="plain">);</span>
|
||||
|
||||
<span class="identifier">Kinds::RunTime::emit_block_value_header</span><span class="plain">(</span><span class="identifier">K_stored_action</span><span class="plain">, </span><span class="identifier">FALSE</span><span class="plain">, 6);</span>
|
||||
<span class="reserved">action_name</span><span class="plain"> *</span><span class="identifier">an</span><span class="plain"> = </span><span class="functiontext">PL::Actions::Lists::get_singleton_action</span><span class="plain">(</span><span class="identifier">ap</span><span class="plain">-</span><span class="element">>action</span><span class="plain">);</span>
|
||||
|
@ -2118,8 +2119,9 @@ and in this case we therefore ignore <code class="display"><span class="extract"
|
|||
<span class="identifier">Emit::array_iname_entry</span><span class="plain">(</span><span class="identifier">Instances::iname</span><span class="plain">(</span><span class="identifier">I_yourself</span><span class="plain">));</span>
|
||||
<span class="identifier">Emit::array_numeric_entry</span><span class="plain">((</span><span class="identifier">inter_t</span><span class="plain">) </span><span class="identifier">request_bits</span><span class="plain">);</span>
|
||||
<span class="identifier">Emit::array_numeric_entry</span><span class="plain">(0);</span>
|
||||
<span class="identifier">Kinds::RunTime::end_block_constant</span><span class="plain">(</span><span class="identifier">K_stored_action</span><span class="plain">);</span>
|
||||
<span class="identifier">Emit::array_end</span><span class="plain">();</span>
|
||||
<span class="identifier">Packaging::exit</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">N</span><span class="plain">) </span><span class="identifier">InterNames::holster</span><span class="plain">(</span><span class="identifier">VH</span><span class="plain">, </span><span class="identifier">N</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">PL::Actions::Patterns::emit_pattern_match</span><span class="plain">(</span><span class="reserved">action_pattern</span><span class="plain"> </span><span class="identifier">ap</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">naming_mode</span><span class="plain">) {</span>
|
||||
|
|
|
@ -965,9 +965,8 @@ next priority, and so on up the hierarchy.
|
|||
<span class="functiontext">PL::Parsing::Lines::reset_labels</span><span class="plain">();</span>
|
||||
<span class="reserved">switch</span><span class="plain">(</span><span class="identifier">gv</span><span class="plain">-</span><span class="element">>gv_is</span><span class="plain">) {</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">GV_IS_COMMAND</span><span class="plain">: {</span>
|
||||
<span class="identifier">inter_name</span><span class="plain"> *</span><span class="identifier">array_iname</span><span class="plain"> = </span><span class="identifier">InterNames::new</span><span class="plain">(</span><span class="identifier">VERB_DECLARATION_ARRAY_INAMEF</span><span class="plain">);</span>
|
||||
<span class="identifier">package_request</span><span class="plain"> *</span><span class="identifier">PR</span><span class="plain"> = </span><span class="identifier">Hierarchy::synoptic_package</span><span class="plain">(</span><span class="identifier">COMMANDS_HAP</span><span class="plain">);</span>
|
||||
<span class="identifier">Packaging::house</span><span class="plain">(</span><span class="identifier">array_iname</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">);</span>
|
||||
<span class="identifier">inter_name</span><span class="plain"> *</span><span class="identifier">array_iname</span><span class="plain"> = </span><span class="identifier">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="identifier">VERB_DECLARATION_ARRAY_HL</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">);</span>
|
||||
<span class="identifier">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="identifier">Packaging::enter_home_of</span><span class="plain">(</span><span class="identifier">array_iname</span><span class="plain">);</span>
|
||||
<span class="functiontext">PL::Parsing::Verbs::gv_compile_Verb_directive_header</span><span class="plain">(</span><span class="identifier">gv</span><span class="plain">, </span><span class="identifier">array_iname</span><span class="plain">);</span>
|
||||
<span class="functiontext">PL::Parsing::Verbs::gv_compile_lines</span><span class="plain">(</span><span class="identifier">NULL</span><span class="plain">, </span><span class="identifier">gv</span><span class="plain">);</span>
|
||||
|
|
|
@ -409,11 +409,8 @@ we overwrite that with the new (presumably meaningful) one.
|
|||
<span class="identifier">inter_name</span><span class="plain"> *</span><span class="functiontext">Verbs::form_iname</span><span class="plain">(</span><span class="reserved">verb_form</span><span class="plain"> *</span><span class="identifier">vf</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">vf</span><span class="plain">-</span><span class="element">>vf_iname</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) {</span>
|
||||
<span class="identifier">package_request</span><span class="plain"> *</span><span class="identifier">R</span><span class="plain"> = </span><span class="functiontext">Verbs::verb_package</span><span class="plain">(</span><span class="identifier">vf</span><span class="plain">-</span><span class="element">>underlying_verb</span><span class="plain">, </span><span class="identifier">vf</span><span class="plain">-</span><span class="element">>where_vf_created</span><span class="plain">);</span>
|
||||
<span class="identifier">vf</span><span class="plain">-</span><span class="element">>vf_iname</span><span class="plain"> =</span>
|
||||
<span class="identifier">Packaging::function</span><span class="plain">(</span>
|
||||
<span class="identifier">Packaging::supply_iname</span><span class="plain">(</span><span class="identifier">R</span><span class="plain">, </span><span class="identifier">FORM_PR_COUNTER</span><span class="plain">),</span>
|
||||
<span class="identifier">R</span><span class="plain">,</span>
|
||||
<span class="identifier">InterNames::new</span><span class="plain">(</span><span class="identifier">CONJUGATE_VERB_FORM_INAMEF</span><span class="plain">));</span>
|
||||
<span class="identifier">package_request</span><span class="plain"> *</span><span class="identifier">R2</span><span class="plain"> = </span><span class="identifier">Hierarchy::package_within</span><span class="plain">(</span><span class="identifier">VERB_FORMS_HAP</span><span class="plain">, </span><span class="identifier">R</span><span class="plain">);</span>
|
||||
<span class="identifier">vf</span><span class="plain">-</span><span class="element">>vf_iname</span><span class="plain"> = </span><span class="identifier">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="identifier">FORM_FN_HL</span><span class="plain">, </span><span class="identifier">R2</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">vf</span><span class="plain">-</span><span class="element">>vf_iname</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
|
|
|
@ -56,9 +56,8 @@ pcalc_prop_deferral *Calculus::Deferrals::new_deferred_proposition(pcalc_prop *p
|
|||
pdef->reason = reason;
|
||||
pdef->deferred_from = current_sentence;
|
||||
pdef->rtp_iname = NULL;
|
||||
pdef->ppd_iname = Packaging::function(Packaging::supply_iname(Packaging::current_enclosure(), PROPOSITION_PR_COUNTER), Packaging::current_enclosure(), NULL);
|
||||
|
||||
Inter::Symbols::set_flag(InterNames::to_symbol(pdef->ppd_iname), MAKE_NAME_UNIQUE);
|
||||
package_request *PR = Hierarchy::package_in_enclosure(PROPOSITIONS_HAP);
|
||||
pdef->ppd_iname = Hierarchy::make_iname_in(PROPOSITION_HL, PR);
|
||||
|
||||
if (no_further_deferrals) internal_error("Too late now to defer propositions");
|
||||
return pdef;
|
||||
|
|
|
@ -77,17 +77,21 @@ int Kinds::RunTime::compile_default_value_vh(value_holster *VH, kind *K,
|
|||
(Kinds::get_construct(K) == CON_phrase) ||
|
||||
(Kinds::get_construct(K) == CON_relation)) {
|
||||
if (Kinds::get_construct(K) == CON_list_of) {
|
||||
packaging_state save = Packaging::enter_current_enclosure();
|
||||
inter_name *N = Kinds::RunTime::begin_block_constant(K);
|
||||
package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
|
||||
inter_name *N = Hierarchy::make_iname_in(BLOCK_CONSTANT_HL, PR);
|
||||
packaging_state save = Packaging::enter_home_of(N);
|
||||
Emit::named_late_array_begin(N, K_value);
|
||||
inter_name *rks_symb = Kinds::RunTime::compile_default_value_inner(K);
|
||||
Emit::array_iname_entry(rks_symb);
|
||||
Emit::array_numeric_entry(0);
|
||||
Kinds::RunTime::end_block_constant(K);
|
||||
Emit::array_end();
|
||||
Packaging::exit(save);
|
||||
if (N) InterNames::holster(VH, N);
|
||||
} else if (Kinds::Compare::eq(K, K_stored_action)) {
|
||||
packaging_state save = Packaging::enter_current_enclosure();
|
||||
inter_name *N = Kinds::RunTime::begin_block_constant(K_stored_action);
|
||||
package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
|
||||
inter_name *N = Hierarchy::make_iname_in(BLOCK_CONSTANT_HL, PR);
|
||||
packaging_state save = Packaging::enter_home_of(N);
|
||||
Emit::named_late_array_begin(N, K_value);
|
||||
Kinds::RunTime::emit_block_value_header(K_stored_action, FALSE, 6);
|
||||
Emit::array_iname_entry(PL::Actions::double_sharp(PL::Actions::Wait()));
|
||||
Emit::array_numeric_entry(0);
|
||||
|
@ -100,14 +104,16 @@ int Kinds::RunTime::compile_default_value_vh(value_holster *VH, kind *K,
|
|||
#endif
|
||||
Emit::array_numeric_entry(0);
|
||||
Emit::array_numeric_entry(0);
|
||||
Kinds::RunTime::end_block_constant(K_stored_action);
|
||||
Emit::array_end();
|
||||
Packaging::exit(save);
|
||||
if (N) InterNames::holster(VH, N);
|
||||
} else if (Kinds::get_construct(K) == CON_relation) {
|
||||
packaging_state save = Packaging::enter_current_enclosure();
|
||||
inter_name *N = Kinds::RunTime::begin_block_constant(K);
|
||||
package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
|
||||
inter_name *N = Hierarchy::make_iname_in(BLOCK_CONSTANT_HL, PR);
|
||||
packaging_state save = Packaging::enter_home_of(N);
|
||||
Emit::named_late_array_begin(N, K_value);
|
||||
Relations::compile_blank_relation(K);
|
||||
Kinds::RunTime::end_block_constant(K);
|
||||
Emit::array_end();
|
||||
Packaging::exit(save);
|
||||
if (N) InterNames::holster(VH, N);
|
||||
} else {
|
||||
|
@ -126,11 +132,13 @@ int Kinds::RunTime::compile_default_value_vh(value_holster *VH, kind *K,
|
|||
}
|
||||
|
||||
if (Kinds::Compare::eq(K, K_text)) {
|
||||
packaging_state save = Packaging::enter_current_enclosure();
|
||||
inter_name *N = Kinds::RunTime::begin_block_constant(K);
|
||||
package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
|
||||
inter_name *N = Hierarchy::make_iname_in(BLOCK_CONSTANT_HL, PR);
|
||||
packaging_state save = Packaging::enter_home_of(N);
|
||||
Emit::named_late_array_begin(N, K_value);
|
||||
Emit::array_iname_entry(Hierarchy::find(PACKED_TEXT_STORAGE_HL));
|
||||
Emit::array_iname_entry(Hierarchy::find(EMPTY_TEXT_PACKED_HL));
|
||||
Kinds::RunTime::end_block_constant(K);
|
||||
Emit::array_end();
|
||||
Packaging::exit(save);
|
||||
if (N) InterNames::holster(VH, N);
|
||||
return TRUE;
|
||||
|
@ -578,15 +586,16 @@ compile under Inform 6.
|
|||
rks->kind_described = K;
|
||||
rks->make_default = FALSE;
|
||||
rks->default_requested_here = NULL;
|
||||
rks->rks_iname = InterNames::new(KIND_ID_INAMEF);
|
||||
package_request *PR = Kinds::Behaviour::package(K);
|
||||
Packaging::house(rks->rks_iname, PR);
|
||||
// rks->rks_iname = InterNames::new(KIND_ID_INAMEF);
|
||||
// Packaging::house(rks->rks_iname, PR);
|
||||
TEMPORARY_TEXT(TEMP);
|
||||
Kinds::Textual::write(TEMP, K);
|
||||
wording W = Feeds::feed_stream(TEMP);
|
||||
rks->rks_iname = Hierarchy::make_iname_with_memo(KIND_HL, PR, W);
|
||||
DISCARD_TEXT(TEMP);
|
||||
InterNames::attach_memo(rks->rks_iname, W);
|
||||
InterNames::to_symbol(rks->rks_iname);
|
||||
// InterNames::attach_memo(rks->rks_iname, W);
|
||||
// InterNames::to_symbol(rks->rks_iname);
|
||||
rks->rks_dv_iname = Hierarchy::make_iname_in(DEFAULT_VALUE_HL, PR);
|
||||
|
||||
@ It's convenient to combine this system with one which constructs default
|
||||
|
@ -805,18 +814,6 @@ has essentially no memory constraints compared with the Z-machine.
|
|||
LOG("Providing for a total heap of %d, given requirement of %d\n",
|
||||
max_heap, total_heap_allocation);
|
||||
|
||||
@ =
|
||||
inter_name *Kinds::RunTime::begin_block_constant(kind *K) {
|
||||
inter_name *N = Packaging::supply_iname(Packaging::current_enclosure(), BLOCK_CONSTANT_PR_COUNTER);
|
||||
Inter::Symbols::set_flag(InterNames::to_symbol(N), MAKE_NAME_UNIQUE);
|
||||
Emit::named_late_array_begin(N, K_value);
|
||||
return N;
|
||||
}
|
||||
|
||||
void Kinds::RunTime::end_block_constant(kind *K) {
|
||||
Emit::array_end();
|
||||
}
|
||||
|
||||
@ The following routine both compiles code to create a pointer value, and
|
||||
also increments the heap allocation suitably. Each pointer-value kind comes
|
||||
with an estimate of its likely size needs -- its exact size needs if it is
|
||||
|
|
|
@ -105,10 +105,9 @@ literal_text *Strings::TextLiterals::lt_new(int w1, int colour) {
|
|||
x->unexpanded = FALSE;
|
||||
x->small_block_array_needed = FALSE;
|
||||
x->lt_sba_iname = NULL;
|
||||
x->lt_iname = Packaging::supply_iname(Packaging::current_enclosure(), LITERAL_PR_COUNTER);
|
||||
Inter::Symbols::set_flag(InterNames::to_symbol(x->lt_iname), MAKE_NAME_UNIQUE);
|
||||
package_request *PR = Hierarchy::package_in_enclosure(LITERALS_HAP);
|
||||
x->lt_iname = Hierarchy::make_iname_in(TEXT_LITERAL_HL, PR);
|
||||
Emit::annotate_symbol_i(InterNames::to_symbol(x->lt_iname), TEXT_LITERAL_IANN, 1);
|
||||
InterNames::to_symbol(x->lt_iname);
|
||||
if ((wn_quote_suppressed >= 0) && (w1 == wn_quote_suppressed)) x->unexpanded = TRUE;
|
||||
return x;
|
||||
}
|
||||
|
@ -340,15 +339,17 @@ void Strings::TextLiterals::compile_small_block(OUTPUT_STREAM, literal_text *lt)
|
|||
literal_text *Strings::TextLiterals::compile_literal_sb(value_holster *VH, wording W) {
|
||||
literal_text *lt = NULL;
|
||||
if (TEST_COMPILATION_MODE(CONSTANT_CMODE)) {
|
||||
packaging_state save = Packaging::enter_current_enclosure();
|
||||
inter_name *N = Kinds::RunTime::begin_block_constant(K_text);
|
||||
if (N) InterNames::holster(VH, N);
|
||||
package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
|
||||
inter_name *N = Hierarchy::make_iname_in(BLOCK_CONSTANT_HL, PR);
|
||||
packaging_state save = Packaging::enter_home_of(N);
|
||||
Emit::named_late_array_begin(N, K_value);
|
||||
lt = Strings::TextLiterals::compile_literal(NULL, FALSE, W);
|
||||
Emit::array_iname_entry(Hierarchy::find(PACKED_TEXT_STORAGE_HL));
|
||||
if (lt == NULL) Emit::array_iname_entry(Hierarchy::find(EMPTY_TEXT_PACKED_HL));
|
||||
else Emit::array_iname_entry(lt->lt_iname);
|
||||
Kinds::RunTime::end_block_constant(K_text);
|
||||
Emit::array_end();
|
||||
Packaging::exit(save);
|
||||
if (N) InterNames::holster(VH, N);
|
||||
} else {
|
||||
lt = Strings::TextLiterals::compile_literal(VH, TRUE, W);
|
||||
}
|
||||
|
|
|
@ -162,13 +162,15 @@ void Strings::TextSubstitutions::text_substitution_cue(value_holster *VH, wordin
|
|||
text_substitution *ts = Strings::TextSubstitutions::new_text_substitution(W, phsf,
|
||||
adopted_rule_for_compilation, adopted_marker_for_compilation, Packaging::current_enclosure());
|
||||
if (TEST_COMPILATION_MODE(CONSTANT_CMODE)) {
|
||||
packaging_state save = Packaging::enter_current_enclosure();
|
||||
inter_name *N = Kinds::RunTime::begin_block_constant(K_text);
|
||||
if (N) InterNames::holster(VH, N);
|
||||
package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
|
||||
inter_name *N = Hierarchy::make_iname_in(BLOCK_CONSTANT_HL, PR);
|
||||
packaging_state save = Packaging::enter_home_of(N);
|
||||
Emit::named_late_array_begin(N, K_value);
|
||||
Emit::array_iname_entry(Hierarchy::find(CONSTANT_PACKED_TEXT_STORAGE_HL));
|
||||
Emit::array_iname_entry(ts->ts_routine_iname);
|
||||
Kinds::RunTime::end_block_constant(K_text);
|
||||
Emit::array_end();
|
||||
Packaging::exit(save);
|
||||
if (N) InterNames::holster(VH, N);
|
||||
} else {
|
||||
inter_name *tin = Strings::TextSubstitutions::text_substitution_iname(ts);
|
||||
if (Holsters::data_acceptable(VH)) {
|
||||
|
|
|
@ -258,12 +258,14 @@ inter_name *Lists::compile_literal_list(wording W) {
|
|||
int incipit = Wordings::first_wn(W);
|
||||
literal_list *ll = Lists::find_list_at(incipit+1);
|
||||
if (ll) {
|
||||
kind *K = Lists::kind_of_ll(ll, FALSE);
|
||||
packaging_state save = Packaging::enter_current_enclosure();
|
||||
inter_name *N = Kinds::RunTime::begin_block_constant(K);
|
||||
Lists::kind_of_ll(ll, FALSE);
|
||||
package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
|
||||
inter_name *N = Hierarchy::make_iname_in(BLOCK_CONSTANT_HL, PR);
|
||||
packaging_state save = Packaging::enter_home_of(N);
|
||||
Emit::named_late_array_begin(N, K_value);
|
||||
Emit::array_iname_entry(Lists::iname(ll));
|
||||
Emit::array_numeric_entry(0);
|
||||
Kinds::RunTime::end_block_constant(K);
|
||||
Emit::array_end();
|
||||
Packaging::exit(save);
|
||||
return N;
|
||||
}
|
||||
|
@ -272,8 +274,8 @@ inter_name *Lists::compile_literal_list(wording W) {
|
|||
|
||||
inter_name *Lists::iname(literal_list *ll) {
|
||||
if (ll->ll_iname == NULL) {
|
||||
ll->ll_iname = Packaging::supply_iname(Packaging::current_enclosure(), LITERAL_PR_COUNTER);
|
||||
Inter::Symbols::set_flag(InterNames::to_symbol(ll->ll_iname), MAKE_NAME_UNIQUE);
|
||||
package_request *PR = Hierarchy::package_in_enclosure(LITERALS_HAP);
|
||||
ll->ll_iname = Hierarchy::make_iname_in(LIST_LITERAL_HL, PR);
|
||||
}
|
||||
return ll->ll_iname;
|
||||
}
|
||||
|
|
|
@ -87,9 +87,7 @@ void Routines::end_in_current_package(void) {
|
|||
kernel_name = InterNames::one_off(I"kernel", public_name->eventual_owner);
|
||||
Inter::Symbols::set_flag(InterNames::to_symbol(kernel_name), MAKE_NAME_UNIQUE);
|
||||
} else {
|
||||
kernel_name = InterNames::new_in(KERNEL_ROUTINE_INAMEF, InterNames::to_module(public_name));
|
||||
LOG("PN is %n\n", public_name);
|
||||
internal_error("Routine not in function");
|
||||
internal_error("routine not housed in function");
|
||||
}
|
||||
Packaging::house_with(kernel_name, public_name);
|
||||
}
|
||||
|
|
|
@ -973,8 +973,7 @@ inter_symbol *Emit::block(inter_name *iname) {
|
|||
inter_name *block_iname = NULL;
|
||||
if (Packaging::houseed_in_function(iname))
|
||||
block_iname = Packaging::supply_iname(iname->eventual_owner, BLOCK_PR_COUNTER);
|
||||
else
|
||||
block_iname = InterNames::new_in(ROUTINE_BLOCK_INAMEF, InterNames::to_module(iname));
|
||||
else internal_error("routine outside function package");
|
||||
Packaging::house_with(block_iname, iname);
|
||||
inter_symbol *rsymb = Emit::package(block_iname, code_packagetype, NULL);
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@ typedef struct location_requirement {
|
|||
struct package_request *this_mundane_package;
|
||||
int this_exotic_package;
|
||||
struct inter_symbol *any_package_of_this_type;
|
||||
int any_enclosure;
|
||||
} location_requirement;
|
||||
|
||||
location_requirement HierarchyLocations::blank(void) {
|
||||
|
@ -16,6 +17,7 @@ location_requirement HierarchyLocations::blank(void) {
|
|||
req.this_mundane_package = NULL;
|
||||
req.this_exotic_package = -1;
|
||||
req.any_package_of_this_type = NULL;
|
||||
req.any_enclosure = FALSE;
|
||||
return req;
|
||||
}
|
||||
|
||||
|
@ -43,6 +45,12 @@ location_requirement HierarchyLocations::any_package_of_type(text_stream *ptype_
|
|||
return req;
|
||||
}
|
||||
|
||||
location_requirement HierarchyLocations::any_enclosure(void) {
|
||||
location_requirement req = HierarchyLocations::blank();
|
||||
req.any_enclosure = TRUE;
|
||||
return req;
|
||||
}
|
||||
|
||||
location_requirement HierarchyLocations::this_package(package_request *P) {
|
||||
location_requirement req = HierarchyLocations::blank();
|
||||
req.this_mundane_package = P;
|
||||
|
@ -251,11 +259,8 @@ inter_name *HierarchyLocations::find_in_package(int id, package_request *P, word
|
|||
P,
|
||||
NULL);
|
||||
} else {
|
||||
if (Str::len(nrl->access_name) == 0) {
|
||||
LOG("********** %S\n", T);
|
||||
iname = InterNames::one_off(T, P);
|
||||
} else
|
||||
iname = InterNames::one_off(nrl->access_name, P);
|
||||
if (Str::len(nrl->access_name) == 0) iname = InterNames::one_off(T, P);
|
||||
else iname = InterNames::one_off(nrl->access_name, P);
|
||||
}
|
||||
if (!Wordings::empty(W)) InterNames::attach_memo(iname, W);
|
||||
if ((Str::len(T) > 0) && (nrl->access_name)) InterNames::translate(iname, T);
|
||||
|
@ -266,9 +271,17 @@ package_request *HierarchyLocations::package_in_package(int id, package_request
|
|||
if ((id < 0) || (id >= MAX_HL) || (nrls_indexed_by_id[id] == NULL))
|
||||
internal_error("bad nrl ID");
|
||||
named_resource_location *nrl = nrls_indexed_by_id[id];
|
||||
if (nrl->requirements.any_package_of_this_type == NULL) internal_error("NRL accessed inappropriately");
|
||||
if ((P == NULL) || (P->eventual_type != nrl->requirements.any_package_of_this_type)) internal_error("subpackage in wrong superpackage");
|
||||
|
||||
if (P == NULL) internal_error("no superpackage");
|
||||
if (nrl->package_type == NULL) internal_error("package_in_package used wrongly");
|
||||
if (nrl->requirements.any_package_of_this_type) {
|
||||
if (P->eventual_type != nrl->requirements.any_package_of_this_type)
|
||||
internal_error("subpackage in wrong superpackage");
|
||||
} else if (nrl->requirements.any_enclosure) {
|
||||
if (Inter::Symbols::read_annotation(P->eventual_type, ENCLOSING_IANN) != 1)
|
||||
internal_error("subpackage not in enclosing superpackage");
|
||||
} else internal_error("NRL accessed inappropriately");
|
||||
|
||||
return Packaging::request(InterNames::one_off(nrl->access_name, P), P, nrl->package_type);
|
||||
}
|
||||
|
||||
|
|
|
@ -4,11 +4,7 @@
|
|||
|
||||
@e BLOCK_CONSTANT_PR_COUNTER from 0
|
||||
@e BLOCK_PR_COUNTER
|
||||
@e FORM_PR_COUNTER
|
||||
@e INLINE_PR_COUNTER
|
||||
@e LITERAL_PR_COUNTER
|
||||
@e MISC_PR_COUNTER
|
||||
@e PROPOSITION_PR_COUNTER
|
||||
@e SUBSTITUTION_PR_COUNTER
|
||||
@e SUBSTITUTIONF_PR_COUNTER
|
||||
|
||||
|
@ -51,6 +47,7 @@ void Hierarchy::establish(void) {
|
|||
@<Establish rules@>;
|
||||
@<Establish tables@>;
|
||||
@<Establish variables@>;
|
||||
@<Establish enclosed matter@>;
|
||||
@<The rest@>;
|
||||
|
||||
@<Establish template resources@>;
|
||||
|
@ -137,6 +134,7 @@ void Hierarchy::establish(void) {
|
|||
@e MISTAKEACTION_HL
|
||||
|
||||
@e ACTIONS_HAP
|
||||
@e ACTION_BASE_NAME_HL
|
||||
@e CHECK_RB_HL
|
||||
@e CARRY_OUT_RB_HL
|
||||
@e REPORT_RB_HL
|
||||
|
@ -159,6 +157,7 @@ void Hierarchy::establish(void) {
|
|||
location_requirement local_actions = HierarchyLocations::local_submodule(actions);
|
||||
HierarchyLocations::ap(ACTIONS_HAP, local_actions, I"action", I"_action");
|
||||
location_requirement in_action = HierarchyLocations::any_package_of_type(I"_action");
|
||||
HierarchyLocations::con(ACTION_BASE_NAME_HL, NULL, Translation::generate(ACTION_BASE_INAMEF), in_action);
|
||||
HierarchyLocations::package(CHECK_RB_HL, I"check_rb", I"_rulebook", in_action);
|
||||
HierarchyLocations::package(CARRY_OUT_RB_HL, I"carry_out_rb", I"_rulebook", in_action);
|
||||
HierarchyLocations::package(REPORT_RB_HL, I"report_rb", I"_rulebook", in_action);
|
||||
|
@ -294,6 +293,8 @@ void Hierarchy::establish(void) {
|
|||
@e MODAL_CONJUGATION_FN_HL
|
||||
@e VERBS_HAP
|
||||
@e NONMODAL_CONJUGATION_FN_HL
|
||||
@e VERB_FORMS_HAP
|
||||
@e FORM_FN_HL
|
||||
@e CONJUGATION_FN_HL
|
||||
|
||||
@<Establish conjugations@> =
|
||||
|
@ -312,6 +313,9 @@ void Hierarchy::establish(void) {
|
|||
HierarchyLocations::ap(VERBS_HAP, local_conjugations, I"verb", I"_verb");
|
||||
location_requirement in_verb = HierarchyLocations::any_package_of_type(I"_verb");
|
||||
HierarchyLocations::func(NONMODAL_CONJUGATION_FN_HL, I"conjugation_fn", Translation::generate(CONJUGATE_VERB_ROUTINE_INAMEF), in_verb);
|
||||
HierarchyLocations::ap(VERB_FORMS_HAP, in_verb, I"form", I"_verb_form");
|
||||
location_requirement in_verb_form = HierarchyLocations::any_package_of_type(I"_verb_form");
|
||||
HierarchyLocations::func(FORM_FN_HL, I"form_fn", Translation::uniqued(), in_verb_form);
|
||||
|
||||
@h Equations.
|
||||
|
||||
|
@ -400,6 +404,7 @@ void Hierarchy::establish(void) {
|
|||
@e INTERNALTESTCASES_HL
|
||||
@e COMMAND_PR_COUNTER
|
||||
@e COMMANDS_HAP
|
||||
@e VERB_DECLARATION_ARRAY_HL
|
||||
|
||||
@<Establish grammar@> =
|
||||
submodule_identity *grammar = Packaging::register_submodule(I"grammar");
|
||||
|
@ -459,6 +464,8 @@ void Hierarchy::establish(void) {
|
|||
HierarchyLocations::func(TESTSCRIPTSUB_HL, I"action_fn", Translation::to(I"TestScriptSub"), synoptic_grammar);
|
||||
HierarchyLocations::func(INTERNALTESTCASES_HL, I"run_tests_fn", Translation::to(I"InternalTestCases"), synoptic_grammar);
|
||||
HierarchyLocations::ap(COMMANDS_HAP, synoptic_grammar, I"command", I"_command");
|
||||
location_requirement in_command = HierarchyLocations::any_package_of_type(I"_command");
|
||||
HierarchyLocations::func(VERB_DECLARATION_ARRAY_HL, NULL, Translation::generate(VERB_DECLARATION_ARRAY_INAMEF), in_command);
|
||||
|
||||
@h Instances.
|
||||
|
||||
|
@ -524,6 +531,7 @@ void Hierarchy::establish(void) {
|
|||
@e K_TYPELESS_STRING_HL
|
||||
|
||||
@e KIND_HAP
|
||||
@e KIND_HL
|
||||
@e DEFAULT_VALUE_HL
|
||||
@e DECREMENT_FN_HL
|
||||
@e INCREMENT_FN_HL
|
||||
|
@ -558,12 +566,13 @@ void Hierarchy::establish(void) {
|
|||
location_requirement local_kinds = HierarchyLocations::local_submodule(kinds);
|
||||
HierarchyLocations::ap(KIND_HAP, local_kinds, I"kind", I"_kind");
|
||||
location_requirement in_kind = HierarchyLocations::any_package_of_type(I"_kind");
|
||||
HierarchyLocations::con(KIND_HL, NULL, Translation::generate(KIND_ID_INAMEF), in_kind);
|
||||
HierarchyLocations::con(DEFAULT_VALUE_HL, I"default_value", Translation::uniqued(), in_kind);
|
||||
HierarchyLocations::con(DECREMENT_FN_HL, I"decrement_fn", Translation::uniqued(), in_kind);
|
||||
HierarchyLocations::con(INCREMENT_FN_HL, I"increment_fn", Translation::uniqued(), in_kind);
|
||||
HierarchyLocations::con(PRINT_FN_HL, I"print_fn", Translation::uniqued(), in_kind);
|
||||
HierarchyLocations::con(PRINT_DASH_FN_HL, I"print_fn", Translation::generate(PRINTING_ROUTINE_INAMEF), in_kind);
|
||||
HierarchyLocations::con(RANGER_FN_HL, I"ranger_fn", Translation::uniqued(), in_kind);
|
||||
HierarchyLocations::func(DECREMENT_FN_HL, I"decrement_fn", Translation::uniqued(), in_kind);
|
||||
HierarchyLocations::func(INCREMENT_FN_HL, I"increment_fn", Translation::uniqued(), in_kind);
|
||||
HierarchyLocations::func(PRINT_FN_HL, I"print_fn", Translation::uniqued(), in_kind);
|
||||
HierarchyLocations::func(PRINT_DASH_FN_HL, I"print_fn", Translation::generate(PRINTING_ROUTINE_INAMEF), in_kind);
|
||||
HierarchyLocations::func(RANGER_FN_HL, I"ranger_fn", Translation::uniqued(), in_kind);
|
||||
HierarchyLocations::func(DEFAULT_CLOSURE_FN_HL, I"default_closure_fn", Translation::uniqued(), in_kind);
|
||||
HierarchyLocations::func(GPR_FN_HL, I"gpr_fn", Translation::uniqued(), in_kind);
|
||||
HierarchyLocations::func(INSTANCE_GPR_FN_HL, I"instance_gpr_fn", Translation::uniqued(), in_kind);
|
||||
|
@ -665,6 +674,7 @@ void Hierarchy::establish(void) {
|
|||
@e RELATIONS_HAP
|
||||
@e RELATION_RECORD_HL
|
||||
@e BITMAP_HL
|
||||
@e ABILITIES_HL
|
||||
@e ROUTE_CACHE_HL
|
||||
@e HANDLER_FN_HL
|
||||
@e RELATION_INITIALISER_FN_HL
|
||||
|
@ -707,6 +717,7 @@ void Hierarchy::establish(void) {
|
|||
location_requirement in_relation = HierarchyLocations::any_package_of_type(I"_relation");
|
||||
HierarchyLocations::con(RELATION_RECORD_HL, NULL, Translation::generate(RELATION_RECORD_INAMEF), in_relation);
|
||||
HierarchyLocations::con(BITMAP_HL, I"as_constant", Translation::uniqued(), in_relation);
|
||||
HierarchyLocations::con(ABILITIES_HL, I"abilities", Translation::uniqued(), in_relation);
|
||||
HierarchyLocations::con(ROUTE_CACHE_HL, I"route_cache", Translation::uniqued(), in_relation);
|
||||
HierarchyLocations::func(HANDLER_FN_HL, I"handler_fn", Translation::uniqued(), in_relation);
|
||||
HierarchyLocations::func(RELATION_INITIALISER_FN_HL, I"relation_initialiser_fn", Translation::uniqued(), in_relation);
|
||||
|
@ -829,6 +840,29 @@ void Hierarchy::establish(void) {
|
|||
location_requirement in_variable = HierarchyLocations::any_package_of_type(I"_variable");
|
||||
HierarchyLocations::con(VARIABLE_HL, NULL, Translation::generate(VARIABLE_INAMEF), in_variable);
|
||||
|
||||
@h Enclosed matter.
|
||||
|
||||
@e LITERALS_HAP
|
||||
@e TEXT_LITERAL_HL
|
||||
@e LIST_LITERAL_HL
|
||||
@e PROPOSITIONS_HAP
|
||||
@e PROPOSITION_HL
|
||||
@e BLOCK_CONSTANTS_HAP
|
||||
@e BLOCK_CONSTANT_HL
|
||||
|
||||
@<Establish enclosed matter@> =
|
||||
location_requirement in_any_enclosure = HierarchyLocations::any_enclosure();
|
||||
HierarchyLocations::ap(LITERALS_HAP, in_any_enclosure, I"literal", I"_literal");
|
||||
location_requirement in_literal = HierarchyLocations::any_package_of_type(I"_literal");
|
||||
HierarchyLocations::con(TEXT_LITERAL_HL, I"text", Translation::uniqued(), in_literal);
|
||||
HierarchyLocations::con(LIST_LITERAL_HL, I"list", Translation::uniqued(), in_literal);
|
||||
HierarchyLocations::ap(PROPOSITIONS_HAP, in_any_enclosure, I"proposition", I"_proposition");
|
||||
location_requirement in_proposition = HierarchyLocations::any_package_of_type(I"_proposition");
|
||||
HierarchyLocations::func(PROPOSITION_HL, I"prop", Translation::uniqued(), in_proposition);
|
||||
HierarchyLocations::ap(BLOCK_CONSTANTS_HAP, in_any_enclosure, I"block_constant", I"_block_constant");
|
||||
location_requirement in_block_constant = HierarchyLocations::any_package_of_type(I"_block_constant");
|
||||
HierarchyLocations::con(BLOCK_CONSTANT_HL, I"bc", Translation::uniqued(), in_block_constant);
|
||||
|
||||
@
|
||||
|
||||
@e K_OBJECT_XPACKAGE from 0
|
||||
|
@ -1479,6 +1513,10 @@ package_request *Hierarchy::local_package(int hap_id) {
|
|||
return HierarchyLocations::attach_new_package(Modules::find(current_sentence), NULL, hap_id);
|
||||
}
|
||||
|
||||
package_request *Hierarchy::package_in_enclosure(int hap_id) {
|
||||
return HierarchyLocations::attach_new_package(NULL, Packaging::current_enclosure(), hap_id);
|
||||
}
|
||||
|
||||
package_request *Hierarchy::package_within(int hap_id, package_request *super) {
|
||||
return HierarchyLocations::attach_new_package(NULL, super, hap_id);
|
||||
}
|
||||
|
|
|
@ -440,7 +440,11 @@ inter_name *InterNames::new_overridden(int fnum, text_stream *identifier) {
|
|||
inter_name *InterNames::new_derived(int fnum, inter_name *from) {
|
||||
inter_name_family *F = InterNames::get_family(fnum);
|
||||
if (F->fusage != DERIVED_FUSAGE) internal_error("not a derived family");
|
||||
if (from->family != F->derivative_of) internal_error("derived from name of wrong family");
|
||||
// if (from->family != F->derivative_of) {
|
||||
// LOG("From = %n in $X\n", from, Packaging::home_of(from));
|
||||
// LOG("From family %S but derivative should be of %S\n", from->family->family_name, F->derivative_of->family_name);
|
||||
// internal_error("derived from name of wrong family");
|
||||
// }
|
||||
inter_name *N = InterNames::new_in_space(InterNames::root(), F, TRUE);
|
||||
Packaging::house_with(N, from);
|
||||
N->derived_from = from;
|
||||
|
|
|
@ -429,6 +429,7 @@ int NonlocalVariables::SUBJ_compile_all(void) {
|
|||
text_stream *rvalue = NULL;
|
||||
if (nlv->housed_in_variables_array == FALSE)
|
||||
rvalue = NonlocalVariables::identifier(nlv);
|
||||
LOG("Doing stuff with %W %n %S as rvalue\n", nlv->name, iname, rvalue);
|
||||
Emit::variable(iname, nlv->nlv_kind, v1, v2, rvalue);
|
||||
if (nlv == command_prompt_VAR) {
|
||||
packaging_state save = Routines::begin(Hierarchy::find(COMMANDPROMPTTEXT_HL));
|
||||
|
|
|
@ -1007,8 +1007,7 @@ void Relations::compile_relation_records(void) {
|
|||
@<Write the permissions field of the relation record@> =
|
||||
binary_predicate *dbp = bp;
|
||||
if (bp->right_way_round == FALSE) dbp = bp->reversal;
|
||||
inter_name *bm_symb = Packaging::supply_iname(bp->bp_package, MISC_PR_COUNTER);
|
||||
Inter::Symbols::set_flag(InterNames::to_symbol(bm_symb), MAKE_NAME_UNIQUE);
|
||||
inter_name *bm_symb = Hierarchy::make_iname_in(ABILITIES_HL, bp->bp_package);
|
||||
Emit::sum_constant_begin(bm_symb, K_value);
|
||||
if (RELS_TEST_iname == NULL) internal_error("no RELS symbols yet");
|
||||
Emit::array_iname_entry(RELS_TEST_iname);
|
||||
|
|
|
@ -1634,9 +1634,10 @@ int PL::Actions::Patterns::compile_pattern_match_clause_inner(int f,
|
|||
|
||||
@ =
|
||||
void PL::Actions::Patterns::as_stored_action(value_holster *VH, action_pattern *ap) {
|
||||
packaging_state save = Packaging::enter_current_enclosure();
|
||||
inter_name *N = Kinds::RunTime::begin_block_constant(K_stored_action);
|
||||
if (N) InterNames::holster(VH, N);
|
||||
package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
|
||||
inter_name *N = Hierarchy::make_iname_in(BLOCK_CONSTANT_HL, PR);
|
||||
packaging_state save = Packaging::enter_home_of(N);
|
||||
Emit::named_late_array_begin(N, K_value);
|
||||
|
||||
Kinds::RunTime::emit_block_value_header(K_stored_action, FALSE, 6);
|
||||
action_name *an = PL::Actions::Lists::get_singleton_action(ap->action);
|
||||
|
@ -1671,8 +1672,9 @@ void PL::Actions::Patterns::as_stored_action(value_holster *VH, action_pattern *
|
|||
Emit::array_iname_entry(Instances::iname(I_yourself));
|
||||
Emit::array_numeric_entry((inter_t) request_bits);
|
||||
Emit::array_numeric_entry(0);
|
||||
Kinds::RunTime::end_block_constant(K_stored_action);
|
||||
Emit::array_end();
|
||||
Packaging::exit(save);
|
||||
if (N) InterNames::holster(VH, N);
|
||||
}
|
||||
|
||||
void PL::Actions::Patterns::emit_pattern_match(action_pattern ap, int naming_mode) {
|
||||
|
|
|
@ -233,8 +233,7 @@ action_name *PL::Actions::act_new(wording W, int implemented_by_I7) {
|
|||
an->translated = FALSE;
|
||||
|
||||
an->an_package = Hierarchy::local_package(ACTIONS_HAP);
|
||||
an->an_base_iname = InterNames::new(ACTION_BASE_INAMEF);
|
||||
InterNames::attach_memo(an->an_base_iname, W);
|
||||
an->an_base_iname = Hierarchy::make_iname_with_memo(ACTION_BASE_NAME_HL, an->an_package, W);
|
||||
an->use_verb_routine_in_I6_library = TRUE;
|
||||
an->check_rules = NULL;
|
||||
an->carry_out_rules = NULL;
|
||||
|
|
|
@ -760,9 +760,8 @@ void PL::Parsing::Verbs::compile(grammar_verb *gv) {
|
|||
PL::Parsing::Lines::reset_labels();
|
||||
switch(gv->gv_is) {
|
||||
case GV_IS_COMMAND: {
|
||||
inter_name *array_iname = InterNames::new(VERB_DECLARATION_ARRAY_INAMEF);
|
||||
package_request *PR = Hierarchy::synoptic_package(COMMANDS_HAP);
|
||||
Packaging::house(array_iname, PR);
|
||||
inter_name *array_iname = Hierarchy::make_iname_in(VERB_DECLARATION_ARRAY_HL, PR);
|
||||
packaging_state save = Packaging::enter_home_of(array_iname);
|
||||
PL::Parsing::Verbs::gv_compile_Verb_directive_header(gv, array_iname);
|
||||
PL::Parsing::Verbs::gv_compile_lines(NULL, gv);
|
||||
|
|
|
@ -282,11 +282,8 @@ we overwrite that with the new (presumably meaningful) one.
|
|||
inter_name *Verbs::form_iname(verb_form *vf) {
|
||||
if (vf->vf_iname == NULL) {
|
||||
package_request *R = Verbs::verb_package(vf->underlying_verb, vf->where_vf_created);
|
||||
vf->vf_iname =
|
||||
Packaging::function(
|
||||
Packaging::supply_iname(R, FORM_PR_COUNTER),
|
||||
R,
|
||||
InterNames::new(CONJUGATE_VERB_FORM_INAMEF));
|
||||
package_request *R2 = Hierarchy::package_within(VERB_FORMS_HAP, R);
|
||||
vf->vf_iname = Hierarchy::make_iname_in(FORM_FN_HL, R2);
|
||||
}
|
||||
return vf->vf_iname;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue