1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-07-03 07:24:58 +03:00

Moved last remaining literal inames into hierarchy

This commit is contained in:
Graham Nelson 2019-04-16 23:21:13 +01:00
parent 2131a92d19
commit 346218caac
37 changed files with 371 additions and 188 deletions

View file

@ -2358,8 +2358,7 @@ then expand it into the output.
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext">Calculus::Deferrals::write_loop_schema</span><span class="plain">(&amp;</span><span class="identifier">loop_schema</span><span class="plain">, </span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">FALSE</span><span class="plain">) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">pdef</span><span class="plain">-</span><span class="element">&gt;rtp_iname</span><span class="plain"> == </span><span class="identifier">NULL</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="functiontext">Packaging::home_of</span><span class="plain">(</span><span class="identifier">pdef</span><span class="plain">-</span><span class="element">&gt;ppd_iname</span><span class="plain">);</span>
<span class="identifier">pdef</span><span class="plain">-</span><span class="element">&gt;rtp_iname</span><span class="plain"> = </span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"rtp"</span><span class="plain">, </span><span class="identifier">P</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">&gt;rtp_iname</span><span class="plain">), </span><span class="identifier">MAKE_NAME_UNIQUE</span><span class="plain">);</span>
<span class="identifier">pdef</span><span class="plain">-</span><span class="element">&gt;rtp_iname</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">RTP_HL</span><span class="plain">, </span><span class="identifier">P</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="functiontext">Calculus::Schemas::modify</span><span class="plain">(&amp;</span><span class="identifier">loop_schema</span><span class="plain">, </span><span class="string">"if (RunTimeProblem(RTP_CANTITERATE, %n))"</span><span class="plain">,</span>
<span class="identifier">pdef</span><span class="plain">-</span><span class="element">&gt;rtp_iname</span><span class="plain">);</span>

View file

@ -750,15 +750,11 @@ compile under Inform 6.
<span class="identifier">rks</span><span class="plain">-</span><span class="element">&gt;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">&gt;default_requested_here</span><span class="plain"> = </span><span class="identifier">NULL</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="comment">rks-&gt;rks_iname = InterNames::new(KIND_ID_INAMEF);</span>
<span class="comment">Packaging::house(rks-&gt;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">&gt;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="comment">InterNames::attach_memo(rks-&gt;rks_iname, W);</span>
<span class="comment">InterNames::to_symbol(rks-&gt;rks_iname);</span>
<span class="identifier">rks</span><span class="plain">-</span><span class="element">&gt;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>

View file

@ -975,8 +975,7 @@ we find it, we compile it and return <code class="display"><span class="extract"
<span class="reserved">return</span><span class="plain"> </span><span class="functiontext">Properties::iname</span><span class="plain">(</span><span class="functiontext">Properties::EitherOr::get_negation</span><span class="plain">(</span><span class="identifier">prn</span><span class="plain">));</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">prn</span><span class="plain">-</span><span class="element">&gt;prop_iname</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) {</span>
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">R</span><span class="plain"> = </span><span class="functiontext">Hierarchy::package</span><span class="plain">(</span><span class="identifier">prn</span><span class="plain">-</span><span class="element">&gt;owning_module</span><span class="plain">, </span><span class="constant">PROPERTIES_HAP</span><span class="plain">);</span>
<span class="identifier">prn</span><span class="plain">-</span><span class="element">&gt;prop_iname</span><span class="plain"> = </span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"P"</span><span class="plain">, </span><span class="identifier">R</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Wordings::nonempty</span><span class="plain">(</span><span class="identifier">prn</span><span class="plain">-</span><span class="element">&gt;name</span><span class="plain">)) </span><span class="functiontext">InterNames::attach_memo</span><span class="plain">(</span><span class="identifier">prn</span><span class="plain">-</span><span class="element">&gt;prop_iname</span><span class="plain">, </span><span class="identifier">prn</span><span class="plain">-</span><span class="element">&gt;name</span><span class="plain">);</span>
<span class="identifier">prn</span><span class="plain">-</span><span class="element">&gt;prop_iname</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_with_memo</span><span class="plain">(</span><span class="constant">PROPERTY_HL</span><span class="plain">, </span><span class="identifier">R</span><span class="plain">, </span><span class="identifier">prn</span><span class="plain">-</span><span class="element">&gt;name</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">prn</span><span class="plain">-</span><span class="element">&gt;prop_iname</span><span class="plain">;</span>
<span class="plain">}</span>

View file

@ -245,20 +245,17 @@ since Inform always compiles code which knows which kind it's looping over.
<pre class="display">
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="functiontext">PL::Counting::first_instance</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">iname</span><span class="plain"> = </span><span class="functiontext">InterNames::letter_parametrised_name</span><span class="plain">(</span>
<span class="constant">FIRST_INSTANCE_INAMEF</span><span class="plain">, </span><span class="functiontext">Kinds::RunTime::iname</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">), </span><span class="constant">FIRST_INSTANCE_INDERIV</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="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">iname</span><span class="plain"> = </span><span class="functiontext">Hierarchy::derive_iname_in</span><span class="plain">(</span><span class="constant">FIRST_INSTANCE_HL</span><span class="plain">, </span><span class="functiontext">Kinds::RunTime::iname</span><span class="plain">(</span><span class="identifier">K</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="reserved">return</span><span class="plain"> </span><span class="identifier">iname</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="functiontext">PL::Counting::next_instance</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">iname</span><span class="plain"> = </span><span class="functiontext">InterNames::letter_parametrised_name</span><span class="plain">(</span>
<span class="constant">NEXT_INSTANCE_INAMEF</span><span class="plain">, </span><span class="functiontext">Kinds::RunTime::iname</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">), </span><span class="constant">NEXT_INSTANCE_INDERIV</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="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">iname</span><span class="plain"> = </span><span class="functiontext">Hierarchy::derive_iname_in</span><span class="plain">(</span><span class="constant">NEXT_INSTANCE_HL</span><span class="plain">, </span><span class="functiontext">Kinds::RunTime::iname</span><span class="plain">(</span><span class="identifier">K</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="reserved">return</span><span class="plain"> </span><span class="identifier">iname</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="functiontext">PL::Counting::instance_count_iname</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">iname</span><span class="plain"> = </span><span class="functiontext">InterNames::letter_parametrised_name</span><span class="plain">(</span>
<span class="constant">COUNT_INSTANCE_INAMEF</span><span class="plain">, </span><span class="functiontext">Kinds::RunTime::iname</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">), </span><span class="constant">COUNT_INSTANCE_INDERIV</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="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">iname</span><span class="plain"> = </span><span class="functiontext">Hierarchy::derive_iname_in</span><span class="plain">(</span><span class="constant">COUNT_INSTANCE_HL</span><span class="plain">, </span><span class="functiontext">Kinds::RunTime::iname</span><span class="plain">(</span><span class="identifier">K</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="reserved">return</span><span class="plain"> </span><span class="identifier">iname</span><span class="plain">;</span>
<span class="plain">}</span>
@ -268,8 +265,7 @@ since Inform always compiles code which knows which kind it's looping over.
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::Compare::lt</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">, </span><span class="identifier">K_object</span><span class="plain">)) {</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">iname</span><span class="plain"> = </span><span class="functiontext">PL::Counting::first_instance</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">);</span>
<span class="reserved">instance</span><span class="plain"> *</span><span class="identifier">next</span><span class="plain"> = </span><span class="functiontext">PL::Counting::next_instance_of</span><span class="plain">(</span><span class="identifier">NULL</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="identifier">Kinds::Behaviour::package</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">Packaging::enter</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">iname</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">next</span><span class="plain">) {</span>
<span class="functiontext">Emit::named_iname_constant</span><span class="plain">(</span><span class="identifier">iname</span><span class="plain">, </span><span class="identifier">K_object</span><span class="plain">, </span><span class="functiontext">Instances::emitted_iname</span><span class="plain">(</span><span class="identifier">next</span><span class="plain">));</span>
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> {</span>

View file

@ -461,10 +461,7 @@ table and then destroy the temporary one made here.
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">connection</span><span class="plain"> != </span><span class="constant">TABLE_IS_NEW</span><span class="plain">) </span>&lt;<span class="cwebmacro">Require the previous table to exist</span> <span class="cwebmacronumber">20.5</span>&gt;
<span class="reserved">else</span><span class="plain"> </span>&lt;<span class="cwebmacro">Require the previous table not to exist</span> <span class="cwebmacronumber">20.6</span>&gt;<span class="plain">;</span>
<span class="comment">InterNames::attach_memo(t-&gt;table_identifier, t-&gt;table_name_text);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">connection</span><span class="plain"> == </span><span class="constant">TABLE_IS_NEW</span><span class="plain">) {</span>
<span class="comment">InterNames::to_symbol(t-&gt;table_identifier);</span>
&lt;<span class="cwebmacro">Register the names of the new table</span> <span class="cwebmacronumber">20.7</span>&gt;<span class="plain">;</span>
<span class="identifier">LOGIF</span><span class="plain">(</span><span class="identifier">TABLES</span><span class="plain">, </span><span class="string">"Created: $B\</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="plain">}</span>

View file

@ -354,8 +354,7 @@ can be used in a void context as a sort of return-from-rule phrase.
<span class="identifier">rbno</span><span class="plain">-</span><span class="element">&gt;name</span><span class="plain"> = </span><span class="identifier">Nouns::new_proper_noun</span><span class="plain">(</span><span class="identifier">W</span><span class="plain">, </span><span class="identifier">NEUTER_GENDER</span><span class="plain">,</span>
<span class="identifier">REGISTER_SINGULAR_NTOPT</span><span class="plain"> + </span><span class="identifier">PARSE_EXACTLY_NTOPT</span><span class="plain">,</span>
<span class="identifier">MISCELLANEOUS_MC</span><span class="plain">, </span><span class="functiontext">Rvalues::from_named_rulebook_outcome</span><span class="plain">(</span><span class="identifier">rbno</span><span class="plain">));</span>
<span class="identifier">rbno</span><span class="plain">-</span><span class="element">&gt;nro_iname</span><span class="plain"> = </span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"outcome"</span><span class="plain">, </span><span class="identifier">R</span><span class="plain">);</span>
<span class="functiontext">InterNames::attach_memo</span><span class="plain">(</span><span class="identifier">rbno</span><span class="plain">-</span><span class="element">&gt;nro_iname</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">);</span>
<span class="identifier">rbno</span><span class="plain">-</span><span class="element">&gt;nro_iname</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_with_memo</span><span class="plain">(</span><span class="constant">OUTCOME_HL</span><span class="plain">, </span><span class="identifier">R</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">);</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">rbno</span><span class="plain">;</span>
<span class="plain">}</span>

View file

@ -68,6 +68,7 @@ see below.
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">shell_routine_iname</span><span class="plain">;</span>
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">rule_extern_iname</span><span class="plain">; </span> <span class="comment">if externally defined, this is the I6 routine</span>
<span class="reserved">struct</span><span class="plain"> </span><span class="identifier">text_stream</span><span class="plain"> *</span><span class="identifier">rule_extern_iname_as_text</span><span class="plain">; </span> <span class="comment">and this is it in plain text</span>
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">xiname</span><span class="plain">;</span>
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">rule_extern_response_handler_iname</span><span class="plain">; </span> <span class="comment">and this produces any response texts it has</span>
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">do_not_import</span><span class="plain">; </span> <span class="comment">veto importation of this from the Standard Rules precompiled inter code</span>
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">defn_compiled</span><span class="plain">; </span> <span class="comment">has the definition of this rule, if needed, been compiled yet?</span>
@ -163,6 +164,7 @@ later: see below.
<span class="identifier">R</span><span class="plain">-</span><span class="element">&gt;defn_as_phrase</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
<span class="identifier">R</span><span class="plain">-</span><span class="element">&gt;rule_extern_iname</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
<span class="identifier">R</span><span class="plain">-</span><span class="element">&gt;rule_extern_iname_as_text</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
<span class="identifier">R</span><span class="plain">-</span><span class="element">&gt;xiname</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
<span class="identifier">R</span><span class="plain">-</span><span class="element">&gt;rule_extern_response_handler_iname</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
<span class="identifier">R</span><span class="plain">-</span><span class="element">&gt;name</span><span class="plain"> = </span><span class="identifier">W</span><span class="plain">;</span>
<span class="identifier">R</span><span class="plain">-</span><span class="element">&gt;italicised_text</span><span class="plain"> = </span><span class="identifier">EMPTY_WORDING</span><span class="plain">;</span>
@ -300,18 +302,15 @@ must be added after the rule has been created:
<span class="identifier">Inter::Symbols::to_data</span><span class="plain">(</span><span class="functiontext">Emit::repository</span><span class="plain">(), </span><span class="functiontext">Packaging::incarnate</span><span class="plain">(</span><span class="identifier">R</span><span class="plain">-</span><span class="element">&gt;rule_package</span><span class="plain">), </span><span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">xiname</span><span class="plain">), &amp;</span><span class="identifier">v1</span><span class="plain">, &amp;</span><span class="identifier">v2</span><span class="plain">);</span>
<span class="functiontext">Emit::named_generic_constant</span><span class="plain">(</span><span class="identifier">R</span><span class="plain">-</span><span class="element">&gt;rule_extern_iname</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="functiontext">Packaging::exit</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
<span class="identifier">R</span><span class="plain">-</span><span class="element">&gt;xiname</span><span class="plain"> = </span><span class="identifier">xiname</span><span class="plain">;</span>
<span class="identifier">R</span><span class="plain">-</span><span class="element">&gt;rule_extern_iname_as_text</span><span class="plain"> = </span><span class="identifier">Str::duplicate</span><span class="plain">(</span><span class="identifier">XT</span><span class="plain">);</span>
<span class="identifier">DISCARD_TEXT</span><span class="plain">(</span><span class="identifier">XT</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="functiontext">Rules::get_handler_definition</span><span class="plain">(</span><span class="reserved">rule</span><span class="plain"> *</span><span class="identifier">R</span><span class="plain">) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">R</span><span class="plain">-</span><span class="element">&gt;rule_extern_response_handler_iname</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) {</span>
<span class="identifier">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">XT</span><span class="plain">);</span>
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">XT</span><span class="plain">, </span><span class="string">"%SM"</span><span class="plain">, </span><span class="identifier">R</span><span class="plain">-</span><span class="element">&gt;rule_extern_iname_as_text</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">R</span><span class="plain">-</span><span class="element">&gt;rule_extern_response_handler_iname</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">)</span>
<span class="identifier">R</span><span class="plain">-</span><span class="element">&gt;rule_extern_response_handler_iname</span><span class="plain"> =</span>
<span class="functiontext">Packaging::function_text</span><span class="plain">(</span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"responder_fn"</span><span class="plain">, </span><span class="identifier">R</span><span class="plain">-</span><span class="element">&gt;rule_package</span><span class="plain">), </span><span class="identifier">R</span><span class="plain">-</span><span class="element">&gt;rule_package</span><span class="plain">, </span><span class="identifier">XT</span><span class="plain">);</span>
<span class="identifier">DISCARD_TEXT</span><span class="plain">(</span><span class="identifier">XT</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="functiontext">Hierarchy::derive_iname_in</span><span class="plain">(</span><span class="constant">RESPONDER_FN_HL</span><span class="plain">, </span><span class="identifier">R</span><span class="plain">-</span><span class="element">&gt;xiname</span><span class="plain">, </span><span class="identifier">R</span><span class="plain">-</span><span class="element">&gt;rule_package</span><span class="plain">);</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">R</span><span class="plain">-</span><span class="element">&gt;rule_extern_response_handler_iname</span><span class="plain">;</span>
<span class="plain">}</span>

View file

@ -131,7 +131,7 @@ create a new nonphrasal stack frame.
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">currently_compiling_in_frame</span><span class="plain">-</span><span class="element">&gt;allocated_pointers</span><span class="plain">) ||</span>
<span class="plain">(</span><span class="identifier">currently_compiling_in_frame</span><span class="plain">-</span><span class="element">&gt;no_formal_parameters_needed</span><span class="plain"> &gt; 0)) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext">Packaging::houseed_in_function</span><span class="plain">(</span><span class="identifier">public_name</span><span class="plain">)) {</span>
<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">&gt;eventual_owner</span><span class="plain">);</span>
<span class="identifier">kernel_name</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_kernel_iname</span><span class="plain">(</span><span class="identifier">public_name</span><span class="plain">-</span><span class="element">&gt;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">internal_error</span><span class="plain">(</span><span class="string">"routine not housed in function"</span><span class="plain">);</span>

View file

@ -226,13 +226,17 @@
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;equates_to_iname</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="functiontext">HierarchyLocations::find_in_package</span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">id</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="identifier">wording</span><span class="plain"> </span><span class="identifier">W</span><span class="plain">, </span><span class="reserved">compilation_module</span><span class="plain"> *</span><span class="identifier">C</span><span class="plain">) {</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="functiontext">HierarchyLocations::find_in_package</span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">id</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="identifier">wording</span><span class="plain"> </span><span class="identifier">W</span><span class="plain">, </span><span class="reserved">compilation_module</span><span class="plain"> *</span><span class="identifier">C</span><span class="plain">, </span><span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">derive_from</span><span class="plain">) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">nrls_created</span><span class="plain"> == </span><span class="identifier">FALSE</span><span class="plain">) </span><span class="functiontext">HierarchyLocations::create_nrls</span><span class="plain">();</span>
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">id</span><span class="plain"> &lt; 0) || (</span><span class="identifier">id</span><span class="plain"> &gt;= </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">&gt;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">&gt;eventual_type</span><span class="plain"> != </span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;requirements.any_package_of_this_type</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">&gt;requirements.any_package_of_this_type</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) &amp;&amp;</span>
<span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;requirements.any_enclosure</span><span class="plain"> == </span><span class="identifier">FALSE</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">nrl</span><span class="plain">-</span><span class="element">&gt;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">&gt;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="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">&gt;eventual_type</span><span class="plain"> != </span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;requirements.any_package_of_this_type</span><span class="plain">)) {</span>
<span class="identifier">LOG</span><span class="plain">(</span><span class="string">"AN: %S, FPN: %S\</span><span class="plain">n</span><span class="string">"</span><span class="plain">, </span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;access_name</span><span class="plain">, </span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;function_package_name</span><span class="plain">);</span>
<span class="identifier">LOG</span><span class="plain">(</span><span class="string">"Have type: $3, required: $3\</span><span class="plain">n</span><span class="string">"</span><span class="plain">, </span><span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;eventual_type</span><span class="plain">, </span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;requirements.any_package_of_this_type</span><span class="plain">);</span>
<span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"constant in wrong superpackage"</span><span class="plain">);</span>
@ -245,12 +249,20 @@
<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">&gt;trans.generate_from</span><span class="plain"> &gt;= 0) {</span>
<span class="identifier">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">T</span><span class="plain">);</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">temp_iname</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">nrl</span><span class="plain">-</span><span class="element">&gt;trans.localise</span><span class="plain">)</span>
<span class="identifier">temp_iname</span><span class="plain"> = </span><span class="functiontext">InterNames::new_in</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;trans.generate_from</span><span class="plain">, </span><span class="identifier">C</span><span class="plain">);</span>
<span class="reserved">else</span>
<span class="identifier">temp_iname</span><span class="plain"> = </span><span class="functiontext">InterNames::new</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;trans.generate_from</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">derive_from</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">&gt;trans.faux_letter</span><span class="plain"> &gt;= 0)</span>
<span class="identifier">temp_iname</span><span class="plain"> = </span><span class="functiontext">InterNames::letter_parametrised_name</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;trans.generate_from</span><span class="plain">, </span><span class="identifier">derive_from</span><span class="plain">, </span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;trans.faux_letter</span><span class="plain">, </span><span class="identifier">P</span><span class="plain">);</span>
<span class="reserved">else</span>
<span class="identifier">temp_iname</span><span class="plain"> = </span><span class="functiontext">InterNames::new_derived</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;trans.generate_from</span><span class="plain">, </span><span class="identifier">derive_from</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">&gt;trans.localise</span><span class="plain">)</span>
<span class="identifier">temp_iname</span><span class="plain"> = </span><span class="functiontext">InterNames::new_in</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;trans.generate_from</span><span class="plain">, </span><span class="identifier">C</span><span class="plain">);</span>
<span class="reserved">else</span>
<span class="identifier">temp_iname</span><span class="plain"> = </span><span class="functiontext">InterNames::new</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;trans.generate_from</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">T</span><span class="plain">, </span><span class="string">"%n"</span><span class="plain">, </span><span class="identifier">temp_iname</span><span class="plain">);</span>
&lt;<span class="cwebmacro">Make the actual iname</span> <span class="cwebmacronumber">1.1</span>&gt;<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">&gt;trans.faux_letter</span><span class="plain"> &gt;= 0) </span><span class="identifier">iname</span><span class="plain"> = </span><span class="identifier">temp_iname</span><span class="plain">;</span>
<span class="reserved">else</span><span class="plain"> </span>&lt;<span class="cwebmacro">Make the actual iname</span> <span class="cwebmacronumber">1.1</span>&gt;<span class="plain">;</span>
<span class="identifier">DISCARD_TEXT</span><span class="plain">(</span><span class="identifier">T</span><span class="plain">);</span>
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> {</span>
<span class="identifier">text_stream</span><span class="plain"> *</span><span class="identifier">T</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
@ -273,7 +285,7 @@
<p class="endnote">The function HierarchyLocations::synoptic_submodule is used in 27/hr (<a href="27-hr.html#SP1_2">&#167;1.2</a>, <a href="27-hr.html#SP1_4">&#167;1.4</a>, <a href="27-hr.html#SP1_6">&#167;1.6</a>, <a href="27-hr.html#SP1_10">&#167;1.10</a>, <a href="27-hr.html#SP1_12">&#167;1.12</a>, <a href="27-hr.html#SP1_18">&#167;1.18</a>, <a href="27-hr.html#SP1_22">&#167;1.22</a>, <a href="27-hr.html#SP1_26">&#167;1.26</a>, <a href="27-hr.html#SP1_28">&#167;1.28</a>, <a href="27-hr.html#SP1_32">&#167;1.32</a>, <a href="27-hr.html#SP1_34">&#167;1.34</a>, <a href="27-hr.html#SP1_36">&#167;1.36</a>, <a href="27-hr.html#SP1_38">&#167;1.38</a>, <a href="27-hr.html#SP1_40">&#167;1.40</a>, <a href="27-hr.html#SP1_42">&#167;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">&#167;1.4</a>, <a href="27-hr.html#SP1_6">&#167;1.6</a>, <a href="27-hr.html#SP1_8">&#167;1.8</a>, <a href="27-hr.html#SP1_12">&#167;1.12</a>, <a href="27-hr.html#SP1_14">&#167;1.14</a>, <a href="27-hr.html#SP1_16">&#167;1.16</a>, <a href="27-hr.html#SP1_20">&#167;1.20</a>, <a href="27-hr.html#SP1_22">&#167;1.22</a>, <a href="27-hr.html#SP1_24">&#167;1.24</a>, <a href="27-hr.html#SP1_28">&#167;1.28</a>, <a href="27-hr.html#SP1_30">&#167;1.30</a>, <a href="27-hr.html#SP1_32">&#167;1.32</a>, <a href="27-hr.html#SP1_34">&#167;1.34</a>, <a href="27-hr.html#SP1_36">&#167;1.36</a>, <a href="27-hr.html#SP1_38">&#167;1.38</a>, <a href="27-hr.html#SP1_40">&#167;1.40</a>, <a href="27-hr.html#SP1_42">&#167;1.42</a>, <a href="27-hr.html#SP1_44">&#167;1.44</a>, <a href="27-hr.html#SP1_46">&#167;1.46</a>).</p>
<p class="endnote">The function HierarchyLocations::any_package_of_type is used in 27/hr (<a href="27-hr.html#SP1_4">&#167;1.4</a>, <a href="27-hr.html#SP1_6">&#167;1.6</a>, <a href="27-hr.html#SP1_8">&#167;1.8</a>, <a href="27-hr.html#SP1_12">&#167;1.12</a>, <a href="27-hr.html#SP1_14">&#167;1.14</a>, <a href="27-hr.html#SP1_16">&#167;1.16</a>, <a href="27-hr.html#SP1_20">&#167;1.20</a>, <a href="27-hr.html#SP1_22">&#167;1.22</a>, <a href="27-hr.html#SP1_24">&#167;1.24</a>, <a href="27-hr.html#SP1_26">&#167;1.26</a>, <a href="27-hr.html#SP1_28">&#167;1.28</a>, <a href="27-hr.html#SP1_30">&#167;1.30</a>, <a href="27-hr.html#SP1_32">&#167;1.32</a>, <a href="27-hr.html#SP1_34">&#167;1.34</a>, <a href="27-hr.html#SP1_36">&#167;1.36</a>, <a href="27-hr.html#SP1_38">&#167;1.38</a>, <a href="27-hr.html#SP1_40">&#167;1.40</a>, <a href="27-hr.html#SP1_42">&#167;1.42</a>, <a href="27-hr.html#SP1_44">&#167;1.44</a>, <a href="27-hr.html#SP1_46">&#167;1.46</a>).</p>
<p class="endnote">The function HierarchyLocations::any_enclosure is used in 27/hr (<a href="27-hr.html#SP1_46">&#167;1.46</a>).</p>
@ -427,7 +439,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">&#167;1.4</a>, <a href="27-hr.html#SP1_6">&#167;1.6</a>, <a href="27-hr.html#SP1_8">&#167;1.8</a>, <a href="27-hr.html#SP1_12">&#167;1.12</a>, <a href="27-hr.html#SP1_14">&#167;1.14</a>, <a href="27-hr.html#SP1_16">&#167;1.16</a>, <a href="27-hr.html#SP1_20">&#167;1.20</a>, <a href="27-hr.html#SP1_22">&#167;1.22</a>, <a href="27-hr.html#SP1_24">&#167;1.24</a>, <a href="27-hr.html#SP1_28">&#167;1.28</a>, <a href="27-hr.html#SP1_30">&#167;1.30</a>, <a href="27-hr.html#SP1_32">&#167;1.32</a>, <a href="27-hr.html#SP1_34">&#167;1.34</a>, <a href="27-hr.html#SP1_36">&#167;1.36</a>, <a href="27-hr.html#SP1_38">&#167;1.38</a>, <a href="27-hr.html#SP1_40">&#167;1.40</a>, <a href="27-hr.html#SP1_42">&#167;1.42</a>, <a href="27-hr.html#SP1_44">&#167;1.44</a>, <a href="27-hr.html#SP1_46">&#167;1.46</a>).</p>
<p class="endnote">The function HierarchyLocations::ap is used in 27/hr (<a href="27-hr.html#SP1_4">&#167;1.4</a>, <a href="27-hr.html#SP1_6">&#167;1.6</a>, <a href="27-hr.html#SP1_8">&#167;1.8</a>, <a href="27-hr.html#SP1_12">&#167;1.12</a>, <a href="27-hr.html#SP1_14">&#167;1.14</a>, <a href="27-hr.html#SP1_16">&#167;1.16</a>, <a href="27-hr.html#SP1_20">&#167;1.20</a>, <a href="27-hr.html#SP1_22">&#167;1.22</a>, <a href="27-hr.html#SP1_24">&#167;1.24</a>, <a href="27-hr.html#SP1_26">&#167;1.26</a>, <a href="27-hr.html#SP1_28">&#167;1.28</a>, <a href="27-hr.html#SP1_30">&#167;1.30</a>, <a href="27-hr.html#SP1_32">&#167;1.32</a>, <a href="27-hr.html#SP1_34">&#167;1.34</a>, <a href="27-hr.html#SP1_36">&#167;1.36</a>, <a href="27-hr.html#SP1_38">&#167;1.38</a>, <a href="27-hr.html#SP1_40">&#167;1.40</a>, <a href="27-hr.html#SP1_42">&#167;1.42</a>, <a href="27-hr.html#SP1_44">&#167;1.44</a>, <a href="27-hr.html#SP1_46">&#167;1.46</a>).</p>
<p class="endnote">The function HierarchyLocations::attach_new_package is used in 27/hr (<a href="27-hr.html#SP5">&#167;5</a>).</p>

View file

@ -19,6 +19,7 @@
<span class="identifier">home_for_weak_type_IDs</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::blank</span><span class="plain">();</span>
<span class="functiontext">Packaging::register_counter</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"code_block"</span><span class="plain">); </span> <span class="comment">This will be counter number 0</span>
<span class="functiontext">Packaging::register_counter</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"kernel"</span><span class="plain">); </span> <span class="comment">This will be counter number 1</span>
&lt;<span class="cwebmacro">Establish basics</span> <span class="cwebmacronumber">1.2</span>&gt;<span class="plain">;</span>
&lt;<span class="cwebmacro">Establish actions</span> <span class="cwebmacronumber">1.4</span>&gt;<span class="plain">;</span>
@ -147,6 +148,8 @@
<span class="definitionkeyword">enum</span> <span class="constant">MISTAKEACTION_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">ACTIONS_HAP</span>
<span class="definitionkeyword">enum</span> <span class="constant">ACTION_BASE_NAME_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">DOUBLE_SHARP_NAME_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">PERFORM_FN_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">CHECK_RB_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">CARRY_OUT_RB_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">REPORT_RB_HL</span>
@ -174,6 +177,8 @@
<span class="functiontext">HierarchyLocations::ap</span><span class="plain">(</span><span class="constant">ACTIONS_HAP</span><span class="plain">, </span><span class="identifier">local_actions</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"action"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"_action"</span><span class="plain">);</span>
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">in_action</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::any_package_of_type</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"_action"</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">ACTION_BASE_NAME_HL</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">, </span><span class="functiontext">Translation::generate</span><span class="plain">(</span><span class="constant">ACTION_BASE_INAMEF</span><span class="plain">), </span><span class="identifier">in_action</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">DOUBLE_SHARP_NAME_HL</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">, </span><span class="functiontext">Translation::derive</span><span class="plain">(</span><span class="constant">ACTION_INAMEF</span><span class="plain">), </span><span class="identifier">in_action</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::func</span><span class="plain">(</span><span class="constant">PERFORM_FN_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"perform_fn"</span><span class="plain">, </span><span class="functiontext">Translation::derive</span><span class="plain">(</span><span class="constant">ACTION_ROUTINE_INAMEF</span><span class="plain">), </span><span class="identifier">in_action</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::package</span><span class="plain">(</span><span class="constant">CHECK_RB_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"check_rb"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"_rulebook"</span><span class="plain">, </span><span class="identifier">in_action</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::package</span><span class="plain">(</span><span class="constant">CARRY_OUT_RB_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"carry_out_rb"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"_rulebook"</span><span class="plain">, </span><span class="identifier">in_action</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::package</span><span class="plain">(</span><span class="constant">REPORT_RB_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"report_rb"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"_rulebook"</span><span class="plain">, </span><span class="identifier">in_action</span><span class="plain">);</span>
@ -596,6 +601,7 @@
<pre class="definitions">
<span class="definitionkeyword">enum</span> <span class="constant">INSTANCES_HAP</span>
<span class="definitionkeyword">enum</span> <span class="constant">INSTANCE_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">BACKDROP_FOUND_IN_FN_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">REGION_FOUND_IN_FN_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">SHORT_NAME_FN_HL</span>
@ -616,6 +622,7 @@
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">local_instances</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::local_submodule</span><span class="plain">(</span><span class="identifier">instances</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::ap</span><span class="plain">(</span><span class="constant">INSTANCES_HAP</span><span class="plain">, </span><span class="identifier">local_instances</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"instance"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"_instance"</span><span class="plain">);</span>
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">in_instance</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::any_package_of_type</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"_instance"</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">INSTANCE_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"I"</span><span class="plain">, </span><span class="functiontext">Translation::uniqued</span><span class="plain">(), </span><span class="identifier">in_instance</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::func</span><span class="plain">(</span><span class="constant">BACKDROP_FOUND_IN_FN_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"backdrop_found_in_fn"</span><span class="plain">, </span><span class="functiontext">Translation::uniqued</span><span class="plain">(), </span><span class="identifier">in_instance</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::func</span><span class="plain">(</span><span class="constant">SHORT_NAME_FN_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"short_name_fn"</span><span class="plain">, </span><span class="functiontext">Translation::generate</span><span class="plain">(</span><span class="constant">SHORT_NAME_ROUTINE_INAMEF</span><span class="plain">), </span><span class="identifier">in_instance</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::func</span><span class="plain">(</span><span class="constant">SHORT_NAME_PROPERTY_FN_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"short_name_property_fn"</span><span class="plain">, </span><span class="functiontext">Translation::generate</span><span class="plain">(</span><span class="constant">SHORT_NAME_PROPERTY_ROUTINE_INAMEF</span><span class="plain">), </span><span class="identifier">in_instance</span><span class="plain">);</span>
@ -647,6 +654,8 @@
<span class="definitionkeyword">enum</span> <span class="constant">START_ROOM_INIS_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">START_TIME_INIS_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">DONE_INIS_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">DIRECTIONS_HAP</span>
<span class="definitionkeyword">enum</span> <span class="constant">DIRECTION_HL</span>
</pre>
<p class="inwebparagraph"><a id="SP1_26"></a><b>&#167;1.26. </b><code class="display">
&lt;<span class="cwebmacrodefn">Establish int-fiction</span> <span class="cwebmacronumber">1.26</span>&gt; =
@ -669,6 +678,9 @@
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">START_ROOM_INIS_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"START_ROOM_INIS"</span><span class="plain">, </span><span class="functiontext">Translation::same</span><span class="plain">(), </span><span class="identifier">synoptic_IF</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">START_TIME_INIS_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"START_TIME_INIS"</span><span class="plain">, </span><span class="functiontext">Translation::same</span><span class="plain">(), </span><span class="identifier">synoptic_IF</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">DONE_INIS_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"DONE_INIS"</span><span class="plain">, </span><span class="functiontext">Translation::same</span><span class="plain">(), </span><span class="identifier">synoptic_IF</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::ap</span><span class="plain">(</span><span class="constant">DIRECTIONS_HAP</span><span class="plain">, </span><span class="identifier">synoptic_IF</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"direction"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"_direction"</span><span class="plain">);</span>
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">in_direction</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::any_package_of_type</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"_direction"</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">DIRECTION_HL</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">, </span><span class="functiontext">Translation::generate</span><span class="plain">(</span><span class="constant">DIRECTION_OBJECT_INAMEF</span><span class="plain">), </span><span class="identifier">in_direction</span><span class="plain">);</span>
</pre>
<p class="inwebparagraph"></p>
@ -695,6 +707,9 @@
<span class="definitionkeyword">enum</span> <span class="constant">DEFAULT_CLOSURE_FN_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">GPR_FN_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">INSTANCE_GPR_FN_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">FIRST_INSTANCE_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">NEXT_INSTANCE_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">COUNT_INSTANCE_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">KIND_INLINE_PROPERTIES_HAP</span>
<span class="definitionkeyword">enum</span> <span class="constant">KIND_INLINE_PROPERTY_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">DEFAULTVALUEOFKOV_HL</span>
@ -736,6 +751,9 @@
<span class="functiontext">HierarchyLocations::func</span><span class="plain">(</span><span class="constant">DEFAULT_CLOSURE_FN_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"default_closure_fn"</span><span class="plain">, </span><span class="functiontext">Translation::uniqued</span><span class="plain">(), </span><span class="identifier">in_kind</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::func</span><span class="plain">(</span><span class="constant">GPR_FN_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"gpr_fn"</span><span class="plain">, </span><span class="functiontext">Translation::uniqued</span><span class="plain">(), </span><span class="identifier">in_kind</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::func</span><span class="plain">(</span><span class="constant">INSTANCE_GPR_FN_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"instance_gpr_fn"</span><span class="plain">, </span><span class="functiontext">Translation::uniqued</span><span class="plain">(), </span><span class="identifier">in_kind</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">FIRST_INSTANCE_HL</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">, </span><span class="functiontext">Translation::derive_lettered</span><span class="plain">(</span><span class="constant">FIRST_INSTANCE_INAMEF</span><span class="plain">, </span><span class="constant">FIRST_INSTANCE_INDERIV</span><span class="plain">), </span><span class="identifier">in_kind</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">NEXT_INSTANCE_HL</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">, </span><span class="functiontext">Translation::derive_lettered</span><span class="plain">(</span><span class="constant">NEXT_INSTANCE_INAMEF</span><span class="plain">, </span><span class="constant">NEXT_INSTANCE_INDERIV</span><span class="plain">), </span><span class="identifier">in_kind</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">COUNT_INSTANCE_HL</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">, </span><span class="functiontext">Translation::derive_lettered</span><span class="plain">(</span><span class="constant">COUNT_INSTANCE_INAMEF</span><span class="plain">, </span><span class="constant">COUNT_INSTANCE_INDERIV</span><span class="plain">), </span><span class="identifier">in_kind</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::ap</span><span class="plain">(</span><span class="constant">KIND_INLINE_PROPERTIES_HAP</span><span class="plain">, </span><span class="identifier">in_kind</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"inline_property"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"_inline_property"</span><span class="plain">);</span>
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">in_kind_inline_property</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::any_package_of_type</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"_inline_property"</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">KIND_INLINE_PROPERTY_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"inline"</span><span class="plain">, </span><span class="functiontext">Translation::uniqued</span><span class="plain">(), </span><span class="identifier">in_kind_inline_property</span><span class="plain">);</span>
@ -830,6 +848,7 @@
<pre class="definitions">
<span class="definitionkeyword">enum</span> <span class="constant">PROPERTIES_HAP</span>
<span class="definitionkeyword">enum</span> <span class="constant">PROPERTY_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">EITHER_OR_GPR_FN_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">CCOUNT_PROPERTY_HL</span>
</pre>
@ -844,6 +863,7 @@
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">local_properties</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::local_submodule</span><span class="plain">(</span><span class="identifier">properties</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::ap</span><span class="plain">(</span><span class="constant">PROPERTIES_HAP</span><span class="plain">, </span><span class="identifier">local_properties</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"property"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"_property"</span><span class="plain">);</span>
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">in_property</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::any_package_of_type</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"_property"</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">PROPERTY_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"P"</span><span class="plain">, </span><span class="functiontext">Translation::same</span><span class="plain">(), </span><span class="identifier">in_property</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::func</span><span class="plain">(</span><span class="constant">EITHER_OR_GPR_FN_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"either_or_GPR_fn"</span><span class="plain">, </span><span class="functiontext">Translation::generate</span><span class="plain">(</span><span class="constant">GPR_FOR_EITHER_OR_PROPERTY_INAMEF</span><span class="plain">), </span><span class="identifier">in_property</span><span class="plain">);</span>
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">synoptic_props</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::synoptic_submodule</span><span class="plain">(</span><span class="identifier">properties</span><span class="plain">);</span>
@ -953,6 +973,7 @@
<pre class="definitions">
<span class="definitionkeyword">enum</span> <span class="constant">EMPTY_RULEBOOK_INAME_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">OUTCOMES_HAP</span>
<span class="definitionkeyword">enum</span> <span class="constant">OUTCOME_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">RULEBOOKS_HAP</span>
<span class="definitionkeyword">enum</span> <span class="constant">RUN_FN_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">RULEBOOK_STV_CREATOR_FN_HL</span>
@ -975,6 +996,8 @@
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">local_rulebooks</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::local_submodule</span><span class="plain">(</span><span class="identifier">rulebooks</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::ap</span><span class="plain">(</span><span class="constant">OUTCOMES_HAP</span><span class="plain">, </span><span class="identifier">local_rulebooks</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"rulebook_outcome"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"_outcome"</span><span class="plain">);</span>
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">in_outcome</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::any_package_of_type</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"_outcome"</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">OUTCOME_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"outcome"</span><span class="plain">, </span><span class="functiontext">Translation::uniqued</span><span class="plain">(), </span><span class="identifier">in_outcome</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::ap</span><span class="plain">(</span><span class="constant">RULEBOOKS_HAP</span><span class="plain">, </span><span class="identifier">local_rulebooks</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"rulebook"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"_rulebook"</span><span class="plain">);</span>
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">in_rulebook</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::any_package_of_type</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"_rulebook"</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::func</span><span class="plain">(</span><span class="constant">RUN_FN_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"run_fn"</span><span class="plain">, </span><span class="functiontext">Translation::uniqued</span><span class="plain">(), </span><span class="identifier">in_rulebook</span><span class="plain">);</span>
@ -1000,6 +1023,7 @@
<span class="definitionkeyword">enum</span> <span class="constant">SHELL_FN_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">RULE_FN_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">EXTERIOR_RULE_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">RESPONDER_FN_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">RESPONSES_HAP</span>
<span class="definitionkeyword">enum</span> <span class="constant">AS_CONSTANT_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">AS_BLOCK_CONSTANT_HL</span>
@ -1021,6 +1045,7 @@
<span class="functiontext">HierarchyLocations::func</span><span class="plain">(</span><span class="constant">SHELL_FN_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"shell_fn"</span><span class="plain">, </span><span class="functiontext">Translation::generate_in</span><span class="plain">(</span><span class="constant">RULE_SHELL_ROUTINE_INAMEF</span><span class="plain">), </span><span class="identifier">in_rule</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::func</span><span class="plain">(</span><span class="constant">RULE_FN_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"rule_fn"</span><span class="plain">, </span><span class="functiontext">Translation::generate_in</span><span class="plain">(</span><span class="constant">PHRASE_INAMEF</span><span class="plain">), </span><span class="identifier">in_rule</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">EXTERIOR_RULE_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"exterior_rule"</span><span class="plain">, </span><span class="functiontext">Translation::uniqued</span><span class="plain">(), </span><span class="identifier">in_rule</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::func</span><span class="plain">(</span><span class="constant">RESPONDER_FN_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"responder_fn"</span><span class="plain">, </span><span class="functiontext">Translation::derive</span><span class="plain">(</span><span class="constant">RESPONDER_INAMEF</span><span class="plain">), </span><span class="identifier">in_rule</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::ap</span><span class="plain">(</span><span class="constant">RESPONSES_HAP</span><span class="plain">, </span><span class="identifier">in_rule</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"response"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"_response"</span><span class="plain">);</span>
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">in_response</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::any_package_of_type</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"_response"</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">AS_CONSTANT_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"as_constant"</span><span class="plain">, </span><span class="functiontext">Translation::uniqued</span><span class="plain">(), </span><span class="identifier">in_response</span><span class="plain">);</span>
@ -1101,7 +1126,6 @@
<pre class="definitions">
<span class="definitionkeyword">enum</span> <span class="constant">BLOCK_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">LITERALS_HAP</span>
<span class="definitionkeyword">enum</span> <span class="constant">TEXT_LITERAL_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">LIST_LITERAL_HL</span>
@ -1109,6 +1133,7 @@
<span class="definitionkeyword">enum</span> <span class="constant">TEXT_SUBSTITUTION_FN_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">PROPOSITIONS_HAP</span>
<span class="definitionkeyword">enum</span> <span class="constant">PROPOSITION_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">RTP_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">BLOCK_CONSTANTS_HAP</span>
<span class="definitionkeyword">enum</span> <span class="constant">BLOCK_CONSTANT_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">BOX_QUOTATIONS_HAP</span>
@ -1122,7 +1147,6 @@
<pre class="displaydefn">
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">in_any_enclosure</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::any_enclosure</span><span class="plain">();</span>
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">BLOCK_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"block"</span><span class="plain">, </span><span class="functiontext">Translation::uniqued</span><span class="plain">(), </span><span class="identifier">in_any_enclosure</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::ap</span><span class="plain">(</span><span class="constant">LITERALS_HAP</span><span class="plain">, </span><span class="identifier">in_any_enclosure</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"literal"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"_literal"</span><span class="plain">);</span>
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">in_literal</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::any_package_of_type</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"_literal"</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">TEXT_LITERAL_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"text"</span><span class="plain">, </span><span class="functiontext">Translation::uniqued</span><span class="plain">(), </span><span class="identifier">in_literal</span><span class="plain">);</span>
@ -1138,6 +1162,7 @@
<span class="functiontext">HierarchyLocations::ap</span><span class="plain">(</span><span class="constant">BOX_QUOTATIONS_HAP</span><span class="plain">, </span><span class="identifier">in_any_enclosure</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"block_constant"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"_box_quotation"</span><span class="plain">);</span>
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">in_box_quotation</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::any_package_of_type</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"_box_quotation"</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::func</span><span class="plain">(</span><span class="constant">BOX_QUOTATION_FN_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"quotation_fn"</span><span class="plain">, </span><span class="functiontext">Translation::uniqued</span><span class="plain">(), </span><span class="identifier">in_box_quotation</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">RTP_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"rtp"</span><span class="plain">, </span><span class="functiontext">Translation::uniqued</span><span class="plain">(), </span><span class="identifier">in_any_enclosure</span><span class="plain">);</span>
</pre>
<p class="inwebparagraph"></p>
@ -1157,10 +1182,15 @@
<span class="definitionkeyword">enum</span> <span class="constant">K_FIGURE_NAME_XPACKAGE</span>
<span class="definitionkeyword">enum</span> <span class="constant">K_SOUND_NAME_XPACKAGE</span>
<span class="definitionkeyword">enum</span> <span class="constant">K_USE_OPTION_XPACKAGE</span>
<span class="definitionkeyword">enum</span> <span class="constant">K_EXTERNAL_FILE_XPACKAGE</span>
<span class="definitionkeyword">enum</span> <span class="constant">K_RULEBOOK_OUTCOME_XPACKAGE</span>
<span class="definitionkeyword">enum</span> <span class="constant">K_RESPONSE_XPACKAGE</span>
<span class="definitionkeyword">enum</span> <span class="constant">K_SCENE_XPACKAGE</span>
<span class="definitionkeyword">enum</span> <span class="constant">V_COMMAND_PROMPT_XPACKAGE</span>
<span class="definitionkeyword">enum</span> <span class="constant">NOTHING_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">OBJECT_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">TESTUSEOPTION_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">PRINT_USE_OPTION_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">TABLEOFTABLES_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">TABLEOFVERBS_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">CAPSHORTNAME_HL</span>
@ -1171,6 +1201,15 @@
<span class="definitionkeyword">enum</span> <span class="constant">RESOURCEIDSOFSOUNDS_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">TIME_TOKEN_INNER_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">TRUTH_STATE_TOKEN_INNER_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">PRINT_TABLE_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">PRINT_RULEBOOK_OUTCOME_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">PRINT_RESPONSE_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">PRINT_FIGURE_NAME_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">PRINT_SOUND_NAME_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">PRINT_EXTERNAL_FILE_NAME_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">NO_EXTERNAL_FILES_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">TABLEOFEXTERNALFILES_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">PRINT_SCENE_HL</span>
</pre>
<p class="inwebparagraph"><a id="SP1_48"></a><b>&#167;1.48. </b><code class="display">
&lt;<span class="cwebmacrodefn">The rest</span> <span class="cwebmacronumber">1.48</span>&gt; =
@ -1194,22 +1233,40 @@
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">in_K_table</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::this_exotic_package</span><span class="plain">(</span><span class="constant">K_TABLE_XPACKAGE</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">TABLEOFTABLES_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"TableOfTables"</span><span class="plain">, </span><span class="functiontext">Translation::same</span><span class="plain">(), </span><span class="identifier">in_K_table</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::func</span><span class="plain">(</span><span class="constant">PRINT_TABLE_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"print_fn"</span><span class="plain">, </span><span class="functiontext">Translation::to</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"PrintTableName"</span><span class="plain">), </span><span class="identifier">in_K_table</span><span class="plain">);</span>
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">in_K_verb</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::this_exotic_package</span><span class="plain">(</span><span class="constant">K_VERB_XPACKAGE</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">TABLEOFVERBS_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"TableOfVerbs"</span><span class="plain">, </span><span class="functiontext">Translation::same</span><span class="plain">(), </span><span class="identifier">in_K_verb</span><span class="plain">);</span>
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">in_K_figure_name</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::this_exotic_package</span><span class="plain">(</span><span class="constant">K_FIGURE_NAME_XPACKAGE</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">RESOURCEIDSOFFIGURES_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"ResourceIDsOfFigures"</span><span class="plain">, </span><span class="functiontext">Translation::same</span><span class="plain">(), </span><span class="identifier">in_K_figure_name</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::func</span><span class="plain">(</span><span class="constant">PRINT_FIGURE_NAME_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"print_fn"</span><span class="plain">, </span><span class="functiontext">Translation::to</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"PrintFigureName"</span><span class="plain">), </span><span class="identifier">in_K_figure_name</span><span class="plain">);</span>
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">in_K_sound_name</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::this_exotic_package</span><span class="plain">(</span><span class="constant">K_SOUND_NAME_XPACKAGE</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">RESOURCEIDSOFSOUNDS_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"ResourceIDsOfSounds"</span><span class="plain">, </span><span class="functiontext">Translation::same</span><span class="plain">(), </span><span class="identifier">in_K_sound_name</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::func</span><span class="plain">(</span><span class="constant">PRINT_SOUND_NAME_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"print_fn"</span><span class="plain">, </span><span class="functiontext">Translation::to</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"PrintSoundName"</span><span class="plain">), </span><span class="identifier">in_K_sound_name</span><span class="plain">);</span>
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">in_K_use_option</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::this_exotic_package</span><span class="plain">(</span><span class="constant">K_USE_OPTION_XPACKAGE</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">NO_USE_OPTIONS_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"NO_USE_OPTIONS"</span><span class="plain">, </span><span class="functiontext">Translation::same</span><span class="plain">(), </span><span class="identifier">in_K_use_option</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::func</span><span class="plain">(</span><span class="constant">TESTUSEOPTION_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"test_fn"</span><span class="plain">, </span><span class="functiontext">Translation::to</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"TestUseOption"</span><span class="plain">), </span><span class="identifier">in_K_use_option</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::func</span><span class="plain">(</span><span class="constant">PRINT_USE_OPTION_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"print_fn"</span><span class="plain">, </span><span class="functiontext">Translation::to</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"PrintUseOption"</span><span class="plain">), </span><span class="identifier">in_K_use_option</span><span class="plain">);</span>
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">in_V_command_prompt</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::this_exotic_package</span><span class="plain">(</span><span class="constant">V_COMMAND_PROMPT_XPACKAGE</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::func</span><span class="plain">(</span><span class="constant">COMMANDPROMPTTEXT_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"command_prompt_text_fn"</span><span class="plain">, </span><span class="functiontext">Translation::to</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"CommandPromptText"</span><span class="plain">), </span><span class="identifier">in_V_command_prompt</span><span class="plain">);</span>
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">in_K_external_file</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::this_exotic_package</span><span class="plain">(</span><span class="constant">K_EXTERNAL_FILE_XPACKAGE</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">NO_EXTERNAL_FILES_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"NO_EXTERNAL_FILES"</span><span class="plain">, </span><span class="functiontext">Translation::same</span><span class="plain">(), </span><span class="identifier">in_K_external_file</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">TABLEOFEXTERNALFILES_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"TableOfExternalFiles"</span><span class="plain">, </span><span class="functiontext">Translation::same</span><span class="plain">(), </span><span class="identifier">in_K_external_file</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::func</span><span class="plain">(</span><span class="constant">PRINT_EXTERNAL_FILE_NAME_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"print_fn"</span><span class="plain">, </span><span class="functiontext">Translation::to</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"PrintExternalFileName"</span><span class="plain">), </span><span class="identifier">in_K_external_file</span><span class="plain">);</span>
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">in_K_rulebook_outcome</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::this_exotic_package</span><span class="plain">(</span><span class="constant">K_RULEBOOK_OUTCOME_XPACKAGE</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::func</span><span class="plain">(</span><span class="constant">PRINT_RULEBOOK_OUTCOME_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"print_fn"</span><span class="plain">, </span><span class="functiontext">Translation::to</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"RulebookOutcomePrintingRule"</span><span class="plain">), </span><span class="identifier">in_K_rulebook_outcome</span><span class="plain">);</span>
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">in_K_response</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::this_exotic_package</span><span class="plain">(</span><span class="constant">K_RESPONSE_XPACKAGE</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::func</span><span class="plain">(</span><span class="constant">PRINT_RESPONSE_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"print_fn"</span><span class="plain">, </span><span class="functiontext">Translation::to</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"PrintResponse"</span><span class="plain">), </span><span class="identifier">in_K_response</span><span class="plain">);</span>
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">in_K_scene</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::this_exotic_package</span><span class="plain">(</span><span class="constant">K_SCENE_XPACKAGE</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::func</span><span class="plain">(</span><span class="constant">PRINT_SCENE_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"print_fn"</span><span class="plain">, </span><span class="functiontext">Translation::to</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"PrintSceneName"</span><span class="plain">), </span><span class="identifier">in_K_scene</span><span class="plain">);</span>
</pre>
<p class="inwebparagraph"></p>
@ -1722,6 +1779,10 @@
<span class="reserved">case</span><span class="plain"> </span><span class="constant">K_FIGURE_NAME_XPACKAGE</span><span class="plain">: </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">Kinds::Behaviour::package</span><span class="plain">(</span><span class="identifier">K_figure_name</span><span class="plain">);</span>
<span class="reserved">case</span><span class="plain"> </span><span class="constant">K_SOUND_NAME_XPACKAGE</span><span class="plain">: </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">Kinds::Behaviour::package</span><span class="plain">(</span><span class="identifier">K_sound_name</span><span class="plain">);</span>
<span class="reserved">case</span><span class="plain"> </span><span class="constant">K_USE_OPTION_XPACKAGE</span><span class="plain">: </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">Kinds::Behaviour::package</span><span class="plain">(</span><span class="identifier">K_use_option</span><span class="plain">);</span>
<span class="reserved">case</span><span class="plain"> </span><span class="constant">K_EXTERNAL_FILE_XPACKAGE</span><span class="plain">: </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">Kinds::Behaviour::package</span><span class="plain">(</span><span class="identifier">K_external_file</span><span class="plain">);</span>
<span class="reserved">case</span><span class="plain"> </span><span class="constant">K_RULEBOOK_OUTCOME_XPACKAGE</span><span class="plain">: </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">Kinds::Behaviour::package</span><span class="plain">(</span><span class="identifier">K_rulebook_outcome</span><span class="plain">);</span>
<span class="reserved">case</span><span class="plain"> </span><span class="constant">K_RESPONSE_XPACKAGE</span><span class="plain">: </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">Kinds::Behaviour::package</span><span class="plain">(</span><span class="identifier">K_response</span><span class="plain">);</span>
<span class="reserved">case</span><span class="plain"> </span><span class="constant">K_SCENE_XPACKAGE</span><span class="plain">: </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">Kinds::Behaviour::package</span><span class="plain">(</span><span class="identifier">K_scene</span><span class="plain">);</span>
<span class="reserved">case</span><span class="plain"> </span><span class="constant">V_COMMAND_PROMPT_XPACKAGE</span><span class="plain">:</span>
<span class="reserved">return</span><span class="plain"> </span><span class="functiontext">Packaging::home_of</span><span class="plain">(</span><span class="functiontext">NonlocalVariables::iname</span><span class="plain">(</span><span class="identifier">command_prompt_VAR</span><span class="plain">));</span>
<span class="plain">}</span>
@ -1839,19 +1900,27 @@
<span class="plain">}</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">id</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">return</span><span class="plain"> </span><span class="functiontext">HierarchyLocations::find_in_package</span><span class="plain">(</span><span class="identifier">id</span><span class="plain">, </span><span class="identifier">P</span><span class="plain">, </span><span class="identifier">EMPTY_WORDING</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">);</span>
<span class="reserved">return</span><span class="plain"> </span><span class="functiontext">HierarchyLocations::find_in_package</span><span class="plain">(</span><span class="identifier">id</span><span class="plain">, </span><span class="identifier">P</span><span class="plain">, </span><span class="identifier">EMPTY_WORDING</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="functiontext">Hierarchy::derive_iname_in</span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">id</span><span class="plain">, </span><span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">derive_from</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">return</span><span class="plain"> </span><span class="functiontext">HierarchyLocations::find_in_package</span><span class="plain">(</span><span class="identifier">id</span><span class="plain">, </span><span class="identifier">P</span><span class="plain">, </span><span class="identifier">EMPTY_WORDING</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">, </span><span class="identifier">derive_from</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="functiontext">Hierarchy::make_localised_iname_in</span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">id</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">compilation_module</span><span class="plain"> *</span><span class="identifier">C</span><span class="plain">) {</span>
<span class="reserved">return</span><span class="plain"> </span><span class="functiontext">HierarchyLocations::find_in_package</span><span class="plain">(</span><span class="identifier">id</span><span class="plain">, </span><span class="identifier">P</span><span class="plain">, </span><span class="identifier">EMPTY_WORDING</span><span class="plain">, </span><span class="identifier">C</span><span class="plain">);</span>
<span class="reserved">return</span><span class="plain"> </span><span class="functiontext">HierarchyLocations::find_in_package</span><span class="plain">(</span><span class="identifier">id</span><span class="plain">, </span><span class="identifier">P</span><span class="plain">, </span><span class="identifier">EMPTY_WORDING</span><span class="plain">, </span><span class="identifier">C</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="functiontext">Hierarchy::make_block_iname</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">return</span><span class="plain"> </span><span class="functiontext">Packaging::supply_iname</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, 0);</span>
<span class="plain">}</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="functiontext">Hierarchy::make_kernel_iname</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">return</span><span class="plain"> </span><span class="functiontext">Packaging::supply_iname</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, 1);</span>
<span class="plain">}</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="functiontext">Hierarchy::make_iname_with_memo</span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">id</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="identifier">wording</span><span class="plain"> </span><span class="identifier">W</span><span class="plain">) {</span>
<span class="reserved">return</span><span class="plain"> </span><span class="functiontext">HierarchyLocations::find_in_package</span><span class="plain">(</span><span class="identifier">id</span><span class="plain">, </span><span class="identifier">P</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">);</span>
<span class="reserved">return</span><span class="plain"> </span><span class="functiontext">HierarchyLocations::find_in_package</span><span class="plain">(</span><span class="identifier">id</span><span class="plain">, </span><span class="identifier">P</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="reserved">package_request</span><span class="plain"> *</span><span class="functiontext">Hierarchy::make_package_in</span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">id</span><span class="plain">, </span><span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">) {</span>
@ -1887,13 +1956,17 @@
<p class="endnote">The function Hierarchy::package_within is used in 4/am (<a href="4-am.html#SP6">&#167;6</a>), 17/ts (<a href="17-ts.html#SP5">&#167;5</a>), 17/rs (<a href="17-rs.html#SP5">&#167;5</a>), 19/tc (<a href="19-tc.html#SP9">&#167;9</a>), 22/pav (<a href="22-pav.html#SP7">&#167;7</a>), 22/tp (<a href="22-tp.html#SP7">&#167;7</a>).</p>
<p class="endnote">The function Hierarchy::make_iname_in is used in 4/am (<a href="4-am.html#SP6">&#167;6</a>), 6/bp (<a href="6-bp.html#SP32">&#167;32</a>, <a href="6-bp.html#SP42">&#167;42</a>), 6/rlt (<a href="6-rlt.html#SP9">&#167;9</a>, <a href="6-rlt.html#SP9_13">&#167;9.13</a>, <a href="6-rlt.html#SP15_1_2">&#167;15.1.2</a>, <a href="6-rlt.html#SP20">&#167;20</a>, <a href="6-rlt.html#SP20_3">&#167;20.3</a>), 12/dtd (<a href="12-dtd.html#SP4">&#167;4</a>), 13/rsfk (<a href="13-rsfk.html#SP4">&#167;4</a>, <a href="13-rsfk.html#SP13_1_1">&#167;13.1.1</a>, <a href="13-rsfk.html#SP15">&#167;15</a>), 15/ma (<a href="15-ma.html#SP11_3">&#167;11.3</a>), 17/tl (<a href="17-tl.html#SP7">&#167;7</a>, <a href="17-tl.html#SP10_2_1">&#167;10.2.1</a>, <a href="17-tl.html#SP14_2">&#167;14.2</a>, <a href="17-tl.html#SP16">&#167;16</a>), 17/ts (<a href="17-ts.html#SP5">&#167;5</a>, <a href="17-ts.html#SP8_1">&#167;8.1</a>), 17/rs (<a href="17-rs.html#SP5">&#167;5</a>, <a href="17-rs.html#SP6_1">&#167;6.1</a>), 18/lc (<a href="18-lc.html#SP11">&#167;11</a>), 19/tc (<a href="19-tc.html#SP9">&#167;9</a>), 19/tb (<a href="19-tb.html#SP9">&#167;9</a>), 20/eq (<a href="20-eq.html#SP10_1">&#167;10.1</a>), 21/rl (<a href="21-rl.html#SP9">&#167;9</a>, <a href="21-rl.html#SP19">&#167;19</a>), 21/rl2 (<a href="21-rl2.html#SP10">&#167;10</a>, <a href="21-rl2.html#SP14">&#167;14</a>), 21/ac (<a href="21-ac.html#SP8">&#167;8</a>), 22/ph (<a href="22-ph.html#SP11">&#167;11</a>), 22/pav (<a href="22-pav.html#SP7">&#167;7</a>, <a href="22-pav.html#SP9">&#167;9</a>), 24/ch (<a href="24-ch.html#SP3">&#167;3</a>), 26/lt (<a href="26-lt.html#SP3">&#167;3</a>), 26/jl (<a href="26-jl.html#SP3">&#167;3</a>), 26/ts (<a href="26-ts.html#SP9_1">&#167;9.1</a>).</p>
<p class="endnote">The function Hierarchy::make_iname_in is used in 4/am (<a href="4-am.html#SP6">&#167;6</a>), 6/bp (<a href="6-bp.html#SP32">&#167;32</a>, <a href="6-bp.html#SP42">&#167;42</a>), 6/rlt (<a href="6-rlt.html#SP9">&#167;9</a>, <a href="6-rlt.html#SP9_13">&#167;9.13</a>, <a href="6-rlt.html#SP15_1_2">&#167;15.1.2</a>, <a href="6-rlt.html#SP20">&#167;20</a>, <a href="6-rlt.html#SP20_3">&#167;20.3</a>), 12/dtd (<a href="12-dtd.html#SP4">&#167;4</a>), 12/cdp (<a href="12-cdp.html#SP5">&#167;5</a>), 13/rsfk (<a href="13-rsfk.html#SP4">&#167;4</a>, <a href="13-rsfk.html#SP13_1_1">&#167;13.1.1</a>, <a href="13-rsfk.html#SP15">&#167;15</a>), 15/ma (<a href="15-ma.html#SP11_3">&#167;11.3</a>), 17/tl (<a href="17-tl.html#SP7">&#167;7</a>, <a href="17-tl.html#SP10_2_1">&#167;10.2.1</a>, <a href="17-tl.html#SP14_2">&#167;14.2</a>, <a href="17-tl.html#SP16">&#167;16</a>), 17/ts (<a href="17-ts.html#SP5">&#167;5</a>, <a href="17-ts.html#SP8_1">&#167;8.1</a>), 17/rs (<a href="17-rs.html#SP5">&#167;5</a>, <a href="17-rs.html#SP6_1">&#167;6.1</a>), 18/lc (<a href="18-lc.html#SP11">&#167;11</a>), 19/tc (<a href="19-tc.html#SP9">&#167;9</a>), 19/tb (<a href="19-tb.html#SP9">&#167;9</a>), 20/eq (<a href="20-eq.html#SP10_1">&#167;10.1</a>), 21/rl (<a href="21-rl.html#SP9">&#167;9</a>, <a href="21-rl.html#SP19">&#167;19</a>), 21/rl2 (<a href="21-rl2.html#SP10">&#167;10</a>, <a href="21-rl2.html#SP14">&#167;14</a>), 21/ac (<a href="21-ac.html#SP8">&#167;8</a>), 22/ph (<a href="22-ph.html#SP11">&#167;11</a>), 22/pav (<a href="22-pav.html#SP7">&#167;7</a>, <a href="22-pav.html#SP9">&#167;9</a>), 24/ch (<a href="24-ch.html#SP3">&#167;3</a>), 26/lt (<a href="26-lt.html#SP3">&#167;3</a>), 26/jl (<a href="26-jl.html#SP3">&#167;3</a>), 26/ts (<a href="26-ts.html#SP9_1">&#167;9.1</a>).</p>
<p class="endnote">The function Hierarchy::derive_iname_in is used in 16/ic (<a href="16-ic.html#SP10">&#167;10</a>), 21/rl (<a href="21-rl.html#SP9">&#167;9</a>).</p>
<p class="endnote">The function Hierarchy::make_localised_iname_in is used in 22/pu (<a href="22-pu.html#SP6">&#167;6</a>), 22/tp (<a href="22-tp.html#SP7">&#167;7</a>).</p>
<p class="endnote">The function Hierarchy::make_block_iname is used in 27/ei (<a href="27-ei.html#SP4">&#167;4</a>).</p>
<p class="endnote">The function Hierarchy::make_iname_with_memo is used in 5/nv (<a href="5-nv.html#SP16">&#167;16</a>), 13/rsfk (<a href="13-rsfk.html#SP13_1_1">&#167;13.1.1</a>), 21/ac (<a href="21-ac.html#SP6">&#167;6</a>).</p>
<p class="endnote">The function Hierarchy::make_kernel_iname is used in 26/rt (<a href="26-rt.html#SP4">&#167;4</a>).</p>
<p class="endnote">The function Hierarchy::make_iname_with_memo is used in 5/un (<a href="5-un.html#SP1">&#167;1</a>), 5/nv (<a href="5-nv.html#SP16">&#167;16</a>), 13/rsfk (<a href="13-rsfk.html#SP13_1_1">&#167;13.1.1</a>), 15/pr (<a href="15-pr.html#SP27">&#167;27</a>), 21/fao (<a href="21-fao.html#SP10">&#167;10</a>), 21/ac (<a href="21-ac.html#SP6">&#167;6</a>).</p>
<p class="endnote">The function Hierarchy::make_package_in is used in 21/ac (<a href="21-ac.html#SP6">&#167;6</a>).</p>

File diff suppressed because one or more lines are too long

View file

@ -155,9 +155,9 @@
<p class="endnote">The function Packaging::stateless is used in 15/epv (<a href="15-epv.html#SP2">&#167;2</a>).</p>
<p class="endnote">The function Packaging::home_of is used in 12/cdp (<a href="12-cdp.html#SP5">&#167;5</a>), 27/in (<a href="27-in.html#SP4">&#167;4</a>), 27/hl (<a href="27-hl.html#SP1">&#167;1</a>), 27/hr (<a href="27-hr.html#SP3">&#167;3</a>).</p>
<p class="endnote">The function Packaging::home_of is used in 12/cdp (<a href="12-cdp.html#SP5">&#167;5</a>), 27/hl (<a href="27-hl.html#SP1">&#167;1</a>), 27/hr (<a href="27-hr.html#SP3">&#167;3</a>).</p>
<p class="endnote">The function Packaging::enter_home_of is used in 6/bp (<a href="6-bp.html#SP42">&#167;42</a>), 6/rlt (<a href="6-rlt.html#SP14">&#167;14</a>, <a href="6-rlt.html#SP15_1">&#167;15.1</a>, <a href="6-rlt.html#SP20">&#167;20</a>, <a href="6-rlt.html#SP20_3">&#167;20.3</a>), 6/nv (<a href="6-nv.html#SP18">&#167;18</a>), 12/cdp (<a href="12-cdp.html#SP2_1_1">&#167;2.1.1</a>), 13/kak (<a href="13-kak.html#SP5">&#167;5</a>), 13/rsfk (<a href="13-rsfk.html#SP4">&#167;4</a>, <a href="13-rsfk.html#SP16_2">&#167;16.2</a>, <a href="13-rsfk.html#SP25">&#167;25</a>), 15/pr (<a href="15-pr.html#SP27">&#167;27</a>), 15/epv (<a href="15-epv.html#SP1_1_2">&#167;1.1.2</a>), 17/tl (<a href="17-tl.html#SP14_1">&#167;14.1</a>, <a href="17-tl.html#SP14_2">&#167;14.2</a>, <a href="17-tl.html#SP16">&#167;16</a>), 17/ts (<a href="17-ts.html#SP8_1">&#167;8.1</a>, <a href="17-ts.html#SP11">&#167;11</a>), 17/rs (<a href="17-rs.html#SP7_3">&#167;7.3</a>), 18/lc (<a href="18-lc.html#SP11">&#167;11</a>, <a href="18-lc.html#SP12_1">&#167;12.1</a>), 19/rsft (<a href="19-rsft.html#SP1_1_1_1">&#167;1.1.1.1</a>, <a href="19-rsft.html#SP1_1_1_1_1">&#167;1.1.1.1.1</a>, <a href="19-rsft.html#SP1_2">&#167;1.2</a>, <a href="19-rsft.html#SP1_3">&#167;1.3</a>), 21/rl2 (<a href="21-rl2.html#SP14">&#167;14</a>, <a href="21-rl2.html#SP20">&#167;20</a>), 21/fao (<a href="21-fao.html#SP10">&#167;10</a>), 21/ac (<a href="21-ac.html#SP6">&#167;6</a>, <a href="21-ac.html#SP8">&#167;8</a>, <a href="21-ac.html#SP14">&#167;14</a>), 22/cs (<a href="22-cs.html#SP8">&#167;8</a>), 22/pav (<a href="22-pav.html#SP8_1">&#167;8.1</a>), 22/tp2 (<a href="22-tp2.html#SP4">&#167;4</a>), 24/ch (<a href="24-ch.html#SP6">&#167;6</a>, <a href="24-ch.html#SP8">&#167;8</a>), 26/vm (<a href="26-vm.html#SP8">&#167;8</a>), 26/uo (<a href="26-uo.html#SP21">&#167;21</a>), 26/lt (<a href="26-lt.html#SP4_1">&#167;4.1</a>), 26/jl (<a href="26-jl.html#SP6">&#167;6</a>), 26/rt (<a href="26-rt.html#SP1">&#167;1</a>), 26/iti (<a href="26-iti.html#SP10">&#167;10</a>), 26/pl (<a href="26-pl.html#SP12">&#167;12</a>), 26/ts (<a href="26-ts.html#SP10">&#167;10</a>), 27/ei (<a href="27-ei.html#SP3">&#167;3</a>, <a href="27-ei.html#SP4">&#167;4</a>), 27/hr (<a href="27-hr.html#SP4">&#167;4</a>).</p>
<p class="endnote">The function Packaging::enter_home_of is used in 6/bp (<a href="6-bp.html#SP42">&#167;42</a>), 6/rlt (<a href="6-rlt.html#SP14">&#167;14</a>, <a href="6-rlt.html#SP15_1">&#167;15.1</a>, <a href="6-rlt.html#SP20">&#167;20</a>, <a href="6-rlt.html#SP20_3">&#167;20.3</a>), 6/nv (<a href="6-nv.html#SP18">&#167;18</a>), 12/cdp (<a href="12-cdp.html#SP2_1_1">&#167;2.1.1</a>), 13/kak (<a href="13-kak.html#SP5">&#167;5</a>), 13/rsfk (<a href="13-rsfk.html#SP4">&#167;4</a>, <a href="13-rsfk.html#SP16_2">&#167;16.2</a>, <a href="13-rsfk.html#SP25">&#167;25</a>), 15/pr (<a href="15-pr.html#SP27">&#167;27</a>), 15/epv (<a href="15-epv.html#SP1_1_2">&#167;1.1.2</a>), 16/ic (<a href="16-ic.html#SP10">&#167;10</a>), 17/tl (<a href="17-tl.html#SP14_1">&#167;14.1</a>, <a href="17-tl.html#SP14_2">&#167;14.2</a>, <a href="17-tl.html#SP16">&#167;16</a>), 17/ts (<a href="17-ts.html#SP8_1">&#167;8.1</a>, <a href="17-ts.html#SP11">&#167;11</a>), 17/rs (<a href="17-rs.html#SP7_3">&#167;7.3</a>), 18/lc (<a href="18-lc.html#SP11">&#167;11</a>, <a href="18-lc.html#SP12_1">&#167;12.1</a>), 19/rsft (<a href="19-rsft.html#SP1_1_1_1">&#167;1.1.1.1</a>, <a href="19-rsft.html#SP1_1_1_1_1">&#167;1.1.1.1.1</a>, <a href="19-rsft.html#SP1_2">&#167;1.2</a>, <a href="19-rsft.html#SP1_3">&#167;1.3</a>), 21/rl2 (<a href="21-rl2.html#SP14">&#167;14</a>, <a href="21-rl2.html#SP20">&#167;20</a>), 21/fao (<a href="21-fao.html#SP10">&#167;10</a>), 21/ac (<a href="21-ac.html#SP6">&#167;6</a>, <a href="21-ac.html#SP8">&#167;8</a>, <a href="21-ac.html#SP14">&#167;14</a>), 22/cs (<a href="22-cs.html#SP8">&#167;8</a>), 22/pav (<a href="22-pav.html#SP8_1">&#167;8.1</a>), 22/tp2 (<a href="22-tp2.html#SP4">&#167;4</a>), 24/ch (<a href="24-ch.html#SP6">&#167;6</a>, <a href="24-ch.html#SP8">&#167;8</a>), 26/vm (<a href="26-vm.html#SP8">&#167;8</a>), 26/uo (<a href="26-uo.html#SP21">&#167;21</a>), 26/lt (<a href="26-lt.html#SP4_1">&#167;4.1</a>), 26/jl (<a href="26-jl.html#SP6">&#167;6</a>), 26/rt (<a href="26-rt.html#SP1">&#167;1</a>), 26/iti (<a href="26-iti.html#SP10">&#167;10</a>), 26/pl (<a href="26-pl.html#SP12">&#167;12</a>), 26/ts (<a href="26-ts.html#SP10">&#167;10</a>), 27/ei (<a href="27-ei.html#SP3">&#167;3</a>, <a href="27-ei.html#SP4">&#167;4</a>), 27/hr (<a href="27-hr.html#SP4">&#167;4</a>).</p>
<p class="endnote">The function Packaging::enter_current_enclosure appears nowhere else.</p>
@ -236,7 +236,7 @@
<p class="inwebparagraph"></p>
<p class="endnote">The function Packaging::enter is used in <a href="#SP5">&#167;5</a>, 5/ins (<a href="5-ins.html#SP34">&#167;34</a>), 5/nv (<a href="5-nv.html#SP16">&#167;16</a>), 13/rsfk (<a href="13-rsfk.html#SP16_1">&#167;16.1</a>, <a href="13-rsfk.html#SP25">&#167;25</a>), 15/epv (<a href="15-epv.html#SP2">&#167;2</a>), 16/ic (<a href="16-ic.html#SP10">&#167;10</a>), 17/rs (<a href="17-rs.html#SP6_1">&#167;6.1</a>, <a href="17-rs.html#SP7_1">&#167;7.1</a>), 21/rl (<a href="21-rl.html#SP9">&#167;9</a>), 21/rl2 (<a href="21-rl2.html#SP20">&#167;20</a>), 22/ph (<a href="22-ph.html#SP12">&#167;12</a>), 27/ei (<a href="27-ei.html#SP3">&#167;3</a>, <a href="27-ei.html#SP4">&#167;4</a>), 27/hl (<a href="27-hl.html#SP1">&#167;1</a>).</p>
<p class="endnote">The function Packaging::enter is used in <a href="#SP5">&#167;5</a>, 5/ins (<a href="5-ins.html#SP34">&#167;34</a>), 5/nv (<a href="5-nv.html#SP16">&#167;16</a>), 13/rsfk (<a href="13-rsfk.html#SP16_1">&#167;16.1</a>, <a href="13-rsfk.html#SP25">&#167;25</a>), 15/epv (<a href="15-epv.html#SP2">&#167;2</a>), 17/rs (<a href="17-rs.html#SP6_1">&#167;6.1</a>, <a href="17-rs.html#SP7_1">&#167;7.1</a>), 21/rl (<a href="21-rl.html#SP9">&#167;9</a>), 21/rl2 (<a href="21-rl2.html#SP20">&#167;20</a>), 22/ph (<a href="22-ph.html#SP12">&#167;12</a>), 27/ei (<a href="27-ei.html#SP3">&#167;3</a>, <a href="27-ei.html#SP4">&#167;4</a>), 27/hl (<a href="27-hl.html#SP1">&#167;1</a>).</p>
<p class="endnote">The function Packaging::exit is used in 5/ins (<a href="5-ins.html#SP34">&#167;34</a>), 5/nv (<a href="5-nv.html#SP16">&#167;16</a>), 6/bp (<a href="6-bp.html#SP42">&#167;42</a>), 6/rlt (<a href="6-rlt.html#SP14">&#167;14</a>, <a href="6-rlt.html#SP15_1">&#167;15.1</a>, <a href="6-rlt.html#SP20">&#167;20</a>, <a href="6-rlt.html#SP20_3">&#167;20.3</a>), 6/nv (<a href="6-nv.html#SP18">&#167;18</a>), 12/cdp (<a href="12-cdp.html#SP2_1_1">&#167;2.1.1</a>), 13/kak (<a href="13-kak.html#SP5">&#167;5</a>), 13/rsfk (<a href="13-rsfk.html#SP4">&#167;4</a>, <a href="13-rsfk.html#SP16_1">&#167;16.1</a>, <a href="13-rsfk.html#SP16_2">&#167;16.2</a>, <a href="13-rsfk.html#SP25">&#167;25</a>), 15/pr (<a href="15-pr.html#SP27">&#167;27</a>), 15/epv (<a href="15-epv.html#SP1_1_2">&#167;1.1.2</a>, <a href="15-epv.html#SP2">&#167;2</a>), 16/ic (<a href="16-ic.html#SP10">&#167;10</a>), 17/tl (<a href="17-tl.html#SP14_1">&#167;14.1</a>, <a href="17-tl.html#SP14_2">&#167;14.2</a>, <a href="17-tl.html#SP16">&#167;16</a>), 17/ts (<a href="17-ts.html#SP8_1">&#167;8.1</a>, <a href="17-ts.html#SP11">&#167;11</a>), 17/rs (<a href="17-rs.html#SP6_1">&#167;6.1</a>, <a href="17-rs.html#SP7_1">&#167;7.1</a>, <a href="17-rs.html#SP7_3">&#167;7.3</a>), 18/lc (<a href="18-lc.html#SP11">&#167;11</a>, <a href="18-lc.html#SP12_1">&#167;12.1</a>), 19/rsft (<a href="19-rsft.html#SP1_1_1_1">&#167;1.1.1.1</a>, <a href="19-rsft.html#SP1_1_1_1_1">&#167;1.1.1.1.1</a>, <a href="19-rsft.html#SP1_2">&#167;1.2</a>, <a href="19-rsft.html#SP1_3">&#167;1.3</a>), 21/rl (<a href="21-rl.html#SP9">&#167;9</a>), 21/rl2 (<a href="21-rl2.html#SP14">&#167;14</a>, <a href="21-rl2.html#SP20">&#167;20</a>), 21/fao (<a href="21-fao.html#SP10">&#167;10</a>), 21/ac (<a href="21-ac.html#SP6">&#167;6</a>, <a href="21-ac.html#SP8">&#167;8</a>, <a href="21-ac.html#SP14">&#167;14</a>), 22/cs (<a href="22-cs.html#SP8">&#167;8</a>), 22/ph (<a href="22-ph.html#SP12">&#167;12</a>), 22/pav (<a href="22-pav.html#SP8_1">&#167;8.1</a>), 22/tp2 (<a href="22-tp2.html#SP4">&#167;4</a>), 24/ch (<a href="24-ch.html#SP6">&#167;6</a>, <a href="24-ch.html#SP8">&#167;8</a>), 26/vm (<a href="26-vm.html#SP8">&#167;8</a>), 26/uo (<a href="26-uo.html#SP21">&#167;21</a>), 26/lt (<a href="26-lt.html#SP4_1">&#167;4.1</a>), 26/jl (<a href="26-jl.html#SP6">&#167;6</a>), 26/rt (<a href="26-rt.html#SP4">&#167;4</a>), 26/iti (<a href="26-iti.html#SP10">&#167;10</a>), 26/pl (<a href="26-pl.html#SP12">&#167;12</a>), 26/ts (<a href="26-ts.html#SP10">&#167;10</a>), 27/ei (<a href="27-ei.html#SP3">&#167;3</a>, <a href="27-ei.html#SP4">&#167;4</a>), 27/hl (<a href="27-hl.html#SP1">&#167;1</a>), 27/hr (<a href="27-hr.html#SP4">&#167;4</a>).</p>
@ -502,11 +502,11 @@
<p class="endnote">The function Packaging::function is used in 27/hl (<a href="27-hl.html#SP1">&#167;1</a>).</p>
<p class="endnote">The function Packaging::function_text is used in 21/rl (<a href="21-rl.html#SP9">&#167;9</a>), 27/hl (<a href="27-hl.html#SP1">&#167;1</a>, <a href="27-hl.html#SP1_1">&#167;1.1</a>).</p>
<p class="endnote">The function Packaging::function_text is used in 27/hl (<a href="27-hl.html#SP1">&#167;1</a>, <a href="27-hl.html#SP1_1">&#167;1.1</a>).</p>
<p class="endnote">The function Packaging::datum_text is used in 27/hl (<a href="27-hl.html#SP1">&#167;1</a>).</p>
<p class="endnote">The function Packaging::house is used in 13/rsfk (<a href="13-rsfk.html#SP13_1_1">&#167;13.1.1</a>, <a href="13-rsfk.html#SP25">&#167;25</a>), 15/ep (<a href="15-ep.html#SP4">&#167;4</a>), 27/in (<a href="27-in.html#SP5">&#167;5</a>).</p>
<p class="endnote">The function Packaging::house is used in 13/rsfk (<a href="13-rsfk.html#SP25">&#167;25</a>), 15/ep (<a href="15-ep.html#SP4">&#167;4</a>), 27/in (<a href="27-in.html#SP5">&#167;5</a>).</p>
<p class="endnote">The function Packaging::house_with is used in 26/rt (<a href="26-rt.html#SP4">&#167;4</a>), 27/in (<a href="27-in.html#SP4">&#167;4</a>).</p>

View file

@ -18,6 +18,8 @@
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">then_make_unique</span><span class="plain">;</span>
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">generate_from</span><span class="plain">;</span>
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">localise</span><span class="plain">;</span>
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">derive</span><span class="plain">;</span>
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">faux_letter</span><span class="plain">;</span>
<span class="plain">} </span><span class="reserved">name_translation</span><span class="plain">;</span>
<span class="reserved">name_translation</span><span class="plain"> </span><span class="functiontext">Translation::same</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
@ -26,6 +28,8 @@
<span class="identifier">nt</span><span class="element">.then_make_unique</span><span class="plain"> = </span><span class="identifier">FALSE</span><span class="plain">;</span>
<span class="identifier">nt</span><span class="element">.generate_from</span><span class="plain"> = -1;</span>
<span class="identifier">nt</span><span class="element">.localise</span><span class="plain"> = </span><span class="identifier">FALSE</span><span class="plain">;</span>
<span class="identifier">nt</span><span class="element">.derive</span><span class="plain"> = </span><span class="identifier">FALSE</span><span class="plain">;</span>
<span class="identifier">nt</span><span class="element">.faux_letter</span><span class="plain"> = -1;</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">nt</span><span class="plain">;</span>
<span class="plain">}</span>
@ -48,6 +52,21 @@
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">nt</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">name_translation</span><span class="plain"> </span><span class="functiontext">Translation::derive</span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">f</span><span class="plain">) {</span>
<span class="reserved">name_translation</span><span class="plain"> </span><span class="identifier">nt</span><span class="plain"> = </span><span class="functiontext">Translation::same</span><span class="plain">();</span>
<span class="identifier">nt</span><span class="element">.generate_from</span><span class="plain"> = </span><span class="identifier">f</span><span class="plain">;</span>
<span class="identifier">nt</span><span class="element">.derive</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">nt</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">name_translation</span><span class="plain"> </span><span class="functiontext">Translation::derive_lettered</span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">f</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">faux_letter</span><span class="plain">) {</span>
<span class="reserved">name_translation</span><span class="plain"> </span><span class="identifier">nt</span><span class="plain"> = </span><span class="functiontext">Translation::same</span><span class="plain">();</span>
<span class="identifier">nt</span><span class="element">.generate_from</span><span class="plain"> = </span><span class="identifier">f</span><span class="plain">;</span>
<span class="identifier">nt</span><span class="element">.derive</span><span class="plain"> = </span><span class="identifier">TRUE</span><span class="plain">;</span>
<span class="identifier">nt</span><span class="element">.faux_letter</span><span class="plain"> = </span><span class="identifier">faux_letter</span><span class="plain">;</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">nt</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">name_translation</span><span class="plain"> </span><span class="functiontext">Translation::generate</span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">f</span><span class="plain">) {</span>
<span class="reserved">name_translation</span><span class="plain"> </span><span class="identifier">nt</span><span class="plain"> = </span><span class="functiontext">Translation::same</span><span class="plain">();</span>
<span class="identifier">nt</span><span class="element">.generate_from</span><span class="plain"> = </span><span class="identifier">f</span><span class="plain">;</span>
@ -72,7 +91,11 @@
<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_4">&#167;1.4</a>, <a href="27-hr.html#SP1_6">&#167;1.6</a>, <a href="27-hr.html#SP1_8">&#167;1.8</a>, <a href="27-hr.html#SP1_12">&#167;1.12</a>, <a href="27-hr.html#SP1_14">&#167;1.14</a>, <a href="27-hr.html#SP1_22">&#167;1.22</a>, <a href="27-hr.html#SP1_24">&#167;1.24</a>, <a href="27-hr.html#SP1_28">&#167;1.28</a>, <a href="27-hr.html#SP1_30">&#167;1.30</a>, <a href="27-hr.html#SP1_34">&#167;1.34</a>, <a href="27-hr.html#SP1_36">&#167;1.36</a>, <a href="27-hr.html#SP1_44">&#167;1.44</a>).</p>
<p class="endnote">The function Translation::derive is used in 27/hr (<a href="27-hr.html#SP1_4">&#167;1.4</a>, <a href="27-hr.html#SP1_40">&#167;1.40</a>).</p>
<p class="endnote">The function Translation::derive_lettered is used in 27/hr (<a href="27-hr.html#SP1_28">&#167;1.28</a>).</p>
<p class="endnote">The function Translation::generate is used in 27/hr (<a href="27-hr.html#SP1_4">&#167;1.4</a>, <a href="27-hr.html#SP1_6">&#167;1.6</a>, <a href="27-hr.html#SP1_8">&#167;1.8</a>, <a href="27-hr.html#SP1_12">&#167;1.12</a>, <a href="27-hr.html#SP1_14">&#167;1.14</a>, <a href="27-hr.html#SP1_22">&#167;1.22</a>, <a href="27-hr.html#SP1_24">&#167;1.24</a>, <a href="27-hr.html#SP1_26">&#167;1.26</a>, <a href="27-hr.html#SP1_28">&#167;1.28</a>, <a href="27-hr.html#SP1_30">&#167;1.30</a>, <a href="27-hr.html#SP1_34">&#167;1.34</a>, <a href="27-hr.html#SP1_36">&#167;1.36</a>, <a href="27-hr.html#SP1_44">&#167;1.44</a>).</p>
<p class="endnote">The function Translation::generate_in is used in 27/hr (<a href="27-hr.html#SP1_32">&#167;1.32</a>, <a href="27-hr.html#SP1_40">&#167;1.40</a>).</p>

View file

@ -609,7 +609,6 @@ 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">&gt;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">&gt;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">&gt;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>

View file

@ -40,9 +40,7 @@ it's convenient to associate them with nametags.
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">UseNouns::noun_compose_identifier</span><span class="plain">(</span><span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">R</span><span class="plain">, </span><span class="identifier">noun</span><span class="plain"> *</span><span class="identifier">t</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">N</span><span class="plain">) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">t</span><span class="plain">-&gt;</span><span class="identifier">nt_iname</span><span class="plain"> == </span><span class="identifier">NULL</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">Nouns::get_name</span><span class="plain">(</span><span class="identifier">t</span><span class="plain">, </span><span class="identifier">FALSE</span><span class="plain">);</span>
<span class="identifier">t</span><span class="plain">-&gt;</span><span class="identifier">nt_iname</span><span class="plain"> = </span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"I"</span><span class="plain">, </span><span class="identifier">R</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Wordings::nonempty</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">t</span><span class="plain">-&gt;</span><span class="identifier">nt_iname</span><span class="plain">, </span><span class="identifier">W</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">t</span><span class="plain">-&gt;</span><span class="identifier">nt_iname</span><span class="plain">), </span><span class="identifier">MAKE_NAME_UNIQUE</span><span class="plain">);</span>
<span class="identifier">t</span><span class="plain">-&gt;</span><span class="identifier">nt_iname</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_with_memo</span><span class="plain">(</span><span class="constant">INSTANCE_HL</span><span class="plain">, </span><span class="identifier">R</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="plain">}</span>

View file

@ -474,8 +474,8 @@ no need to translate this to other languages.)
<pre class="displaydefn">
<span class="identifier">registered_directions</span><span class="plain">++;</span>
<span class="identifier">inter_name</span><span class="plain"> *</span><span class="identifier">dname</span><span class="plain"> = </span><span class="identifier">InterNames::new</span><span class="plain">(</span><span class="identifier">DIRECTION_OBJECT_INAMEF</span><span class="plain">);</span>
<span class="identifier">Packaging::house</span><span class="plain">(</span><span class="identifier">dname</span><span class="plain">, </span><span class="identifier">Kinds::Behaviour::package</span><span class="plain">(</span><span class="identifier">K_direction</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">DIRECTIONS_HAP</span><span class="plain">);</span>
<span class="identifier">inter_name</span><span class="plain"> *</span><span class="identifier">dname</span><span class="plain"> = </span><span class="identifier">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="identifier">DIRECTION_HL</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">);</span>
<span class="identifier">PF_I</span><span class="plain">(</span><span class="identifier">map</span><span class="plain">, </span><span class="identifier">I</span><span class="plain">)-</span><span class="element">&gt;direction_iname</span><span class="plain"> = </span><span class="identifier">dname</span><span class="plain">;</span>
<span class="functiontext">PL::MapDirections::make_mapped_predicate</span><span class="plain">(</span><span class="identifier">I</span><span class="plain">, </span><span class="identifier">dname</span><span class="plain">);</span>
</pre>

View file

@ -562,8 +562,7 @@ then that's what "listening" will match.)
<span class="identifier">inter_name</span><span class="plain"> *</span><span class="functiontext">PL::Actions::double_sharp</span><span class="plain">(</span><span class="reserved">action_name</span><span class="plain"> *</span><span class="identifier">an</span><span class="plain">) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">an</span><span class="plain">-</span><span class="element">&gt;an_iname</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">&gt;an_iname</span><span class="plain"> = </span><span class="identifier">InterNames::new_derived</span><span class="plain">(</span><span class="identifier">ACTION_INAMEF</span><span class="plain">, </span><span class="identifier">an</span><span class="plain">-</span><span class="element">&gt;an_base_iname</span><span class="plain">);</span>
<span class="identifier">Packaging::house</span><span class="plain">(</span><span class="identifier">an</span><span class="plain">-</span><span class="element">&gt;an_iname</span><span class="plain">, </span><span class="identifier">an</span><span class="plain">-</span><span class="element">&gt;an_package</span><span class="plain">);</span>
<span class="identifier">an</span><span class="plain">-</span><span class="element">&gt;an_iname</span><span class="plain"> = </span><span class="identifier">Hierarchy::derive_iname_in</span><span class="plain">(</span><span class="identifier">DOUBLE_SHARP_NAME_HL</span><span class="plain">, </span><span class="identifier">an</span><span class="plain">-</span><span class="element">&gt;an_base_iname</span><span class="plain">, </span><span class="identifier">an</span><span class="plain">-</span><span class="element">&gt;an_package</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</span><span class="plain">(</span><span class="identifier">an</span><span class="plain">-</span><span class="element">&gt;an_package</span><span class="plain">);</span>
<span class="identifier">Emit::ds_named_pseudo_numeric_constant</span><span class="plain">(</span><span class="identifier">an</span><span class="plain">-</span><span class="element">&gt;an_iname</span><span class="plain">, </span><span class="identifier">K_value</span><span class="plain">, (</span><span class="identifier">inter_t</span><span class="plain">) </span><span class="identifier">an</span><span class="plain">-&gt;</span><span class="identifier">allocation_id</span><span class="plain">);</span>
<span class="identifier">InterNames::annotate_i</span><span class="plain">(</span><span class="identifier">an</span><span class="plain">-</span><span class="element">&gt;an_iname</span><span class="plain">, </span><span class="identifier">ACTION_IANN</span><span class="plain">, 1);</span>
@ -573,13 +572,8 @@ then that's what "listening" will match.)
<span class="plain">}</span>
<span class="identifier">inter_name</span><span class="plain"> *</span><span class="functiontext">PL::Actions::Sub</span><span class="plain">(</span><span class="reserved">action_name</span><span class="plain"> *</span><span class="identifier">an</span><span class="plain">) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">an</span><span class="plain">-</span><span class="element">&gt;an_routine_iname</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">&gt;an_routine_iname</span><span class="plain"> =</span>
<span class="identifier">Packaging::function</span><span class="plain">(</span>
<span class="identifier">InterNames::one_off</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"perform_fn"</span><span class="plain">, </span><span class="identifier">an</span><span class="plain">-</span><span class="element">&gt;an_package</span><span class="plain">),</span>
<span class="identifier">an</span><span class="plain">-</span><span class="element">&gt;an_package</span><span class="plain">,</span>
<span class="identifier">InterNames::new_derived</span><span class="plain">(</span><span class="identifier">ACTION_ROUTINE_INAMEF</span><span class="plain">, </span><span class="identifier">an</span><span class="plain">-</span><span class="element">&gt;an_base_iname</span><span class="plain">));</span>
<span class="plain">}</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">an</span><span class="plain">-</span><span class="element">&gt;an_routine_iname</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">&gt;an_routine_iname</span><span class="plain"> = </span><span class="identifier">Hierarchy::derive_iname_in</span><span class="plain">(</span><span class="identifier">PERFORM_FN_HL</span><span class="plain">, </span><span class="identifier">an</span><span class="plain">-</span><span class="element">&gt;an_base_iname</span><span class="plain">, </span><span class="identifier">an</span><span class="plain">-</span><span class="element">&gt;an_package</span><span class="plain">);</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">an</span><span class="plain">-</span><span class="element">&gt;an_routine_iname</span><span class="plain">;</span>
<span class="plain">}</span>

View file

@ -692,20 +692,42 @@ in some human-readable format.
<span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"null kind has no printing routine"</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">K</span><span class="plain">-</span><span class="element">&gt;construct</span><span class="plain">-</span><span class="element">&gt;pr_iname</span><span class="plain">) </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">K</span><span class="plain">-</span><span class="element">&gt;construct</span><span class="plain">-</span><span class="element">&gt;pr_iname</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="identifier">NULL</span><span class="plain">;</span>
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">external</span><span class="plain"> = </span><span class="identifier">TRUE</span><span class="plain">;</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext">Kinds::Compare::eq</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">, </span><span class="identifier">K_use_option</span><span class="plain">)) {</span>
<span class="identifier">R</span><span class="plain"> = </span><span class="functiontext">Kinds::Behaviour::package</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">); </span><span class="identifier">external</span><span class="plain"> = </span><span class="identifier">FALSE</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext">Kinds::Compare::eq</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">, </span><span class="identifier">K_rulebook_outcome</span><span class="plain">)) {</span>
<span class="identifier">R</span><span class="plain"> = </span><span class="functiontext">Kinds::Behaviour::package</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">); </span><span class="identifier">external</span><span class="plain"> = </span><span class="identifier">FALSE</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext">Kinds::Compare::eq</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">, </span><span class="identifier">K_response</span><span class="plain">)) {</span>
<span class="identifier">R</span><span class="plain"> = </span><span class="functiontext">Kinds::Behaviour::package</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">); </span><span class="identifier">external</span><span class="plain"> = </span><span class="identifier">FALSE</span><span class="plain">;</span>
<span class="identifier">K</span><span class="plain">-</span><span class="element">&gt;construct</span><span class="plain">-</span><span class="element">&gt;pr_iname</span><span class="plain"> = </span><span class="identifier">Hierarchy::find</span><span class="plain">(</span><span class="identifier">PRINT_USE_OPTION_HL</span><span class="plain">);</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">K</span><span class="plain">-</span><span class="element">&gt;construct</span><span class="plain">-</span><span class="element">&gt;pr_iname</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext">Kinds::Compare::eq</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">, </span><span class="identifier">K_table</span><span class="plain">)) {</span>
<span class="identifier">R</span><span class="plain"> = </span><span class="functiontext">Kinds::Behaviour::package</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">); </span><span class="identifier">external</span><span class="plain"> = </span><span class="identifier">FALSE</span><span class="plain">;</span>
<span class="identifier">K</span><span class="plain">-</span><span class="element">&gt;construct</span><span class="plain">-</span><span class="element">&gt;pr_iname</span><span class="plain"> = </span><span class="identifier">Hierarchy::find</span><span class="plain">(</span><span class="identifier">PRINT_TABLE_HL</span><span class="plain">);</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">K</span><span class="plain">-</span><span class="element">&gt;construct</span><span class="plain">-</span><span class="element">&gt;pr_iname</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext">Kinds::Compare::eq</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">, </span><span class="identifier">K_rulebook_outcome</span><span class="plain">)) {</span>
<span class="identifier">K</span><span class="plain">-</span><span class="element">&gt;construct</span><span class="plain">-</span><span class="element">&gt;pr_iname</span><span class="plain"> = </span><span class="identifier">Hierarchy::find</span><span class="plain">(</span><span class="identifier">PRINT_RULEBOOK_OUTCOME_HL</span><span class="plain">);</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">K</span><span class="plain">-</span><span class="element">&gt;construct</span><span class="plain">-</span><span class="element">&gt;pr_iname</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext">Kinds::Compare::eq</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">, </span><span class="identifier">K_response</span><span class="plain">)) {</span>
<span class="identifier">K</span><span class="plain">-</span><span class="element">&gt;construct</span><span class="plain">-</span><span class="element">&gt;pr_iname</span><span class="plain"> = </span><span class="identifier">Hierarchy::find</span><span class="plain">(</span><span class="identifier">PRINT_RESPONSE_HL</span><span class="plain">);</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">K</span><span class="plain">-</span><span class="element">&gt;construct</span><span class="plain">-</span><span class="element">&gt;pr_iname</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext">Kinds::Compare::eq</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">, </span><span class="identifier">K_figure_name</span><span class="plain">)) {</span>
<span class="identifier">K</span><span class="plain">-</span><span class="element">&gt;construct</span><span class="plain">-</span><span class="element">&gt;pr_iname</span><span class="plain"> = </span><span class="identifier">Hierarchy::find</span><span class="plain">(</span><span class="identifier">PRINT_FIGURE_NAME_HL</span><span class="plain">);</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">K</span><span class="plain">-</span><span class="element">&gt;construct</span><span class="plain">-</span><span class="element">&gt;pr_iname</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext">Kinds::Compare::eq</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">, </span><span class="identifier">K_sound_name</span><span class="plain">)) {</span>
<span class="identifier">K</span><span class="plain">-</span><span class="element">&gt;construct</span><span class="plain">-</span><span class="element">&gt;pr_iname</span><span class="plain"> = </span><span class="identifier">Hierarchy::find</span><span class="plain">(</span><span class="identifier">PRINT_SOUND_NAME_HL</span><span class="plain">);</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">K</span><span class="plain">-</span><span class="element">&gt;construct</span><span class="plain">-</span><span class="element">&gt;pr_iname</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext">Kinds::Compare::eq</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">, </span><span class="identifier">K_external_file</span><span class="plain">)) {</span>
<span class="identifier">K</span><span class="plain">-</span><span class="element">&gt;construct</span><span class="plain">-</span><span class="element">&gt;pr_iname</span><span class="plain"> = </span><span class="identifier">Hierarchy::find</span><span class="plain">(</span><span class="identifier">PRINT_EXTERNAL_FILE_NAME_HL</span><span class="plain">);</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">K</span><span class="plain">-</span><span class="element">&gt;construct</span><span class="plain">-</span><span class="element">&gt;pr_iname</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext">Kinds::Compare::eq</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">, </span><span class="identifier">K_scene</span><span class="plain">)) {</span>
<span class="identifier">K</span><span class="plain">-</span><span class="element">&gt;construct</span><span class="plain">-</span><span class="element">&gt;pr_iname</span><span class="plain"> = </span><span class="identifier">Hierarchy::find</span><span class="plain">(</span><span class="identifier">PRINT_SCENE_HL</span><span class="plain">);</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">K</span><span class="plain">-</span><span class="element">&gt;construct</span><span class="plain">-</span><span class="element">&gt;pr_iname</span><span class="plain">;</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="identifier">NULL</span><span class="plain">;</span>
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">external</span><span class="plain"> = </span><span class="identifier">TRUE</span><span class="plain">;</span>
<span class="reserved">if</span><span class="plain"> ((</span><span class="functiontext">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="plain">(</span><span class="functiontext">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="identifier">external</span><span class="plain"> = </span><span class="identifier">TRUE</span><span class="plain">;</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext">Kinds::Behaviour::is_an_enumeration</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">)) {</span>
@ -719,22 +741,15 @@ in some human-readable format.
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext">Kinds::Compare::eq</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">, </span><span class="identifier">K_number</span><span class="plain">)) </span><span class="identifier">external</span><span class="plain"> = </span><span class="identifier">TRUE</span><span class="plain">;</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext">Kinds::Compare::eq</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">, </span><span class="identifier">K_real_number</span><span class="plain">)) </span><span class="identifier">external</span><span class="plain"> = </span><span class="identifier">TRUE</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">X</span><span class="plain">) == 0) </span><span class="identifier">X</span><span class="plain"> = </span><span class="identifier">I</span><span class="string">"DecimalNumber"</span><span class="plain">;</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">R</span><span class="plain">) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">external</span><span class="plain">) {</span>
<span class="comment">LOG("Here for u with %S\n", K, X);</span>
<span class="identifier">K</span><span class="plain">-</span><span class="element">&gt;construct</span><span class="plain">-</span><span class="element">&gt;pr_iname</span><span class="plain"> = </span><span class="identifier">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="identifier">PRINT_FN_HL</span><span class="plain">, </span><span class="identifier">R</span><span class="plain">);</span>
<span class="comment">LOG("Made 3\n", K-&gt;construct-&gt;pr_iname);</span>
<span class="identifier">inter_name</span><span class="plain"> *</span><span class="identifier">actual_iname</span><span class="plain"> = </span><span class="identifier">Hierarchy::find_by_name</span><span class="plain">(</span><span class="identifier">X</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">K</span><span class="plain">-</span><span class="element">&gt;construct</span><span class="plain">-</span><span class="element">&gt;pr_iname</span><span class="plain">);</span>
<span class="identifier">Emit::named_iname_constant</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">-</span><span class="element">&gt;construct</span><span class="plain">-</span><span class="element">&gt;pr_iname</span><span class="plain">, </span><span class="identifier">K_value</span><span class="plain">, </span><span class="identifier">actual_iname</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="plain">} </span><span class="reserved">else</span><span class="plain"> {</span>
<span class="identifier">K</span><span class="plain">-</span><span class="element">&gt;construct</span><span class="plain">-</span><span class="element">&gt;pr_iname</span><span class="plain"> =</span>
<span class="identifier">Packaging::function_text</span><span class="plain">(</span>
<span class="identifier">InterNames::one_off</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"print_fn"</span><span class="plain">, </span><span class="identifier">R</span><span class="plain">),</span>
<span class="identifier">R</span><span class="plain">,</span>
<span class="identifier">X</span><span class="plain">);</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">"internal but unknown kind printing routine"</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">external</span><span class="plain">) </span><span class="identifier">K</span><span class="plain">-</span><span class="element">&gt;construct</span><span class="plain">-</span><span class="element">&gt;pr_iname</span><span class="plain"> = </span><span class="identifier">Hierarchy::find_by_name</span><span class="plain">(</span><span class="identifier">X</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">"internal but unpackaged kind printing routine"</span><span class="plain">);</span>

View file

@ -354,9 +354,8 @@ letters or digits, with the first being a letter.
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">PL::Files::arrays</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Plugins::Manage::plugged_in</span><span class="plain">(</span><span class="identifier">files_plugin</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">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_external_file</span><span class="plain">);</span>
<span class="identifier">inter_name</span><span class="plain"> *</span><span class="identifier">iname</span><span class="plain"> = </span><span class="identifier">InterNames::one_off</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"NO_EXTERNAL_FILES"</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</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">iname</span><span class="plain"> = </span><span class="identifier">Hierarchy::find</span><span class="plain">(</span><span class="identifier">NO_EXTERNAL_FILES_HL</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">iname</span><span class="plain">);</span>
<span class="identifier">Emit::named_numeric_constant</span><span class="plain">(</span><span class="identifier">iname</span><span class="plain">, (</span><span class="identifier">inter_t</span><span class="plain">) (</span><span class="identifier">NUMBER_CREATED</span><span class="plain">(</span><span class="reserved">external_file</span><span class="plain">)));</span>
<span class="identifier">Packaging::exit</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
@ -397,8 +396,8 @@ letters or digits, with the first being a letter.
<span class="identifier">Packaging::exit</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="identifier">iname</span><span class="plain"> = </span><span class="identifier">InterNames::one_off</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"TableOfExternalFiles"</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">);</span>
<span class="identifier">save</span><span class="plain"> = </span><span class="identifier">Packaging::enter</span><span class="plain">(</span><span class="identifier">PR</span><span class="plain">);</span>
<span class="identifier">iname</span><span class="plain"> = </span><span class="identifier">Hierarchy::find</span><span class="plain">(</span><span class="identifier">TABLEOFEXTERNALFILES_HL</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">iname</span><span class="plain">);</span>
<span class="identifier">Emit::named_array_begin</span><span class="plain">(</span><span class="identifier">iname</span><span class="plain">, </span><span class="identifier">K_value</span><span class="plain">);</span>
<span class="identifier">Emit::array_numeric_entry</span><span class="plain">(0);</span>
<span class="identifier">LOOP_OVER</span><span class="plain">(</span><span class="identifier">exf</span><span class="plain">, </span><span class="reserved">external_file</span><span class="plain">) </span><span class="identifier">Emit::array_iname_entry</span><span class="plain">(</span><span class="identifier">exf</span><span class="plain">-</span><span class="element">&gt;exf_iname</span><span class="plain">);</span>

View file

@ -1595,8 +1595,7 @@ pcalc_prop *Calculus::Propositions::Deferred::compile_loop_header(int var, local
if (Calculus::Deferrals::write_loop_schema(&loop_schema, K) == FALSE) {
if (pdef->rtp_iname == NULL) {
package_request *P = Packaging::home_of(pdef->ppd_iname);
pdef->rtp_iname = InterNames::one_off(I"rtp", P);
Inter::Symbols::set_flag(InterNames::to_symbol(pdef->rtp_iname), MAKE_NAME_UNIQUE);
pdef->rtp_iname = Hierarchy::make_iname_in(RTP_HL, P);
}
Calculus::Schemas::modify(&loop_schema, "if (RunTimeProblem(RTP_CANTITERATE, %n))",
pdef->rtp_iname);

View file

@ -587,15 +587,11 @@ compile under Inform 6.
rks->make_default = FALSE;
rks->default_requested_here = NULL;
package_request *PR = Kinds::Behaviour::package(K);
// 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);
rks->rks_dv_iname = Hierarchy::make_iname_in(DEFAULT_VALUE_HL, PR);
@ It's convenient to combine this system with one which constructs default

View file

@ -681,8 +681,7 @@ inter_name *Properties::iname(property *prn) {
return Properties::iname(Properties::EitherOr::get_negation(prn));
if (prn->prop_iname == NULL) {
package_request *R = Hierarchy::package(prn->owning_module, PROPERTIES_HAP);
prn->prop_iname = InterNames::one_off(I"P", R);
if (Wordings::nonempty(prn->name)) InterNames::attach_memo(prn->prop_iname, prn->name);
prn->prop_iname = Hierarchy::make_iname_with_memo(PROPERTY_HL, R, prn->name);
}
return prn->prop_iname;
}

View file

@ -158,20 +158,17 @@ since Inform always compiles code which knows which kind it's looping over.
=
inter_name *PL::Counting::first_instance(kind *K) {
inter_name *iname = InterNames::letter_parametrised_name(
FIRST_INSTANCE_INAMEF, Kinds::RunTime::iname(K), FIRST_INSTANCE_INDERIV, Kinds::Behaviour::package(K));
inter_name *iname = Hierarchy::derive_iname_in(FIRST_INSTANCE_HL, Kinds::RunTime::iname(K), Kinds::Behaviour::package(K));
return iname;
}
inter_name *PL::Counting::next_instance(kind *K) {
inter_name *iname = InterNames::letter_parametrised_name(
NEXT_INSTANCE_INAMEF, Kinds::RunTime::iname(K), NEXT_INSTANCE_INDERIV, Kinds::Behaviour::package(K));
inter_name *iname = Hierarchy::derive_iname_in(NEXT_INSTANCE_HL, Kinds::RunTime::iname(K), Kinds::Behaviour::package(K));
return iname;
}
inter_name *PL::Counting::instance_count_iname(kind *K) {
inter_name *iname = InterNames::letter_parametrised_name(
COUNT_INSTANCE_INAMEF, Kinds::RunTime::iname(K), COUNT_INSTANCE_INDERIV, Kinds::Behaviour::package(K));
inter_name *iname = Hierarchy::derive_iname_in(COUNT_INSTANCE_HL, Kinds::RunTime::iname(K), Kinds::Behaviour::package(K));
return iname;
}
@ -181,8 +178,7 @@ int PL::Counting::counting_compile_model_tables(void) {
if (Kinds::Compare::lt(K, K_object)) {
inter_name *iname = PL::Counting::first_instance(K);
instance *next = PL::Counting::next_instance_of(NULL, K);
package_request *PR = Kinds::Behaviour::package(K);
packaging_state save = Packaging::enter(PR);
packaging_state save = Packaging::enter_home_of(iname);
if (next) {
Emit::named_iname_constant(iname, K_object, Instances::emitted_iname(next));
} else {

View file

@ -316,10 +316,7 @@ void Tables::create_table(parse_node *PN) {
if (connection != TABLE_IS_NEW) @<Require the previous table to exist@>
else @<Require the previous table not to exist@>;
// InterNames::attach_memo(t->table_identifier, t->table_name_text);
if (connection == TABLE_IS_NEW) {
// InterNames::to_symbol(t->table_identifier);
@<Register the names of the new table@>;
LOGIF(TABLES, "Created: $B\n", t);
}

View file

@ -228,8 +228,7 @@ named_rulebook_outcome *Rulebooks::Outcomes::rbno_by_name(wording W) {
rbno->name = Nouns::new_proper_noun(W, NEUTER_GENDER,
REGISTER_SINGULAR_NTOPT + PARSE_EXACTLY_NTOPT,
MISCELLANEOUS_MC, Rvalues::from_named_rulebook_outcome(rbno));
rbno->nro_iname = InterNames::one_off(I"outcome", R);
InterNames::attach_memo(rbno->nro_iname, W);
rbno->nro_iname = Hierarchy::make_iname_with_memo(OUTCOME_HL, R, W);
return rbno;
}

View file

@ -47,6 +47,7 @@ typedef struct rule {
struct inter_name *shell_routine_iname;
struct inter_name *rule_extern_iname; /* if externally defined, this is the I6 routine */
struct text_stream *rule_extern_iname_as_text; /* and this is it in plain text */
struct inter_name *xiname;
struct inter_name *rule_extern_response_handler_iname; /* and this produces any response texts it has */
int do_not_import; /* veto importation of this from the Standard Rules precompiled inter code */
int defn_compiled; /* has the definition of this rule, if needed, been compiled yet? */
@ -113,6 +114,7 @@ rule *Rules::new(wording W, int named) {
R->defn_as_phrase = NULL;
R->rule_extern_iname = NULL;
R->rule_extern_iname_as_text = NULL;
R->xiname = NULL;
R->rule_extern_response_handler_iname = NULL;
R->name = W;
R->italicised_text = EMPTY_WORDING;
@ -211,18 +213,15 @@ void Rules::set_I6_definition(rule *R, wchar_t *identifier) {
Inter::Symbols::to_data(Emit::repository(), Packaging::incarnate(R->rule_package), InterNames::to_symbol(xiname), &v1, &v2);
Emit::named_generic_constant(R->rule_extern_iname, v1, v2);
Packaging::exit(save);
R->xiname = xiname;
R->rule_extern_iname_as_text = Str::duplicate(XT);
DISCARD_TEXT(XT);
}
inter_name *Rules::get_handler_definition(rule *R) {
if (R->rule_extern_response_handler_iname == NULL) {
TEMPORARY_TEXT(XT);
WRITE_TO(XT, "%SM", R->rule_extern_iname_as_text);
if (R->rule_extern_response_handler_iname == NULL)
R->rule_extern_response_handler_iname =
Packaging::function_text(InterNames::one_off(I"responder_fn", R->rule_package), R->rule_package, XT);
DISCARD_TEXT(XT);
}
Hierarchy::derive_iname_in(RESPONDER_FN_HL, R->xiname, R->rule_package);
return R->rule_extern_response_handler_iname;
}

View file

@ -84,7 +84,7 @@ void Routines::end_in_current_package(void) {
if ((currently_compiling_in_frame->allocated_pointers) ||
(currently_compiling_in_frame->no_formal_parameters_needed > 0)) {
if (Packaging::houseed_in_function(public_name)) {
kernel_name = InterNames::one_off(I"kernel", public_name->eventual_owner);
kernel_name = Hierarchy::make_kernel_iname(public_name->eventual_owner);
Inter::Symbols::set_flag(InterNames::to_symbol(kernel_name), MAKE_NAME_UNIQUE);
} else {
internal_error("routine not housed in function");

View file

@ -216,13 +216,17 @@ inter_name *HierarchyLocations::nrl_to_iname(named_resource_location *nrl) {
return nrl->equates_to_iname;
}
inter_name *HierarchyLocations::find_in_package(int id, package_request *P, wording W, compilation_module *C) {
inter_name *HierarchyLocations::find_in_package(int id, package_request *P, wording W, compilation_module *C, inter_name *derive_from) {
if (nrls_created == FALSE) HierarchyLocations::create_nrls();
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)) {
if ((nrl->requirements.any_package_of_this_type == NULL) &&
(nrl->requirements.any_enclosure == FALSE)) internal_error("NRL accessed inappropriately");
if (nrl->requirements.any_enclosure) {
if (Inter::Symbols::read_annotation(P->eventual_type, ENCLOSING_IANN) != 1)
internal_error("subpackage not in enclosing superpackage");
} else if ((P == NULL) || (P->eventual_type != nrl->requirements.any_package_of_this_type)) {
LOG("AN: %S, FPN: %S\n", nrl->access_name, nrl->function_package_name);
LOG("Have type: $3, required: $3\n", P->eventual_type, nrl->requirements.any_package_of_this_type);
internal_error("constant in wrong superpackage");
@ -235,12 +239,20 @@ inter_name *HierarchyLocations::find_in_package(int id, package_request *P, word
} else if (nrl->trans.generate_from >= 0) {
TEMPORARY_TEXT(T);
inter_name *temp_iname = NULL;
if (nrl->trans.localise)
temp_iname = InterNames::new_in(nrl->trans.generate_from, C);
else
temp_iname = InterNames::new(nrl->trans.generate_from);
if (derive_from) {
if (nrl->trans.faux_letter >= 0)
temp_iname = InterNames::letter_parametrised_name(nrl->trans.generate_from, derive_from, nrl->trans.faux_letter, P);
else
temp_iname = InterNames::new_derived(nrl->trans.generate_from, derive_from);
} else {
if (nrl->trans.localise)
temp_iname = InterNames::new_in(nrl->trans.generate_from, C);
else
temp_iname = InterNames::new(nrl->trans.generate_from);
}
WRITE_TO(T, "%n", temp_iname);
@<Make the actual iname@>;
if (nrl->trans.faux_letter >= 0) iname = temp_iname;
else @<Make the actual iname@>;
DISCARD_TEXT(T);
} else {
text_stream *T = NULL;

View file

@ -9,6 +9,7 @@ void Hierarchy::establish(void) {
home_for_weak_type_IDs = HierarchyLocations::blank();
Packaging::register_counter(I"code_block"); // This will be counter number 0
Packaging::register_counter(I"kernel"); // This will be counter number 1
@<Establish basics@>;
@<Establish actions@>;
@ -120,6 +121,8 @@ void Hierarchy::establish(void) {
@e ACTIONS_HAP
@e ACTION_BASE_NAME_HL
@e DOUBLE_SHARP_NAME_HL
@e PERFORM_FN_HL
@e CHECK_RB_HL
@e CARRY_OUT_RB_HL
@e REPORT_RB_HL
@ -143,6 +146,8 @@ void Hierarchy::establish(void) {
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::con(DOUBLE_SHARP_NAME_HL, NULL, Translation::derive(ACTION_INAMEF), in_action);
HierarchyLocations::func(PERFORM_FN_HL, I"perform_fn", Translation::derive(ACTION_ROUTINE_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);
@ -454,6 +459,7 @@ void Hierarchy::establish(void) {
@h Instances.
@e INSTANCES_HAP
@e INSTANCE_HL
@e BACKDROP_FOUND_IN_FN_HL
@e REGION_FOUND_IN_FN_HL
@e SHORT_NAME_FN_HL
@ -469,6 +475,7 @@ void Hierarchy::establish(void) {
location_requirement local_instances = HierarchyLocations::local_submodule(instances);
HierarchyLocations::ap(INSTANCES_HAP, local_instances, I"instance", I"_instance");
location_requirement in_instance = HierarchyLocations::any_package_of_type(I"_instance");
HierarchyLocations::con(INSTANCE_HL, I"I", Translation::uniqued(), in_instance);
HierarchyLocations::func(BACKDROP_FOUND_IN_FN_HL, I"backdrop_found_in_fn", Translation::uniqued(), in_instance);
HierarchyLocations::func(SHORT_NAME_FN_HL, I"short_name_fn", Translation::generate(SHORT_NAME_ROUTINE_INAMEF), in_instance);
HierarchyLocations::func(SHORT_NAME_PROPERTY_FN_HL, I"short_name_property_fn", Translation::generate(SHORT_NAME_PROPERTY_ROUTINE_INAMEF), in_instance);
@ -493,6 +500,8 @@ void Hierarchy::establish(void) {
@e START_ROOM_INIS_HL
@e START_TIME_INIS_HL
@e DONE_INIS_HL
@e DIRECTIONS_HAP
@e DIRECTION_HL
@<Establish int-fiction@> =
submodule_identity *interactive_fiction = Packaging::register_submodule(I"interactive_fiction");
@ -510,6 +519,9 @@ void Hierarchy::establish(void) {
HierarchyLocations::con(START_ROOM_INIS_HL, I"START_ROOM_INIS", Translation::same(), synoptic_IF);
HierarchyLocations::con(START_TIME_INIS_HL, I"START_TIME_INIS", Translation::same(), synoptic_IF);
HierarchyLocations::con(DONE_INIS_HL, I"DONE_INIS", Translation::same(), synoptic_IF);
HierarchyLocations::ap(DIRECTIONS_HAP, synoptic_IF, I"direction", I"_direction");
location_requirement in_direction = HierarchyLocations::any_package_of_type(I"_direction");
HierarchyLocations::con(DIRECTION_HL, NULL, Translation::generate(DIRECTION_OBJECT_INAMEF), in_direction);
@h Kinds.
@ -530,6 +542,9 @@ void Hierarchy::establish(void) {
@e DEFAULT_CLOSURE_FN_HL
@e GPR_FN_HL
@e INSTANCE_GPR_FN_HL
@e FIRST_INSTANCE_HL
@e NEXT_INSTANCE_HL
@e COUNT_INSTANCE_HL
@e KIND_INLINE_PROPERTIES_HAP
@e KIND_INLINE_PROPERTY_HL
@ -567,6 +582,9 @@ void Hierarchy::establish(void) {
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);
HierarchyLocations::con(FIRST_INSTANCE_HL, NULL, Translation::derive_lettered(FIRST_INSTANCE_INAMEF, FIRST_INSTANCE_INDERIV), in_kind);
HierarchyLocations::con(NEXT_INSTANCE_HL, NULL, Translation::derive_lettered(NEXT_INSTANCE_INAMEF, NEXT_INSTANCE_INDERIV), in_kind);
HierarchyLocations::con(COUNT_INSTANCE_HL, NULL, Translation::derive_lettered(COUNT_INSTANCE_INAMEF, COUNT_INSTANCE_INDERIV), in_kind);
HierarchyLocations::ap(KIND_INLINE_PROPERTIES_HAP, in_kind, I"inline_property", I"_inline_property");
location_requirement in_kind_inline_property = HierarchyLocations::any_package_of_type(I"_inline_property");
HierarchyLocations::con(KIND_INLINE_PROPERTY_HL, I"inline", Translation::uniqued(), in_kind_inline_property);
@ -630,6 +648,7 @@ void Hierarchy::establish(void) {
@h Properties.
@e PROPERTIES_HAP
@e PROPERTY_HL
@e EITHER_OR_GPR_FN_HL
@e CCOUNT_PROPERTY_HL
@ -640,6 +659,7 @@ void Hierarchy::establish(void) {
location_requirement local_properties = HierarchyLocations::local_submodule(properties);
HierarchyLocations::ap(PROPERTIES_HAP, local_properties, I"property", I"_property");
location_requirement in_property = HierarchyLocations::any_package_of_type(I"_property");
HierarchyLocations::con(PROPERTY_HL, I"P", Translation::same(), in_property);
HierarchyLocations::func(EITHER_OR_GPR_FN_HL, I"either_or_GPR_fn", Translation::generate(GPR_FOR_EITHER_OR_PROPERTY_INAMEF), in_property);
location_requirement synoptic_props = HierarchyLocations::synoptic_submodule(properties);
@ -733,6 +753,7 @@ void Hierarchy::establish(void) {
@e EMPTY_RULEBOOK_INAME_HL
@e OUTCOMES_HAP
@e OUTCOME_HL
@e RULEBOOKS_HAP
@e RUN_FN_HL
@e RULEBOOK_STV_CREATOR_FN_HL
@ -751,6 +772,8 @@ void Hierarchy::establish(void) {
location_requirement local_rulebooks = HierarchyLocations::local_submodule(rulebooks);
HierarchyLocations::ap(OUTCOMES_HAP, local_rulebooks, I"rulebook_outcome", I"_outcome");
location_requirement in_outcome = HierarchyLocations::any_package_of_type(I"_outcome");
HierarchyLocations::con(OUTCOME_HL, I"outcome", Translation::uniqued(), in_outcome);
HierarchyLocations::ap(RULEBOOKS_HAP, local_rulebooks, I"rulebook", I"_rulebook");
location_requirement in_rulebook = HierarchyLocations::any_package_of_type(I"_rulebook");
HierarchyLocations::func(RUN_FN_HL, I"run_fn", Translation::uniqued(), in_rulebook);
@ -769,6 +792,7 @@ void Hierarchy::establish(void) {
@e SHELL_FN_HL
@e RULE_FN_HL
@e EXTERIOR_RULE_HL
@e RESPONDER_FN_HL
@e RESPONSES_HAP
@e AS_CONSTANT_HL
@e AS_BLOCK_CONSTANT_HL
@ -786,6 +810,7 @@ void Hierarchy::establish(void) {
HierarchyLocations::func(SHELL_FN_HL, I"shell_fn", Translation::generate_in(RULE_SHELL_ROUTINE_INAMEF), in_rule);
HierarchyLocations::func(RULE_FN_HL, I"rule_fn", Translation::generate_in(PHRASE_INAMEF), in_rule);
HierarchyLocations::con(EXTERIOR_RULE_HL, I"exterior_rule", Translation::uniqued(), in_rule);
HierarchyLocations::func(RESPONDER_FN_HL, I"responder_fn", Translation::derive(RESPONDER_INAMEF), in_rule);
HierarchyLocations::ap(RESPONSES_HAP, in_rule, I"response", I"_response");
location_requirement in_response = HierarchyLocations::any_package_of_type(I"_response");
HierarchyLocations::con(AS_CONSTANT_HL, I"as_constant", Translation::uniqued(), in_response);
@ -836,7 +861,6 @@ void Hierarchy::establish(void) {
@h Enclosed matter.
@e BLOCK_HL
@e LITERALS_HAP
@e TEXT_LITERAL_HL
@e LIST_LITERAL_HL
@ -844,6 +868,7 @@ void Hierarchy::establish(void) {
@e TEXT_SUBSTITUTION_FN_HL
@e PROPOSITIONS_HAP
@e PROPOSITION_HL
@e RTP_HL
@e BLOCK_CONSTANTS_HAP
@e BLOCK_CONSTANT_HL
@e BOX_QUOTATIONS_HAP
@ -852,7 +877,6 @@ void Hierarchy::establish(void) {
@<Establish enclosed matter@> =
location_requirement in_any_enclosure = HierarchyLocations::any_enclosure();
HierarchyLocations::con(BLOCK_HL, I"block", Translation::uniqued(), in_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);
@ -868,6 +892,7 @@ void Hierarchy::establish(void) {
HierarchyLocations::ap(BOX_QUOTATIONS_HAP, in_any_enclosure, I"block_constant", I"_box_quotation");
location_requirement in_box_quotation = HierarchyLocations::any_package_of_type(I"_box_quotation");
HierarchyLocations::func(BOX_QUOTATION_FN_HL, I"quotation_fn", Translation::uniqued(), in_box_quotation);
HierarchyLocations::con(RTP_HL, I"rtp", Translation::uniqued(), in_any_enclosure);
@
@ -880,11 +905,16 @@ void Hierarchy::establish(void) {
@e K_FIGURE_NAME_XPACKAGE
@e K_SOUND_NAME_XPACKAGE
@e K_USE_OPTION_XPACKAGE
@e K_EXTERNAL_FILE_XPACKAGE
@e K_RULEBOOK_OUTCOME_XPACKAGE
@e K_RESPONSE_XPACKAGE
@e K_SCENE_XPACKAGE
@e V_COMMAND_PROMPT_XPACKAGE
@e NOTHING_HL
@e OBJECT_HL
@e TESTUSEOPTION_HL
@e PRINT_USE_OPTION_HL
@e TABLEOFTABLES_HL
@e TABLEOFVERBS_HL
@e CAPSHORTNAME_HL
@ -896,6 +926,16 @@ void Hierarchy::establish(void) {
@e TIME_TOKEN_INNER_HL
@e TRUTH_STATE_TOKEN_INNER_HL
@e PRINT_TABLE_HL
@e PRINT_RULEBOOK_OUTCOME_HL
@e PRINT_RESPONSE_HL
@e PRINT_FIGURE_NAME_HL
@e PRINT_SOUND_NAME_HL
@e PRINT_EXTERNAL_FILE_NAME_HL
@e NO_EXTERNAL_FILES_HL
@e TABLEOFEXTERNALFILES_HL
@e PRINT_SCENE_HL
@
@<The rest@> =
@ -915,23 +955,41 @@ void Hierarchy::establish(void) {
location_requirement in_K_table = HierarchyLocations::this_exotic_package(K_TABLE_XPACKAGE);
HierarchyLocations::con(TABLEOFTABLES_HL, I"TableOfTables", Translation::same(), in_K_table);
HierarchyLocations::func(PRINT_TABLE_HL, I"print_fn", Translation::to(I"PrintTableName"), in_K_table);
location_requirement in_K_verb = HierarchyLocations::this_exotic_package(K_VERB_XPACKAGE);
HierarchyLocations::con(TABLEOFVERBS_HL, I"TableOfVerbs", Translation::same(), in_K_verb);
location_requirement in_K_figure_name = HierarchyLocations::this_exotic_package(K_FIGURE_NAME_XPACKAGE);
HierarchyLocations::con(RESOURCEIDSOFFIGURES_HL, I"ResourceIDsOfFigures", Translation::same(), in_K_figure_name);
HierarchyLocations::func(PRINT_FIGURE_NAME_HL, I"print_fn", Translation::to(I"PrintFigureName"), in_K_figure_name);
location_requirement in_K_sound_name = HierarchyLocations::this_exotic_package(K_SOUND_NAME_XPACKAGE);
HierarchyLocations::con(RESOURCEIDSOFSOUNDS_HL, I"ResourceIDsOfSounds", Translation::same(), in_K_sound_name);
HierarchyLocations::func(PRINT_SOUND_NAME_HL, I"print_fn", Translation::to(I"PrintSoundName"), in_K_sound_name);
location_requirement in_K_use_option = HierarchyLocations::this_exotic_package(K_USE_OPTION_XPACKAGE);
HierarchyLocations::con(NO_USE_OPTIONS_HL, I"NO_USE_OPTIONS", Translation::same(), in_K_use_option);
HierarchyLocations::func(TESTUSEOPTION_HL, I"test_fn", Translation::to(I"TestUseOption"), in_K_use_option);
HierarchyLocations::func(PRINT_USE_OPTION_HL, I"print_fn", Translation::to(I"PrintUseOption"), in_K_use_option);
location_requirement in_V_command_prompt = HierarchyLocations::this_exotic_package(V_COMMAND_PROMPT_XPACKAGE);
HierarchyLocations::func(COMMANDPROMPTTEXT_HL, I"command_prompt_text_fn", Translation::to(I"CommandPromptText"), in_V_command_prompt);
location_requirement in_K_external_file = HierarchyLocations::this_exotic_package(K_EXTERNAL_FILE_XPACKAGE);
HierarchyLocations::con(NO_EXTERNAL_FILES_HL, I"NO_EXTERNAL_FILES", Translation::same(), in_K_external_file);
HierarchyLocations::con(TABLEOFEXTERNALFILES_HL, I"TableOfExternalFiles", Translation::same(), in_K_external_file);
HierarchyLocations::func(PRINT_EXTERNAL_FILE_NAME_HL, I"print_fn", Translation::to(I"PrintExternalFileName"), in_K_external_file);
location_requirement in_K_rulebook_outcome = HierarchyLocations::this_exotic_package(K_RULEBOOK_OUTCOME_XPACKAGE);
HierarchyLocations::func(PRINT_RULEBOOK_OUTCOME_HL, I"print_fn", Translation::to(I"RulebookOutcomePrintingRule"), in_K_rulebook_outcome);
location_requirement in_K_response = HierarchyLocations::this_exotic_package(K_RESPONSE_XPACKAGE);
HierarchyLocations::func(PRINT_RESPONSE_HL, I"print_fn", Translation::to(I"PrintResponse"), in_K_response);
location_requirement in_K_scene = HierarchyLocations::this_exotic_package(K_SCENE_XPACKAGE);
HierarchyLocations::func(PRINT_SCENE_HL, I"print_fn", Translation::to(I"PrintSceneName"), in_K_scene);
@
@e ACT_REQUESTER_HL
@ -1423,6 +1481,10 @@ package_request *Hierarchy::exotic_package(int x) {
case K_FIGURE_NAME_XPACKAGE: return Kinds::Behaviour::package(K_figure_name);
case K_SOUND_NAME_XPACKAGE: return Kinds::Behaviour::package(K_sound_name);
case K_USE_OPTION_XPACKAGE: return Kinds::Behaviour::package(K_use_option);
case K_EXTERNAL_FILE_XPACKAGE: return Kinds::Behaviour::package(K_external_file);
case K_RULEBOOK_OUTCOME_XPACKAGE: return Kinds::Behaviour::package(K_rulebook_outcome);
case K_RESPONSE_XPACKAGE: return Kinds::Behaviour::package(K_response);
case K_SCENE_XPACKAGE: return Kinds::Behaviour::package(K_scene);
case V_COMMAND_PROMPT_XPACKAGE:
return Packaging::home_of(NonlocalVariables::iname(command_prompt_VAR));
}
@ -1528,19 +1590,27 @@ package_request *Hierarchy::package_within(int hap_id, package_request *super) {
}
inter_name *Hierarchy::make_iname_in(int id, package_request *P) {
return HierarchyLocations::find_in_package(id, P, EMPTY_WORDING, NULL);
return HierarchyLocations::find_in_package(id, P, EMPTY_WORDING, NULL, NULL);
}
inter_name *Hierarchy::derive_iname_in(int id, inter_name *derive_from, package_request *P) {
return HierarchyLocations::find_in_package(id, P, EMPTY_WORDING, NULL, derive_from);
}
inter_name *Hierarchy::make_localised_iname_in(int id, package_request *P, compilation_module *C) {
return HierarchyLocations::find_in_package(id, P, EMPTY_WORDING, C);
return HierarchyLocations::find_in_package(id, P, EMPTY_WORDING, C, NULL);
}
inter_name *Hierarchy::make_block_iname(package_request *P) {
return Packaging::supply_iname(P, 0);
}
inter_name *Hierarchy::make_kernel_iname(package_request *P) {
return Packaging::supply_iname(P, 1);
}
inter_name *Hierarchy::make_iname_with_memo(int id, package_request *P, wording W) {
return HierarchyLocations::find_in_package(id, P, W, NULL);
return HierarchyLocations::find_in_package(id, P, W, NULL, NULL);
}
package_request *Hierarchy::make_package_in(int id, package_request *P) {

View file

@ -397,6 +397,7 @@ int InterNames::defined(inter_name *iname) {
@e LABEL_STORAGE_INAMEF
@e ICOUNT_CONSTANT_INAMEF
@e WEAK_ID_CONSTANT_INAMEF
@e RESPONDER_INAMEF
@e FINAL_INAMEF
@ -440,11 +441,6 @@ 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) {
// 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;
@ -522,7 +518,7 @@ inter_name *InterNames::letter_parametrised_name(int family, inter_name *rname,
if ((marker < 0) || (marker >= FINAL_INDERIV)) internal_error("respomse parameter out of range");
if (rname->parametrised_derivatives[marker] == NULL) {
rname->parametrised_derivatives[marker] = InterNames::new(family);
Packaging::house(rname->parametrised_derivatives[marker], R);
if (R) Packaging::house(rname->parametrised_derivatives[marker], R);
rname->parametrised_derivatives[marker]->derived_from = rname;
}
@ -654,6 +650,7 @@ inter_name_family *InterNames::get_family(int fnum) {
case VARIABLE_INAMEF: S = I"V"; break;
case VERB_DECLARATION_ARRAY_INAMEF: S = I"GV_Grammar"; break;
case WEAK_ID_CONSTANT_INAMEF: S = I"always_overridden"; break;
case RESPONDER_INAMEF: D = RULE_SHELL_ROUTINE_INAMEF; Suf = I"M"; break;
}
if ((S) || (D >= 0)) {

View file

@ -8,6 +8,8 @@ typedef struct name_translation {
int then_make_unique;
int generate_from;
int localise;
int derive;
int faux_letter;
} name_translation;
name_translation Translation::same(void) {
@ -16,6 +18,8 @@ name_translation Translation::same(void) {
nt.then_make_unique = FALSE;
nt.generate_from = -1;
nt.localise = FALSE;
nt.derive = FALSE;
nt.faux_letter = -1;
return nt;
}
@ -38,6 +42,21 @@ name_translation Translation::to_uniqued(text_stream *S) {
return nt;
}
name_translation Translation::derive(int f) {
name_translation nt = Translation::same();
nt.generate_from = f;
nt.derive = TRUE;
return nt;
}
name_translation Translation::derive_lettered(int f, int faux_letter) {
name_translation nt = Translation::same();
nt.generate_from = f;
nt.derive = TRUE;
nt.faux_letter = faux_letter;
return nt;
}
name_translation Translation::generate(int f) {
name_translation nt = Translation::same();
nt.generate_from = f;

View file

@ -429,7 +429,6 @@ 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));

View file

@ -29,9 +29,7 @@ int UseNouns::iname_set(noun *t) {
void UseNouns::noun_compose_identifier(package_request *R, noun *t, int N) {
if (t->nt_iname == NULL) {
wording W = Nouns::get_name(t, FALSE);
t->nt_iname = InterNames::one_off(I"I", R);
if (Wordings::nonempty(W)) InterNames::attach_memo(t->nt_iname, W);
Inter::Symbols::set_flag(InterNames::to_symbol(t->nt_iname), MAKE_NAME_UNIQUE);
t->nt_iname = Hierarchy::make_iname_with_memo(INSTANCE_HL, R, W);
}
}

View file

@ -320,8 +320,8 @@ int PL::Map::map_set_kind_notify(instance *I, kind *k) {
@<Assign the object a direction number and a mapped-D-of relation@> =
registered_directions++;
inter_name *dname = InterNames::new(DIRECTION_OBJECT_INAMEF);
Packaging::house(dname, Kinds::Behaviour::package(K_direction));
package_request *PR = Hierarchy::synoptic_package(DIRECTIONS_HAP);
inter_name *dname = Hierarchy::make_iname_in(DIRECTION_HL, PR);
PF_I(map, I)->direction_iname = dname;
PL::MapDirections::make_mapped_predicate(I, dname);

View file

@ -423,8 +423,7 @@ action_name *PL::Actions::Wait(void) {
inter_name *PL::Actions::double_sharp(action_name *an) {
if (an->an_iname == NULL) {
an->an_iname = InterNames::new_derived(ACTION_INAMEF, an->an_base_iname);
Packaging::house(an->an_iname, an->an_package);
an->an_iname = Hierarchy::derive_iname_in(DOUBLE_SHARP_NAME_HL, an->an_base_iname, an->an_package);
packaging_state save = Packaging::enter(an->an_package);
Emit::ds_named_pseudo_numeric_constant(an->an_iname, K_value, (inter_t) an->allocation_id);
InterNames::annotate_i(an->an_iname, ACTION_IANN, 1);
@ -434,13 +433,8 @@ inter_name *PL::Actions::double_sharp(action_name *an) {
}
inter_name *PL::Actions::Sub(action_name *an) {
if (an->an_routine_iname == NULL) {
an->an_routine_iname =
Packaging::function(
InterNames::one_off(I"perform_fn", an->an_package),
an->an_package,
InterNames::new_derived(ACTION_ROUTINE_INAMEF, an->an_base_iname));
}
if (an->an_routine_iname == NULL)
an->an_routine_iname = Hierarchy::derive_iname_in(PERFORM_FN_HL, an->an_base_iname, an->an_package);
return an->an_routine_iname;
}

View file

@ -448,20 +448,42 @@ inter_name *Kinds::Behaviour::get_iname(kind *K) {
internal_error("null kind has no printing routine");
}
if (K->construct->pr_iname) return K->construct->pr_iname;
package_request *R = NULL;
int external = TRUE;
if (Kinds::Compare::eq(K, K_use_option)) {
R = Kinds::Behaviour::package(K); external = FALSE;
}
if (Kinds::Compare::eq(K, K_rulebook_outcome)) {
R = Kinds::Behaviour::package(K); external = FALSE;
}
if (Kinds::Compare::eq(K, K_response)) {
R = Kinds::Behaviour::package(K); external = FALSE;
K->construct->pr_iname = Hierarchy::find(PRINT_USE_OPTION_HL);
return K->construct->pr_iname;
}
if (Kinds::Compare::eq(K, K_table)) {
R = Kinds::Behaviour::package(K); external = FALSE;
K->construct->pr_iname = Hierarchy::find(PRINT_TABLE_HL);
return K->construct->pr_iname;
}
if (Kinds::Compare::eq(K, K_rulebook_outcome)) {
K->construct->pr_iname = Hierarchy::find(PRINT_RULEBOOK_OUTCOME_HL);
return K->construct->pr_iname;
}
if (Kinds::Compare::eq(K, K_response)) {
K->construct->pr_iname = Hierarchy::find(PRINT_RESPONSE_HL);
return K->construct->pr_iname;
}
if (Kinds::Compare::eq(K, K_figure_name)) {
K->construct->pr_iname = Hierarchy::find(PRINT_FIGURE_NAME_HL);
return K->construct->pr_iname;
}
if (Kinds::Compare::eq(K, K_sound_name)) {
K->construct->pr_iname = Hierarchy::find(PRINT_SOUND_NAME_HL);
return K->construct->pr_iname;
}
if (Kinds::Compare::eq(K, K_external_file)) {
K->construct->pr_iname = Hierarchy::find(PRINT_EXTERNAL_FILE_NAME_HL);
return K->construct->pr_iname;
}
if (Kinds::Compare::eq(K, K_scene)) {
K->construct->pr_iname = Hierarchy::find(PRINT_SCENE_HL);
return K->construct->pr_iname;
}
package_request *R = NULL;
int external = TRUE;
if ((Kinds::get_construct(K) == CON_rule) ||
(Kinds::get_construct(K) == CON_rulebook)) external = TRUE;
if (Kinds::Behaviour::is_an_enumeration(K)) {
@ -475,22 +497,15 @@ inter_name *Kinds::Behaviour::get_iname(kind *K) {
if (Kinds::Compare::eq(K, K_number)) external = TRUE;
if (Kinds::Compare::eq(K, K_real_number)) external = TRUE;
if (Str::len(X) == 0) X = I"DecimalNumber";
if (R) {
if (external) {
// LOG("Here for $u with %S\n", K, X);
K->construct->pr_iname = Hierarchy::make_iname_in(PRINT_FN_HL, R);
// LOG("Made $3\n", K->construct->pr_iname);
inter_name *actual_iname = Hierarchy::find_by_name(X);
packaging_state save = Packaging::enter_home_of(K->construct->pr_iname);
Emit::named_iname_constant(K->construct->pr_iname, K_value, actual_iname);
Packaging::exit(save);
} else {
K->construct->pr_iname =
Packaging::function_text(
InterNames::one_off(I"print_fn", R),
R,
X);
}
} else internal_error("internal but unknown kind printing routine");
} else {
if (external) K->construct->pr_iname = Hierarchy::find_by_name(X);
else internal_error("internal but unpackaged kind printing routine");

View file

@ -254,9 +254,8 @@ External files are written in I6 as their array names:
void PL::Files::arrays(void) {
if (Plugins::Manage::plugged_in(files_plugin) == FALSE) return;
package_request *PR = Kinds::Behaviour::package(K_external_file);
inter_name *iname = InterNames::one_off(I"NO_EXTERNAL_FILES", PR);
packaging_state save = Packaging::enter(PR);
inter_name *iname = Hierarchy::find(NO_EXTERNAL_FILES_HL);
packaging_state save = Packaging::enter_home_of(iname);
Emit::named_numeric_constant(iname, (inter_t) (NUMBER_CREATED(external_file)));
Packaging::exit(save);
@ -297,8 +296,8 @@ void PL::Files::arrays(void) {
Packaging::exit(save);
}
iname = InterNames::one_off(I"TableOfExternalFiles", PR);
save = Packaging::enter(PR);
iname = Hierarchy::find(TABLEOFEXTERNALFILES_HL);
save = Packaging::enter_home_of(iname);
Emit::named_array_begin(iname, K_value);
Emit::array_numeric_entry(0);
LOOP_OVER(exf, external_file) Emit::array_iname_entry(exf->exf_iname);