mirror of
https://github.com/ganelson/inform.git
synced 2024-07-03 07:24:58 +03:00
Handled exotic hierarchy locations better
This commit is contained in:
parent
9da9314e28
commit
972993e2e9
|
@ -60,7 +60,7 @@ kinds being compiled to an I6 <code class="display"><span class="extract">Class<
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">The function Kinds::RunTime::I6_classname is used in <a href="#SP27">§27</a>, 6/bp (<a href="6-bp.html#SP25">§25</a>), 6/rlt (<a href="6-rlt.html#SP29_2">§29.2</a>, <a href="6-rlt.html#SP29_3">§29.3</a>, <a href="6-rlt.html#SP29_4">§29.4</a>, <a href="6-rlt.html#SP29_5">§29.5</a>, <a href="6-rlt.html#SP29_6">§29.6</a>), 12/ter (<a href="12-ter.html#SP8_6">§8.6</a>), 12/ca (<a href="12-ca.html#SP6_2">§6.2</a>), 12/dtd (<a href="12-dtd.html#SP24">§24</a>), 13/kak (<a href="13-kak.html#SP2">§2</a>), 25/cii (<a href="25-cii.html#SP3_1_1_4_7_1">§3.1.1.4.7.1</a>), 26/iti (<a href="26-iti.html#SP9">§9</a>), 27/is (<a href="27-is.html#SP31_8_1">§31.8.1</a>), 27/hl (<a href="27-hl.html#SP1">§1</a>).</p>
|
||||
<p class="endnote">The function Kinds::RunTime::I6_classname is used in <a href="#SP27">§27</a>, 6/bp (<a href="6-bp.html#SP25">§25</a>), 6/rlt (<a href="6-rlt.html#SP29_2">§29.2</a>, <a href="6-rlt.html#SP29_3">§29.3</a>, <a href="6-rlt.html#SP29_4">§29.4</a>, <a href="6-rlt.html#SP29_5">§29.5</a>, <a href="6-rlt.html#SP29_6">§29.6</a>), 12/ter (<a href="12-ter.html#SP8_6">§8.6</a>), 12/ca (<a href="12-ca.html#SP6_2">§6.2</a>), 12/dtd (<a href="12-dtd.html#SP24">§24</a>), 13/kak (<a href="13-kak.html#SP2">§2</a>), 25/cii (<a href="25-cii.html#SP3_1_1_4_7_1">§3.1.1.4.7.1</a>), 26/iti (<a href="26-iti.html#SP9">§9</a>), 27/is (<a href="27-is.html#SP31_8_1">§31.8.1</a>), 27/hr (<a href="27-hr.html#SP5">§5</a>).</p>
|
||||
|
||||
<p class="endnote">The function Kinds::RunTime::I6_classnumber is used in 16/ic (<a href="16-ic.html#SP6">§6</a>, <a href="16-ic.html#SP12_2">§12.2</a>), 27/in (<a href="27-in.html#SP3">§3</a>).</p>
|
||||
|
||||
|
@ -1252,7 +1252,7 @@ each such kind, and needed at run-time.
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">The function Kinds::RunTime::package is used in <a href="#SP15">§15</a>, 15/epv (<a href="15-epv.html#SP2">§2</a>), 22/pav (<a href="22-pav.html#SP9">§9</a>), 27/ei (<a href="27-ei.html#SP4">§4</a>), 27/hl (<a href="27-hl.html#SP1">§1</a>).</p>
|
||||
<p class="endnote">The function Kinds::RunTime::package is used in <a href="#SP15">§15</a>, 15/epv (<a href="15-epv.html#SP2">§2</a>), 22/pav (<a href="22-pav.html#SP9">§9</a>), 27/ei (<a href="27-ei.html#SP4">§4</a>).</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP24"></a><b>§24. </b></p>
|
||||
|
||||
|
|
|
@ -117,10 +117,8 @@ to the same routines to print them.
|
|||
<span class="plain">(</span><span class="functiontext">LocalVariables::count</span><span class="plain">(</span><span class="functiontext">Frames::current_stack_frame</span><span class="plain">()) > 0))</span>
|
||||
<span class="identifier">ts</span><span class="plain">-</span><span class="element">>local_names_existed_at_usage_time</span><span class="plain"> = </span><span class="identifier">TRUE</span><span class="plain">;</span>
|
||||
<span class="identifier">ts</span><span class="plain">-</span><span class="element">>ts_iname</span><span class="plain"> = </span><span class="functiontext">Packaging::supply_iname</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="constant">SUBSTITUTION_PR_COUNTER</span><span class="plain">);</span>
|
||||
<span class="comment">InterNames::new_in(TEXT_SUBSTITUTION_INAMEF, Modules::current());</span>
|
||||
<span class="identifier">ts</span><span class="plain">-</span><span class="element">>ts_routine_iname</span><span class="plain"> =</span>
|
||||
<span class="functiontext">Packaging::function</span><span class="plain">(</span><span class="functiontext">Packaging::supply_iname</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="constant">SUBSTITUTIONF_PR_COUNTER</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="comment">InterNames::new_derived(TEXT_ROUTINE_INAMEF, ts->ts_iname);</span>
|
||||
<span class="identifier">ts</span><span class="plain">-</span><span class="element">>belongs_to_module</span><span class="plain"> = </span><span class="functiontext">Modules::current</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">ts</span><span class="plain">-</span><span class="element">>ts_iname</span><span class="plain">), </span><span class="identifier">MAKE_NAME_UNIQUE</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">ts</span><span class="plain">-</span><span class="element">>ts_routine_iname</span><span class="plain">), </span><span class="identifier">MAKE_NAME_UNIQUE</span><span class="plain">);</span>
|
||||
|
|
|
@ -297,9 +297,7 @@ built (for instance, scene endings).
|
|||
<span class="reserved">else</span><span class="plain"> </span><span class="identifier">package_name</span><span class="plain"> = </span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">supplied</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">>rb_package</span><span class="plain"> = </span><span class="functiontext">Packaging::request</span><span class="plain">(</span><span class="identifier">package_name</span><span class="plain">, </span><span class="identifier">R</span><span class="plain">, </span><span class="identifier">rulebook_ptype</span><span class="plain">);</span>
|
||||
<span class="identifier">rb</span><span class="plain">-</span><span class="element">>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">>rb_package</span><span class="plain">), </span><span class="identifier">rb</span><span class="plain">-</span><span class="element">>rb_package</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">);</span>
|
||||
<span class="comment">InterNames::attach_memo(rb->rb_iname, rb->primary_name);</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">>rb_iname</span><span class="plain">), </span><span class="identifier">MAKE_NAME_UNIQUE</span><span class="plain">);</span>
|
||||
<span class="comment">InterNames::new(RULEBOOK_INAMEF);</span>
|
||||
|
||||
<span class="identifier">rb</span><span class="plain">-</span><span class="element">>rule_list</span><span class="plain"> = </span><span class="functiontext">Rules::Bookings::list_new</span><span class="plain">();</span>
|
||||
|
||||
|
|
|
@ -1233,7 +1233,7 @@ insert them into the Inter stream close to the top.
|
|||
|
||||
<p class="endnote">The function Emit::kind_inner is used in <a href="#SP3">§3</a>.</p>
|
||||
|
||||
<p class="endnote">The function Emit::variable is used in 5/nv (<a href="5-nv.html#SP16">§16</a>), 27/hl (<a href="27-hl.html#SP1">§1</a>).</p>
|
||||
<p class="endnote">The function Emit::variable is used in 5/nv (<a href="5-nv.html#SP16">§16</a>), 27/hr (<a href="27-hr.html#SP5">§5</a>).</p>
|
||||
|
||||
<p class="endnote">The function Emit::marker appears nowhere else.</p>
|
||||
|
||||
|
@ -1259,7 +1259,7 @@ insert them into the Inter stream close to the top.
|
|||
|
||||
<p class="endnote">The function Emit::named_generic_constant is used in 21/rl (<a href="21-rl.html#SP9">§9</a>).</p>
|
||||
|
||||
<p class="endnote">The function Emit::named_numeric_constant is used in 6/rlt (<a href="6-rlt.html#SP20_3">§20.3</a>), 13/kak (<a href="13-kak.html#SP5">§5</a>), 13/rsfk (<a href="13-rsfk.html#SP26">§26</a>), 21/ac (<a href="21-ac.html#SP6">§6</a>), 22/cs (<a href="22-cs.html#SP8">§8</a>), 24/ch (<a href="24-ch.html#SP8">§8</a>), 26/vm (<a href="26-vm.html#SP8">§8</a>), 26/uo (<a href="26-uo.html#SP21">§21</a>), 26/pl (<a href="26-pl.html#SP12">§12</a>), 26/ts (<a href="26-ts.html#SP10">§10</a>), 27/hl (<a href="27-hl.html#SP1">§1</a>).</p>
|
||||
<p class="endnote">The function Emit::named_numeric_constant is used in 6/rlt (<a href="6-rlt.html#SP20_3">§20.3</a>), 13/kak (<a href="13-kak.html#SP5">§5</a>), 13/rsfk (<a href="13-rsfk.html#SP26">§26</a>), 21/ac (<a href="21-ac.html#SP6">§6</a>), 22/cs (<a href="22-cs.html#SP8">§8</a>), 24/ch (<a href="24-ch.html#SP8">§8</a>), 26/vm (<a href="26-vm.html#SP8">§8</a>), 26/uo (<a href="26-uo.html#SP21">§21</a>), 26/pl (<a href="26-pl.html#SP12">§12</a>), 26/ts (<a href="26-ts.html#SP10">§10</a>), 27/hr (<a href="27-hr.html#SP5">§5</a>).</p>
|
||||
|
||||
<p class="endnote">The function Emit::hold_numeric_constant appears nowhere else.</p>
|
||||
|
||||
|
|
|
@ -19,52 +19,48 @@
|
|||
<span class="reserved">struct</span><span class="plain"> </span><span class="identifier">text_stream</span><span class="plain"> *</span><span class="identifier">function_package_name</span><span class="plain">;</span>
|
||||
<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">package_request</span><span class="plain"> *</span><span class="identifier">package</span><span class="plain">;</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">exotic_package_identifier</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="identifier">MEMORY_MANAGEMENT</span>
|
||||
<span class="plain">} </span><span class="reserved">named_resource_location</span><span class="plain">;</span>
|
||||
|
||||
<span class="reserved">named_resource_location</span><span class="plain"> *</span><span class="identifier">nrls_indexed_by_id</span><span class="plain">[</span><span class="constant">MAX_HL</span><span class="plain">];</span>
|
||||
<span class="identifier">dictionary</span><span class="plain"> *</span><span class="identifier">nrls_indexed_by_name</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
|
||||
<span class="reserved">named_resource_location</span><span class="plain"> *</span><span class="functiontext">HierarchyLocations::make_in</span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">id</span><span class="plain">, </span><span class="identifier">text_stream</span><span class="plain"> *</span><span class="identifier">name</span><span class="plain">, </span><span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">) {</span>
|
||||
<span class="reserved">named_resource_location</span><span class="plain"> *</span><span class="functiontext">HierarchyLocations::new</span><span class="plain">(</span><span class="reserved">void</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">CREATE</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="element">>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">>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">>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">>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">>package</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">>equates_to_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">id</span><span class="plain"> >= 0) </span><span class="identifier">nrls_indexed_by_id</span><span class="plain">[</span><span class="identifier">id</span><span class="plain">] = </span><span class="identifier">nrl</span><span class="plain">;</span>
|
||||
<span class="identifier">Dictionaries::create</span><span class="plain">(</span><span class="identifier">nrls_indexed_by_name</span><span class="plain">, </span><span class="identifier">name</span><span class="plain">);</span>
|
||||
<span class="identifier">Dictionaries::write_value</span><span class="plain">(</span><span class="identifier">nrls_indexed_by_name</span><span class="plain">, </span><span class="identifier">name</span><span class="plain">, (</span><span class="reserved">void</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="identifier">CREATE</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="element">>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">>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">>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">>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">>package</span><span class="plain"> = </span><span class="identifier">iname</span><span class="plain">-</span><span class="element">>eventual_owner</span><span class="plain">;</span>
|
||||
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">>equates_to_iname</span><span class="plain"> = </span><span class="identifier">iname</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">id</span><span class="plain"> >= 0) </span><span class="identifier">nrls_indexed_by_id</span><span class="plain">[</span><span class="identifier">id</span><span class="plain">] = </span><span class="identifier">nrl</span><span class="plain">;</span>
|
||||
<span class="identifier">Dictionaries::create</span><span class="plain">(</span><span class="identifier">nrls_indexed_by_name</span><span class="plain">, </span><span class="identifier">name</span><span class="plain">);</span>
|
||||
<span class="identifier">Dictionaries::write_value</span><span class="plain">(</span><span class="identifier">nrls_indexed_by_name</span><span class="plain">, </span><span class="identifier">name</span><span class="plain">, (</span><span class="reserved">void</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_on_demand</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">named_resource_location</span><span class="plain"> *</span><span class="identifier">nrl</span><span class="plain"> = </span><span class="identifier">CREATE</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="element">>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">>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">>access_number</span><span class="plain"> = -1;</span>
|
||||
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">>access_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">>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">>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">>package</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">>equates_to_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">id</span><span class="plain"> >= 0) </span><span class="identifier">nrls_indexed_by_id</span><span class="plain">[</span><span class="identifier">id</span><span class="plain">] = </span><span class="identifier">nrl</span><span class="plain">;</span>
|
||||
<span class="identifier">Dictionaries::create</span><span class="plain">(</span><span class="identifier">nrls_indexed_by_name</span><span class="plain">, </span><span class="identifier">name</span><span class="plain">);</span>
|
||||
<span class="identifier">Dictionaries::write_value</span><span class="plain">(</span><span class="identifier">nrls_indexed_by_name</span><span class="plain">, </span><span class="identifier">name</span><span class="plain">, (</span><span class="reserved">void</span><span class="plain"> *) </span><span class="identifier">nrl</span><span class="plain">);</span>
|
||||
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">>exotic_package_identifier</span><span class="plain"> = -1;</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_in</span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">id</span><span class="plain">, </span><span class="identifier">text_stream</span><span class="plain"> *</span><span class="identifier">name</span><span class="plain">, </span><span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">) {</span>
|
||||
<span class="reserved">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">>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">>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">>package</span><span class="plain"> = </span><span class="identifier">P</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_in_exotic</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">int</span><span class="plain"> </span><span class="identifier">x</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">>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">>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">>exotic_package_identifier</span><span class="plain"> = </span><span class="identifier">x</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">>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">>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">>package</span><span class="plain"> = </span><span class="identifier">iname</span><span class="plain">-</span><span class="element">>eventual_owner</span><span class="plain">;</span>
|
||||
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">>equates_to_iname</span><span class="plain"> = </span><span class="identifier">iname</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>
|
||||
|
||||
|
@ -73,12 +69,18 @@
|
|||
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">>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">>access_name</span><span class="plain"> = </span><span class="identifier">Str::duplicate</span><span class="plain">(</span><span class="identifier">call_name</span><span class="plain">);</span>
|
||||
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">>function_package_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">>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">>package</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">>equates_to_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">id</span><span class="plain"> >= 0) </span><span class="identifier">nrls_indexed_by_id</span><span class="plain">[</span><span class="identifier">id</span><span class="plain">] = </span><span class="identifier">nrl</span><span class="plain">;</span>
|
||||
<span class="identifier">Dictionaries::create</span><span class="plain">(</span><span class="identifier">nrls_indexed_by_name</span><span class="plain">, </span><span class="identifier">call_name</span><span class="plain">);</span>
|
||||
<span class="identifier">Dictionaries::write_value</span><span class="plain">(</span><span class="identifier">nrls_indexed_by_name</span><span class="plain">, </span><span class="identifier">call_name</span><span class="plain">, (</span><span class="reserved">void</span><span class="plain"> *) </span><span class="identifier">nrl</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_function_in_exotic</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">call_name</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">x</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">CREATE</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="element">>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">>access_name</span><span class="plain"> = </span><span class="identifier">Str::duplicate</span><span class="plain">(</span><span class="identifier">call_name</span><span class="plain">);</span>
|
||||
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">>function_package_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">>exotic_package_identifier</span><span class="plain"> = </span><span class="identifier">x</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>
|
||||
|
||||
|
@ -86,16 +88,25 @@
|
|||
<span class="reserved">named_resource_location</span><span class="plain"> *</span><span class="identifier">nrl</span><span class="plain"> = </span><span class="identifier">CREATE</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="element">>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">>access_name</span><span class="plain"> = </span><span class="identifier">Str::duplicate</span><span class="plain">(</span><span class="identifier">datum_name</span><span class="plain">);</span>
|
||||
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">>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">>datum_package_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">>package</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">>equates_to_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">id</span><span class="plain"> >= 0) </span><span class="identifier">nrls_indexed_by_id</span><span class="plain">[</span><span class="identifier">id</span><span class="plain">] = </span><span class="identifier">nrl</span><span class="plain">;</span>
|
||||
<span class="identifier">Dictionaries::create</span><span class="plain">(</span><span class="identifier">nrls_indexed_by_name</span><span class="plain">, </span><span class="identifier">datum_name</span><span class="plain">);</span>
|
||||
<span class="identifier">Dictionaries::write_value</span><span class="plain">(</span><span class="identifier">nrls_indexed_by_name</span><span class="plain">, </span><span class="identifier">datum_name</span><span class="plain">, (</span><span class="reserved">void</span><span class="plain"> *) </span><span class="identifier">nrl</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_datum_in_exotic</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">datum_name</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">x</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">CREATE</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="element">>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">>access_name</span><span class="plain"> = </span><span class="identifier">Str::duplicate</span><span class="plain">(</span><span class="identifier">datum_name</span><span class="plain">);</span>
|
||||
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">>datum_package_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">>exotic_package_identifier</span><span class="plain"> = </span><span class="identifier">x</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="identifier">nrls_indexed_by_id</span><span class="plain">[</span><span class="constant">MAX_HL</span><span class="plain">];</span>
|
||||
<span class="identifier">dictionary</span><span class="plain"> *</span><span class="identifier">nrls_indexed_by_name</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">nrls_created</span><span class="plain"> = </span><span class="identifier">FALSE</span><span class="plain">;</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">HierarchyLocations::create_nrls</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||
<span class="identifier">nrls_created</span><span class="plain"> = </span><span class="identifier">TRUE</span><span class="plain">;</span>
|
||||
|
@ -104,6 +115,13 @@
|
|||
<span class="functiontext">Hierarchy::establish</span><span class="plain">();</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">HierarchyLocations::index</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="reserved">if</span><span class="plain"> (</span><span class="identifier">nrls_created</span><span class="plain"> == </span><span class="identifier">FALSE</span><span class="plain">) </span><span class="functiontext">HierarchyLocations::create_nrls</span><span class="plain">();</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>access_number</span><span class="plain"> >= 0) </span><span class="identifier">nrls_indexed_by_id</span><span class="plain">[</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>access_number</span><span class="plain">] = </span><span class="identifier">nrl</span><span class="plain">;</span>
|
||||
<span class="identifier">Dictionaries::create</span><span class="plain">(</span><span class="identifier">nrls_indexed_by_name</span><span class="plain">, </span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>access_name</span><span class="plain">);</span>
|
||||
<span class="identifier">Dictionaries::write_value</span><span class="plain">(</span><span class="identifier">nrls_indexed_by_name</span><span class="plain">, </span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>access_name</span><span class="plain">, (</span><span class="reserved">void</span><span class="plain"> *) </span><span class="identifier">nrl</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="functiontext">HierarchyLocations::find</span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">id</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">nrls_created</span><span class="plain"> == </span><span class="identifier">FALSE</span><span class="plain">) </span><span class="functiontext">HierarchyLocations::create_nrls</span><span class="plain">();</span>
|
||||
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">id</span><span class="plain"> < 0) || (</span><span class="identifier">id</span><span class="plain"> >= </span><span class="constant">MAX_HL</span><span class="plain">) || (</span><span class="identifier">nrls_indexed_by_id</span><span class="plain">[</span><span class="identifier">id</span><span class="plain">] == </span><span class="identifier">NULL</span><span class="plain">))</span>
|
||||
|
@ -129,100 +147,33 @@
|
|||
|
||||
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="functiontext">HierarchyLocations::nrl_to_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="reserved">if</span><span class="plain"> (</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>equates_to_iname</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>package</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>exotic_package_identifier</span><span class="plain"> >= 0)</span>
|
||||
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">>package</span><span class="plain"> = </span><span class="functiontext">Hierarchy::exotic_package</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>exotic_package_identifier</span><span class="plain">);</span>
|
||||
<span class="reserved">else</span><span class="plain"> </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"package can't be found'"</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>package</span><span class="plain"> == </span><span class="functiontext">Packaging::request_template</span><span class="plain">()) {</span>
|
||||
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Packaging::enter</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>package</span><span class="plain">);</span>
|
||||
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">>equates_to_iname</span><span class="plain"> = </span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>access_name</span><span class="plain">, </span><span class="functiontext">Packaging::request_template</span><span class="plain">());</span>
|
||||
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">>equates_to_iname</span><span class="plain">-</span><span class="element">>symbol</span><span class="plain"> = </span><span class="functiontext">Emit::extern</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>access_name</span><span class="plain">, </span><span class="identifier">K_value</span><span class="plain">);</span>
|
||||
<span class="functiontext">Packaging::exit</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>equates_to_iname</span><span class="plain">;</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">>function_package_name</span><span class="plain">) > 0) {</span>
|
||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Str::len</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>function_package_name</span><span class="plain">) > 0) {</span>
|
||||
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">>equates_to_iname</span><span class="plain"> = </span><span class="functiontext">Packaging::function_text</span><span class="plain">(</span>
|
||||
<span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>function_package_name</span><span class="plain">, </span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>package</span><span class="plain">),</span>
|
||||
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">>package</span><span class="plain">,</span>
|
||||
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">>access_name</span><span class="plain">);</span>
|
||||
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">>package</span><span class="plain"> = </span><span class="functiontext">Packaging::home_of</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>equates_to_iname</span><span class="plain">);</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">>datum_package_name</span><span class="plain">) > 0) {</span>
|
||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Str::len</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>datum_package_name</span><span class="plain">) > 0) {</span>
|
||||
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">>equates_to_iname</span><span class="plain"> = </span><span class="functiontext">Packaging::datum_text</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">>datum_package_name</span><span class="plain">, </span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>package</span><span class="plain">),</span>
|
||||
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">>package</span><span class="plain">,</span>
|
||||
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">>access_name</span><span class="plain">);</span>
|
||||
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">>package</span><span class="plain"> = </span><span class="functiontext">Packaging::home_of</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>equates_to_iname</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>package</span><span class="plain">) && (</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>equates_to_iname</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">))</span>
|
||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>package</span><span class="plain">) && (</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>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">>equates_to_iname</span><span class="plain"> = </span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>access_name</span><span class="plain">, </span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>package</span><span class="plain">);</span>
|
||||
<span class="reserved">switch</span><span class="plain"> (</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>access_number</span><span class="plain">) {</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">THESAME_HL</span><span class="plain">:</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">PLURALFOUND_HL</span><span class="plain">:</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">PARENT_HL</span><span class="plain">:</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">CHILD_HL</span><span class="plain">:</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">SIBLING_HL</span><span class="plain">:</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">THEDARK_HL</span><span class="plain">:</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">FLOAT_NAN_HL</span><span class="plain">:</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">RESPONSETEXTS_HL</span><span class="plain">: {</span>
|
||||
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Packaging::enter_home_of</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>equates_to_iname</span><span class="plain">);</span>
|
||||
<span class="functiontext">Emit::named_numeric_constant</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>equates_to_iname</span><span class="plain">, 0);</span>
|
||||
<span class="functiontext">Packaging::exit</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
|
||||
<span class="reserved">break</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">SELF_HL</span><span class="plain">: {</span>
|
||||
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Packaging::enter_home_of</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>equates_to_iname</span><span class="plain">);</span>
|
||||
<span class="functiontext">Emit::variable</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>equates_to_iname</span><span class="plain">, </span><span class="identifier">K_value</span><span class="plain">, </span><span class="identifier">UNDEF_IVAL</span><span class="plain">, 0, </span><span class="identifier">I</span><span class="string">"self"</span><span class="plain">);</span>
|
||||
<span class="functiontext">Packaging::exit</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
|
||||
<span class="reserved">break</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">NOTHING_HL</span><span class="plain">:</span>
|
||||
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">>package</span><span class="plain"> = </span><span class="identifier">Kinds::Behaviour::package</span><span class="plain">(</span><span class="identifier">K_object</span><span class="plain">);</span>
|
||||
<span class="reserved">break</span><span class="plain">;</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">OBJECT_HL</span><span class="plain">:</span>
|
||||
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">>equates_to_iname</span><span class="plain"> = </span><span class="functiontext">Kinds::RunTime::I6_classname</span><span class="plain">(</span><span class="identifier">K_object</span><span class="plain">);</span>
|
||||
<span class="reserved">break</span><span class="plain">;</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">TESTUSEOPTION_HL</span><span class="plain">:</span>
|
||||
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">>equates_to_iname</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::function</span><span class="plain">(</span>
|
||||
<span class="functiontext">Kinds::RunTime::package</span><span class="plain">(</span><span class="identifier">K_use_option</span><span class="plain">), </span><span class="identifier">I</span><span class="string">"test_fn"</span><span class="plain">, </span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>access_name</span><span class="plain">);</span>
|
||||
<span class="reserved">break</span><span class="plain">;</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">TABLEOFTABLES_HL</span><span class="plain">:</span>
|
||||
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">>package</span><span class="plain"> = </span><span class="identifier">Kinds::Behaviour::package</span><span class="plain">(</span><span class="identifier">K_table</span><span class="plain">);</span>
|
||||
<span class="reserved">break</span><span class="plain">;</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">TABLEOFVERBS_HL</span><span class="plain">:</span>
|
||||
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">>package</span><span class="plain"> = </span><span class="identifier">Kinds::Behaviour::package</span><span class="plain">(</span><span class="identifier">K_verb</span><span class="plain">);</span>
|
||||
<span class="reserved">break</span><span class="plain">;</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">CAPSHORTNAME_HL</span><span class="plain">:</span>
|
||||
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">>package</span><span class="plain"> = </span><span class="identifier">Kinds::Behaviour::package</span><span class="plain">(</span><span class="identifier">K_object</span><span class="plain">);</span>
|
||||
<span class="reserved">break</span><span class="plain">;</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">RESOURCEIDSOFFIGURES_HL</span><span class="plain">:</span>
|
||||
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">>package</span><span class="plain"> = </span><span class="identifier">Kinds::Behaviour::package</span><span class="plain">(</span><span class="identifier">K_figure_name</span><span class="plain">);</span>
|
||||
<span class="reserved">break</span><span class="plain">;</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">RESOURCEIDSOFSOUNDS_HL</span><span class="plain">:</span>
|
||||
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">>package</span><span class="plain"> = </span><span class="identifier">Kinds::Behaviour::package</span><span class="plain">(</span><span class="identifier">K_sound_name</span><span class="plain">);</span>
|
||||
<span class="reserved">break</span><span class="plain">;</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">NO_USE_OPTIONS_HL</span><span class="plain">:</span>
|
||||
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">>package</span><span class="plain"> = </span><span class="identifier">Kinds::Behaviour::package</span><span class="plain">(</span><span class="identifier">K_use_option</span><span class="plain">);</span>
|
||||
<span class="reserved">break</span><span class="plain">;</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">DECIMAL_TOKEN_INNER_HL</span><span class="plain">:</span>
|
||||
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">>equates_to_iname</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::function</span><span class="plain">(</span>
|
||||
<span class="functiontext">Kinds::RunTime::package</span><span class="plain">(</span><span class="identifier">K_number</span><span class="plain">), </span><span class="identifier">I</span><span class="string">"gpr_fn"</span><span class="plain">, </span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>access_name</span><span class="plain">);</span>
|
||||
<span class="reserved">break</span><span class="plain">;</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">TIME_TOKEN_INNER_HL</span><span class="plain">:</span>
|
||||
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">>equates_to_iname</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::function</span><span class="plain">(</span>
|
||||
<span class="functiontext">Kinds::RunTime::package</span><span class="plain">(</span><span class="identifier">K_time</span><span class="plain">), </span><span class="identifier">I</span><span class="string">"gpr_fn"</span><span class="plain">, </span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>access_name</span><span class="plain">);</span>
|
||||
<span class="reserved">break</span><span class="plain">;</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">TRUTH_STATE_TOKEN_INNER_HL</span><span class="plain">:</span>
|
||||
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">>equates_to_iname</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::function</span><span class="plain">(</span>
|
||||
<span class="functiontext">Kinds::RunTime::package</span><span class="plain">(</span><span class="identifier">K_truth_state</span><span class="plain">), </span><span class="identifier">I</span><span class="string">"gpr_fn"</span><span class="plain">, </span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>access_name</span><span class="plain">);</span>
|
||||
<span class="reserved">break</span><span class="plain">;</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">COMMANDPROMPTTEXT_HL</span><span class="plain">:</span>
|
||||
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">>equates_to_iname</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::function</span><span class="plain">(</span>
|
||||
<span class="functiontext">Packaging::home_of</span><span class="plain">(</span><span class="functiontext">NonlocalVariables::iname</span><span class="plain">(</span><span class="identifier">command_prompt_VAR</span><span class="plain">)),</span>
|
||||
<span class="identifier">I</span><span class="string">"command_prompt_text_fn"</span><span class="plain">, </span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>access_name</span><span class="plain">);</span>
|
||||
<span class="reserved">break</span><span class="plain">;</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">>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">>equates_to_iname</span><span class="plain"> = </span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>access_name</span><span class="plain">, </span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>package</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>package</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">>package</span><span class="plain"> = </span><span class="functiontext">Packaging::home_of</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>equates_to_iname</span><span class="plain">);</span>
|
||||
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">>equates_to_iname</span><span class="plain"> = </span><span class="functiontext">Hierarchy::post_process</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>access_number</span><span class="plain">, </span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>equates_to_iname</span><span class="plain">);</span>
|
||||
<span class="identifier">nrl</span><span class="plain">-</span><span class="element">>package</span><span class="plain"> = </span><span class="functiontext">Packaging::home_of</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">>equates_to_iname</span><span class="plain">);</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="element">>equates_to_iname</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
|
@ -230,21 +181,29 @@
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">The function HierarchyLocations::make_in is used in 27/hr (<a href="27-hr.html#SP2_2">§2.2</a>, <a href="27-hr.html#SP2_4">§2.4</a>, <a href="27-hr.html#SP2_6">§2.6</a>, <a href="27-hr.html#SP2_8">§2.8</a>, <a href="27-hr.html#SP2_10">§2.10</a>, <a href="27-hr.html#SP2_12">§2.12</a>, <a href="27-hr.html#SP2_14">§2.14</a>, <a href="27-hr.html#SP2_16">§2.16</a>, <a href="27-hr.html#SP2_18">§2.18</a>, <a href="27-hr.html#SP2_20">§2.20</a>, <a href="27-hr.html#SP2_21">§2.21</a>, <a href="27-hr.html#SP2_23">§2.23</a>, <a href="27-hr.html#SP2_25">§2.25</a>, <a href="27-hr.html#SP2_29">§2.29</a>, <a href="27-hr.html#SP2_31">§2.31</a>, <a href="27-hr.html#SP2_33">§2.33</a>, <a href="27-hr.html#SP2_35">§2.35</a>, <a href="27-hr.html#SP2_37">§2.37</a>, <a href="27-hr.html#SP2_43">§2.43</a>, <a href="27-hr.html#SP4">§4</a>).</p>
|
||||
<p class="endnote">The function HierarchyLocations::new appears nowhere else.</p>
|
||||
|
||||
<p class="endnote">The function HierarchyLocations::make_as is used in 27/hr (<a href="27-hr.html#SP4">§4</a>).</p>
|
||||
<p class="endnote">The function HierarchyLocations::make_in is used in 27/hr (<a href="27-hr.html#SP2_2">§2.2</a>, <a href="27-hr.html#SP2_4">§2.4</a>, <a href="27-hr.html#SP2_6">§2.6</a>, <a href="27-hr.html#SP2_8">§2.8</a>, <a href="27-hr.html#SP2_10">§2.10</a>, <a href="27-hr.html#SP2_12">§2.12</a>, <a href="27-hr.html#SP2_14">§2.14</a>, <a href="27-hr.html#SP2_16">§2.16</a>, <a href="27-hr.html#SP2_18">§2.18</a>, <a href="27-hr.html#SP2_20">§2.20</a>, <a href="27-hr.html#SP2_21">§2.21</a>, <a href="27-hr.html#SP2_23">§2.23</a>, <a href="27-hr.html#SP2_25">§2.25</a>, <a href="27-hr.html#SP2_29">§2.29</a>, <a href="27-hr.html#SP2_31">§2.31</a>, <a href="27-hr.html#SP2_33">§2.33</a>, <a href="27-hr.html#SP2_35">§2.35</a>, <a href="27-hr.html#SP2_37">§2.37</a>, <a href="27-hr.html#SP2_43">§2.43</a>, <a href="27-hr.html#SP6">§6</a>).</p>
|
||||
|
||||
<p class="endnote">The function HierarchyLocations::make_on_demand is used in 27/hr (<a href="27-hr.html#SP2_41">§2.41</a>).</p>
|
||||
<p class="endnote">The function HierarchyLocations::make_in_exotic is used in 27/hr (<a href="27-hr.html#SP2_41">§2.41</a>).</p>
|
||||
|
||||
<p class="endnote">The function HierarchyLocations::make_as is used in 27/hr (<a href="27-hr.html#SP6">§6</a>).</p>
|
||||
|
||||
<p class="endnote">The function HierarchyLocations::make_function is used in 27/hr (<a href="27-hr.html#SP2_10">§2.10</a>, <a href="27-hr.html#SP2_14">§2.14</a>, <a href="27-hr.html#SP2_18">§2.18</a>, <a href="27-hr.html#SP2_21">§2.21</a>, <a href="27-hr.html#SP2_25">§2.25</a>, <a href="27-hr.html#SP2_27">§2.27</a>, <a href="27-hr.html#SP2_29">§2.29</a>, <a href="27-hr.html#SP2_31">§2.31</a>, <a href="27-hr.html#SP2_33">§2.33</a>, <a href="27-hr.html#SP2_35">§2.35</a>, <a href="27-hr.html#SP2_39">§2.39</a>).</p>
|
||||
|
||||
<p class="endnote">The function HierarchyLocations::make_function_in_exotic is used in 27/hr (<a href="27-hr.html#SP2_41">§2.41</a>).</p>
|
||||
|
||||
<p class="endnote">The function HierarchyLocations::make_datum is used in 27/hr (<a href="27-hr.html#SP2_37">§2.37</a>).</p>
|
||||
|
||||
<p class="endnote">The function HierarchyLocations::make_datum_in_exotic appears nowhere else.</p>
|
||||
|
||||
<p class="endnote">The function HierarchyLocations::create_nrls appears nowhere else.</p>
|
||||
|
||||
<p class="endnote">The function HierarchyLocations::find is used in 27/hr (<a href="27-hr.html#SP4">§4</a>).</p>
|
||||
<p class="endnote">The function HierarchyLocations::index appears nowhere else.</p>
|
||||
|
||||
<p class="endnote">The function HierarchyLocations::find_by_name is used in 27/hr (<a href="27-hr.html#SP4">§4</a>).</p>
|
||||
<p class="endnote">The function HierarchyLocations::find is used in 27/hr (<a href="27-hr.html#SP6">§6</a>).</p>
|
||||
|
||||
<p class="endnote">The function HierarchyLocations::find_by_name is used in 27/hr (<a href="27-hr.html#SP6">§6</a>).</p>
|
||||
|
||||
<p class="endnote">The function HierarchyLocations::function appears nowhere else.</p>
|
||||
|
||||
|
|
|
@ -740,6 +740,16 @@
|
|||
|
||||
|
||||
<pre class="definitions">
|
||||
<span class="definitionkeyword">enum</span> <span class="constant">K_OBJECT_XPACKAGE</span><span class="definitionkeyword"> from </span><span class="constant">0</span>
|
||||
<span class="definitionkeyword">enum</span> <span class="constant">K_NUMBER_XPACKAGE</span>
|
||||
<span class="definitionkeyword">enum</span> <span class="constant">K_TIME_XPACKAGE</span>
|
||||
<span class="definitionkeyword">enum</span> <span class="constant">K_TRUTH_STATE_XPACKAGE</span>
|
||||
<span class="definitionkeyword">enum</span> <span class="constant">K_TABLE_XPACKAGE</span>
|
||||
<span class="definitionkeyword">enum</span> <span class="constant">K_VERB_XPACKAGE</span>
|
||||
<span class="definitionkeyword">enum</span> <span class="constant">K_FIGURE_NAME_XPACKAGE</span>
|
||||
<span class="definitionkeyword">enum</span> <span class="constant">K_SOUND_NAME_XPACKAGE</span>
|
||||
<span class="definitionkeyword">enum</span> <span class="constant">K_USE_OPTION_XPACKAGE</span>
|
||||
<span class="definitionkeyword">enum</span> <span class="constant">V_COMMAND_PROMPT_XPACKAGE</span>
|
||||
<span class="definitionkeyword">enum</span> <span class="constant">NOTHING_HL</span>
|
||||
<span class="definitionkeyword">enum</span> <span class="constant">OBJECT_HL</span>
|
||||
<span class="definitionkeyword">enum</span> <span class="constant">TESTUSEOPTION_HL</span>
|
||||
|
@ -760,19 +770,28 @@
|
|||
|
||||
|
||||
<pre class="displaydefn">
|
||||
<span class="functiontext">HierarchyLocations::make_on_demand</span><span class="plain">(</span><span class="constant">OBJECT_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Object"</span><span class="plain">);</span>
|
||||
<span class="functiontext">HierarchyLocations::make_on_demand</span><span class="plain">(</span><span class="constant">NOTHING_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"nothing"</span><span class="plain">);</span>
|
||||
<span class="functiontext">HierarchyLocations::make_on_demand</span><span class="plain">(</span><span class="constant">TESTUSEOPTION_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"TestUseOption"</span><span class="plain">);</span>
|
||||
<span class="functiontext">HierarchyLocations::make_on_demand</span><span class="plain">(</span><span class="constant">TABLEOFTABLES_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"TableOfTables"</span><span class="plain">);</span>
|
||||
<span class="functiontext">HierarchyLocations::make_on_demand</span><span class="plain">(</span><span class="constant">TABLEOFVERBS_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"TableOfVerbs"</span><span class="plain">);</span>
|
||||
<span class="functiontext">HierarchyLocations::make_on_demand</span><span class="plain">(</span><span class="constant">CAPSHORTNAME_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"cap_short_name"</span><span class="plain">);</span>
|
||||
<span class="functiontext">HierarchyLocations::make_on_demand</span><span class="plain">(</span><span class="constant">COMMANDPROMPTTEXT_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"CommandPromptText"</span><span class="plain">);</span>
|
||||
<span class="functiontext">HierarchyLocations::make_on_demand</span><span class="plain">(</span><span class="constant">DECIMAL_TOKEN_INNER_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"DECIMAL_TOKEN_INNER"</span><span class="plain">);</span>
|
||||
<span class="functiontext">HierarchyLocations::make_on_demand</span><span class="plain">(</span><span class="constant">NO_USE_OPTIONS_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"NO_USE_OPTIONS"</span><span class="plain">);</span>
|
||||
<span class="functiontext">HierarchyLocations::make_on_demand</span><span class="plain">(</span><span class="constant">RESOURCEIDSOFFIGURES_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"ResourceIDsOfFigures"</span><span class="plain">);</span>
|
||||
<span class="functiontext">HierarchyLocations::make_on_demand</span><span class="plain">(</span><span class="constant">RESOURCEIDSOFSOUNDS_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"ResourceIDsOfSounds"</span><span class="plain">);</span>
|
||||
<span class="functiontext">HierarchyLocations::make_on_demand</span><span class="plain">(</span><span class="constant">TIME_TOKEN_INNER_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"TIME_TOKEN_INNER"</span><span class="plain">);</span>
|
||||
<span class="functiontext">HierarchyLocations::make_on_demand</span><span class="plain">(</span><span class="constant">TRUTH_STATE_TOKEN_INNER_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"TRUTH_STATE_TOKEN_INNER"</span><span class="plain">);</span>
|
||||
<span class="functiontext">HierarchyLocations::make_in_exotic</span><span class="plain">(</span><span class="constant">OBJECT_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Object"</span><span class="plain">, </span><span class="constant">K_OBJECT_XPACKAGE</span><span class="plain">);</span>
|
||||
<span class="functiontext">HierarchyLocations::make_in_exotic</span><span class="plain">(</span><span class="constant">NOTHING_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"nothing"</span><span class="plain">, </span><span class="constant">K_OBJECT_XPACKAGE</span><span class="plain">);</span>
|
||||
<span class="functiontext">HierarchyLocations::make_in_exotic</span><span class="plain">(</span><span class="constant">CAPSHORTNAME_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"cap_short_name"</span><span class="plain">, </span><span class="constant">K_OBJECT_XPACKAGE</span><span class="plain">);</span>
|
||||
|
||||
<span class="functiontext">HierarchyLocations::make_function_in_exotic</span><span class="plain">(</span><span class="constant">DECIMAL_TOKEN_INNER_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"gpr_fn"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"DECIMAL_TOKEN_INNER"</span><span class="plain">, </span><span class="constant">K_NUMBER_XPACKAGE</span><span class="plain">);</span>
|
||||
|
||||
<span class="functiontext">HierarchyLocations::make_function_in_exotic</span><span class="plain">(</span><span class="constant">TIME_TOKEN_INNER_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"gpr_fn"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"TIME_TOKEN_INNER"</span><span class="plain">, </span><span class="constant">K_TIME_XPACKAGE</span><span class="plain">);</span>
|
||||
|
||||
<span class="functiontext">HierarchyLocations::make_function_in_exotic</span><span class="plain">(</span><span class="constant">TRUTH_STATE_TOKEN_INNER_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"gpr_fn"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"TRUTH_STATE_TOKEN_INNER"</span><span class="plain">, </span><span class="constant">K_TRUTH_STATE_XPACKAGE</span><span class="plain">);</span>
|
||||
|
||||
<span class="functiontext">HierarchyLocations::make_in_exotic</span><span class="plain">(</span><span class="constant">TABLEOFTABLES_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"TableOfTables"</span><span class="plain">, </span><span class="constant">K_TABLE_XPACKAGE</span><span class="plain">);</span>
|
||||
|
||||
<span class="functiontext">HierarchyLocations::make_in_exotic</span><span class="plain">(</span><span class="constant">TABLEOFVERBS_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"TableOfVerbs"</span><span class="plain">, </span><span class="constant">K_VERB_XPACKAGE</span><span class="plain">);</span>
|
||||
|
||||
<span class="functiontext">HierarchyLocations::make_in_exotic</span><span class="plain">(</span><span class="constant">RESOURCEIDSOFFIGURES_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"ResourceIDsOfFigures"</span><span class="plain">, </span><span class="constant">K_FIGURE_NAME_XPACKAGE</span><span class="plain">);</span>
|
||||
|
||||
<span class="functiontext">HierarchyLocations::make_in_exotic</span><span class="plain">(</span><span class="constant">RESOURCEIDSOFSOUNDS_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"ResourceIDsOfSounds"</span><span class="plain">, </span><span class="constant">K_SOUND_NAME_XPACKAGE</span><span class="plain">);</span>
|
||||
|
||||
<span class="functiontext">HierarchyLocations::make_in_exotic</span><span class="plain">(</span><span class="constant">NO_USE_OPTIONS_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"NO_USE_OPTIONS"</span><span class="plain">, </span><span class="constant">K_USE_OPTION_XPACKAGE</span><span class="plain">);</span>
|
||||
<span class="functiontext">HierarchyLocations::make_function_in_exotic</span><span class="plain">(</span><span class="constant">TESTUSEOPTION_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"test_fn"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"TestUseOption"</span><span class="plain">, </span><span class="constant">K_USE_OPTION_XPACKAGE</span><span class="plain">);</span>
|
||||
|
||||
<span class="functiontext">HierarchyLocations::make_function_in_exotic</span><span class="plain">(</span><span class="constant">COMMANDPROMPTTEXT_HL</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"command_prompt_text_fn"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"CommandPromptText"</span><span class="plain">, </span><span class="constant">V_COMMAND_PROMPT_XPACKAGE</span><span class="plain">);</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
@ -1272,6 +1291,70 @@
|
|||
<p class="inwebparagraph"><a id="SP4"></a><b>§4. </b></p>
|
||||
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">package_request</span><span class="plain"> *</span><span class="functiontext">Hierarchy::exotic_package</span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">x</span><span class="plain">) {</span>
|
||||
<span class="reserved">switch</span><span class="plain"> (</span><span class="identifier">x</span><span class="plain">) {</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">K_OBJECT_XPACKAGE</span><span class="plain">: </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">Kinds::Behaviour::package</span><span class="plain">(</span><span class="identifier">K_object</span><span class="plain">);</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">K_NUMBER_XPACKAGE</span><span class="plain">: </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">Kinds::Behaviour::package</span><span class="plain">(</span><span class="identifier">K_number</span><span class="plain">);</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">K_TIME_XPACKAGE</span><span class="plain">: </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">Kinds::Behaviour::package</span><span class="plain">(</span><span class="identifier">K_time</span><span class="plain">);</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">K_TRUTH_STATE_XPACKAGE</span><span class="plain">: </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">Kinds::Behaviour::package</span><span class="plain">(</span><span class="identifier">K_truth_state</span><span class="plain">);</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">K_TABLE_XPACKAGE</span><span class="plain">: </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">Kinds::Behaviour::package</span><span class="plain">(</span><span class="identifier">K_table</span><span class="plain">);</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">K_VERB_XPACKAGE</span><span class="plain">: </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">Kinds::Behaviour::package</span><span class="plain">(</span><span class="identifier">K_verb</span><span class="plain">);</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">K_FIGURE_NAME_XPACKAGE</span><span class="plain">: </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">Kinds::Behaviour::package</span><span class="plain">(</span><span class="identifier">K_figure_name</span><span class="plain">);</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">K_SOUND_NAME_XPACKAGE</span><span class="plain">: </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">Kinds::Behaviour::package</span><span class="plain">(</span><span class="identifier">K_sound_name</span><span class="plain">);</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">K_USE_OPTION_XPACKAGE</span><span class="plain">: </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">Kinds::Behaviour::package</span><span class="plain">(</span><span class="identifier">K_use_option</span><span class="plain">);</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">V_COMMAND_PROMPT_XPACKAGE</span><span class="plain">:</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="functiontext">Packaging::home_of</span><span class="plain">(</span><span class="functiontext">NonlocalVariables::iname</span><span class="plain">(</span><span class="identifier">command_prompt_VAR</span><span class="plain">));</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"unknown exotic package"</span><span class="plain">);</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">The function Hierarchy::exotic_package is used in 27/hl (<a href="27-hl.html#SP1">§1</a>).</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP5"></a><b>§5. </b></p>
|
||||
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="functiontext">Hierarchy::post_process</span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">HL_id</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">switch</span><span class="plain"> (</span><span class="identifier">HL_id</span><span class="plain">) {</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">THESAME_HL</span><span class="plain">:</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">PLURALFOUND_HL</span><span class="plain">:</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">PARENT_HL</span><span class="plain">:</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">CHILD_HL</span><span class="plain">:</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">SIBLING_HL</span><span class="plain">:</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">THEDARK_HL</span><span class="plain">:</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">FLOAT_NAN_HL</span><span class="plain">:</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">RESPONSETEXTS_HL</span><span class="plain">: {</span>
|
||||
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Packaging::enter_home_of</span><span class="plain">(</span><span class="identifier">iname</span><span class="plain">);</span>
|
||||
<span class="functiontext">Emit::named_numeric_constant</span><span class="plain">(</span><span class="identifier">iname</span><span class="plain">, 0);</span>
|
||||
<span class="functiontext">Packaging::exit</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
|
||||
<span class="reserved">break</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">SELF_HL</span><span class="plain">: {</span>
|
||||
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Packaging::enter_home_of</span><span class="plain">(</span><span class="identifier">iname</span><span class="plain">);</span>
|
||||
<span class="functiontext">Emit::variable</span><span class="plain">(</span><span class="identifier">iname</span><span class="plain">, </span><span class="identifier">K_value</span><span class="plain">, </span><span class="identifier">UNDEF_IVAL</span><span class="plain">, 0, </span><span class="identifier">I</span><span class="string">"self"</span><span class="plain">);</span>
|
||||
<span class="functiontext">Packaging::exit</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
|
||||
<span class="reserved">break</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">OBJECT_HL</span><span class="plain">:</span>
|
||||
<span class="identifier">iname</span><span class="plain"> = </span><span class="functiontext">Kinds::RunTime::I6_classname</span><span class="plain">(</span><span class="identifier">K_object</span><span class="plain">);</span>
|
||||
<span class="reserved">break</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">iname</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">The function Hierarchy::post_process is used in 27/hl (<a href="27-hl.html#SP1">§1</a>).</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP6"></a><b>§6. </b></p>
|
||||
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="functiontext">Hierarchy::find</span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">id</span><span class="plain">) {</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="functiontext">HierarchyLocations::find</span><span class="plain">(</span><span class="identifier">id</span><span class="plain">);</span>
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -246,9 +246,9 @@
|
|||
|
||||
<p class="endnote">The function Packaging::stateless is used in 15/epv (<a href="15-epv.html#SP2">§2</a>).</p>
|
||||
|
||||
<p class="endnote">The function Packaging::home_of is used in 12/cdp (<a href="12-cdp.html#SP5">§5</a>), 27/hl (<a href="27-hl.html#SP1">§1</a>).</p>
|
||||
<p class="endnote">The function Packaging::home_of is used in 12/cdp (<a href="12-cdp.html#SP5">§5</a>), 27/hl (<a href="27-hl.html#SP1">§1</a>), 27/hr (<a href="27-hr.html#SP4">§4</a>).</p>
|
||||
|
||||
<p class="endnote">The function Packaging::enter_home_of is used in 6/bp (<a href="6-bp.html#SP42">§42</a>), 6/rlt (<a href="6-rlt.html#SP14">§14</a>, <a href="6-rlt.html#SP15_1">§15.1</a>, <a href="6-rlt.html#SP20">§20</a>, <a href="6-rlt.html#SP20_3">§20.3</a>), 6/nv (<a href="6-nv.html#SP18">§18</a>), 12/cdp (<a href="12-cdp.html#SP2_1_1">§2.1.1</a>), 13/kak (<a href="13-kak.html#SP5">§5</a>), 13/rsfk (<a href="13-rsfk.html#SP16_2">§16.2</a>, <a href="13-rsfk.html#SP26">§26</a>), 15/pr (<a href="15-pr.html#SP27">§27</a>), 15/epv (<a href="15-epv.html#SP1_1_2">§1.1.2</a>), 17/tl (<a href="17-tl.html#SP14_1">§14.1</a>, <a href="17-tl.html#SP14_2">§14.2</a>), 17/ts (<a href="17-ts.html#SP11">§11</a>), 17/rs (<a href="17-rs.html#SP7_3">§7.3</a>), 18/lc (<a href="18-lc.html#SP12_1">§12.1</a>), 19/rsft (<a href="19-rsft.html#SP1_1_1_1">§1.1.1.1</a>, <a href="19-rsft.html#SP1_1_1_1_1">§1.1.1.1.1</a>, <a href="19-rsft.html#SP1_2">§1.2</a>, <a href="19-rsft.html#SP1_3">§1.3</a>), 21/rl2 (<a href="21-rl2.html#SP14">§14</a>, <a href="21-rl2.html#SP20">§20</a>), 21/fao (<a href="21-fao.html#SP10">§10</a>), 21/ac (<a href="21-ac.html#SP6">§6</a>, <a href="21-ac.html#SP8">§8</a>, <a href="21-ac.html#SP14">§14</a>), 22/cs (<a href="22-cs.html#SP8">§8</a>), 22/pav (<a href="22-pav.html#SP8_1">§8.1</a>), 22/tp2 (<a href="22-tp2.html#SP4">§4</a>), 24/ch (<a href="24-ch.html#SP6">§6</a>, <a href="24-ch.html#SP8">§8</a>), 26/vm (<a href="26-vm.html#SP8">§8</a>), 26/uo (<a href="26-uo.html#SP21">§21</a>), 26/lt (<a href="26-lt.html#SP4_1">§4.1</a>), 26/jl (<a href="26-jl.html#SP6">§6</a>), 26/rt (<a href="26-rt.html#SP1">§1</a>), 26/iti (<a href="26-iti.html#SP10">§10</a>), 26/pl (<a href="26-pl.html#SP12">§12</a>), 26/ts (<a href="26-ts.html#SP10">§10</a>), 27/ei (<a href="27-ei.html#SP4">§4</a>), 27/hl (<a href="27-hl.html#SP1">§1</a>).</p>
|
||||
<p class="endnote">The function Packaging::enter_home_of is used in 6/bp (<a href="6-bp.html#SP42">§42</a>), 6/rlt (<a href="6-rlt.html#SP14">§14</a>, <a href="6-rlt.html#SP15_1">§15.1</a>, <a href="6-rlt.html#SP20">§20</a>, <a href="6-rlt.html#SP20_3">§20.3</a>), 6/nv (<a href="6-nv.html#SP18">§18</a>), 12/cdp (<a href="12-cdp.html#SP2_1_1">§2.1.1</a>), 13/kak (<a href="13-kak.html#SP5">§5</a>), 13/rsfk (<a href="13-rsfk.html#SP16_2">§16.2</a>, <a href="13-rsfk.html#SP26">§26</a>), 15/pr (<a href="15-pr.html#SP27">§27</a>), 15/epv (<a href="15-epv.html#SP1_1_2">§1.1.2</a>), 17/tl (<a href="17-tl.html#SP14_1">§14.1</a>, <a href="17-tl.html#SP14_2">§14.2</a>), 17/ts (<a href="17-ts.html#SP11">§11</a>), 17/rs (<a href="17-rs.html#SP7_3">§7.3</a>), 18/lc (<a href="18-lc.html#SP12_1">§12.1</a>), 19/rsft (<a href="19-rsft.html#SP1_1_1_1">§1.1.1.1</a>, <a href="19-rsft.html#SP1_1_1_1_1">§1.1.1.1.1</a>, <a href="19-rsft.html#SP1_2">§1.2</a>, <a href="19-rsft.html#SP1_3">§1.3</a>), 21/rl2 (<a href="21-rl2.html#SP14">§14</a>, <a href="21-rl2.html#SP20">§20</a>), 21/fao (<a href="21-fao.html#SP10">§10</a>), 21/ac (<a href="21-ac.html#SP6">§6</a>, <a href="21-ac.html#SP8">§8</a>, <a href="21-ac.html#SP14">§14</a>), 22/cs (<a href="22-cs.html#SP8">§8</a>), 22/pav (<a href="22-pav.html#SP8_1">§8.1</a>), 22/tp2 (<a href="22-tp2.html#SP4">§4</a>), 24/ch (<a href="24-ch.html#SP6">§6</a>, <a href="24-ch.html#SP8">§8</a>), 26/vm (<a href="26-vm.html#SP8">§8</a>), 26/uo (<a href="26-uo.html#SP21">§21</a>), 26/lt (<a href="26-lt.html#SP4_1">§4.1</a>), 26/jl (<a href="26-jl.html#SP6">§6</a>), 26/rt (<a href="26-rt.html#SP1">§1</a>), 26/iti (<a href="26-iti.html#SP10">§10</a>), 26/pl (<a href="26-pl.html#SP12">§12</a>), 26/ts (<a href="26-ts.html#SP10">§10</a>), 27/ei (<a href="27-ei.html#SP4">§4</a>), 27/hr (<a href="27-hr.html#SP5">§5</a>).</p>
|
||||
|
||||
<p class="endnote">The function Packaging::enter_current_enclosure is used in 13/rsfk (<a href="13-rsfk.html#SP4">§4</a>), 17/tl (<a href="17-tl.html#SP16">§16</a>), 17/ts (<a href="17-ts.html#SP8_1">§8.1</a>), 18/lc (<a href="18-lc.html#SP11">§11</a>).</p>
|
||||
|
||||
|
@ -343,7 +343,7 @@
|
|||
|
||||
<p class="endnote">The function Packaging::enter is used in <a href="#SP5">§5</a>, 4/am (<a href="4-am.html#SP34_2">§34.2</a>), 5/ins (<a href="5-ins.html#SP34">§34</a>), 5/nv (<a href="5-nv.html#SP16">§16</a>), 13/rsfk (<a href="13-rsfk.html#SP16_1">§16.1</a>, <a href="13-rsfk.html#SP26">§26</a>), 15/epv (<a href="15-epv.html#SP2">§2</a>), 16/ic (<a href="16-ic.html#SP10">§10</a>), 17/rs (<a href="17-rs.html#SP6_1">§6.1</a>, <a href="17-rs.html#SP7_1">§7.1</a>), 21/rl (<a href="21-rl.html#SP9">§9</a>), 21/rl2 (<a href="21-rl2.html#SP20">§20</a>), 22/ph (<a href="22-ph.html#SP12">§12</a>), 27/ei (<a href="27-ei.html#SP3">§3</a>, <a href="27-ei.html#SP4">§4</a>), 27/hl (<a href="27-hl.html#SP1">§1</a>).</p>
|
||||
|
||||
<p class="endnote">The function Packaging::exit is used in 5/ins (<a href="5-ins.html#SP34">§34</a>), 5/nv (<a href="5-nv.html#SP16">§16</a>), 6/bp (<a href="6-bp.html#SP42">§42</a>), 6/rlt (<a href="6-rlt.html#SP14">§14</a>, <a href="6-rlt.html#SP15_1">§15.1</a>, <a href="6-rlt.html#SP20">§20</a>, <a href="6-rlt.html#SP20_3">§20.3</a>), 6/nv (<a href="6-nv.html#SP18">§18</a>), 12/cdp (<a href="12-cdp.html#SP2_1_1">§2.1.1</a>), 13/kak (<a href="13-kak.html#SP5">§5</a>), 13/rsfk (<a href="13-rsfk.html#SP4">§4</a>, <a href="13-rsfk.html#SP16_1">§16.1</a>, <a href="13-rsfk.html#SP16_2">§16.2</a>, <a href="13-rsfk.html#SP26">§26</a>), 15/pr (<a href="15-pr.html#SP27">§27</a>), 15/epv (<a href="15-epv.html#SP1_1_2">§1.1.2</a>, <a href="15-epv.html#SP2">§2</a>), 16/ic (<a href="16-ic.html#SP10">§10</a>), 17/tl (<a href="17-tl.html#SP14_1">§14.1</a>, <a href="17-tl.html#SP14_2">§14.2</a>, <a href="17-tl.html#SP16">§16</a>), 17/ts (<a href="17-ts.html#SP8_1">§8.1</a>, <a href="17-ts.html#SP11">§11</a>), 17/rs (<a href="17-rs.html#SP6_1">§6.1</a>, <a href="17-rs.html#SP7_1">§7.1</a>, <a href="17-rs.html#SP7_3">§7.3</a>), 18/lc (<a href="18-lc.html#SP11">§11</a>, <a href="18-lc.html#SP12_1">§12.1</a>), 19/rsft (<a href="19-rsft.html#SP1_1_1_1">§1.1.1.1</a>, <a href="19-rsft.html#SP1_1_1_1_1">§1.1.1.1.1</a>, <a href="19-rsft.html#SP1_2">§1.2</a>, <a href="19-rsft.html#SP1_3">§1.3</a>), 21/rl (<a href="21-rl.html#SP9">§9</a>), 21/rl2 (<a href="21-rl2.html#SP14">§14</a>, <a href="21-rl2.html#SP20">§20</a>), 21/fao (<a href="21-fao.html#SP10">§10</a>), 21/ac (<a href="21-ac.html#SP6">§6</a>, <a href="21-ac.html#SP8">§8</a>, <a href="21-ac.html#SP14">§14</a>), 22/cs (<a href="22-cs.html#SP8">§8</a>), 22/ph (<a href="22-ph.html#SP12">§12</a>), 22/pav (<a href="22-pav.html#SP8_1">§8.1</a>), 22/tp2 (<a href="22-tp2.html#SP4">§4</a>), 24/ch (<a href="24-ch.html#SP6">§6</a>, <a href="24-ch.html#SP8">§8</a>), 26/vm (<a href="26-vm.html#SP8">§8</a>), 26/uo (<a href="26-uo.html#SP21">§21</a>), 26/lt (<a href="26-lt.html#SP4_1">§4.1</a>), 26/jl (<a href="26-jl.html#SP6">§6</a>), 26/rt (<a href="26-rt.html#SP4">§4</a>), 26/iti (<a href="26-iti.html#SP10">§10</a>), 26/pl (<a href="26-pl.html#SP12">§12</a>), 26/ts (<a href="26-ts.html#SP10">§10</a>), 27/ei (<a href="27-ei.html#SP3">§3</a>, <a href="27-ei.html#SP4">§4</a>), 27/hl (<a href="27-hl.html#SP1">§1</a>).</p>
|
||||
<p class="endnote">The function Packaging::exit is used in 5/ins (<a href="5-ins.html#SP34">§34</a>), 5/nv (<a href="5-nv.html#SP16">§16</a>), 6/bp (<a href="6-bp.html#SP42">§42</a>), 6/rlt (<a href="6-rlt.html#SP14">§14</a>, <a href="6-rlt.html#SP15_1">§15.1</a>, <a href="6-rlt.html#SP20">§20</a>, <a href="6-rlt.html#SP20_3">§20.3</a>), 6/nv (<a href="6-nv.html#SP18">§18</a>), 12/cdp (<a href="12-cdp.html#SP2_1_1">§2.1.1</a>), 13/kak (<a href="13-kak.html#SP5">§5</a>), 13/rsfk (<a href="13-rsfk.html#SP4">§4</a>, <a href="13-rsfk.html#SP16_1">§16.1</a>, <a href="13-rsfk.html#SP16_2">§16.2</a>, <a href="13-rsfk.html#SP26">§26</a>), 15/pr (<a href="15-pr.html#SP27">§27</a>), 15/epv (<a href="15-epv.html#SP1_1_2">§1.1.2</a>, <a href="15-epv.html#SP2">§2</a>), 16/ic (<a href="16-ic.html#SP10">§10</a>), 17/tl (<a href="17-tl.html#SP14_1">§14.1</a>, <a href="17-tl.html#SP14_2">§14.2</a>, <a href="17-tl.html#SP16">§16</a>), 17/ts (<a href="17-ts.html#SP8_1">§8.1</a>, <a href="17-ts.html#SP11">§11</a>), 17/rs (<a href="17-rs.html#SP6_1">§6.1</a>, <a href="17-rs.html#SP7_1">§7.1</a>, <a href="17-rs.html#SP7_3">§7.3</a>), 18/lc (<a href="18-lc.html#SP11">§11</a>, <a href="18-lc.html#SP12_1">§12.1</a>), 19/rsft (<a href="19-rsft.html#SP1_1_1_1">§1.1.1.1</a>, <a href="19-rsft.html#SP1_1_1_1_1">§1.1.1.1.1</a>, <a href="19-rsft.html#SP1_2">§1.2</a>, <a href="19-rsft.html#SP1_3">§1.3</a>), 21/rl (<a href="21-rl.html#SP9">§9</a>), 21/rl2 (<a href="21-rl2.html#SP14">§14</a>, <a href="21-rl2.html#SP20">§20</a>), 21/fao (<a href="21-fao.html#SP10">§10</a>), 21/ac (<a href="21-ac.html#SP6">§6</a>, <a href="21-ac.html#SP8">§8</a>, <a href="21-ac.html#SP14">§14</a>), 22/cs (<a href="22-cs.html#SP8">§8</a>), 22/ph (<a href="22-ph.html#SP12">§12</a>), 22/pav (<a href="22-pav.html#SP8_1">§8.1</a>), 22/tp2 (<a href="22-tp2.html#SP4">§4</a>), 24/ch (<a href="24-ch.html#SP6">§6</a>, <a href="24-ch.html#SP8">§8</a>), 26/vm (<a href="26-vm.html#SP8">§8</a>), 26/uo (<a href="26-uo.html#SP21">§21</a>), 26/lt (<a href="26-lt.html#SP4_1">§4.1</a>), 26/jl (<a href="26-jl.html#SP6">§6</a>), 26/rt (<a href="26-rt.html#SP4">§4</a>), 26/iti (<a href="26-iti.html#SP10">§10</a>), 26/pl (<a href="26-pl.html#SP12">§12</a>), 26/ts (<a href="26-ts.html#SP10">§10</a>), 27/ei (<a href="27-ei.html#SP3">§3</a>, <a href="27-ei.html#SP4">§4</a>), 27/hl (<a href="27-hl.html#SP1">§1</a>), 27/hr (<a href="27-hr.html#SP5">§5</a>).</p>
|
||||
|
||||
<p class="endnote">The function Packaging::incarnate is used in 21/rl (<a href="21-rl.html#SP9">§9</a>), 27/ei (<a href="27-ei.html#SP3">§3</a>).</p>
|
||||
|
||||
|
@ -459,7 +459,7 @@
|
|||
|
||||
<p class="endnote">The function Packaging::request_generic appears nowhere else.</p>
|
||||
|
||||
<p class="endnote">The function Packaging::request_template is used in 15/ep (<a href="15-ep.html#SP4">§4</a>), 27/ei (<a href="27-ei.html#SP3">§3</a>), 27/hl (<a href="27-hl.html#SP1">§1</a>), 27/hr (<a href="27-hr.html#SP2_43">§2.43</a>, <a href="27-hr.html#SP4">§4</a>).</p>
|
||||
<p class="endnote">The function Packaging::request_template is used in 15/ep (<a href="15-ep.html#SP4">§4</a>), 27/ei (<a href="27-ei.html#SP3">§3</a>), 27/hl (<a href="27-hl.html#SP1">§1</a>), 27/hr (<a href="27-hr.html#SP2_43">§2.43</a>, <a href="27-hr.html#SP6">§6</a>).</p>
|
||||
|
||||
<p class="endnote">The function Packaging::request_synoptic appears nowhere else.</p>
|
||||
|
||||
|
|
|
@ -631,7 +631,7 @@ there's very little to say.
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">The function NonlocalVariables::iname is used in <a href="#SP12">§12</a>, 26/rt (<a href="26-rt.html#SP4_1_2">§4.1.2</a>, <a href="26-rt.html#SP4_1_4">§4.1.4</a>), 26/iti (<a href="26-iti.html#SP9">§9</a>), 27/hl (<a href="27-hl.html#SP1">§1</a>).</p>
|
||||
<p class="endnote">The function NonlocalVariables::iname is used in <a href="#SP12">§12</a>, 26/rt (<a href="26-rt.html#SP4_1_2">§4.1.2</a>, <a href="26-rt.html#SP4_1_4">§4.1.4</a>), 26/iti (<a href="26-iti.html#SP9">§9</a>), 27/hr (<a href="27-hr.html#SP4">§4</a>).</p>
|
||||
|
||||
<p class="endnote">The function NonlocalVariables::SUBJ_compile_all is used in 16/is (<a href="16-is.html#SP30">§30</a>).</p>
|
||||
|
||||
|
|
|
@ -81,10 +81,8 @@ text_substitution *Strings::TextSubstitutions::new_text_substitution(wording W,
|
|||
(LocalVariables::count(Frames::current_stack_frame()) > 0))
|
||||
ts->local_names_existed_at_usage_time = TRUE;
|
||||
ts->ts_iname = Packaging::supply_iname(P, SUBSTITUTION_PR_COUNTER);
|
||||
// InterNames::new_in(TEXT_SUBSTITUTION_INAMEF, Modules::current());
|
||||
ts->ts_routine_iname =
|
||||
Packaging::function(Packaging::supply_iname(P, SUBSTITUTIONF_PR_COUNTER), P, NULL);
|
||||
// InterNames::new_derived(TEXT_ROUTINE_INAMEF, ts->ts_iname);
|
||||
ts->belongs_to_module = Modules::current();
|
||||
Inter::Symbols::set_flag(InterNames::to_symbol(ts->ts_iname), MAKE_NAME_UNIQUE);
|
||||
Inter::Symbols::set_flag(InterNames::to_symbol(ts->ts_routine_iname), MAKE_NAME_UNIQUE);
|
||||
|
|
|
@ -219,9 +219,7 @@ rulebook *Rulebooks::new(kind *create_as, wording W, package_request *R, text_st
|
|||
else package_name = InterNames::one_off(supplied, R);
|
||||
rb->rb_package = Packaging::request(package_name, R, rulebook_ptype);
|
||||
rb->rb_iname = Packaging::function(InterNames::one_off(I"run_fn", rb->rb_package), rb->rb_package, NULL);
|
||||
// InterNames::attach_memo(rb->rb_iname, rb->primary_name);
|
||||
Inter::Symbols::set_flag(InterNames::to_symbol(rb->rb_iname), MAKE_NAME_UNIQUE);
|
||||
// InterNames::new(RULEBOOK_INAMEF);
|
||||
|
||||
rb->rule_list = Rules::Bookings::list_new();
|
||||
|
||||
|
|
|
@ -9,52 +9,48 @@ typedef struct named_resource_location {
|
|||
struct text_stream *function_package_name;
|
||||
struct text_stream *datum_package_name;
|
||||
struct package_request *package;
|
||||
int exotic_package_identifier;
|
||||
struct inter_name *equates_to_iname;
|
||||
MEMORY_MANAGEMENT
|
||||
} named_resource_location;
|
||||
|
||||
named_resource_location *nrls_indexed_by_id[MAX_HL];
|
||||
dictionary *nrls_indexed_by_name = NULL;
|
||||
|
||||
named_resource_location *HierarchyLocations::make_in(int id, text_stream *name, package_request *P) {
|
||||
named_resource_location *HierarchyLocations::new(void) {
|
||||
named_resource_location *nrl = CREATE(named_resource_location);
|
||||
nrl->access_number = id;
|
||||
nrl->access_name = Str::duplicate(name);
|
||||
nrl->function_package_name = NULL;
|
||||
nrl->datum_package_name = NULL;
|
||||
nrl->package = P;
|
||||
nrl->equates_to_iname = NULL;
|
||||
if (id >= 0) nrls_indexed_by_id[id] = nrl;
|
||||
Dictionaries::create(nrls_indexed_by_name, name);
|
||||
Dictionaries::write_value(nrls_indexed_by_name, name, (void *) nrl);
|
||||
return nrl;
|
||||
}
|
||||
|
||||
named_resource_location *HierarchyLocations::make_as(int id, text_stream *name, inter_name *iname) {
|
||||
named_resource_location *nrl = CREATE(named_resource_location);
|
||||
nrl->access_number = id;
|
||||
nrl->access_name = Str::duplicate(name);
|
||||
nrl->function_package_name = NULL;
|
||||
nrl->datum_package_name = NULL;
|
||||
nrl->package = iname->eventual_owner;
|
||||
nrl->equates_to_iname = iname;
|
||||
if (id >= 0) nrls_indexed_by_id[id] = nrl;
|
||||
Dictionaries::create(nrls_indexed_by_name, name);
|
||||
Dictionaries::write_value(nrls_indexed_by_name, name, (void *) nrl);
|
||||
return nrl;
|
||||
}
|
||||
|
||||
named_resource_location *HierarchyLocations::make_on_demand(int id, text_stream *name) {
|
||||
named_resource_location *nrl = CREATE(named_resource_location);
|
||||
nrl->access_number = id;
|
||||
nrl->access_name = Str::duplicate(name);
|
||||
nrl->access_number = -1;
|
||||
nrl->access_name = NULL;
|
||||
nrl->function_package_name = NULL;
|
||||
nrl->datum_package_name = NULL;
|
||||
nrl->package = NULL;
|
||||
nrl->equates_to_iname = NULL;
|
||||
if (id >= 0) nrls_indexed_by_id[id] = nrl;
|
||||
Dictionaries::create(nrls_indexed_by_name, name);
|
||||
Dictionaries::write_value(nrls_indexed_by_name, name, (void *) nrl);
|
||||
nrl->exotic_package_identifier = -1;
|
||||
return nrl;
|
||||
}
|
||||
|
||||
named_resource_location *HierarchyLocations::make_in(int id, text_stream *name, package_request *P) {
|
||||
named_resource_location *nrl = HierarchyLocations::new();
|
||||
nrl->access_number = id;
|
||||
nrl->access_name = Str::duplicate(name);
|
||||
nrl->package = P;
|
||||
HierarchyLocations::index(nrl);
|
||||
return nrl;
|
||||
}
|
||||
|
||||
named_resource_location *HierarchyLocations::make_in_exotic(int id, text_stream *name, int x) {
|
||||
named_resource_location *nrl = HierarchyLocations::new();
|
||||
nrl->access_number = id;
|
||||
nrl->access_name = Str::duplicate(name);
|
||||
nrl->exotic_package_identifier = x;
|
||||
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;
|
||||
nrl->access_name = Str::duplicate(name);
|
||||
nrl->package = iname->eventual_owner;
|
||||
nrl->equates_to_iname = iname;
|
||||
HierarchyLocations::index(nrl);
|
||||
return nrl;
|
||||
}
|
||||
|
||||
|
@ -63,12 +59,18 @@ named_resource_location *HierarchyLocations::make_function(int id, text_stream *
|
|||
nrl->access_number = id;
|
||||
nrl->access_name = Str::duplicate(call_name);
|
||||
nrl->function_package_name = Str::duplicate(name);
|
||||
nrl->datum_package_name = NULL;
|
||||
nrl->package = P;
|
||||
nrl->equates_to_iname = NULL;
|
||||
if (id >= 0) nrls_indexed_by_id[id] = nrl;
|
||||
Dictionaries::create(nrls_indexed_by_name, call_name);
|
||||
Dictionaries::write_value(nrls_indexed_by_name, call_name, (void *) nrl);
|
||||
HierarchyLocations::index(nrl);
|
||||
return nrl;
|
||||
}
|
||||
|
||||
named_resource_location *HierarchyLocations::make_function_in_exotic(int id, text_stream *name, text_stream *call_name, int x) {
|
||||
named_resource_location *nrl = CREATE(named_resource_location);
|
||||
nrl->access_number = id;
|
||||
nrl->access_name = Str::duplicate(call_name);
|
||||
nrl->function_package_name = Str::duplicate(name);
|
||||
nrl->exotic_package_identifier = x;
|
||||
HierarchyLocations::index(nrl);
|
||||
return nrl;
|
||||
}
|
||||
|
||||
|
@ -76,16 +78,25 @@ named_resource_location *HierarchyLocations::make_datum(int id, text_stream *nam
|
|||
named_resource_location *nrl = CREATE(named_resource_location);
|
||||
nrl->access_number = id;
|
||||
nrl->access_name = Str::duplicate(datum_name);
|
||||
nrl->function_package_name = NULL;
|
||||
nrl->datum_package_name = Str::duplicate(name);
|
||||
nrl->package = P;
|
||||
nrl->equates_to_iname = NULL;
|
||||
if (id >= 0) nrls_indexed_by_id[id] = nrl;
|
||||
Dictionaries::create(nrls_indexed_by_name, datum_name);
|
||||
Dictionaries::write_value(nrls_indexed_by_name, datum_name, (void *) nrl);
|
||||
HierarchyLocations::index(nrl);
|
||||
return nrl;
|
||||
}
|
||||
|
||||
named_resource_location *HierarchyLocations::make_datum_in_exotic(int id, text_stream *name, text_stream *datum_name, int x) {
|
||||
named_resource_location *nrl = CREATE(named_resource_location);
|
||||
nrl->access_number = id;
|
||||
nrl->access_name = Str::duplicate(datum_name);
|
||||
nrl->datum_package_name = Str::duplicate(name);
|
||||
nrl->exotic_package_identifier = x;
|
||||
HierarchyLocations::index(nrl);
|
||||
return nrl;
|
||||
}
|
||||
|
||||
named_resource_location *nrls_indexed_by_id[MAX_HL];
|
||||
dictionary *nrls_indexed_by_name = NULL;
|
||||
|
||||
int nrls_created = FALSE;
|
||||
void HierarchyLocations::create_nrls(void) {
|
||||
nrls_created = TRUE;
|
||||
|
@ -94,6 +105,13 @@ void HierarchyLocations::create_nrls(void) {
|
|||
Hierarchy::establish();
|
||||
}
|
||||
|
||||
void HierarchyLocations::index(named_resource_location *nrl) {
|
||||
if (nrls_created == FALSE) HierarchyLocations::create_nrls();
|
||||
if (nrl->access_number >= 0) nrls_indexed_by_id[nrl->access_number] = nrl;
|
||||
Dictionaries::create(nrls_indexed_by_name, nrl->access_name);
|
||||
Dictionaries::write_value(nrls_indexed_by_name, nrl->access_name, (void *) nrl);
|
||||
}
|
||||
|
||||
inter_name *HierarchyLocations::find(int id) {
|
||||
if (nrls_created == FALSE) HierarchyLocations::create_nrls();
|
||||
if ((id < 0) || (id >= MAX_HL) || (nrls_indexed_by_id[id] == NULL))
|
||||
|
@ -119,100 +137,33 @@ inter_name *HierarchyLocations::function(package_request *R, text_stream *name,
|
|||
|
||||
inter_name *HierarchyLocations::nrl_to_iname(named_resource_location *nrl) {
|
||||
if (nrl->equates_to_iname == NULL) {
|
||||
if (nrl->package == NULL) {
|
||||
if (nrl->exotic_package_identifier >= 0)
|
||||
nrl->package = Hierarchy::exotic_package(nrl->exotic_package_identifier);
|
||||
else internal_error("package can't be found'");
|
||||
}
|
||||
|
||||
if (nrl->package == Packaging::request_template()) {
|
||||
packaging_state save = Packaging::enter(nrl->package);
|
||||
nrl->equates_to_iname = InterNames::one_off(nrl->access_name, Packaging::request_template());
|
||||
nrl->equates_to_iname->symbol = Emit::extern(nrl->access_name, K_value);
|
||||
Packaging::exit(save);
|
||||
return nrl->equates_to_iname;
|
||||
}
|
||||
if (Str::len(nrl->function_package_name) > 0) {
|
||||
} else if (Str::len(nrl->function_package_name) > 0) {
|
||||
nrl->equates_to_iname = Packaging::function_text(
|
||||
InterNames::one_off(nrl->function_package_name, nrl->package),
|
||||
nrl->package,
|
||||
nrl->access_name);
|
||||
nrl->package = Packaging::home_of(nrl->equates_to_iname);
|
||||
}
|
||||
if (Str::len(nrl->datum_package_name) > 0) {
|
||||
} else if (Str::len(nrl->datum_package_name) > 0) {
|
||||
nrl->equates_to_iname = Packaging::datum_text(
|
||||
InterNames::one_off(nrl->datum_package_name, nrl->package),
|
||||
nrl->package,
|
||||
nrl->access_name);
|
||||
nrl->package = Packaging::home_of(nrl->equates_to_iname);
|
||||
}
|
||||
if ((nrl->package) && (nrl->equates_to_iname == NULL))
|
||||
} else if ((nrl->package) && (nrl->equates_to_iname == NULL)) {
|
||||
nrl->equates_to_iname = InterNames::one_off(nrl->access_name, nrl->package);
|
||||
switch (nrl->access_number) {
|
||||
case THESAME_HL:
|
||||
case PLURALFOUND_HL:
|
||||
case PARENT_HL:
|
||||
case CHILD_HL:
|
||||
case SIBLING_HL:
|
||||
case THEDARK_HL:
|
||||
case FLOAT_NAN_HL:
|
||||
case RESPONSETEXTS_HL: {
|
||||
packaging_state save = Packaging::enter_home_of(nrl->equates_to_iname);
|
||||
Emit::named_numeric_constant(nrl->equates_to_iname, 0);
|
||||
Packaging::exit(save);
|
||||
break;
|
||||
}
|
||||
case SELF_HL: {
|
||||
packaging_state save = Packaging::enter_home_of(nrl->equates_to_iname);
|
||||
Emit::variable(nrl->equates_to_iname, K_value, UNDEF_IVAL, 0, I"self");
|
||||
Packaging::exit(save);
|
||||
break;
|
||||
}
|
||||
|
||||
case NOTHING_HL:
|
||||
nrl->package = Kinds::Behaviour::package(K_object);
|
||||
break;
|
||||
case OBJECT_HL:
|
||||
nrl->equates_to_iname = Kinds::RunTime::I6_classname(K_object);
|
||||
break;
|
||||
case TESTUSEOPTION_HL:
|
||||
nrl->equates_to_iname = HierarchyLocations::function(
|
||||
Kinds::RunTime::package(K_use_option), I"test_fn", nrl->access_name);
|
||||
break;
|
||||
case TABLEOFTABLES_HL:
|
||||
nrl->package = Kinds::Behaviour::package(K_table);
|
||||
break;
|
||||
case TABLEOFVERBS_HL:
|
||||
nrl->package = Kinds::Behaviour::package(K_verb);
|
||||
break;
|
||||
case CAPSHORTNAME_HL:
|
||||
nrl->package = Kinds::Behaviour::package(K_object);
|
||||
break;
|
||||
case RESOURCEIDSOFFIGURES_HL:
|
||||
nrl->package = Kinds::Behaviour::package(K_figure_name);
|
||||
break;
|
||||
case RESOURCEIDSOFSOUNDS_HL:
|
||||
nrl->package = Kinds::Behaviour::package(K_sound_name);
|
||||
break;
|
||||
case NO_USE_OPTIONS_HL:
|
||||
nrl->package = Kinds::Behaviour::package(K_use_option);
|
||||
break;
|
||||
case DECIMAL_TOKEN_INNER_HL:
|
||||
nrl->equates_to_iname = HierarchyLocations::function(
|
||||
Kinds::RunTime::package(K_number), I"gpr_fn", nrl->access_name);
|
||||
break;
|
||||
case TIME_TOKEN_INNER_HL:
|
||||
nrl->equates_to_iname = HierarchyLocations::function(
|
||||
Kinds::RunTime::package(K_time), I"gpr_fn", nrl->access_name);
|
||||
break;
|
||||
case TRUTH_STATE_TOKEN_INNER_HL:
|
||||
nrl->equates_to_iname = HierarchyLocations::function(
|
||||
Kinds::RunTime::package(K_truth_state), I"gpr_fn", nrl->access_name);
|
||||
break;
|
||||
case COMMANDPROMPTTEXT_HL:
|
||||
nrl->equates_to_iname = HierarchyLocations::function(
|
||||
Packaging::home_of(NonlocalVariables::iname(command_prompt_VAR)),
|
||||
I"command_prompt_text_fn", nrl->access_name);
|
||||
break;
|
||||
}
|
||||
if (nrl->equates_to_iname == NULL)
|
||||
nrl->equates_to_iname = InterNames::one_off(nrl->access_name, nrl->package);
|
||||
if (nrl->package == NULL)
|
||||
nrl->package = Packaging::home_of(nrl->equates_to_iname);
|
||||
|
||||
nrl->equates_to_iname = Hierarchy::post_process(nrl->access_number, nrl->equates_to_iname);
|
||||
nrl->package = Packaging::home_of(nrl->equates_to_iname);
|
||||
}
|
||||
return nrl->equates_to_iname;
|
||||
}
|
||||
|
|
|
@ -474,6 +474,17 @@ void Hierarchy::establish(void) {
|
|||
|
||||
@
|
||||
|
||||
@e K_OBJECT_XPACKAGE from 0
|
||||
@e K_NUMBER_XPACKAGE
|
||||
@e K_TIME_XPACKAGE
|
||||
@e K_TRUTH_STATE_XPACKAGE
|
||||
@e K_TABLE_XPACKAGE
|
||||
@e K_VERB_XPACKAGE
|
||||
@e K_FIGURE_NAME_XPACKAGE
|
||||
@e K_SOUND_NAME_XPACKAGE
|
||||
@e K_USE_OPTION_XPACKAGE
|
||||
@e V_COMMAND_PROMPT_XPACKAGE
|
||||
|
||||
@e NOTHING_HL
|
||||
@e OBJECT_HL
|
||||
@e TESTUSEOPTION_HL
|
||||
|
@ -491,19 +502,28 @@ void Hierarchy::establish(void) {
|
|||
@
|
||||
|
||||
@<The rest@> =
|
||||
HierarchyLocations::make_on_demand(OBJECT_HL, I"Object");
|
||||
HierarchyLocations::make_on_demand(NOTHING_HL, I"nothing");
|
||||
HierarchyLocations::make_on_demand(TESTUSEOPTION_HL, I"TestUseOption");
|
||||
HierarchyLocations::make_on_demand(TABLEOFTABLES_HL, I"TableOfTables");
|
||||
HierarchyLocations::make_on_demand(TABLEOFVERBS_HL, I"TableOfVerbs");
|
||||
HierarchyLocations::make_on_demand(CAPSHORTNAME_HL, I"cap_short_name");
|
||||
HierarchyLocations::make_on_demand(COMMANDPROMPTTEXT_HL, I"CommandPromptText");
|
||||
HierarchyLocations::make_on_demand(DECIMAL_TOKEN_INNER_HL, I"DECIMAL_TOKEN_INNER");
|
||||
HierarchyLocations::make_on_demand(NO_USE_OPTIONS_HL, I"NO_USE_OPTIONS");
|
||||
HierarchyLocations::make_on_demand(RESOURCEIDSOFFIGURES_HL, I"ResourceIDsOfFigures");
|
||||
HierarchyLocations::make_on_demand(RESOURCEIDSOFSOUNDS_HL, I"ResourceIDsOfSounds");
|
||||
HierarchyLocations::make_on_demand(TIME_TOKEN_INNER_HL, I"TIME_TOKEN_INNER");
|
||||
HierarchyLocations::make_on_demand(TRUTH_STATE_TOKEN_INNER_HL, I"TRUTH_STATE_TOKEN_INNER");
|
||||
HierarchyLocations::make_in_exotic(OBJECT_HL, I"Object", K_OBJECT_XPACKAGE);
|
||||
HierarchyLocations::make_in_exotic(NOTHING_HL, I"nothing", K_OBJECT_XPACKAGE);
|
||||
HierarchyLocations::make_in_exotic(CAPSHORTNAME_HL, I"cap_short_name", K_OBJECT_XPACKAGE);
|
||||
|
||||
HierarchyLocations::make_function_in_exotic(DECIMAL_TOKEN_INNER_HL, I"gpr_fn", I"DECIMAL_TOKEN_INNER", K_NUMBER_XPACKAGE);
|
||||
|
||||
HierarchyLocations::make_function_in_exotic(TIME_TOKEN_INNER_HL, I"gpr_fn", I"TIME_TOKEN_INNER", K_TIME_XPACKAGE);
|
||||
|
||||
HierarchyLocations::make_function_in_exotic(TRUTH_STATE_TOKEN_INNER_HL, I"gpr_fn", I"TRUTH_STATE_TOKEN_INNER", K_TRUTH_STATE_XPACKAGE);
|
||||
|
||||
HierarchyLocations::make_in_exotic(TABLEOFTABLES_HL, I"TableOfTables", K_TABLE_XPACKAGE);
|
||||
|
||||
HierarchyLocations::make_in_exotic(TABLEOFVERBS_HL, I"TableOfVerbs", K_VERB_XPACKAGE);
|
||||
|
||||
HierarchyLocations::make_in_exotic(RESOURCEIDSOFFIGURES_HL, I"ResourceIDsOfFigures", K_FIGURE_NAME_XPACKAGE);
|
||||
|
||||
HierarchyLocations::make_in_exotic(RESOURCEIDSOFSOUNDS_HL, I"ResourceIDsOfSounds", K_SOUND_NAME_XPACKAGE);
|
||||
|
||||
HierarchyLocations::make_in_exotic(NO_USE_OPTIONS_HL, I"NO_USE_OPTIONS", K_USE_OPTION_XPACKAGE);
|
||||
HierarchyLocations::make_function_in_exotic(TESTUSEOPTION_HL, I"test_fn", I"TestUseOption", K_USE_OPTION_XPACKAGE);
|
||||
|
||||
HierarchyLocations::make_function_in_exotic(COMMANDPROMPTTEXT_HL, I"command_prompt_text_fn", I"CommandPromptText", V_COMMAND_PROMPT_XPACKAGE);
|
||||
|
||||
@
|
||||
|
||||
|
@ -983,6 +1003,58 @@ void Hierarchy::establish(void) {
|
|||
|
||||
@
|
||||
|
||||
=
|
||||
package_request *Hierarchy::exotic_package(int x) {
|
||||
switch (x) {
|
||||
case K_OBJECT_XPACKAGE: return Kinds::Behaviour::package(K_object);
|
||||
case K_NUMBER_XPACKAGE: return Kinds::Behaviour::package(K_number);
|
||||
case K_TIME_XPACKAGE: return Kinds::Behaviour::package(K_time);
|
||||
case K_TRUTH_STATE_XPACKAGE: return Kinds::Behaviour::package(K_truth_state);
|
||||
case K_TABLE_XPACKAGE: return Kinds::Behaviour::package(K_table);
|
||||
case K_VERB_XPACKAGE: return Kinds::Behaviour::package(K_verb);
|
||||
case K_FIGURE_NAME_XPACKAGE: return Kinds::Behaviour::package(K_figure_name);
|
||||
case K_SOUND_NAME_XPACKAGE: return Kinds::Behaviour::package(K_sound_name);
|
||||
case K_USE_OPTION_XPACKAGE: return Kinds::Behaviour::package(K_use_option);
|
||||
case V_COMMAND_PROMPT_XPACKAGE:
|
||||
return Packaging::home_of(NonlocalVariables::iname(command_prompt_VAR));
|
||||
}
|
||||
internal_error("unknown exotic package");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@
|
||||
|
||||
=
|
||||
inter_name *Hierarchy::post_process(int HL_id, inter_name *iname) {
|
||||
switch (HL_id) {
|
||||
case THESAME_HL:
|
||||
case PLURALFOUND_HL:
|
||||
case PARENT_HL:
|
||||
case CHILD_HL:
|
||||
case SIBLING_HL:
|
||||
case THEDARK_HL:
|
||||
case FLOAT_NAN_HL:
|
||||
case RESPONSETEXTS_HL: {
|
||||
packaging_state save = Packaging::enter_home_of(iname);
|
||||
Emit::named_numeric_constant(iname, 0);
|
||||
Packaging::exit(save);
|
||||
break;
|
||||
}
|
||||
case SELF_HL: {
|
||||
packaging_state save = Packaging::enter_home_of(iname);
|
||||
Emit::variable(iname, K_value, UNDEF_IVAL, 0, I"self");
|
||||
Packaging::exit(save);
|
||||
break;
|
||||
}
|
||||
case OBJECT_HL:
|
||||
iname = Kinds::RunTime::I6_classname(K_object);
|
||||
break;
|
||||
}
|
||||
return iname;
|
||||
}
|
||||
|
||||
@
|
||||
|
||||
=
|
||||
inter_name *Hierarchy::find(int id) {
|
||||
return HierarchyLocations::find(id);
|
||||
|
|
Loading…
Reference in a new issue