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

Further progress on hierarchy

This commit is contained in:
Graham Nelson 2019-04-14 22:27:33 +01:00
parent 263b3d9181
commit 2e01c692b5
25 changed files with 184 additions and 174 deletions

View file

@ -795,12 +795,7 @@ values for kinds, since both involve tracking constructions uniquely.
<span class="identifier">kind_constructor</span><span class="plain"> *</span><span class="identifier">con</span><span class="plain"> = </span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">con</span><span class="plain">-&gt;</span><span class="identifier">kind_GPR_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">Kinds::RunTime::package</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">);</span>
<span class="identifier">con</span><span class="plain">-&gt;</span><span class="identifier">kind_GPR_iname</span><span class="plain"> =</span>
<span class="functiontext">Packaging::function</span><span class="plain">(</span>
<span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"gpr_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">NULL</span><span class="plain">);</span>
<span class="identifier">Inter::Symbols::set_flag</span><span class="plain">(</span><span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">con</span><span class="plain">-&gt;</span><span class="identifier">kind_GPR_iname</span><span class="plain">), </span><span class="identifier">MAKE_NAME_UNIQUE</span><span class="plain">);</span>
<span class="identifier">con</span><span class="plain">-&gt;</span><span class="identifier">kind_GPR_iname</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">GPR_FN_HL</span><span class="plain">, </span><span class="identifier">R</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">con</span><span class="plain">-&gt;</span><span class="identifier">kind_GPR_iname</span><span class="plain">;</span>
<span class="plain">}</span>
@ -810,12 +805,7 @@ values for kinds, since both involve tracking constructions uniquely.
<span class="identifier">kind_constructor</span><span class="plain"> *</span><span class="identifier">con</span><span class="plain"> = </span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">con</span><span class="plain">-&gt;</span><span class="identifier">instance_GPR_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">Kinds::RunTime::package</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">);</span>
<span class="identifier">con</span><span class="plain">-&gt;</span><span class="identifier">instance_GPR_iname</span><span class="plain"> =</span>
<span class="functiontext">Packaging::function</span><span class="plain">(</span>
<span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"instance_gpr_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">NULL</span><span class="plain">);</span>
<span class="identifier">Inter::Symbols::set_flag</span><span class="plain">(</span><span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">con</span><span class="plain">-&gt;</span><span class="identifier">instance_GPR_iname</span><span class="plain">), </span><span class="identifier">MAKE_NAME_UNIQUE</span><span class="plain">);</span>
<span class="identifier">con</span><span class="plain">-&gt;</span><span class="identifier">instance_GPR_iname</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">INSTANCE_GPR_FN_HL</span><span class="plain">, </span><span class="identifier">R</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">con</span><span class="plain">-&gt;</span><span class="identifier">instance_GPR_iname</span><span class="plain">;</span>
<span class="plain">}</span>

View file

@ -232,11 +232,7 @@ either case, an equation begins here:
<span class="identifier">eqn</span><span class="plain">-</span><span class="element">&gt;examined_already</span><span class="plain"> = </span><span class="identifier">FALSE</span><span class="plain">;</span>
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">PR</span><span class="plain"> = </span><span class="functiontext">Hierarchy::local_package</span><span class="plain">(</span><span class="constant">EQUATIONS_HAP</span><span class="plain">);</span>
<span class="identifier">eqn</span><span class="plain">-</span><span class="element">&gt;eqn_iname</span><span class="plain"> = </span><span class="functiontext">Packaging::function</span><span class="plain">(</span>
<span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"solve_fn"</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">),</span>
<span class="identifier">PR</span><span class="plain">,</span>
<span class="identifier">NULL</span><span class="plain">);</span>
<span class="identifier">Inter::Symbols::set_flag</span><span class="plain">(</span><span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">eqn</span><span class="plain">-</span><span class="element">&gt;eqn_iname</span><span class="plain">), </span><span class="identifier">MAKE_NAME_UNIQUE</span><span class="plain">);</span>
<span class="identifier">eqn</span><span class="plain">-</span><span class="element">&gt;eqn_iname</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">SOLVE_FN_HL</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">);</span>
<span class="identifier">wording</span><span class="plain"> </span><span class="identifier">NO</span><span class="plain"> = </span><span class="identifier">EMPTY_WORDING</span><span class="plain">, </span><span class="identifier">NA</span><span class="plain"> = </span><span class="identifier">EMPTY_WORDING</span><span class="plain">;</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">anonymous</span><span class="plain"> == </span><span class="identifier">FALSE</span><span class="plain">) {</span>

View file

@ -440,11 +440,7 @@ noun for it; for example, the "announcing activity".
<span class="reserved">activity</span><span class="plain"> *</span><span class="identifier">av</span><span class="plain">;</span>
<span class="identifier">LOOP_OVER</span><span class="plain">(</span><span class="identifier">av</span><span class="plain">,</span><span class="reserved"> activity</span><span class="plain">) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext">StackedVariables::owner_empty</span><span class="plain">(</span><span class="identifier">av</span><span class="plain">-</span><span class="element">&gt;owned_by_av</span><span class="plain">) == </span><span class="identifier">FALSE</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">Packaging::function</span><span class="plain">(</span>
<span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"stv_creator_fn"</span><span class="plain">, </span><span class="identifier">av</span><span class="plain">-</span><span class="element">&gt;av_package</span><span class="plain">),</span>
<span class="identifier">av</span><span class="plain">-</span><span class="element">&gt;av_package</span><span class="plain">,</span>
<span class="identifier">NULL</span><span class="plain">);</span>
<span class="identifier">Inter::Symbols::set_flag</span><span class="plain">(</span><span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">iname</span><span class="plain">), </span><span class="identifier">MAKE_NAME_UNIQUE</span><span class="plain">);</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">iname</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">ACTIVITY_STV_CREATOR_FN_HL</span><span class="plain">, </span><span class="identifier">av</span><span class="plain">-</span><span class="element">&gt;av_package</span><span class="plain">);</span>
<span class="functiontext">StackedVariables::compile_frame_creator</span><span class="plain">(</span><span class="identifier">av</span><span class="plain">-</span><span class="element">&gt;owned_by_av</span><span class="plain">, </span><span class="identifier">iname</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="plain">}</span>

View file

@ -292,9 +292,7 @@ built (for instance, scene endings).
<span class="identifier">rb</span><span class="plain">-</span><span class="element">&gt;primary_name</span><span class="plain"> = </span><span class="identifier">W</span><span class="plain">;</span>
<span class="identifier">rb</span><span class="plain">-</span><span class="element">&gt;alternative_name</span><span class="plain"> = </span><span class="identifier">EMPTY_WORDING</span><span class="plain">;</span>
<span class="identifier">rb</span><span class="plain">-</span><span class="element">&gt;rb_package</span><span class="plain"> = </span><span class="identifier">R</span><span class="plain">;</span>
<span class="identifier">rb</span><span class="plain">-</span><span class="element">&gt;rb_iname</span><span class="plain"> = </span><span class="functiontext">Packaging::function</span><span class="plain">(</span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"run_fn"</span><span class="plain">, </span><span class="identifier">rb</span><span class="plain">-</span><span class="element">&gt;rb_package</span><span class="plain">), </span><span class="identifier">rb</span><span class="plain">-</span><span class="element">&gt;rb_package</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">);</span>
<span class="identifier">Inter::Symbols::set_flag</span><span class="plain">(</span><span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">rb</span><span class="plain">-</span><span class="element">&gt;rb_iname</span><span class="plain">), </span><span class="identifier">MAKE_NAME_UNIQUE</span><span class="plain">);</span>
<span class="identifier">rb</span><span class="plain">-</span><span class="element">&gt;rb_iname</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">RUN_FN_HL</span><span class="plain">, </span><span class="identifier">rb</span><span class="plain">-</span><span class="element">&gt;rb_package</span><span class="plain">);</span>
<span class="identifier">rb</span><span class="plain">-</span><span class="element">&gt;rule_list</span><span class="plain"> = </span><span class="functiontext">Rules::Bookings::list_new</span><span class="plain">();</span>
@ -639,13 +637,9 @@ built (for instance, scene endings).
<span class="plain">}</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="functiontext">Rulebooks::get_stv_creator_iname</span><span class="plain">(</span><span class="reserved">rulebook</span><span class="plain"> *</span><span class="identifier">rb</span><span class="plain">) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">rb</span><span class="plain">-</span><span class="element">&gt;stv_creator_iname</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) {</span>
<span class="identifier">rb</span><span class="plain">-</span><span class="element">&gt;stv_creator_iname</span><span class="plain"> = </span><span class="functiontext">Packaging::function</span><span class="plain">(</span>
<span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"stv_creator_fn"</span><span class="plain">, </span><span class="identifier">rb</span><span class="plain">-</span><span class="element">&gt;rb_package</span><span class="plain">),</span>
<span class="identifier">rb</span><span class="plain">-</span><span class="element">&gt;rb_package</span><span class="plain">,</span>
<span class="identifier">NULL</span><span class="plain">);</span>
<span class="identifier">Inter::Symbols::set_flag</span><span class="plain">(</span><span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">rb</span><span class="plain">-</span><span class="element">&gt;stv_creator_iname</span><span class="plain">), </span><span class="identifier">MAKE_NAME_UNIQUE</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">rb</span><span class="plain">-</span><span class="element">&gt;stv_creator_iname</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">)</span>
<span class="identifier">rb</span><span class="plain">-</span><span class="element">&gt;stv_creator_iname</span><span class="plain"> =</span>
<span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">RULEBOOK_STV_CREATOR_FN_HL</span><span class="plain">, </span><span class="identifier">rb</span><span class="plain">-</span><span class="element">&gt;rb_package</span><span class="plain">);</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">rb</span><span class="plain">-</span><span class="element">&gt;stv_creator_iname</span><span class="plain">;</span>
<span class="plain">}</span>

View file

@ -253,8 +253,7 @@ compilation.
<pre class="display">
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Phrases::Constants::compile_default_closure</span><span class="plain">(</span><span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">closure_identifier</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">package_request</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain"> = </span><span class="functiontext">Kinds::RunTime::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">rname</span><span class="plain"> = </span><span class="functiontext">Packaging::function</span><span class="plain">(</span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"default_closure_fn"</span><span class="plain">, </span><span class="identifier">P</span><span class="plain">), </span><span class="identifier">P</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">);</span>
<span class="identifier">Inter::Symbols::set_flag</span><span class="plain">(</span><span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">rname</span><span class="plain">), </span><span class="identifier">MAKE_NAME_UNIQUE</span><span class="plain">);</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">rname</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">DEFAULT_CLOSURE_FN_HL</span><span class="plain">, </span><span class="identifier">P</span><span class="plain">);</span>
&lt;<span class="cwebmacro">Compile the default routine</span> <span class="cwebmacronumber">9.2</span>&gt;<span class="plain">;</span>
&lt;<span class="cwebmacro">Compile the default closure</span> <span class="cwebmacronumber">9.1</span>&gt;<span class="plain">;</span>

View file

@ -72,6 +72,7 @@
<span class="reserved">struct</span><span class="plain"> </span><span class="identifier">text_stream</span><span class="plain"> *</span><span class="identifier">datum_package_name</span><span class="plain">;</span>
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">requirements</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">equates_to_iname</span><span class="plain">;</span>
<span class="reserved">struct</span><span class="plain"> </span><span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">package_type</span><span class="plain">;</span>
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">name_translation</span><span class="plain"> </span><span class="identifier">trans</span><span class="plain">;</span>
<span class="identifier">MEMORY_MANAGEMENT</span>
<span class="plain">} </span><span class="reserved">named_resource_location</span><span class="plain">;</span>
@ -83,6 +84,7 @@
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;function_package_name</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;datum_package_name</span><span class="plain"> = </span><span class="identifier">NULL</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="identifier">NULL</span><span class="plain">;</span>
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;package_type</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;trans</span><span class="plain"> = </span><span class="functiontext">Translation::same</span><span class="plain">();</span>
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;requirements</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::blank</span><span class="plain">();</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">nrl</span><span class="plain">;</span>
@ -98,6 +100,16 @@
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">nrl</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">named_resource_location</span><span class="plain"> *</span><span class="functiontext">HierarchyLocations::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="identifier">text_stream</span><span class="plain"> *</span><span class="identifier">name</span><span class="plain">, </span><span class="identifier">text_stream</span><span class="plain"> *</span><span class="identifier">ptype_name</span><span class="plain">, </span><span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">req</span><span class="plain">) {</span>
<span class="reserved">named_resource_location</span><span class="plain"> *</span><span class="identifier">nrl</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::new</span><span class="plain">();</span>
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;access_number</span><span class="plain"> = </span><span class="identifier">id</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">Str::duplicate</span><span class="plain">(</span><span class="identifier">name</span><span class="plain">);</span>
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;requirements</span><span class="plain"> = </span><span class="identifier">req</span><span class="plain">;</span>
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;package_type</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::ptype</span><span class="plain">(</span><span class="identifier">ptype_name</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::index</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">);</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">nrl</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">named_resource_location</span><span class="plain"> *</span><span class="functiontext">HierarchyLocations::make_as</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="identifier">text_stream</span><span class="plain"> *</span><span class="identifier">name</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="reserved">named_resource_location</span><span class="plain"> *</span><span class="identifier">nrl</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::new</span><span class="plain">();</span>
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;access_number</span><span class="plain"> = </span><span class="identifier">id</span><span class="plain">;</span>
@ -212,7 +224,11 @@
<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="identifier">internal_error</span><span class="plain">(</span><span class="string">"constant in wrong superpackage"</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">P</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) || (</span><span class="identifier">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>
<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="identifier">NULL</span><span class="plain">;</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Str::len</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;function_package_name</span><span class="plain">) &gt; 0) {</span>
<span class="identifier">iname</span><span class="plain"> = </span><span class="functiontext">Packaging::function_text</span><span class="plain">(</span>
@ -237,7 +253,8 @@
<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="identifier">internal_error</span><span class="plain">(</span><span class="string">"subpackage in wrong superpackage"</span><span class="plain">);</span>
<span class="reserved">return</span><span class="plain"> </span><span class="functiontext">Packaging::request</span><span class="plain">(</span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;access_name</span><span class="plain">, </span><span class="identifier">P</span><span class="plain">), </span><span class="identifier">P</span><span class="plain">, </span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">&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;package_type</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"package_in_package used wrongly"</span><span class="plain">);</span>
<span class="reserved">return</span><span class="plain"> </span><span class="functiontext">Packaging::request</span><span class="plain">(</span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;access_name</span><span class="plain">, </span><span class="identifier">P</span><span class="plain">), </span><span class="identifier">P</span><span class="plain">, </span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;package_type</span><span class="plain">);</span>
<span class="plain">}</span>
</pre>
@ -251,7 +268,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_20">&#167;1.20</a>, <a href="27-hr.html#SP1_22">&#167;1.22</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_36">&#167;1.36</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_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_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::this_package is used in 27/hr (<a href="27-hr.html#SP1_48">&#167;1.48</a>, <a href="27-hr.html#SP5">&#167;5</a>).</p>
@ -261,9 +278,11 @@
<p class="endnote">The function HierarchyLocations::con 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_8">&#167;1.8</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_14">&#167;1.14</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_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_46">&#167;1.46</a>, <a href="27-hr.html#SP1_48">&#167;1.48</a>, <a href="27-hr.html#SP5">&#167;5</a>).</p>
<p class="endnote">The function HierarchyLocations::package 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>).</p>
<p class="endnote">The function HierarchyLocations::make_as is used in 27/hr (<a href="27-hr.html#SP5">&#167;5</a>).</p>
<p class="endnote">The function HierarchyLocations::func is used in 27/hr (<a href="27-hr.html#SP1_4">&#167;1.4</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_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_46">&#167;1.46</a>).</p>
<p class="endnote">The function HierarchyLocations::func 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_12">&#167;1.12</a>, <a href="27-hr.html#SP1_16">&#167;1.16</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_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_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_46">&#167;1.46</a>).</p>
<p class="endnote">The function HierarchyLocations::datum is used in 27/hr (<a href="27-hr.html#SP1_10">&#167;1.10</a>).</p>

View file

@ -170,6 +170,7 @@
<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>
<span class="definitionkeyword">enum</span> <span class="constant">ACTION_STV_CREATOR_FN_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">ACTIONCODING_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">ACTIONDATA_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">ACTIONHAPPENED_HL</span>
@ -192,9 +193,10 @@
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">local_actions</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::local_submodule</span><span class="plain">(</span><span class="identifier">actions</span><span class="plain">);</span>
<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">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="functiontext">Translation::same</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">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="functiontext">Translation::same</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">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="functiontext">Translation::same</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>
<span class="functiontext">HierarchyLocations::func</span><span class="plain">(</span><span class="constant">ACTION_STV_CREATOR_FN_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"stv_creator_fn"</span><span class="plain">, </span><span class="functiontext">Translation::uniqued</span><span class="plain">(), </span><span class="identifier">in_action</span><span class="plain">);</span>
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">synoptic_actions</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::synoptic_submodule</span><span class="plain">(</span><span class="identifier">actions</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">ACTIONCODING_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"ActionCoding"</span><span class="plain">, </span><span class="functiontext">Translation::same</span><span class="plain">(), </span><span class="identifier">synoptic_actions</span><span class="plain">);</span>
@ -218,6 +220,7 @@
<span class="definitionkeyword">enum</span> <span class="constant">BEFORE_RB_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">FOR_RB_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">AFTER_RB_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">ACTIVITY_STV_CREATOR_FN_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">ACTIVITY_AFTER_RULEBOOKS_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">ACTIVITY_ATB_RULEBOOKS_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">ACTIVITY_BEFORE_RULEBOOKS_HL</span>
@ -235,9 +238,10 @@
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">local_activities</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::local_submodule</span><span class="plain">(</span><span class="identifier">activities</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::ap</span><span class="plain">(</span><span class="constant">ACTIVITIES_HAP</span><span class="plain">, </span><span class="identifier">local_activities</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"activity"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"_activity"</span><span class="plain">);</span>
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">in_activity</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">"_activity"</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">BEFORE_RB_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"before_rb"</span><span class="plain">, </span><span class="functiontext">Translation::same</span><span class="plain">(), </span><span class="identifier">in_activity</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">FOR_RB_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"for_rb"</span><span class="plain">, </span><span class="functiontext">Translation::same</span><span class="plain">(), </span><span class="identifier">in_activity</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">AFTER_RB_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"after_rb"</span><span class="plain">, </span><span class="functiontext">Translation::same</span><span class="plain">(), </span><span class="identifier">in_activity</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::package</span><span class="plain">(</span><span class="constant">BEFORE_RB_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"before_rb"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"_rulebook"</span><span class="plain">, </span><span class="identifier">in_activity</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::package</span><span class="plain">(</span><span class="constant">FOR_RB_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"for_rb"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"_rulebook"</span><span class="plain">, </span><span class="identifier">in_activity</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::package</span><span class="plain">(</span><span class="constant">AFTER_RB_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"after_rb"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"_rulebook"</span><span class="plain">, </span><span class="identifier">in_activity</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::func</span><span class="plain">(</span><span class="constant">ACTIVITY_STV_CREATOR_FN_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"stv_creator_fn"</span><span class="plain">, </span><span class="functiontext">Translation::uniqued</span><span class="plain">(), </span><span class="identifier">in_activity</span><span class="plain">);</span>
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">synoptic_activities</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::synoptic_submodule</span><span class="plain">(</span><span class="identifier">activities</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">ACTIVITY_AFTER_RULEBOOKS_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Activity_after_rulebooks"</span><span class="plain">, </span><span class="functiontext">Translation::same</span><span class="plain">(), </span><span class="identifier">synoptic_activities</span><span class="plain">);</span>
@ -387,6 +391,7 @@
<pre class="definitions">
<span class="definitionkeyword">enum</span> <span class="constant">EQUATIONS_HAP</span>
<span class="definitionkeyword">enum</span> <span class="constant">SOLVE_FN_HL</span>
</pre>
<p class="inwebparagraph"><a id="SP1_16"></a><b>&#167;1.16. </b><code class="display">
&lt;<span class="cwebmacrodefn">Establish equations</span> <span class="cwebmacronumber">1.16</span>&gt; =
@ -398,6 +403,8 @@
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">local_equations</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::local_submodule</span><span class="plain">(</span><span class="identifier">equations</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::ap</span><span class="plain">(</span><span class="constant">EQUATIONS_HAP</span><span class="plain">, </span><span class="identifier">local_equations</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"equation"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"_equation"</span><span class="plain">);</span>
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">in_equation</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">"_equation"</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::func</span><span class="plain">(</span><span class="constant">SOLVE_FN_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"solve_fn"</span><span class="plain">, </span><span class="functiontext">Translation::uniqued</span><span class="plain">(), </span><span class="identifier">in_equation</span><span class="plain">);</span>
</pre>
<p class="inwebparagraph"></p>
@ -546,6 +553,7 @@
<pre class="definitions">
<span class="definitionkeyword">enum</span> <span class="constant">INSTANCES_HAP</span>
<span class="definitionkeyword">enum</span> <span class="constant">BACKDROP_FOUND_IN_FN_HL</span>
</pre>
<p class="inwebparagraph"><a id="SP1_24"></a><b>&#167;1.24. </b><code class="display">
&lt;<span class="cwebmacrodefn">Establish instances</span> <span class="cwebmacronumber">1.24</span>&gt; =
@ -557,6 +565,8 @@
<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::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>
</pre>
<p class="inwebparagraph"></p>
@ -621,6 +631,9 @@
<span class="definitionkeyword">enum</span> <span class="constant">DECREMENT_FN_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">INCREMENT_FN_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">RANGER_FN_HL</span>
<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">DEFAULTVALUEOFKOV_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">DEFAULTVALUEFINDER_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">PRINTKINDVALUEPAIR_HL</span>
@ -654,6 +667,9 @@
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">DECREMENT_FN_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"decrement_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">INCREMENT_FN_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"increment_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">RANGER_FN_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"ranger_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">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="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">synoptic_kinds</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::synoptic_submodule</span><span class="plain">(</span><span class="identifier">kinds</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">BASE_KIND_HWM_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"BASE_KIND_HWM"</span><span class="plain">, </span><span class="functiontext">Translation::same</span><span class="plain">(), </span><span class="identifier">synoptic_kinds</span><span class="plain">);</span>
@ -785,6 +801,14 @@
<span class="definitionkeyword">enum</span> <span class="constant">RELATIONS_HAP</span>
<span class="definitionkeyword">enum</span> <span class="constant">BITMAP_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">ROUTE_CACHE_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">HANDLER_FN_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">RELATION_INITIALISER_FN_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">GUARD_F0_FN_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">GUARD_F1_FN_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">GUARD_TEST_FN_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">GUARD_MAKE_TRUE_FN_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">GUARD_MAKE_FALSE_INAME_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">RELATION_FN_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">CREATEDYNAMICRELATIONS_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">CCOUNT_BINARY_PREDICATE_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">ITERATERELATIONS_HL</span>
@ -819,9 +843,17 @@
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">local_rels</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::local_submodule</span><span class="plain">(</span><span class="identifier">relations</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::ap</span><span class="plain">(</span><span class="constant">RELATIONS_HAP</span><span class="plain">, </span><span class="identifier">local_rels</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"relation"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"_relation"</span><span class="plain">);</span>
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">in_relation</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">"_relation"</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">BITMAP_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_relation</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">ROUTE_CACHE_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"route_cache"</span><span class="plain">, </span><span class="functiontext">Translation::uniqued</span><span class="plain">(), </span><span class="identifier">in_relation</span><span class="plain">);</span>
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">in_relation</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">"_relation"</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">BITMAP_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_relation</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">ROUTE_CACHE_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"route_cache"</span><span class="plain">, </span><span class="functiontext">Translation::uniqued</span><span class="plain">(), </span><span class="identifier">in_relation</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::func</span><span class="plain">(</span><span class="constant">HANDLER_FN_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"handler_fn"</span><span class="plain">, </span><span class="functiontext">Translation::uniqued</span><span class="plain">(), </span><span class="identifier">in_relation</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::func</span><span class="plain">(</span><span class="constant">RELATION_INITIALISER_FN_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"relation_initialiser_fn"</span><span class="plain">, </span><span class="functiontext">Translation::uniqued</span><span class="plain">(), </span><span class="identifier">in_relation</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::func</span><span class="plain">(</span><span class="constant">GUARD_F0_FN_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"guard_f0_fn"</span><span class="plain">, </span><span class="functiontext">Translation::uniqued</span><span class="plain">(), </span><span class="identifier">in_relation</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::func</span><span class="plain">(</span><span class="constant">GUARD_F1_FN_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"guard_f1_fn"</span><span class="plain">, </span><span class="functiontext">Translation::uniqued</span><span class="plain">(), </span><span class="identifier">in_relation</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::func</span><span class="plain">(</span><span class="constant">GUARD_TEST_FN_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"guard_test_fn"</span><span class="plain">, </span><span class="functiontext">Translation::uniqued</span><span class="plain">(), </span><span class="identifier">in_relation</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::func</span><span class="plain">(</span><span class="constant">GUARD_MAKE_TRUE_FN_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"guard_make_true_fn"</span><span class="plain">, </span><span class="functiontext">Translation::uniqued</span><span class="plain">(), </span><span class="identifier">in_relation</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::func</span><span class="plain">(</span><span class="constant">GUARD_MAKE_FALSE_INAME_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"guard_make_false_iname"</span><span class="plain">, </span><span class="functiontext">Translation::uniqued</span><span class="plain">(), </span><span class="identifier">in_relation</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::func</span><span class="plain">(</span><span class="constant">RELATION_FN_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"relation_fn"</span><span class="plain">, </span><span class="functiontext">Translation::uniqued</span><span class="plain">(), </span><span class="identifier">in_relation</span><span class="plain">);</span>
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">synoptic_rels</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::synoptic_submodule</span><span class="plain">(</span><span class="identifier">relations</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::func</span><span class="plain">(</span><span class="constant">CREATEDYNAMICRELATIONS_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"creator_fn"</span><span class="plain">, </span><span class="functiontext">Translation::to</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"CreateDynamicRelations"</span><span class="plain">), </span><span class="identifier">synoptic_rels</span><span class="plain">);</span>
@ -841,6 +873,8 @@
<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">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>
<span class="definitionkeyword">enum</span> <span class="constant">NUMBER_RULEBOOKS_CREATED_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">RULEBOOK_VAR_CREATORS_HL</span>
<span class="definitionkeyword">enum</span> <span class="constant">SLOW_LOOKUP_HL</span>
@ -861,6 +895,9 @@
<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="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>
<span class="functiontext">HierarchyLocations::func</span><span class="plain">(</span><span class="constant">RULEBOOK_STV_CREATOR_FN_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"stv_creator_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>
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">synoptic_rulebooks</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::synoptic_submodule</span><span class="plain">(</span><span class="identifier">rulebooks</span><span class="plain">);</span>
<span class="functiontext">HierarchyLocations::con</span><span class="plain">(</span><span class="constant">NUMBER_RULEBOOKS_CREATED_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"NUMBER_RULEBOOKS_CREATED"</span><span class="plain">, </span><span class="functiontext">Translation::same</span><span class="plain">(), </span><span class="identifier">synoptic_rulebooks</span><span class="plain">);</span>
@ -1701,7 +1738,7 @@
<p class="endnote">The function Hierarchy::package_within is used in 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 6/rlt (<a href="6-rlt.html#SP20">&#167;20</a>, <a href="6-rlt.html#SP20_3">&#167;20.3</a>), 13/rsfk (<a href="13-rsfk.html#SP13_1_1">&#167;13.1.1</a>), 17/rs (<a href="17-rs.html#SP5">&#167;5</a>, <a href="17-rs.html#SP6_1">&#167;6.1</a>), 19/tc (<a href="19-tc.html#SP9">&#167;9</a>), 19/tb (<a href="19-tb.html#SP9">&#167;9</a>), 21/rl (<a href="21-rl.html#SP9">&#167;9</a>), 22/pav (<a href="22-pav.html#SP7">&#167;7</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 6/bp (<a href="6-bp.html#SP32">&#167;32</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#SP20">&#167;20</a>, <a href="6-rlt.html#SP20_3">&#167;20.3</a>), 13/rsfk (<a href="13-rsfk.html#SP13_1_1">&#167;13.1.1</a>, <a href="13-rsfk.html#SP15">&#167;15</a>), 17/rs (<a href="17-rs.html#SP5">&#167;5</a>, <a href="17-rs.html#SP6_1">&#167;6.1</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>), 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/pav (<a href="22-pav.html#SP7">&#167;7</a>, <a href="22-pav.html#SP9">&#167;9</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_with_memo appears nowhere else.</p>

File diff suppressed because one or more lines are too long

View file

@ -500,7 +500,7 @@
<p class="endnote">The function Packaging::supply_iname is used in 4/am (<a href="4-am.html#SP6">&#167;6</a>), 6/rlt (<a href="6-rlt.html#SP15_1_2">&#167;15.1.2</a>), 12/dtd (<a href="12-dtd.html#SP4">&#167;4</a>), 13/rsfk (<a href="13-rsfk.html#SP19">&#167;19</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>), 17/ts (<a href="17-ts.html#SP5">&#167;5</a>), 18/lc (<a href="18-lc.html#SP11">&#167;11</a>), 27/ei (<a href="27-ei.html#SP4">&#167;4</a>), 27/hl (<a href="27-hl.html#SP2">&#167;2</a>).</p>
<p class="endnote">The function Packaging::function is used in 6/bp (<a href="6-bp.html#SP32">&#167;32</a>), 6/rlt (<a href="6-rlt.html#SP9">&#167;9</a>, <a href="6-rlt.html#SP9_13">&#167;9.13</a>), 12/dtd (<a href="12-dtd.html#SP4">&#167;4</a>), 13/rsfk (<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#SP14_2">&#167;14.2</a>), 17/ts (<a href="17-ts.html#SP5">&#167;5</a>), 20/eq (<a href="20-eq.html#SP10_1">&#167;10.1</a>), 21/rl (<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/pu (<a href="22-pu.html#SP6">&#167;6</a>), 22/pav (<a href="22-pav.html#SP9">&#167;9</a>), 22/tp (<a href="22-tp.html#SP7">&#167;7</a>), 24/ch (<a href="24-ch.html#SP3">&#167;3</a>), 26/lt (<a href="26-lt.html#SP3">&#167;3</a>), 27/hl (<a href="27-hl.html#SP1">&#167;1</a>).</p>
<p class="endnote">The function Packaging::function is used in 12/dtd (<a href="12-dtd.html#SP4">&#167;4</a>), 15/ma (<a href="15-ma.html#SP11_3">&#167;11.3</a>), 17/tl (<a href="17-tl.html#SP14_2">&#167;14.2</a>), 17/ts (<a href="17-ts.html#SP5">&#167;5</a>), 21/rl (<a href="21-rl.html#SP19">&#167;19</a>), 22/ph (<a href="22-ph.html#SP11">&#167;11</a>), 22/pu (<a href="22-pu.html#SP6">&#167;6</a>), 22/tp (<a href="22-tp.html#SP7">&#167;7</a>), 24/ch (<a href="24-ch.html#SP3">&#167;3</a>), 26/lt (<a href="26-lt.html#SP3">&#167;3</a>), 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>).</p>

View file

@ -51,7 +51,7 @@
<p class="endnote">The function Translation::same is used in 27/hl (<a href="27-hl.html#SP1">&#167;1</a>), 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_14">&#167;1.14</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_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_46">&#167;1.46</a>, <a href="27-hr.html#SP1_48">&#167;1.48</a>, <a href="27-hr.html#SP5">&#167;5</a>).</p>
<p class="endnote">The function Translation::uniqued is used in 27/hr (<a href="27-hr.html#SP1_8">&#167;1.8</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_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_36">&#167;1.36</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 Translation::uniqued 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_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_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 Translation::to is used in 27/hr (<a href="27-hr.html#SP1_4">&#167;1.4</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_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_46">&#167;1.46</a>).</p>

View file

@ -842,8 +842,7 @@ would always be <code class="display"><span class="extract">NULL</span></code> i
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="functiontext">BinaryPredicates::handler_iname</span><span class="plain">(</span><span class="reserved">binary_predicate</span><span class="plain"> *</span><span class="identifier">bp</span><span class="plain">) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">bp</span><span class="plain">-</span><span class="element">&gt;handler_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">BinaryPredicates::package</span><span class="plain">(</span><span class="identifier">bp</span><span class="plain">);</span>
<span class="identifier">bp</span><span class="plain">-</span><span class="element">&gt;handler_iname</span><span class="plain"> = </span><span class="functiontext">Packaging::function</span><span class="plain">(</span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"handler_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">NULL</span><span class="plain">);</span>
<span class="identifier">Inter::Symbols::set_flag</span><span class="plain">(</span><span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">bp</span><span class="plain">-</span><span class="element">&gt;handler_iname</span><span class="plain">), </span><span class="identifier">MAKE_NAME_UNIQUE</span><span class="plain">);</span>
<span class="identifier">bp</span><span class="plain">-</span><span class="element">&gt;handler_iname</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">HANDLER_FN_HL</span><span class="plain">, </span><span class="identifier">R</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">bp</span><span class="plain">-</span><span class="element">&gt;handler_iname</span><span class="plain">;</span>
<span class="plain">}</span>

View file

@ -279,8 +279,7 @@ splitting into cases.
<span class="identifier">bp</span><span class="plain">-</span><span class="element">&gt;dynamic_memory</span><span class="plain"> = </span><span class="identifier">TRUE</span><span class="plain">;</span>
<span class="identifier">bpr</span><span class="plain">-</span><span class="element">&gt;dynamic_memory</span><span class="plain"> = </span><span class="identifier">TRUE</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">BinaryPredicates::package</span><span class="plain">(</span><span class="identifier">bp</span><span class="plain">);</span>
<span class="identifier">bp</span><span class="plain">-</span><span class="element">&gt;initialiser_iname</span><span class="plain"> = </span><span class="functiontext">Packaging::function</span><span class="plain">(</span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"relation_initialiser_fn"</span><span class="plain">, </span><span class="identifier">P</span><span class="plain">), </span><span class="identifier">P</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">);</span>
<span class="identifier">Inter::Symbols::set_flag</span><span class="plain">(</span><span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">bp</span><span class="plain">-</span><span class="element">&gt;initialiser_iname</span><span class="plain">), </span><span class="identifier">MAKE_NAME_UNIQUE</span><span class="plain">);</span>
<span class="identifier">bp</span><span class="plain">-</span><span class="element">&gt;initialiser_iname</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">RELATION_INITIALISER_FN_HL</span><span class="plain">, </span><span class="identifier">P</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="functiontext">BinaryPredicates::mark_as_needed</span><span class="plain">(</span><span class="identifier">bp</span><span class="plain">);</span>
@ -325,34 +324,29 @@ splitting into cases.
<span class="identifier">rg</span><span class="plain">-</span><span class="element">&gt;guard_make_false_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">rg</span><span class="plain">-</span><span class="element">&gt;f0</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">BinaryPredicates::package</span><span class="plain">(</span><span class="identifier">bp</span><span class="plain">);</span>
<span class="identifier">rg</span><span class="plain">-</span><span class="element">&gt;guard_f0_iname</span><span class="plain"> = </span><span class="functiontext">Packaging::function</span><span class="plain">(</span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"guard_f0_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">NULL</span><span class="plain">);</span>
<span class="identifier">Inter::Symbols::set_flag</span><span class="plain">(</span><span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">rg</span><span class="plain">-</span><span class="element">&gt;guard_f0_iname</span><span class="plain">), </span><span class="identifier">MAKE_NAME_UNIQUE</span><span class="plain">);</span>
<span class="identifier">rg</span><span class="plain">-</span><span class="element">&gt;guard_f0_iname</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">GUARD_F0_FN_HL</span><span class="plain">, </span><span class="identifier">R</span><span class="plain">);</span>
<span class="functiontext">BinaryPredicates::set_term_function</span><span class="plain">(&amp;(</span><span class="identifier">bp</span><span class="plain">-</span><span class="element">&gt;term_details</span><span class="plain">[0]),</span>
<span class="functiontext">Calculus::Schemas::new</span><span class="plain">(</span><span class="string">"(%n(*1))"</span><span class="plain">, </span><span class="identifier">rg</span><span class="plain">-</span><span class="element">&gt;guard_f0_iname</span><span class="plain">));</span>
<span class="plain">}</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">rg</span><span class="plain">-</span><span class="element">&gt;f1</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">BinaryPredicates::package</span><span class="plain">(</span><span class="identifier">bp</span><span class="plain">);</span>
<span class="identifier">rg</span><span class="plain">-</span><span class="element">&gt;guard_f1_iname</span><span class="plain"> = </span><span class="functiontext">Packaging::function</span><span class="plain">(</span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"guard_f1_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">NULL</span><span class="plain">);</span>
<span class="identifier">Inter::Symbols::set_flag</span><span class="plain">(</span><span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">rg</span><span class="plain">-</span><span class="element">&gt;guard_f1_iname</span><span class="plain">), </span><span class="identifier">MAKE_NAME_UNIQUE</span><span class="plain">);</span>
<span class="identifier">rg</span><span class="plain">-</span><span class="element">&gt;guard_f1_iname</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">GUARD_F1_FN_HL</span><span class="plain">, </span><span class="identifier">R</span><span class="plain">);</span>
<span class="functiontext">BinaryPredicates::set_term_function</span><span class="plain">(&amp;(</span><span class="identifier">bp</span><span class="plain">-</span><span class="element">&gt;term_details</span><span class="plain">[1]),</span>
<span class="functiontext">Calculus::Schemas::new</span><span class="plain">(</span><span class="string">"(%n(*1))"</span><span class="plain">, </span><span class="identifier">rg</span><span class="plain">-</span><span class="element">&gt;guard_f1_iname</span><span class="plain">));</span>
<span class="plain">}</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">bp</span><span class="plain">-</span><span class="element">&gt;test_function</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">BinaryPredicates::package</span><span class="plain">(</span><span class="identifier">bp</span><span class="plain">);</span>
<span class="identifier">rg</span><span class="plain">-</span><span class="element">&gt;guard_test_iname</span><span class="plain"> = </span><span class="functiontext">Packaging::function</span><span class="plain">(</span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"guard_test_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">NULL</span><span class="plain">);</span>
<span class="identifier">Inter::Symbols::set_flag</span><span class="plain">(</span><span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">rg</span><span class="plain">-</span><span class="element">&gt;guard_test_iname</span><span class="plain">), </span><span class="identifier">MAKE_NAME_UNIQUE</span><span class="plain">);</span>
<span class="identifier">rg</span><span class="plain">-</span><span class="element">&gt;guard_test_iname</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">GUARD_TEST_FN_HL</span><span class="plain">, </span><span class="identifier">R</span><span class="plain">);</span>
<span class="identifier">bp</span><span class="plain">-</span><span class="element">&gt;test_function</span><span class="plain"> = </span><span class="functiontext">Calculus::Schemas::new</span><span class="plain">(</span><span class="string">"(%n(*1,*2))"</span><span class="plain">, </span><span class="identifier">rg</span><span class="plain">-</span><span class="element">&gt;guard_test_iname</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">bp</span><span class="plain">-</span><span class="element">&gt;make_true_function</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">BinaryPredicates::package</span><span class="plain">(</span><span class="identifier">bp</span><span class="plain">);</span>
<span class="identifier">rg</span><span class="plain">-</span><span class="element">&gt;guard_make_true_iname</span><span class="plain"> = </span><span class="functiontext">Packaging::function</span><span class="plain">(</span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"guard_make_true_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">NULL</span><span class="plain">);</span>
<span class="identifier">Inter::Symbols::set_flag</span><span class="plain">(</span><span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">rg</span><span class="plain">-</span><span class="element">&gt;guard_make_true_iname</span><span class="plain">), </span><span class="identifier">MAKE_NAME_UNIQUE</span><span class="plain">);</span>
<span class="identifier">rg</span><span class="plain">-</span><span class="element">&gt;guard_make_true_iname</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">GUARD_MAKE_TRUE_FN_HL</span><span class="plain">, </span><span class="identifier">R</span><span class="plain">);</span>
<span class="identifier">bp</span><span class="plain">-</span><span class="element">&gt;make_true_function</span><span class="plain"> = </span><span class="functiontext">Calculus::Schemas::new</span><span class="plain">(</span><span class="string">"(%n(*1,*2))"</span><span class="plain">, </span><span class="identifier">rg</span><span class="plain">-</span><span class="element">&gt;guard_make_true_iname</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">bp</span><span class="plain">-</span><span class="element">&gt;make_false_function</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">BinaryPredicates::package</span><span class="plain">(</span><span class="identifier">bp</span><span class="plain">);</span>
<span class="identifier">rg</span><span class="plain">-</span><span class="element">&gt;guard_make_false_iname</span><span class="plain"> = </span><span class="functiontext">Packaging::function</span><span class="plain">(</span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"guard_make_false_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">NULL</span><span class="plain">);</span>
<span class="identifier">Inter::Symbols::set_flag</span><span class="plain">(</span><span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">rg</span><span class="plain">-</span><span class="element">&gt;guard_make_false_iname</span><span class="plain">), </span><span class="identifier">MAKE_NAME_UNIQUE</span><span class="plain">);</span>
<span class="identifier">rg</span><span class="plain">-</span><span class="element">&gt;guard_make_false_iname</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">GUARD_MAKE_FALSE_INAME_HL</span><span class="plain">, </span><span class="identifier">R</span><span class="plain">);</span>
<span class="identifier">bp</span><span class="plain">-</span><span class="element">&gt;make_false_function</span><span class="plain"> = </span><span class="functiontext">Calculus::Schemas::new</span><span class="plain">(</span><span class="string">"(%n(*1,*2))"</span><span class="plain">, </span><span class="identifier">rg</span><span class="plain">-</span><span class="element">&gt;guard_make_false_iname</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="plain">}</span>
@ -1034,8 +1028,7 @@ logical properties of the two terms of the BP being defined.
<pre class="displaydefn">
<span class="identifier">bp</span><span class="plain">-</span><span class="element">&gt;form_of_relation</span><span class="plain"> = </span><span class="constant">Relation_ByRoutine</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">BinaryPredicates::package</span><span class="plain">(</span><span class="identifier">bp</span><span class="plain">);</span>
<span class="identifier">bp</span><span class="plain">-</span><span class="element">&gt;bp_by_routine_iname</span><span class="plain"> = </span><span class="functiontext">Packaging::function</span><span class="plain">(</span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"relation_fn"</span><span class="plain">, </span><span class="identifier">P</span><span class="plain">), </span><span class="identifier">P</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">);</span>
<span class="identifier">Inter::Symbols::set_flag</span><span class="plain">(</span><span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">bp</span><span class="plain">-</span><span class="element">&gt;bp_by_routine_iname</span><span class="plain">), </span><span class="identifier">MAKE_NAME_UNIQUE</span><span class="plain">);</span>
<span class="identifier">bp</span><span class="plain">-</span><span class="element">&gt;bp_by_routine_iname</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">RELATION_FN_HL</span><span class="plain">, </span><span class="identifier">P</span><span class="plain">);</span>
<span class="identifier">bp</span><span class="plain">-</span><span class="element">&gt;test_function</span><span class="plain"> = </span><span class="functiontext">Calculus::Schemas::new</span><span class="plain">(</span><span class="string">"(%n(*1,*2))"</span><span class="plain">, </span><span class="identifier">bp</span><span class="plain">-</span><span class="element">&gt;bp_by_routine_iname</span><span class="plain">);</span>
<span class="identifier">bp</span><span class="plain">-</span><span class="element">&gt;condition_defn_text</span><span class="plain"> = </span><span class="identifier">CONW</span><span class="plain">;</span>
</pre>
@ -1403,8 +1396,8 @@ logical properties of the two terms of the BP being defined.
<span class="reserved">binary_predicate</span><span class="plain"> *</span><span class="identifier">dbp</span><span class="plain"> = </span><span class="identifier">bp</span><span class="plain">;</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">bp</span><span class="plain">-</span><span class="element">&gt;right_way_round</span><span class="plain"> == </span><span class="identifier">FALSE</span><span class="plain">) </span><span class="identifier">dbp</span><span class="plain"> = </span><span class="identifier">bp</span><span class="plain">-</span><span class="element">&gt;reversal</span><span class="plain">;</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">bm_symb</span><span class="plain"> = </span><span class="functiontext">Packaging::supply_iname</span><span class="plain">(</span><span class="identifier">bp</span><span class="plain">-</span><span class="element">&gt;bp_package</span><span class="plain">, </span><span class="constant">MISC_PR_COUNTER</span><span class="plain">);</span>
<span class="functiontext">Emit::sum_constant_begin</span><span class="plain">(</span><span class="identifier">bm_symb</span><span class="plain">, </span><span class="identifier">K_value</span><span class="plain">);</span>
<span class="identifier">Inter::Symbols::set_flag</span><span class="plain">(</span><span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">bm_symb</span><span class="plain">), </span><span class="identifier">MAKE_NAME_UNIQUE</span><span class="plain">);</span>
<span class="functiontext">Emit::sum_constant_begin</span><span class="plain">(</span><span class="identifier">bm_symb</span><span class="plain">, </span><span class="identifier">K_value</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">RELS_TEST_iname</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"no RELS symbols yet"</span><span class="plain">);</span>
<span class="functiontext">Emit::array_iname_entry</span><span class="plain">(</span><span class="identifier">RELS_TEST_iname</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">minimal</span><span class="plain"> == </span><span class="identifier">FALSE</span><span class="plain">) {</span>

View file

@ -465,14 +465,7 @@ been asserted true:
<span class="reserved">backdrop_found_in_notice</span><span class="plain"> *</span><span class="identifier">notice</span><span class="plain"> = </span><span class="identifier">CREATE</span><span class="plain">(</span><span class="reserved">backdrop_found_in_notice</span><span class="plain">);</span>
<span class="identifier">notice</span><span class="plain">-</span><span class="element">&gt;backdrop</span><span class="plain"> = </span><span class="identifier">I</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">Instances::package</span><span class="plain">(</span><span class="identifier">I</span><span class="plain">);</span>
<span class="identifier">notice</span><span class="plain">-</span><span class="element">&gt;found_in_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">"backdrop_found_in_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">NULL</span><span class="plain">);</span>
<span class="identifier">Inter::Symbols::set_flag</span><span class="plain">(</span><span class="identifier">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">notice</span><span class="plain">-</span><span class="element">&gt;found_in_routine_iname</span><span class="plain">),</span>
<span class="identifier">MAKE_NAME_UNIQUE</span><span class="plain">);</span>
<span class="identifier">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">notice</span><span class="plain">-</span><span class="element">&gt;found_in_routine_iname</span><span class="plain">);</span>
<span class="identifier">notice</span><span class="plain">-</span><span class="element">&gt;found_in_routine_iname</span><span class="plain"> = </span><span class="identifier">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="identifier">BACKDROP_FOUND_IN_FN_HL</span><span class="plain">, </span><span class="identifier">R</span><span class="plain">);</span>
<span class="identifier">notice</span><span class="plain">-</span><span class="element">&gt;many_places</span><span class="plain"> = </span><span class="identifier">TRUE</span><span class="plain">;</span>
<span class="identifier">FOUNDIN</span><span class="plain"> = </span><span class="identifier">notice</span><span class="plain">-</span><span class="element">&gt;found_in_routine_iname</span><span class="plain">;</span>
</pre>
@ -497,13 +490,7 @@ code, derived from the old I6 library, requires <code class="display"><span clas
<span class="reserved">backdrop_found_in_notice</span><span class="plain"> *</span><span class="identifier">notice</span><span class="plain"> = </span><span class="identifier">CREATE</span><span class="plain">(</span><span class="reserved">backdrop_found_in_notice</span><span class="plain">);</span>
<span class="identifier">notice</span><span class="plain">-</span><span class="element">&gt;backdrop</span><span class="plain"> = </span><span class="identifier">I</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">Instances::package</span><span class="plain">(</span><span class="identifier">I</span><span class="plain">);</span>
<span class="identifier">notice</span><span class="plain">-</span><span class="element">&gt;found_in_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">"backdrop_found_in_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">NULL</span><span class="plain">);</span>
<span class="identifier">Inter::Symbols::set_flag</span><span class="plain">(</span><span class="identifier">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">notice</span><span class="plain">-</span><span class="element">&gt;found_in_routine_iname</span><span class="plain">),</span>
<span class="identifier">MAKE_NAME_UNIQUE</span><span class="plain">);</span>
<span class="identifier">notice</span><span class="plain">-</span><span class="element">&gt;found_in_routine_iname</span><span class="plain"> = </span><span class="identifier">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="identifier">BACKDROP_FOUND_IN_FN_HL</span><span class="plain">, </span><span class="identifier">R</span><span class="plain">);</span>
<span class="identifier">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">notice</span><span class="plain">-</span><span class="element">&gt;found_in_routine_iname</span><span class="plain">);</span>
<span class="identifier">notice</span><span class="plain">-</span><span class="element">&gt;many_places</span><span class="plain"> = </span><span class="identifier">FALSE</span><span class="plain">;</span>
<span class="identifier">FOUNDIN</span><span class="plain"> = </span><span class="identifier">notice</span><span class="plain">-</span><span class="element">&gt;found_in_routine_iname</span><span class="plain">;</span>

View file

@ -905,12 +905,8 @@ action patterns. For example, the Standard Rules define:
<span class="reserved">action_name</span><span class="plain"> *</span><span class="identifier">an</span><span class="plain">;</span>
<span class="identifier">LOOP_OVER</span><span class="plain">(</span><span class="identifier">an</span><span class="plain">, </span><span class="reserved">action_name</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;owned_by_an</span><span class="plain">) &amp;&amp;</span>
<span class="plain">(</span><span class="identifier">StackedVariables::owner_empty</span><span class="plain">(</span><span class="identifier">an</span><span class="plain">-</span><span class="element">&gt;owned_by_an</span><span class="plain">) == </span><span class="identifier">FALSE</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">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">"stv_creator_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">NULL</span><span class="plain">);</span>
<span class="identifier">Inter::Symbols::set_flag</span><span class="plain">(</span><span class="identifier">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">iname</span><span class="plain">), </span><span class="identifier">MAKE_NAME_UNIQUE</span><span class="plain">);</span>
<span class="plain">(</span><span class="identifier">StackedVariables::owner_empty</span><span class="plain">(</span><span class="identifier">an</span><span class="plain">-</span><span class="element">&gt;owned_by_an</span><span class="plain">) == </span><span class="identifier">FALSE</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::make_iname_in</span><span class="plain">(</span><span class="identifier">ACTION_STV_CREATOR_FN_HL</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">StackedVariables::compile_frame_creator</span><span class="plain">(</span><span class="identifier">an</span><span class="plain">-</span><span class="element">&gt;owned_by_an</span><span class="plain">, </span><span class="identifier">iname</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="plain">}</span>

View file

@ -616,12 +616,7 @@ inter_name *Kinds::RunTime::get_kind_GPR_iname(kind *K) {
kind_constructor *con = Kinds::get_construct(K);
if (con->kind_GPR_iname == NULL) {
package_request *R = Kinds::RunTime::package(K);
con->kind_GPR_iname =
Packaging::function(
InterNames::one_off(I"gpr_fn", R),
R,
NULL);
Inter::Symbols::set_flag(InterNames::to_symbol(con->kind_GPR_iname), MAKE_NAME_UNIQUE);
con->kind_GPR_iname = Hierarchy::make_iname_in(GPR_FN_HL, R);
}
return con->kind_GPR_iname;
}
@ -631,12 +626,7 @@ inter_name *Kinds::RunTime::get_instance_GPR_iname(kind *K) {
kind_constructor *con = Kinds::get_construct(K);
if (con->instance_GPR_iname == NULL) {
package_request *R = Kinds::RunTime::package(K);
con->instance_GPR_iname =
Packaging::function(
InterNames::one_off(I"instance_gpr_fn", R),
R,
NULL);
Inter::Symbols::set_flag(InterNames::to_symbol(con->instance_GPR_iname), MAKE_NAME_UNIQUE);
con->instance_GPR_iname = Hierarchy::make_iname_in(INSTANCE_GPR_FN_HL, R);
}
return con->instance_GPR_iname;
}

View file

@ -161,11 +161,7 @@ equation *Equations::new(wording W, int anonymous) {
eqn->examined_already = FALSE;
package_request *PR = Hierarchy::local_package(EQUATIONS_HAP);
eqn->eqn_iname = Packaging::function(
InterNames::one_off(I"solve_fn", PR),
PR,
NULL);
Inter::Symbols::set_flag(InterNames::to_symbol(eqn->eqn_iname), MAKE_NAME_UNIQUE);
eqn->eqn_iname = Hierarchy::make_iname_in(SOLVE_FN_HL, PR);
wording NO = EMPTY_WORDING, NA = EMPTY_WORDING;
if (anonymous == FALSE) {

View file

@ -362,11 +362,7 @@ void Activities::activity_var_creators(void) {
activity *av;
LOOP_OVER(av, activity) {
if (StackedVariables::owner_empty(av->owned_by_av) == FALSE) {
inter_name *iname = Packaging::function(
InterNames::one_off(I"stv_creator_fn", av->av_package),
av->av_package,
NULL);
Inter::Symbols::set_flag(InterNames::to_symbol(iname), MAKE_NAME_UNIQUE);
inter_name *iname = Hierarchy::make_iname_in(ACTIVITY_STV_CREATOR_FN_HL, av->av_package);
StackedVariables::compile_frame_creator(av->owned_by_av, iname);
}
}

View file

@ -214,9 +214,7 @@ rulebook *Rulebooks::new(kind *create_as, wording W, package_request *R) {
rb->primary_name = W;
rb->alternative_name = EMPTY_WORDING;
rb->rb_package = R;
rb->rb_iname = Packaging::function(InterNames::one_off(I"run_fn", rb->rb_package), rb->rb_package, NULL);
Inter::Symbols::set_flag(InterNames::to_symbol(rb->rb_iname), MAKE_NAME_UNIQUE);
rb->rb_iname = Hierarchy::make_iname_in(RUN_FN_HL, rb->rb_package);
rb->rule_list = Rules::Bookings::list_new();
@ -495,13 +493,9 @@ void Rulebooks::make_stvs_accessible(rulebook *rb, stacked_variable_owner *stvo)
}
inter_name *Rulebooks::get_stv_creator_iname(rulebook *rb) {
if (rb->stv_creator_iname == NULL) {
rb->stv_creator_iname = Packaging::function(
InterNames::one_off(I"stv_creator_fn", rb->rb_package),
rb->rb_package,
NULL);
Inter::Symbols::set_flag(InterNames::to_symbol(rb->stv_creator_iname), MAKE_NAME_UNIQUE);
}
if (rb->stv_creator_iname == NULL)
rb->stv_creator_iname =
Hierarchy::make_iname_in(RULEBOOK_STV_CREATOR_FN_HL, rb->rb_package);
return rb->stv_creator_iname;
}

View file

@ -167,8 +167,7 @@ compilation.
=
void Phrases::Constants::compile_default_closure(inter_name *closure_identifier, kind *K) {
package_request *P = Kinds::RunTime::package(K);
inter_name *rname = Packaging::function(InterNames::one_off(I"default_closure_fn", P), P, NULL);
Inter::Symbols::set_flag(InterNames::to_symbol(rname), MAKE_NAME_UNIQUE);
inter_name *rname = Hierarchy::make_iname_in(DEFAULT_CLOSURE_FN_HL, P);
@<Compile the default routine@>;
@<Compile the default closure@>;

View file

@ -62,6 +62,7 @@ typedef struct named_resource_location {
struct text_stream *datum_package_name;
struct location_requirement requirements;
struct inter_name *equates_to_iname;
struct inter_symbol *package_type;
struct name_translation trans;
MEMORY_MANAGEMENT
} named_resource_location;
@ -73,6 +74,7 @@ named_resource_location *HierarchyLocations::new(void) {
nrl->function_package_name = NULL;
nrl->datum_package_name = NULL;
nrl->equates_to_iname = NULL;
nrl->package_type = NULL;
nrl->trans = Translation::same();
nrl->requirements = HierarchyLocations::blank();
return nrl;
@ -88,6 +90,16 @@ named_resource_location *HierarchyLocations::con(int id, text_stream *name, name
return nrl;
}
named_resource_location *HierarchyLocations::package(int id, text_stream *name, text_stream *ptype_name, location_requirement req) {
named_resource_location *nrl = HierarchyLocations::new();
nrl->access_number = id;
nrl->access_name = Str::duplicate(name);
nrl->requirements = req;
nrl->package_type = HierarchyLocations::ptype(ptype_name);
HierarchyLocations::index(nrl);
return nrl;
}
named_resource_location *HierarchyLocations::make_as(int id, text_stream *name, inter_name *iname) {
named_resource_location *nrl = HierarchyLocations::new();
nrl->access_number = id;
@ -202,7 +214,11 @@ inter_name *HierarchyLocations::find_in_package(int id, package_request *P, word
internal_error("bad nrl ID");
named_resource_location *nrl = nrls_indexed_by_id[id];
if (nrl->requirements.any_package_of_this_type == NULL) internal_error("NRL accessed inappropriately");
if ((P == NULL) || (P->eventual_type != nrl->requirements.any_package_of_this_type)) internal_error("constant in wrong superpackage");
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");
}
inter_name *iname = NULL;
if (Str::len(nrl->function_package_name) > 0) {
iname = Packaging::function_text(
@ -227,7 +243,8 @@ package_request *HierarchyLocations::package_in_package(int id, package_request
named_resource_location *nrl = nrls_indexed_by_id[id];
if (nrl->requirements.any_package_of_this_type == NULL) internal_error("NRL accessed inappropriately");
if ((P == NULL) || (P->eventual_type != nrl->requirements.any_package_of_this_type)) internal_error("subpackage in wrong superpackage");
return Packaging::request(InterNames::one_off(nrl->access_name, P), P, nrl->requirements.any_package_of_this_type);
if (nrl->package_type == NULL) internal_error("package_in_package used wrongly");
return Packaging::request(InterNames::one_off(nrl->access_name, P), P, nrl->package_type);
}
@

View file

@ -141,6 +141,7 @@ void Hierarchy::establish(void) {
@e CHECK_RB_HL
@e CARRY_OUT_RB_HL
@e REPORT_RB_HL
@e ACTION_STV_CREATOR_FN_HL
@e ACTIONCODING_HL
@e ACTIONDATA_HL
@ -159,9 +160,10 @@ void Hierarchy::establish(void) {
location_requirement local_actions = HierarchyLocations::local_submodule(actions);
HierarchyLocations::ap(ACTIONS_HAP, local_actions, I"action", I"_action");
location_requirement in_action = HierarchyLocations::any_package_of_type(I"_action");
HierarchyLocations::con(CHECK_RB_HL, I"check_rb", Translation::same(), in_action);
HierarchyLocations::con(CARRY_OUT_RB_HL, I"carry_out_rb", Translation::same(), in_action);
HierarchyLocations::con(REPORT_RB_HL, I"report_rb", Translation::same(), 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);
HierarchyLocations::func(ACTION_STV_CREATOR_FN_HL, I"stv_creator_fn", Translation::uniqued(), in_action);
location_requirement synoptic_actions = HierarchyLocations::synoptic_submodule(actions);
HierarchyLocations::con(ACTIONCODING_HL, I"ActionCoding", Translation::same(), synoptic_actions);
@ -178,6 +180,7 @@ void Hierarchy::establish(void) {
@e BEFORE_RB_HL
@e FOR_RB_HL
@e AFTER_RB_HL
@e ACTIVITY_STV_CREATOR_FN_HL
@e ACTIVITY_AFTER_RULEBOOKS_HL
@e ACTIVITY_ATB_RULEBOOKS_HL
@ -191,9 +194,10 @@ void Hierarchy::establish(void) {
location_requirement local_activities = HierarchyLocations::local_submodule(activities);
HierarchyLocations::ap(ACTIVITIES_HAP, local_activities, I"activity", I"_activity");
location_requirement in_activity = HierarchyLocations::any_package_of_type(I"_activity");
HierarchyLocations::con(BEFORE_RB_HL, I"before_rb", Translation::same(), in_activity);
HierarchyLocations::con(FOR_RB_HL, I"for_rb", Translation::same(), in_activity);
HierarchyLocations::con(AFTER_RB_HL, I"after_rb", Translation::same(), in_activity);
HierarchyLocations::package(BEFORE_RB_HL, I"before_rb", I"_rulebook", in_activity);
HierarchyLocations::package(FOR_RB_HL, I"for_rb", I"_rulebook", in_activity);
HierarchyLocations::package(AFTER_RB_HL, I"after_rb", I"_rulebook", in_activity);
HierarchyLocations::func(ACTIVITY_STV_CREATOR_FN_HL, I"stv_creator_fn", Translation::uniqued(), in_activity);
location_requirement synoptic_activities = HierarchyLocations::synoptic_submodule(activities);
HierarchyLocations::con(ACTIVITY_AFTER_RULEBOOKS_HL, I"Activity_after_rulebooks", Translation::same(), synoptic_activities);
@ -290,13 +294,16 @@ void Hierarchy::establish(void) {
@h Equations.
@e EQUATIONS_HAP
@e SOLVE_FN_HL
@<Establish equations@> =
submodule_identity *equations = Packaging::register_submodule(I"equations");
location_requirement local_equations = HierarchyLocations::local_submodule(equations);
HierarchyLocations::ap(EQUATIONS_HAP, local_equations, I"equation", I"_equation");
location_requirement in_equation = HierarchyLocations::any_package_of_type(I"_equation");
HierarchyLocations::func(SOLVE_FN_HL, I"solve_fn", Translation::uniqued(), in_equation);
@h Extensions.
@e SHOWEXTENSIONVERSIONS_HL
@ -402,12 +409,15 @@ void Hierarchy::establish(void) {
@h Instances.
@e INSTANCES_HAP
@e BACKDROP_FOUND_IN_FN_HL
@<Establish instances@> =
submodule_identity *instances = Packaging::register_submodule(I"instances");
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::func(BACKDROP_FOUND_IN_FN_HL, I"backdrop_found_in_fn", Translation::uniqued(), in_instance);
@h Interactive Fiction.
@ -454,6 +464,9 @@ void Hierarchy::establish(void) {
@e DECREMENT_FN_HL
@e INCREMENT_FN_HL
@e RANGER_FN_HL
@e DEFAULT_CLOSURE_FN_HL
@e GPR_FN_HL
@e INSTANCE_GPR_FN_HL
@e DEFAULTVALUEOFKOV_HL
@e DEFAULTVALUEFINDER_HL
@ -483,6 +496,9 @@ void Hierarchy::establish(void) {
HierarchyLocations::con(DECREMENT_FN_HL, I"decrement_fn", Translation::uniqued(), in_kind);
HierarchyLocations::con(INCREMENT_FN_HL, I"increment_fn", Translation::uniqued(), in_kind);
HierarchyLocations::con(RANGER_FN_HL, I"ranger_fn", Translation::uniqued(), in_kind);
HierarchyLocations::func(DEFAULT_CLOSURE_FN_HL, I"default_closure_fn", Translation::uniqued(), in_kind);
HierarchyLocations::func(GPR_FN_HL, I"gpr_fn", Translation::uniqued(), in_kind);
HierarchyLocations::func(INSTANCE_GPR_FN_HL, I"instance_gpr_fn", Translation::uniqued(), in_kind);
location_requirement synoptic_kinds = HierarchyLocations::synoptic_submodule(kinds);
HierarchyLocations::con(BASE_KIND_HWM_HL, I"BASE_KIND_HWM", Translation::same(), synoptic_kinds);
@ -573,6 +589,14 @@ void Hierarchy::establish(void) {
@e RELATIONS_HAP
@e BITMAP_HL
@e ROUTE_CACHE_HL
@e HANDLER_FN_HL
@e RELATION_INITIALISER_FN_HL
@e GUARD_F0_FN_HL
@e GUARD_F1_FN_HL
@e GUARD_TEST_FN_HL
@e GUARD_MAKE_TRUE_FN_HL
@e GUARD_MAKE_FALSE_INAME_HL
@e RELATION_FN_HL
@e CREATEDYNAMICRELATIONS_HL
@e CCOUNT_BINARY_PREDICATE_HL
@ -603,9 +627,17 @@ void Hierarchy::establish(void) {
location_requirement local_rels = HierarchyLocations::local_submodule(relations);
HierarchyLocations::ap(RELATIONS_HAP, local_rels, I"relation", I"_relation");
location_requirement in_relation = HierarchyLocations::any_package_of_type(I"_relation");
HierarchyLocations::con(BITMAP_HL, I"as_constant", Translation::uniqued(), in_relation);
HierarchyLocations::con(ROUTE_CACHE_HL, I"route_cache", Translation::uniqued(), in_relation);
location_requirement in_relation = HierarchyLocations::any_package_of_type(I"_relation");
HierarchyLocations::con(BITMAP_HL, I"as_constant", Translation::uniqued(), in_relation);
HierarchyLocations::con(ROUTE_CACHE_HL, I"route_cache", Translation::uniqued(), in_relation);
HierarchyLocations::func(HANDLER_FN_HL, I"handler_fn", Translation::uniqued(), in_relation);
HierarchyLocations::func(RELATION_INITIALISER_FN_HL, I"relation_initialiser_fn", Translation::uniqued(), in_relation);
HierarchyLocations::func(GUARD_F0_FN_HL, I"guard_f0_fn", Translation::uniqued(), in_relation);
HierarchyLocations::func(GUARD_F1_FN_HL, I"guard_f1_fn", Translation::uniqued(), in_relation);
HierarchyLocations::func(GUARD_TEST_FN_HL, I"guard_test_fn", Translation::uniqued(), in_relation);
HierarchyLocations::func(GUARD_MAKE_TRUE_FN_HL, I"guard_make_true_fn", Translation::uniqued(), in_relation);
HierarchyLocations::func(GUARD_MAKE_FALSE_INAME_HL, I"guard_make_false_iname", Translation::uniqued(), in_relation);
HierarchyLocations::func(RELATION_FN_HL, I"relation_fn", Translation::uniqued(), in_relation);
location_requirement synoptic_rels = HierarchyLocations::synoptic_submodule(relations);
HierarchyLocations::func(CREATEDYNAMICRELATIONS_HL, I"creator_fn", Translation::to(I"CreateDynamicRelations"), synoptic_rels);
@ -619,6 +651,8 @@ void Hierarchy::establish(void) {
@e OUTCOMES_HAP
@e RULEBOOKS_HAP
@e RUN_FN_HL
@e RULEBOOK_STV_CREATOR_FN_HL
@e NUMBER_RULEBOOKS_CREATED_HL
@e RULEBOOK_VAR_CREATORS_HL
@ -635,6 +669,9 @@ void Hierarchy::establish(void) {
location_requirement local_rulebooks = HierarchyLocations::local_submodule(rulebooks);
HierarchyLocations::ap(OUTCOMES_HAP, local_rulebooks, I"rulebook_outcome", I"_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);
HierarchyLocations::func(RULEBOOK_STV_CREATOR_FN_HL, I"stv_creator_fn", Translation::uniqued(), in_rulebook);
location_requirement synoptic_rulebooks = HierarchyLocations::synoptic_submodule(rulebooks);
HierarchyLocations::con(NUMBER_RULEBOOKS_CREATED_HL, I"NUMBER_RULEBOOKS_CREATED", Translation::same(), synoptic_rulebooks);

View file

@ -629,8 +629,7 @@ package_request *BinaryPredicates::package(binary_predicate *bp) {
inter_name *BinaryPredicates::handler_iname(binary_predicate *bp) {
if (bp->handler_iname == NULL) {
package_request *R = BinaryPredicates::package(bp);
bp->handler_iname = Packaging::function(InterNames::one_off(I"handler_fn", R), R, NULL);
Inter::Symbols::set_flag(InterNames::to_symbol(bp->handler_iname), MAKE_NAME_UNIQUE);
bp->handler_iname = Hierarchy::make_iname_in(HANDLER_FN_HL, R);
}
return bp->handler_iname;
}

View file

@ -214,8 +214,7 @@ void Relations::parse_new_relation_further(parse_node *PN) {
bp->dynamic_memory = TRUE;
bpr->dynamic_memory = TRUE;
package_request *P = BinaryPredicates::package(bp);
bp->initialiser_iname = Packaging::function(InterNames::one_off(I"relation_initialiser_fn", P), P, NULL);
Inter::Symbols::set_flag(InterNames::to_symbol(bp->initialiser_iname), MAKE_NAME_UNIQUE);
bp->initialiser_iname = Hierarchy::make_iname_in(RELATION_INITIALISER_FN_HL, P);
}
BinaryPredicates::mark_as_needed(bp);
@ -260,34 +259,29 @@ void Relations::parse_new_relation_further(parse_node *PN) {
rg->guard_make_false_iname = NULL;
if (rg->f0) {
package_request *R = BinaryPredicates::package(bp);
rg->guard_f0_iname = Packaging::function(InterNames::one_off(I"guard_f0_fn", R), R, NULL);
Inter::Symbols::set_flag(InterNames::to_symbol(rg->guard_f0_iname), MAKE_NAME_UNIQUE);
rg->guard_f0_iname = Hierarchy::make_iname_in(GUARD_F0_FN_HL, R);
BinaryPredicates::set_term_function(&(bp->term_details[0]),
Calculus::Schemas::new("(%n(*1))", rg->guard_f0_iname));
}
if (rg->f1) {
package_request *R = BinaryPredicates::package(bp);
rg->guard_f1_iname = Packaging::function(InterNames::one_off(I"guard_f1_fn", R), R, NULL);
Inter::Symbols::set_flag(InterNames::to_symbol(rg->guard_f1_iname), MAKE_NAME_UNIQUE);
rg->guard_f1_iname = Hierarchy::make_iname_in(GUARD_F1_FN_HL, R);
BinaryPredicates::set_term_function(&(bp->term_details[1]),
Calculus::Schemas::new("(%n(*1))", rg->guard_f1_iname));
}
if (bp->test_function) {
package_request *R = BinaryPredicates::package(bp);
rg->guard_test_iname = Packaging::function(InterNames::one_off(I"guard_test_fn", R), R, NULL);
Inter::Symbols::set_flag(InterNames::to_symbol(rg->guard_test_iname), MAKE_NAME_UNIQUE);
rg->guard_test_iname = Hierarchy::make_iname_in(GUARD_TEST_FN_HL, R);
bp->test_function = Calculus::Schemas::new("(%n(*1,*2))", rg->guard_test_iname);
}
if (bp->make_true_function) {
package_request *R = BinaryPredicates::package(bp);
rg->guard_make_true_iname = Packaging::function(InterNames::one_off(I"guard_make_true_fn", R), R, NULL);
Inter::Symbols::set_flag(InterNames::to_symbol(rg->guard_make_true_iname), MAKE_NAME_UNIQUE);
rg->guard_make_true_iname = Hierarchy::make_iname_in(GUARD_MAKE_TRUE_FN_HL, R);
bp->make_true_function = Calculus::Schemas::new("(%n(*1,*2))", rg->guard_make_true_iname);
}
if (bp->make_false_function) {
package_request *R = BinaryPredicates::package(bp);
rg->guard_make_false_iname = Packaging::function(InterNames::one_off(I"guard_make_false_fn", R), R, NULL);
Inter::Symbols::set_flag(InterNames::to_symbol(rg->guard_make_false_iname), MAKE_NAME_UNIQUE);
rg->guard_make_false_iname = Hierarchy::make_iname_in(GUARD_MAKE_FALSE_INAME_HL, R);
bp->make_false_function = Calculus::Schemas::new("(%n(*1,*2))", rg->guard_make_false_iname);
}
}
@ -734,8 +728,7 @@ K to L when (some condition)".
@<Complete as a relation-by-routine BP@> =
bp->form_of_relation = Relation_ByRoutine;
package_request *P = BinaryPredicates::package(bp);
bp->bp_by_routine_iname = Packaging::function(InterNames::one_off(I"relation_fn", P), P, NULL);
Inter::Symbols::set_flag(InterNames::to_symbol(bp->bp_by_routine_iname), MAKE_NAME_UNIQUE);
bp->bp_by_routine_iname = Hierarchy::make_iname_in(RELATION_FN_HL, P);
bp->test_function = Calculus::Schemas::new("(%n(*1,*2))", bp->bp_by_routine_iname);
bp->condition_defn_text = CONW;
@ -1015,8 +1008,8 @@ void Relations::compile_relation_records(void) {
binary_predicate *dbp = bp;
if (bp->right_way_round == FALSE) dbp = bp->reversal;
inter_name *bm_symb = Packaging::supply_iname(bp->bp_package, MISC_PR_COUNTER);
Emit::sum_constant_begin(bm_symb, K_value);
Inter::Symbols::set_flag(InterNames::to_symbol(bm_symb), MAKE_NAME_UNIQUE);
Emit::sum_constant_begin(bm_symb, K_value);
if (RELS_TEST_iname == NULL) internal_error("no RELS symbols yet");
Emit::array_iname_entry(RELS_TEST_iname);
if (minimal == FALSE) {

View file

@ -287,14 +287,7 @@ int PL::Backdrops::backdrops_complete_model(int stage) {
backdrop_found_in_notice *notice = CREATE(backdrop_found_in_notice);
notice->backdrop = I;
package_request *R = Instances::package(I);
notice->found_in_routine_iname =
Packaging::function(
InterNames::one_off(I"backdrop_found_in_fn", R),
R,
NULL);
Inter::Symbols::set_flag(InterNames::to_symbol(notice->found_in_routine_iname),
MAKE_NAME_UNIQUE);
InterNames::to_symbol(notice->found_in_routine_iname);
notice->found_in_routine_iname = Hierarchy::make_iname_in(BACKDROP_FOUND_IN_FN_HL, R);
notice->many_places = TRUE;
FOUNDIN = notice->found_in_routine_iname;
@ -307,13 +300,7 @@ code, derived from the old I6 library, requires |absent| to be set. So:
backdrop_found_in_notice *notice = CREATE(backdrop_found_in_notice);
notice->backdrop = I;
package_request *R = Instances::package(I);
notice->found_in_routine_iname =
Packaging::function(
InterNames::one_off(I"backdrop_found_in_fn", R),
R,
NULL);
Inter::Symbols::set_flag(InterNames::to_symbol(notice->found_in_routine_iname),
MAKE_NAME_UNIQUE);
notice->found_in_routine_iname = Hierarchy::make_iname_in(BACKDROP_FOUND_IN_FN_HL, R);
InterNames::to_symbol(notice->found_in_routine_iname);
notice->many_places = FALSE;
FOUNDIN = notice->found_in_routine_iname;

View file

@ -692,12 +692,8 @@ void PL::Actions::compile_action_name_var_creators(void) {
action_name *an;
LOOP_OVER(an, action_name) {
if ((an->owned_by_an) &&
(StackedVariables::owner_empty(an->owned_by_an) == FALSE)) {
inter_name *iname = Packaging::function(
InterNames::one_off(I"stv_creator_fn", an->an_package),
an->an_package,
NULL);
Inter::Symbols::set_flag(InterNames::to_symbol(iname), MAKE_NAME_UNIQUE);
(StackedVariables::owner_empty(an->owned_by_an) == FALSE)) {
inter_name *iname = Hierarchy::make_iname_in(ACTION_STV_CREATOR_FN_HL, an->an_package);
StackedVariables::compile_frame_creator(an->owned_by_an, iname);
}
}