mirror of
https://github.com/ganelson/inform.git
synced 2024-06-26 04:00:43 +03:00
Rewrite of kind constructor support code in runtime module
This commit is contained in:
parent
25e625eaf3
commit
7569de20a8
|
@ -1,6 +1,6 @@
|
|||
# Inform 7
|
||||
|
||||
[Version](notes/versioning.md): 10.2.0-beta+6W66 'Krypton' (24 June 2023)
|
||||
[Version](notes/versioning.md): 10.2.0-beta+6W67 'Krypton' (26 June 2023)
|
||||
|
||||
## About Inform
|
||||
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
Prerelease: beta
|
||||
Build Date: 24 June 2023
|
||||
Build Number: 6W66
|
||||
Build Date: 26 June 2023
|
||||
Build Number: 6W67
|
||||
|
|
|
@ -65,7 +65,7 @@ MathJax = {
|
|||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>Rulebooks Template</b></li></ul></div>
|
||||
<p class="purpose">To work through the rules in a rulebook until a decision is made.</p>
|
||||
|
||||
<ul class="toc"><li><a href="S-rlb.html#SP1">§1. Latest Rule Result</a></li><li><a href="S-rlb.html#SP2">§2. Following</a></li><li><a href="S-rlb.html#SP3">§3. Specifying Outcomes</a></li><li><a href="S-rlb.html#SP4">§4. Discovering Outcomes</a></li><li><a href="S-rlb.html#SP5">§5. Printing Rule Names</a></li><li><a href="S-rlb.html#SP6">§6. Casting</a></li><li><a href="S-rlb.html#SP7">§7. Debugging</a></li><li><a href="S-rlb.html#SP8">§8. The Default Rule and Rulebook</a></li></ul><hr class="tocbar">
|
||||
<ul class="toc"><li><a href="S-rlb.html#SP1">§1. Latest Rule Result</a></li><li><a href="S-rlb.html#SP2">§2. Following</a></li><li><a href="S-rlb.html#SP3">§3. Specifying Outcomes</a></li><li><a href="S-rlb.html#SP4">§4. Discovering Outcomes</a></li><li><a href="S-rlb.html#SP5">§5. Casting</a></li><li><a href="S-rlb.html#SP6">§6. Debugging</a></li><li><a href="S-rlb.html#SP7">§7. The Default Rule and Rulebook</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. Latest Rule Result. </b>This used to be a large data structure which kept track of the effect of
|
||||
procedural rules, but in January 2011 procedurals were abolished. It retains
|
||||
|
@ -277,20 +277,13 @@ call it.)
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">DefaultValueOfKOV</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">];</span>
|
||||
|
||||
<span class="plain-syntax">[ </span><span class="identifier-syntax">RulebookOutcomePrintingRule</span><span class="plain-syntax"> </span><span class="identifier-syntax">nro</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">nro</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"(no outcome)"</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> (</span><span class="reserved-syntax">string</span><span class="plain-syntax">) </span><span class="identifier-syntax">nro</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">];</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. Printing Rule Names. </b>This is the I6 printing rule used for a value of kind "rule", which as
|
||||
noted above can either be rulebook ID numbers in the range 0 to \(N-1\) or
|
||||
are addresses of individual rules.
|
||||
</p>
|
||||
|
||||
<p class="commentary">Names of rules and rulebooks take up a fair amount of space, and one of the
|
||||
main memory economies enforced by the "Use memory economy" option is to
|
||||
omit the necessary arrays. (It's not the text which is the problem so
|
||||
much as the table of addresses pointing to that text, which has to live in
|
||||
precious readable memory on the Z-machine.)
|
||||
</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>§6. Casting. </b>Nothing needs to be done to a rulebook value to make it a rule value.
|
||||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. Casting. </b>Nothing needs to be done to a rulebook value to make it a rule value.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -298,7 +291,7 @@ precious readable memory on the Z-machine.)
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">r</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">];</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>§7. Debugging. </b>Two modest routines to print out the names of rules and rulebooks when they
|
||||
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>§6. Debugging. </b>Two modest routines to print out the names of rules and rulebooks when they
|
||||
occur, in so far as memory economy allows this.
|
||||
</p>
|
||||
|
||||
|
@ -323,7 +316,7 @@ occur, in so far as memory economy allows this.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">").]^"</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">];</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>§8. The Default Rule and Rulebook. </b></p>
|
||||
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>§7. The Default Rule and Rulebook. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax">[ </span><span class="identifier-syntax">LITTLE_USED_DO_NOTHING_R</span><span class="plain-syntax">; </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">; ];</span>
|
||||
|
|
|
@ -152,9 +152,6 @@ by enumerating them in the property <span class="extract"><span class="extract-s
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">NUM_DOORS</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ICOUNT_DOOR</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">NUM_ROOMS</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ICOUNT_ROOM</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="reserved-syntax">Array</span><span class="plain-syntax"> </span><span class="identifier-syntax">DoorRoutingViable</span><span class="plain-syntax"> -> </span><span class="identifier-syntax">NUM_DOORS</span><span class="plain-syntax">+1;</span>
|
||||
|
||||
<span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">map_has_changed</span><span class="plain-syntax"> = </span><span class="reserved-syntax">true</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -178,7 +178,6 @@ special Preform of its own; here is the subject phrase:
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">av</span><span class="plain-syntax">-></span><span class="element-syntax">after_rules</span><span class="plain-syntax"> = </span><a href="6-act.html#SP6" class="function-link"><span class="function-syntax">Activities::make_rulebook</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">av</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginCalls::new_activity_notify</span><span class="plain-syntax">(</span><span class="identifier-syntax">av</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">av</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
|
|
@ -305,6 +305,7 @@ here, which only happens when special runs are made for compiler testing.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTUseOptions::compile</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTCommandGrammars::compile_non_generic_constants</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">Interventions::make_all</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTKindConstructors::assign_declaration_sequence_numbers</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTKindConstructors::compile</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTLiteralPatterns::compile</span><span class="plain-syntax">)</span>
|
||||
</pre>
|
||||
|
|
|
@ -676,7 +676,7 @@ be a description which is true or false for any given value, so:
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">K_understanding</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_understanding</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">RTKindConstructors::request_I6_GPR</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_understandable</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_source</span><span class="plain-syntax">(1, </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_wording</span><span class="plain-syntax">(2, </span><a href="5-cgt.html#SP8" class="function-link"><span class="function-syntax">CGTokens::text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">StandardProblems::handmade_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_UnparsableKind</span><span class="plain-syntax">));</span>
|
||||
|
|
|
@ -83,6 +83,7 @@ chapter.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginCalls::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">COMPLETE_MODEL_PLUG</span><span class="plain-syntax">, </span><a href="5-pp.html#SP9" class="function-link"><span class="function-syntax">ParsingPlugin::complete_model</span></a><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">RTLiteralPatterns::enable_parsing</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">RTKindConstructors::enable_parsing</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b>This will also need extensive amounts of run-time code, and the sequence
|
||||
|
|
|
@ -794,11 +794,12 @@ it, one at a time, by previous Understand sentences.
|
|||
<span class="plain-syntax"> </span><span class="string-syntax">"and this refers to something which is not an object."</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">PK</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ValueProperties::kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">pr</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Properties::is_either_or</span><span class="plain-syntax">(</span><span class="identifier-syntax">pr</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTKindConstructors::get_recognition_only_GPR</span><span class="plain-syntax">(</span><span class="identifier-syntax">ValueProperties::kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">pr</span><span class="plain-syntax">))) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> ((</span><span class="identifier-syntax">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">ValueProperties::kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">pr</span><span class="plain-syntax">))) ||</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">RTKindConstructors::request_I6_GPR</span><span class="plain-syntax">(</span><span class="identifier-syntax">ValueProperties::kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">pr</span><span class="plain-syntax">)) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">ValueProperties::kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">pr</span><span class="plain-syntax">)))</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">RTKindConstructors::recognition_only_GPR_provided_by_kit</span><span class="plain-syntax">(</span><span class="identifier-syntax">PK</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> ((</span><span class="identifier-syntax">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">PK</span><span class="plain-syntax">)) ||</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_understandable</span><span class="plain-syntax">(</span><span class="identifier-syntax">PK</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">PK</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">StandardProblems::sentence_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</span><span class="plain-syntax">(),</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_ThingReferringProperty</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"the value of that property is itself a kind of object"</span><span class="plain-syntax">,</span>
|
||||
|
@ -1039,7 +1040,7 @@ and add it to a suitably chosen CG with <a href="5-cg.html#SP17" class="internal
|
|||
<span class="plain-syntax"> </span><span class="string-syntax">"make sense."</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">RTKindConstructors::request_I6_GPR</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_understandable</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">StandardProblems::sentence_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</span><span class="plain-syntax">(),</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_UnderstandAsBadValue</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"'understand ... as ...' gives text meaning a value whose kind "</span>
|
||||
|
|
|
@ -339,11 +339,11 @@ performance.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RTKindConstructors::instances_array_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Calculus::Schemas::modify</span><span class="plain-syntax">(</span><span class="identifier-syntax">sch</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"for (*2=1, *1=%n-->*2: *2<=%d: *2++, *1=%n-->*2)"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">lname</span><span class="plain-syntax">, </span><span class="identifier-syntax">RTKindConstructors::get_highest_valid_value_as_integer</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">), </span><span class="identifier-syntax">lname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">lname</span><span class="plain-syntax">, </span><span class="identifier-syntax">RTKindConstructors::enumeration_size</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">), </span><span class="identifier-syntax">lname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Calculus::Schemas::modify</span><span class="plain-syntax">(</span><span class="identifier-syntax">sch</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"for (*1=1: *1<=%d: *1++)"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">RTKindConstructors::get_highest_valid_value_as_integer</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">RTKindConstructors::enumeration_size</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
|
|
@ -328,7 +328,7 @@ longer possible to know at compile-time.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::inv</span><span class="plain-syntax">(</span><span class="identifier-syntax">INDIRECT0_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::down</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::val_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">RTKindConstructors::get_ranger_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">RTKindConstructors::random_value_fn_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::up</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
|
|
@ -271,7 +271,7 @@ of four things can happen to the term arising from a token:
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cr</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">pt</span><span class="plain-syntax">-></span><span class="identifier-syntax">term_checked_as_kind</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">cr</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RTKindConstructors::get_comparison_fn_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">pt</span><span class="plain-syntax">-></span><span class="identifier-syntax">term_checked_as_kind</span><span class="plain-syntax">-></span><span class="identifier-syntax">construct</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">cr</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RTKindConstructors::comparison_fn_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">pt</span><span class="plain-syntax">-></span><span class="identifier-syntax">term_checked_as_kind</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">cr</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Hierarchy::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">SIGNEDCOMPARE_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::val_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">cr</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -949,7 +949,7 @@ proposition.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><a href="5-cii.html#SP9" class="function-link"><span class="function-syntax">CSIInline::parse_bracing_operand_as_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ist</span><span class="plain-syntax">-></span><span class="identifier-syntax">operand</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::get_kind_variable_declarations</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax">) </span><span class="identifier-syntax">EmitCode::val_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">RTKindConstructors::get_inc_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax">) </span><span class="identifier-syntax">EmitCode::val_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">RTKindConstructors::increment_fn_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-cii.html#SP6_3_1_2" class="named-paragraph-link"><span class="named-paragraph">Issue an inline no-such-kind problem</span><span class="named-paragraph-number">6.3.1.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
|
@ -960,7 +960,7 @@ proposition.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><a href="5-cii.html#SP9" class="function-link"><span class="function-syntax">CSIInline::parse_bracing_operand_as_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ist</span><span class="plain-syntax">-></span><span class="identifier-syntax">operand</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::get_kind_variable_declarations</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax">) </span><span class="identifier-syntax">EmitCode::val_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">RTKindConstructors::get_dec_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax">) </span><span class="identifier-syntax">EmitCode::val_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">RTKindConstructors::decrement_fn_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-cii.html#SP6_3_1_2" class="named-paragraph-link"><span class="named-paragraph">Issue an inline no-such-kind problem</span><span class="named-paragraph-number">6.3.1.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
|
@ -971,7 +971,7 @@ proposition.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><a href="5-cii.html#SP9" class="function-link"><span class="function-syntax">CSIInline::parse_bracing_operand_as_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ist</span><span class="plain-syntax">-></span><span class="identifier-syntax">operand</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::get_kind_variable_declarations</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax">) </span><span class="identifier-syntax">EmitCode::val_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">RTKindConstructors::get_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax">) </span><span class="identifier-syntax">EmitCode::val_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">RTKindConstructors::printing_fn_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-cii.html#SP6_3_1_2" class="named-paragraph-link"><span class="named-paragraph">Issue an inline no-such-kind problem</span><span class="named-paragraph-number">6.3.1.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
|
@ -985,7 +985,7 @@ proposition.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">)) ||</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_time</span><span class="plain-syntax">)))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::val_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">Hierarchy::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">GENERATERANDOMNUMBER_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax">) </span><span class="identifier-syntax">EmitCode::val_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">RTKindConstructors::get_ranger_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax">) </span><span class="identifier-syntax">EmitCode::val_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">RTKindConstructors::random_value_fn_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-cii.html#SP6_3_1_2" class="named-paragraph-link"><span class="named-paragraph">Issue an inline no-such-kind problem</span><span class="named-paragraph-number">6.3.1.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
|
@ -996,7 +996,7 @@ proposition.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><a href="5-cii.html#SP9" class="function-link"><span class="function-syntax">CSIInline::parse_bracing_operand_as_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ist</span><span class="plain-syntax">-></span><span class="identifier-syntax">operand</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::get_kind_variable_declarations</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax">) </span><span class="identifier-syntax">EmitCode::val_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">RTKindConstructors::get_indexing_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax">) </span><span class="identifier-syntax">EmitCode::val_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">RTKindConstructors::indexing_fn_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-cii.html#SP6_3_1_2" class="named-paragraph-link"><span class="named-paragraph">Issue an inline no-such-kind problem</span><span class="named-paragraph-number">6.3.1.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
|
@ -1701,7 +1701,7 @@ result would be the same without the optimisation.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">)) </span><span class="named-paragraph-container code-font"><a href="5-cii.html#SP6_6_8_2" class="named-paragraph-link"><span class="named-paragraph">Inline say number</span><span class="named-paragraph-number">6.6.8.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_unicode_character</span><span class="plain-syntax">)) </span><span class="named-paragraph-container code-font"><a href="5-cii.html#SP6_6_8_3" class="named-paragraph-link"><span class="named-paragraph">Inline say unicode character</span><span class="named-paragraph-number">6.6.8.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::call</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTKindConstructors::get_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::call</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTKindConstructors::printing_fn_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::down</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-cv.html#SP5" class="function-link"><span class="function-syntax">CompileValues::to_code_val_of_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">to_say</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::up</span><span class="plain-syntax">();</span>
|
||||
|
@ -1727,7 +1727,7 @@ result would be the same without the optimisation.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::up</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Specifications::to_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">to_say</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::call</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTKindConstructors::get_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::call</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTKindConstructors::printing_fn_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::down</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-cv.html#SP5" class="function-link"><span class="function-syntax">CompileValues::to_code_val_of_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">to_say</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::up</span><span class="plain-syntax">();</span>
|
||||
|
@ -2304,7 +2304,7 @@ representation. This is the functionality I would most like to remove from Infor
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::val_number</span><span class="plain-syntax">(1);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::up</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::call</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTKindConstructors::get_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::call</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTKindConstructors::printing_fn_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::down</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-cv.html#SP5" class="function-link"><span class="function-syntax">CompileValues::to_code_val</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::up</span><span class="plain-syntax">();</span>
|
||||
|
|
|
@ -179,8 +179,7 @@ order, then sorted.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_INVENTORY_PACKAGES</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="identifier-syntax">kind_nodes</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_base"</span><span class="plain-syntax">)) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_subkind_of_object"</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_subkind_of_object"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">index_lexicon_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lex</span><span class="plain-syntax"> = </span><a href="2-lxc.html#SP4" class="function-link"><span class="function-syntax">IndexLexicon::new_entry</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Metadata::required_textual</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^name"</span><span class="plain-syntax">), </span><span class="constant-syntax">COMMON_NOUN_TLEXE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">lex</span><span class="plain-syntax">-></span><span class="element-syntax">link_to</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">int</span><span class="plain-syntax">) </span><span class="identifier-syntax">Metadata::read_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^at"</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -102,8 +102,7 @@ higher up, but kinds with priority 0 do not appear in the index at all.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">priority</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">; </span><span class="identifier-syntax">priority</span><span class="plain-syntax"> <= </span><span class="constant-syntax">LOWEST_INDEX_PRIORITY</span><span class="plain-syntax">; </span><span class="identifier-syntax">priority</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_INVENTORY_PACKAGES</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="identifier-syntax">kind_nodes</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_base"</span><span class="plain-syntax">)) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_subkind_of_object"</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_subkind_of_object"</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">priority</span><span class="plain-syntax"> == (</span><span class="reserved-syntax">int</span><span class="plain-syntax">) </span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^index_priority"</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">priority</span><span class="plain-syntax"> == </span><span class="constant-syntax">8</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_definite"</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-ce2.html#SP1_1_2" class="named-paragraph-link"><span class="named-paragraph">Index this kind package</span><span class="named-paragraph-number">1.1.2</span></a></span><span class="plain-syntax">;</span>
|
||||
|
@ -416,8 +415,7 @@ whole row.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">depth</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">pass</span><span class="plain-syntax">, </span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">subkind_pack</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_INVENTORY_PACKAGES</span><span class="plain-syntax">(</span><span class="identifier-syntax">subkind_pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="identifier-syntax">kind_nodes</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">subkind_pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_base"</span><span class="plain-syntax">)) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">subkind_pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_subkind_of_object"</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">subkind_pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_subkind_of_object"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">super_weak</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::optional_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">subkind_pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^superkind"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">super_weak</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">InterPackage::container</span><span class="plain-syntax">(</span><span class="identifier-syntax">super_weak</span><span class="plain-syntax">-></span><span class="identifier-syntax">definition</span><span class="plain-syntax">) == </span><span class="identifier-syntax">pack</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><a href="3-ce2.html#SP6" class="function-link"><span class="function-syntax">ChartElement::index_object_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">subkind_pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">depth</span><span class="plain-syntax">, </span><span class="identifier-syntax">pass</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -73,7 +73,7 @@ MathJax = {
|
|||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../services.html">Services</a></li><li><a href="index.html">kinds</a></li><li><a href="index.html#2">Chapter 2: Kinds</a></li><li><b>Using Kinds</b></li></ul></div>
|
||||
<p class="purpose">To determine the characteristics of different kinds, enabling them to be used in practice.</p>
|
||||
|
||||
<ul class="toc"><li><a href="2-uk.html#SP1">§1. Names of kinds</a></li><li><a href="2-uk.html#SP2">§2. Being an object</a></li><li><a href="2-uk.html#SP3">§3. Definiteness</a></li><li><a href="2-uk.html#SP5">§5. (A) How this came into being</a></li><li><a href="2-uk.html#SP12">§12. (B) Constructing kinds</a></li><li><a href="2-uk.html#SP13">§13. (C) Compatibility with other kinds</a></li><li><a href="2-uk.html#SP14">§14. (D) How constant values of this kind are expressed</a></li><li><a href="2-uk.html#SP17">§17. (G) Performing arithmetic</a></li><li><a href="2-uk.html#SP20">§20. (H) An identifier name</a></li><li><a href="2-uk.html#SP21">§21. (I) Storing values at run-time</a></li><li><a href="2-uk.html#SP26">§26. (K) Indexing and documentation</a></li></ul><hr class="tocbar">
|
||||
<ul class="toc"><li><a href="2-uk.html#SP1">§1. Names of kinds</a></li><li><a href="2-uk.html#SP2">§2. Being an object</a></li><li><a href="2-uk.html#SP3">§3. Definiteness</a></li><li><a href="2-uk.html#SP5">§5. (A) How this came into being</a></li><li><a href="2-uk.html#SP12">§12. (B) Command parsing</a></li><li><a href="2-uk.html#SP13">§13. (C) Compatibility with other kinds</a></li><li><a href="2-uk.html#SP14">§14. (D) How constant values of this kind are expressed</a></li><li><a href="2-uk.html#SP17">§17. (G) Performing arithmetic</a></li><li><a href="2-uk.html#SP20">§20. (H) An identifier name</a></li><li><a href="2-uk.html#SP21">§21. (I) Storing values at run-time</a></li><li><a href="2-uk.html#SP26">§26. (K) Indexing and documentation</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. Names of kinds. </b></p>
|
||||
|
||||
|
@ -269,6 +269,24 @@ by the next instance to be created.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="element-syntax">construct</span><span class="plain-syntax">-></span><span class="element-syntax">next_free_value</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>§12. (B) Command parsing. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::Behaviour::is_understandable</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-kc2.html#SP17" class="function-link"><span class="function-syntax">KindConstructors::is_understandable</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="element-syntax">construct</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">Kinds::Behaviour::GPR_identifier</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="element-syntax">construct</span><span class="plain-syntax">-></span><span class="element-syntax">explicit_GPR_identifier</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">Kinds::Behaviour::recognition_only_GPR_identifier</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="element-syntax">construct</span><span class="plain-syntax">-></span><span class="element-syntax">recognition_routine</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>§13. (C) Compatibility with other kinds. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -387,6 +405,12 @@ operations can be applied, and if so, what kind the result has.
|
|||
<p class="commentary firstcommentary"><a id="SP20" class="paragraph-anchor"></a><b>§20. (H) An identifier name. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::Behaviour::comes_from_Neptune</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="element-syntax">construct</span><span class="plain-syntax">-></span><span class="element-syntax">explicit_identifier</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">Kinds::Behaviour::get_identifier</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">Kinds::Behaviour::get_identifier</span></span>:<br/>Kinds - <a href="2-knd.html#SP20">§20</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="string-syntax">"UNKNOWN_NT"</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="element-syntax">construct</span><span class="plain-syntax">-></span><span class="element-syntax">explicit_identifier</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -528,6 +528,18 @@ them tidily off in the index.
|
|||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::variance</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::variance</span></span>:<br/>Kinds - <a href="2-knd.html#SP17">§17</a><br/>The Lattice of Kinds - <a href="2-tlok.html#SP13_4">§13.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">b</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">con</span><span class="plain-syntax">-></span><span class="element-syntax">variance</span><span class="plain-syntax">[</span><span class="identifier-syntax">b</span><span class="plain-syntax">];</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::is_base</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">con</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">con</span><span class="plain-syntax">-></span><span class="element-syntax">group</span><span class="plain-syntax"> == </span><span class="constant-syntax">BASE_CONSTRUCTOR_GRP</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::is_proper_constructor</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">con</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">con</span><span class="plain-syntax">-></span><span class="element-syntax">group</span><span class="plain-syntax"> == </span><span class="constant-syntax">PROPER_CONSTRUCTOR_GRP</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP17" class="paragraph-anchor"></a><b>§17. Questions about constructors. </b>The rest of Inform is not encouraged to poke at constructors directly; it
|
||||
ought to ask questions about kinds instead (see "Using Kinds"). However:
|
||||
|
@ -543,7 +555,7 @@ ought to ask questions about kinds instead (see "Using Kinds"). However:
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::offers_I6_GPR</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::is_understandable</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::is_understandable</span></span>:<br/>Using Kinds - <a href="2-uk.html#SP12">§12</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">con</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="4-kc2.html#SP17" class="function-link"><span class="function-syntax">KindConstructors::is_definite</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">)) &&</span>
|
||||
<span class="plain-syntax"> (</span><a href="4-kc2.html#SP22" class="function-link"><span class="function-syntax">KindConstructors::compatible</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">,</span>
|
||||
|
@ -551,7 +563,7 @@ ought to ask questions about kinds instead (see "Using Kinds"). However:
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::is_arithmetic</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::is_arithmetic</span></span>:<br/><a href="4-kc2.html#SP13">§13</a><br/>Using Kinds - <a href="2-uk.html#SP18">§18</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::is_arithmetic</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::is_arithmetic</span></span>:<br/><a href="4-kc2.html#SP13">§13</a><br/>Using Kinds - <a href="2-uk.html#SP18">§18</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">con</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="4-kc2.html#SP17" class="function-link"><span class="function-syntax">KindConstructors::is_definite</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">)) &&</span>
|
||||
<span class="plain-syntax"> (</span><a href="4-kc2.html#SP22" class="function-link"><span class="function-syntax">KindConstructors::compatible</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">,</span>
|
||||
|
@ -559,7 +571,7 @@ ought to ask questions about kinds instead (see "Using Kinds"). However:
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::is_arithmetic_and_real</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::is_arithmetic_and_real</span></span>:<br/><a href="4-kc2.html#SP18">§18</a><br/>Floating-Point Values - <a href="3-fv.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::is_arithmetic_and_real</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::is_arithmetic_and_real</span></span>:<br/><a href="4-kc2.html#SP18">§18</a><br/>Floating-Point Values - <a href="3-fv.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">con</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="4-kc2.html#SP17" class="function-link"><span class="function-syntax">KindConstructors::is_definite</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">)) &&</span>
|
||||
<span class="plain-syntax"> (</span><a href="4-kc2.html#SP22" class="function-link"><span class="function-syntax">KindConstructors::compatible</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">,</span>
|
||||
|
@ -567,7 +579,7 @@ ought to ask questions about kinds instead (see "Using Kinds"). However:
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::is_an_enumeration</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::is_an_enumeration</span></span>:<br/><a href="4-kc2.html#SP13">§13</a><br/>Using Kinds - <a href="2-uk.html#SP7">§7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::is_an_enumeration</span><button class="popup" onclick="togglePopup('usagePopup18')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup18">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::is_an_enumeration</span></span>:<br/><a href="4-kc2.html#SP13">§13</a><br/>Using Kinds - <a href="2-uk.html#SP7">§7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">con</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="4-kc2.html#SP17" class="function-link"><span class="function-syntax">KindConstructors::is_definite</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">)) &&</span>
|
||||
<span class="plain-syntax"> (</span><a href="4-kc2.html#SP22" class="function-link"><span class="function-syntax">KindConstructors::compatible</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">,</span>
|
||||
|
@ -580,13 +592,13 @@ ought to ask questions about kinds instead (see "Using Kinds"). However:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::uses_signed_comparisons</span><button class="popup" onclick="togglePopup('usagePopup18')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup18">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::uses_signed_comparisons</span></span>:<br/>Using Kinds - <a href="2-uk.html#SP17">§17</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kc</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::uses_signed_comparisons</span><button class="popup" onclick="togglePopup('usagePopup19')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup19">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::uses_signed_comparisons</span></span>:<br/>Using Kinds - <a href="2-uk.html#SP17">§17</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kc</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">kc</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">kc</span><span class="plain-syntax">-></span><span class="element-syntax">comparison_routine</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"signed"</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">KindConstructors::get_comparison_fn_identifier</span><button class="popup" onclick="togglePopup('usagePopup19')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup19">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::get_comparison_fn_identifier</span></span>:<br/>Using Kinds - <a href="2-uk.html#SP17">§17</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kc</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">KindConstructors::get_comparison_fn_identifier</span><button class="popup" onclick="togglePopup('usagePopup20')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup20">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::get_comparison_fn_identifier</span></span>:<br/>Using Kinds - <a href="2-uk.html#SP17">§17</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kc</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">kc</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="4-kc2.html#SP17" class="function-link"><span class="function-syntax">KindConstructors::is_arithmetic_and_real</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kc</span><span class="plain-syntax">)) && (</span><span class="identifier-syntax">K_real_number</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">K_real_number</span><span class="plain-syntax">-></span><span class="element-syntax">construct</span><span class="plain-syntax">-></span><span class="element-syntax">comparison_routine</span><span class="plain-syntax">;</span>
|
||||
|
@ -599,7 +611,7 @@ group) which it's an instance of: value, word value, arithmetic value, and so on
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::find_cast</span><button class="popup" onclick="togglePopup('usagePopup20')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup20">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::find_cast</span></span>:<br/><a href="4-kc2.html#SP22">§22</a><br/>The Lattice of Kinds - <a href="2-tlok.html#SP13_6">§13.6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::find_cast</span><button class="popup" onclick="togglePopup('usagePopup21')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup21">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::find_cast</span></span>:<br/><a href="4-kc2.html#SP22">§22</a><br/>The Lattice of Kinds - <a href="2-tlok.html#SP13_6">§13.6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">to</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">kind_constructor_casting_rule</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dtcr</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">dtcr</span><span class="plain-syntax"> = </span><span class="identifier-syntax">to</span><span class="plain-syntax">-></span><span class="element-syntax">first_casting_rule</span><span class="plain-syntax">; </span><span class="identifier-syntax">dtcr</span><span class="plain-syntax">; </span><span class="identifier-syntax">dtcr</span><span class="plain-syntax"> = </span><span class="identifier-syntax">dtcr</span><span class="plain-syntax">-></span><span class="element-syntax">next_casting_rule</span><span class="plain-syntax">) {</span>
|
||||
|
@ -620,7 +632,7 @@ group or <span class="extract"><span class="extract-syntax">PROPER_CONSTRUCTOR_G
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::find_instance</span><button class="popup" onclick="togglePopup('usagePopup21')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup21">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::find_instance</span></span>:<br/><a href="4-kc2.html#SP22">§22</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::find_instance</span><button class="popup" onclick="togglePopup('usagePopup22')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup22">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::find_instance</span></span>:<br/><a href="4-kc2.html#SP22">§22</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">kind_constructor_instance_rule</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dti</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">dti</span><span class="plain-syntax"> = </span><span class="identifier-syntax">from</span><span class="plain-syntax">-></span><span class="element-syntax">first_instance_rule</span><span class="plain-syntax">; </span><span class="identifier-syntax">dti</span><span class="plain-syntax">; </span><span class="identifier-syntax">dti</span><span class="plain-syntax"> = </span><span class="identifier-syntax">dti</span><span class="plain-syntax">-></span><span class="element-syntax">next_instance_rule</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">dti</span><span class="plain-syntax">-></span><span class="element-syntax">instance_of_this_unparsed</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
|
@ -648,7 +660,7 @@ file creating it (if any were: by default this will be empty):
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::compatible</span><button class="popup" onclick="togglePopup('usagePopup22')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup22">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::compatible</span></span>:<br/><a href="4-kc2.html#SP17">§17</a>, <a href="4-kc2.html#SP23">§23</a><br/>The Lattice of Kinds - <a href="2-tlok.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::compatible</span><button class="popup" onclick="togglePopup('usagePopup23')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup23">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::compatible</span></span>:<br/><a href="4-kc2.html#SP17">§17</a>, <a href="4-kc2.html#SP23">§23</a><br/>The Lattice of Kinds - <a href="2-tlok.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">allow_casts</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">to</span><span class="plain-syntax"> == </span><span class="identifier-syntax">from</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">to</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">from</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
|
@ -661,7 +673,7 @@ file creating it (if any were: by default this will be empty):
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::uses_block_values</span><button class="popup" onclick="togglePopup('usagePopup23')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup23">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::uses_block_values</span></span>:<br/>Using Kinds - <a href="2-uk.html#SP21">§21</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::uses_block_values</span><button class="popup" onclick="togglePopup('usagePopup24')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup24">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::uses_block_values</span></span>:<br/>Using Kinds - <a href="2-uk.html#SP21">§21</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">con</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="4-kc2.html#SP17" class="function-link"><span class="function-syntax">KindConstructors::is_definite</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">)) &&</span>
|
||||
<span class="plain-syntax"> (</span><a href="4-kc2.html#SP22" class="function-link"><span class="function-syntax">KindConstructors::compatible</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">, </span><a href="2-knd.html#SP11" class="function-link"><span class="function-syntax">Kinds::get_construct</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_pointer_value</span><span class="plain-syntax">), </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)))</span>
|
||||
|
|
|
@ -280,8 +280,7 @@ which have to be given some type-safe value to start out at.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><InterNodeList::array_len(inv-></span><span class="element-syntax">kind_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PackageInstruction::at_this_head</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">kind_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_base"</span><span class="plain-syntax">)) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Metadata::optional_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^print_fn"</span><span class="plain-syntax">)) &&</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Metadata::optional_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^print_fn"</span><span class="plain-syntax">)) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_subkind_of_object"</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">id_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::required_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^strong_id"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">print_fn_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::required_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^print_fn"</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -59,7 +59,7 @@ function togglePopup(material_id) {
|
|||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../intern.html">Inter Modules</a></li><li><a href="index.html">pipeline</a></li><li><a href="index.html#5">Chapter 5: Synoptic Module</a></li><li><b>Synoptic Hierarchy</b></li></ul></div>
|
||||
<p class="purpose">The layout and naming conventions for the contents of the main/synoptic module.</p>
|
||||
|
||||
<ul class="toc"><li><a href="5-sh.html#SP1_2">§1.2. Actions</a></li><li><a href="5-sh.html#SP1_3">§1.3. Activities</a></li><li><a href="5-sh.html#SP1_5">§1.5. Chronology</a></li><li><a href="5-sh.html#SP1_7">§1.7. Conjugations</a></li><li><a href="5-sh.html#SP1_9">§1.9. Dialogue</a></li><li><a href="5-sh.html#SP1_11">§1.11. Extensions</a></li><li><a href="5-sh.html#SP1_13">§1.13. Instances</a></li><li><a href="5-sh.html#SP1_15">§1.15. Kinds</a></li><li><a href="5-sh.html#SP1_17">§1.17. Multimedia</a></li><li><a href="5-sh.html#SP1_19">§1.19. Properties</a></li><li><a href="5-sh.html#SP1_21">§1.21. Relations</a></li><li><a href="5-sh.html#SP1_23">§1.23. Rulebooks</a></li><li><a href="5-sh.html#SP1_25">§1.25. Rules</a></li><li><a href="5-sh.html#SP1_27">§1.27. Scenes</a></li><li><a href="5-sh.html#SP1_29">§1.29. Tables</a></li><li><a href="5-sh.html#SP1_31">§1.31. Tests</a></li><li><a href="5-sh.html#SP1_33">§1.33. Use options</a></li></ul><hr class="tocbar">
|
||||
<ul class="toc"><li><a href="5-sh.html#SP1_2">§1.2. Actions</a></li><li><a href="5-sh.html#SP1_3">§1.3. Activities</a></li><li><a href="5-sh.html#SP1_5">§1.5. Chronology</a></li><li><a href="5-sh.html#SP1_7">§1.7. Conjugations</a></li><li><a href="5-sh.html#SP1_9">§1.9. Dialogue</a></li><li><a href="5-sh.html#SP1_11">§1.11. Extensions</a></li><li><a href="5-sh.html#SP1_13">§1.13. Instances</a></li><li><a href="5-sh.html#SP1_15">§1.15. Kinds</a></li><li><a href="5-sh.html#SP1_17">§1.17. Multimedia</a></li><li><a href="5-sh.html#SP1_19">§1.19. Properties</a></li><li><a href="5-sh.html#SP1_21">§1.21. Relations</a></li><li><a href="5-sh.html#SP1_23">§1.23. Rulebooks</a></li><li><a href="5-sh.html#SP1_25">§1.25. Rules</a></li><li><a href="5-sh.html#SP1_27">§1.27. Scenes</a></li><li><a href="5-sh.html#SP1_29">§1.29. Tables</a></li><li><a href="5-sh.html#SP1_31">§1.31. Tests</a></li><li><a href="5-sh.html#SP1_33">§1.33. Use options</a></li><li><a href="5-sh.html#SP2">§2. Synoptic printing functions</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b>This section gives a map of what resources will be made in the synoptic
|
||||
module. The definitions here enable code generated by <a href="../inform7/index.html" class="internal">inform7</a> or <a href="../inter/index.html" class="internal">inter</a>
|
||||
|
@ -455,6 +455,18 @@ fuller explanation.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">SYN_CONST</span><span class="plain-syntax">(</span><span class="constant-syntax">USE_OPTION_VALUES_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"USE_OPTION_VALUES"</span><span class="plain-syntax">)</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-sh.html#SP1">§1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. Synoptic printing functions. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax">#</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">CORE_MODULE</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">SynopticHierarchy::printing_function_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_use_option</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">HierarchyLocations::iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">PRINT_USE_OPTION_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_table</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">HierarchyLocations::iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">PRINT_TABLE_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_response</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">HierarchyLocations::iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">PRINT_RESPONSE_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
<span class="plain-syntax">#</span><span class="identifier-syntax">endif</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-msms.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-ps.html">3</a></li><li class="progresschapter"><a href="4-lbks.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-msms.html">msms</a></li><li class="progresscurrent">sh</li><li class="progresssection"><a href="5-su.html">su</a></li><li class="progresssection"><a href="5-ext.html">ext</a></li><li class="progresssection"><a href="5-lt.html">lt</a></li><li class="progresssection"><a href="5-rsp.html">rsp</a></li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-act2.html">act2</a></li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresssection"><a href="5-dlg.html">dlg</a></li><li class="progresssection"><a href="5-knd.html">knd</a></li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresssection"><a href="5-rlt.html">rlt</a></li><li class="progresssection"><a href="5-tbl.html">tbl</a></li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progresssection"><a href="5-mlt.html">mlt</a></li><li class="progresssection"><a href="5-uo.html">uo</a></li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresssection"><a href="5-tst.html">tst</a></li><li class="progresschapter"><a href="6-erms.html">6</a></li><li class="progressnext"><a href="5-su.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
|
|
@ -93,7 +93,7 @@ messages.
|
|||
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::generic_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">DefaultValues::val</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">DefaultValues::val</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP11">§11</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">storage_name</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">DefaultValues::val</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">DefaultValues::val</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP30_3_12">§30.3.12</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">storage_name</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">value_holster</span><span class="plain-syntax"> </span><span class="identifier-syntax">VH</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Holsters::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">INTER_DATA_VHMODE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax"> = </span><a href="2-dv.html#SP1" class="function-link"><span class="function-syntax">DefaultValues::to_holster</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">VH</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">storage_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Holsters::unholster_to_code_val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), &</span><span class="identifier-syntax">VH</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -79,7 +79,7 @@ enforced; it's fine to store arbitrary data with <span class="extract"><span cla
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::begin_word</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::begin_word</span></span>:<br/>List Literals - <a href="4-ll.html#SP1">§1</a><br/>Box Quotations - <a href="4-bq.html#SP2">§2</a><br/>Instances - <a href="5-ins.html#SP4">§4</a><br/>Multimedia - <a href="5-mlt.html#SP2_2">§2.2</a>, <a href="5-mlt.html#SP3_2">§3.2</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2">§2</a>, <a href="5-dbi.html#SP2_8">§2.8</a><br/>Dialogue - <a href="5-dli.html#SP3">§3</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3">§3</a><br/>Relations - <a href="5-rlt.html#SP10">§10</a><br/>Kind Constructors - <a href="5-kc.html#SP11">§11</a><br/>Kind IDs - <a href="5-ki.html#SP9_1">§9.1</a><br/>Test Scripts - <a href="5-ts.html#SP4">§4</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::begin_word</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::begin_word</span></span>:<br/>List Literals - <a href="4-ll.html#SP1">§1</a><br/>Box Quotations - <a href="4-bq.html#SP2">§2</a><br/>Instances - <a href="5-ins.html#SP4">§4</a><br/>Multimedia - <a href="5-mlt.html#SP2_2">§2.2</a>, <a href="5-mlt.html#SP3_2">§3.2</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2">§2</a>, <a href="5-dbi.html#SP2_8">§2.8</a><br/>Dialogue - <a href="5-dli.html#SP3">§3</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3">§3</a><br/>Relations - <a href="5-rlt.html#SP10">§10</a><br/>Kind Constructors - <a href="5-kc.html#SP30_3_2">§30.3.2</a><br/>Kind IDs - <a href="5-ki.html#SP9_1">§9.1</a><br/>Test Scripts - <a href="5-ts.html#SP4">§4</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Packaging::enter_home_of</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP8" class="function-link"><span class="function-syntax">EmitArrays::begin_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">CONST_LIST_FORMAT_WORDS</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax">;</span>
|
||||
|
@ -151,11 +151,11 @@ which would be a typesafe list in I7, so they can be absolutely any data.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::numeric_entry</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::numeric_entry</span></span>:<br/>The Heap - <a href="2-th.html#SP6">§6</a><br/>List Literals - <a href="4-ll.html#SP1">§1</a>, <a href="4-ll.html#SP2">§2</a><br/>Box Quotations - <a href="4-bq.html#SP2">§2</a><br/>Relation Literals - <a href="4-rl.html#SP1">§1</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">§1</a><br/>Instances - <a href="5-ins.html#SP4">§4</a><br/>Multimedia - <a href="5-mlt.html#SP2_1">§2.1</a>, <a href="5-mlt.html#SP2_2">§2.2</a>, <a href="5-mlt.html#SP3_2">§3.2</a><br/>Tables - <a href="5-tbl.html#SP2_1_1_1_4">§2.1.1.1.4</a>, <a href="5-tbl.html#SP2_2_3">§2.2.3</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2">§2</a>, <a href="5-dbi.html#SP2_1">§2.1</a>, <a href="5-dbi.html#SP2_2">§2.2</a>, <a href="5-dbi.html#SP2_4">§2.4</a>, <a href="5-dbi.html#SP2_5">§2.5</a>, <a href="5-dbi.html#SP2_8">§2.8</a>, <a href="5-dbi.html#SP3">§3</a><br/>Dialogue - <a href="5-dli.html#SP3_2">§3.2</a>, <a href="5-dli.html#SP3_3">§3.3</a>, <a href="5-dli.html#SP3_4">§3.4</a>, <a href="5-dli.html#SP3_7">§3.7</a>, <a href="5-dli.html#SP3_8">§3.8</a>, <a href="5-dli.html#SP3_9">§3.9</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3_2">§3.2</a>, <a href="5-dci.html#SP3_3">§3.3</a>, <a href="5-dci.html#SP3_4">§3.4</a><br/>Relations - <a href="5-rlt.html#SP6_3">§6.3</a>, <a href="5-rlt.html#SP6_3_3">§6.3.3</a>, <a href="5-rlt.html#SP7">§7</a>, <a href="5-rlt.html#SP9">§9</a>, <a href="5-rlt.html#SP10_2">§10.2</a>, <a href="5-rlt.html#SP10_3">§10.3</a><br/>Kind Constructors - <a href="5-kc.html#SP11">§11</a>, <a href="5-kc.html#SP13">§13</a><br/>Kind IDs - <a href="5-ki.html#SP9_1_1_1">§9.1.1.1</a>, <a href="5-ki.html#SP9_1_1_2">§9.1.1.2</a><br/>Test Scripts - <a href="5-ts.html#SP4">§4</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP1">§1</a><br/>Action Bitmap Property - <a href="6-abp.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::numeric_entry</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::numeric_entry</span></span>:<br/>The Heap - <a href="2-th.html#SP6">§6</a><br/>List Literals - <a href="4-ll.html#SP1">§1</a>, <a href="4-ll.html#SP2">§2</a><br/>Box Quotations - <a href="4-bq.html#SP2">§2</a><br/>Relation Literals - <a href="4-rl.html#SP1">§1</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">§1</a><br/>Instances - <a href="5-ins.html#SP4">§4</a><br/>Multimedia - <a href="5-mlt.html#SP2_1">§2.1</a>, <a href="5-mlt.html#SP2_2">§2.2</a>, <a href="5-mlt.html#SP3_2">§3.2</a><br/>Tables - <a href="5-tbl.html#SP2_1_1_1_4">§2.1.1.1.4</a>, <a href="5-tbl.html#SP2_2_3">§2.2.3</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2">§2</a>, <a href="5-dbi.html#SP2_1">§2.1</a>, <a href="5-dbi.html#SP2_2">§2.2</a>, <a href="5-dbi.html#SP2_4">§2.4</a>, <a href="5-dbi.html#SP2_5">§2.5</a>, <a href="5-dbi.html#SP2_8">§2.8</a>, <a href="5-dbi.html#SP3">§3</a><br/>Dialogue - <a href="5-dli.html#SP3_2">§3.2</a>, <a href="5-dli.html#SP3_3">§3.3</a>, <a href="5-dli.html#SP3_4">§3.4</a>, <a href="5-dli.html#SP3_7">§3.7</a>, <a href="5-dli.html#SP3_8">§3.8</a>, <a href="5-dli.html#SP3_9">§3.9</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3_2">§3.2</a>, <a href="5-dci.html#SP3_3">§3.3</a>, <a href="5-dci.html#SP3_4">§3.4</a><br/>Relations - <a href="5-rlt.html#SP6_3">§6.3</a>, <a href="5-rlt.html#SP6_3_3">§6.3.3</a>, <a href="5-rlt.html#SP7">§7</a>, <a href="5-rlt.html#SP9">§9</a>, <a href="5-rlt.html#SP10_2">§10.2</a>, <a href="5-rlt.html#SP10_3">§10.3</a><br/>Kind Constructors - <a href="5-kc.html#SP28">§28</a>, <a href="5-kc.html#SP30_3_2">§30.3.2</a><br/>Kind IDs - <a href="5-ki.html#SP9_1_1_1">§9.1.1.1</a>, <a href="5-ki.html#SP9_1_1_2">§9.1.1.2</a><br/>Test Scripts - <a href="5-ts.html#SP4">§4</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP1">§1</a><br/>Action Bitmap Property - <a href="6-abp.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP9" class="function-link"><span class="function-syntax">EmitArrays::entry_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">InterValuePairs::number</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::iname_entry</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::iname_entry</span></span>:<br/>The Heap - <a href="2-th.html#SP6">§6</a><br/>Short Names - <a href="2-sn.html#SP4">§4</a><br/>List Literals - <a href="4-ll.html#SP2">§2</a>, <a href="4-ll.html#SP7_1">§7.1</a><br/>Text Literals - <a href="4-tl.html#SP1">§1</a><br/>Text Substitutions - <a href="4-ts.html#SP1">§1</a><br/>Relation Literals - <a href="4-rl.html#SP1">§1</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">§1</a><br/>Instances - <a href="5-ins.html#SP4">§4</a><br/>Door Instances - <a href="5-di.html#SP6">§6</a><br/>Multimedia - <a href="5-mlt.html#SP2_2">§2.2</a>, <a href="5-mlt.html#SP3_2">§3.2</a><br/>Tables - <a href="5-tbl.html#SP2_1_1">§2.1.1</a>, <a href="5-tbl.html#SP2_1_1_1_3">§2.1.1.1.3</a>, <a href="5-tbl.html#SP2_1_1_1_5">§2.1.1.1.5</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2">§2</a>, <a href="5-dbi.html#SP2_1">§2.1</a>, <a href="5-dbi.html#SP2_2">§2.2</a>, <a href="5-dbi.html#SP2_3">§2.3</a>, <a href="5-dbi.html#SP2_4">§2.4</a>, <a href="5-dbi.html#SP2_5">§2.5</a>, <a href="5-dbi.html#SP3">§3</a><br/>Dialogue - <a href="5-dli.html#SP3_2">§3.2</a>, <a href="5-dli.html#SP3_3">§3.3</a>, <a href="5-dli.html#SP3_4">§3.4</a>, <a href="5-dli.html#SP3_5">§3.5</a>, <a href="5-dli.html#SP3_6">§3.6</a>, <a href="5-dli.html#SP3_7">§3.7</a>, <a href="5-dli.html#SP3_8">§3.8</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3_3">§3.3</a>, <a href="5-dci.html#SP3_4">§3.4</a><br/>Relations - <a href="5-rlt.html#SP6_3_2">§6.3.2</a>, <a href="5-rlt.html#SP6_3_2_1">§6.3.2.1</a>, <a href="5-rlt.html#SP6_3_3">§6.3.3</a>, <a href="5-rlt.html#SP6_3_6">§6.3.6</a>, <a href="5-rlt.html#SP7">§7</a>, <a href="5-rlt.html#SP10_2">§10.2</a><br/>Kind Constructors - <a href="5-kc.html#SP11">§11</a>, <a href="5-kc.html#SP13">§13</a><br/>Kind IDs - <a href="5-ki.html#SP6">§6</a>, <a href="5-ki.html#SP9_1">§9.1</a><br/>Test Scripts - <a href="5-ts.html#SP4">§4</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP1">§1</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP6_1">§6.1</a>, <a href="7-cgl.html#SP6_4">§6.4</a>, <a href="7-cgl.html#SP7">§7</a>, <a href="7-cgl.html#SP8">§8</a>, <a href="7-cgl.html#SP10">§10</a>, <a href="7-cgl.html#SP14_4">§14.4</a>, <a href="7-cgl.html#SP14_5">§14.5</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_3">§1.3</a>, <a href="7-cgt.html#SP1_4_3">§1.4.3</a>, <a href="7-cgt.html#SP1_5">§1.5</a><br/>Noun Filter Tokens - <a href="7-nft.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::iname_entry</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::iname_entry</span></span>:<br/>The Heap - <a href="2-th.html#SP6">§6</a><br/>Short Names - <a href="2-sn.html#SP4">§4</a><br/>List Literals - <a href="4-ll.html#SP2">§2</a>, <a href="4-ll.html#SP7_1">§7.1</a><br/>Text Literals - <a href="4-tl.html#SP1">§1</a><br/>Text Substitutions - <a href="4-ts.html#SP1">§1</a><br/>Relation Literals - <a href="4-rl.html#SP1">§1</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">§1</a><br/>Instances - <a href="5-ins.html#SP4">§4</a><br/>Door Instances - <a href="5-di.html#SP6">§6</a><br/>Multimedia - <a href="5-mlt.html#SP2_2">§2.2</a>, <a href="5-mlt.html#SP3_2">§3.2</a><br/>Tables - <a href="5-tbl.html#SP2_1_1">§2.1.1</a>, <a href="5-tbl.html#SP2_1_1_1_3">§2.1.1.1.3</a>, <a href="5-tbl.html#SP2_1_1_1_5">§2.1.1.1.5</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2">§2</a>, <a href="5-dbi.html#SP2_1">§2.1</a>, <a href="5-dbi.html#SP2_2">§2.2</a>, <a href="5-dbi.html#SP2_3">§2.3</a>, <a href="5-dbi.html#SP2_4">§2.4</a>, <a href="5-dbi.html#SP2_5">§2.5</a>, <a href="5-dbi.html#SP3">§3</a><br/>Dialogue - <a href="5-dli.html#SP3_2">§3.2</a>, <a href="5-dli.html#SP3_3">§3.3</a>, <a href="5-dli.html#SP3_4">§3.4</a>, <a href="5-dli.html#SP3_5">§3.5</a>, <a href="5-dli.html#SP3_6">§3.6</a>, <a href="5-dli.html#SP3_7">§3.7</a>, <a href="5-dli.html#SP3_8">§3.8</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3_3">§3.3</a>, <a href="5-dci.html#SP3_4">§3.4</a><br/>Relations - <a href="5-rlt.html#SP6_3_2">§6.3.2</a>, <a href="5-rlt.html#SP6_3_2_1">§6.3.2.1</a>, <a href="5-rlt.html#SP6_3_3">§6.3.3</a>, <a href="5-rlt.html#SP6_3_6">§6.3.6</a>, <a href="5-rlt.html#SP7">§7</a>, <a href="5-rlt.html#SP10_2">§10.2</a><br/>Kind Constructors - <a href="5-kc.html#SP28">§28</a><br/>Kind IDs - <a href="5-ki.html#SP6">§6</a>, <a href="5-ki.html#SP9_1">§9.1</a><br/>Test Scripts - <a href="5-ts.html#SP4">§4</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP1">§1</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP6_1">§6.1</a>, <a href="7-cgl.html#SP6_4">§6.4</a>, <a href="7-cgl.html#SP7">§7</a>, <a href="7-cgl.html#SP8">§8</a>, <a href="7-cgl.html#SP10">§10</a>, <a href="7-cgl.html#SP14_4">§14.4</a>, <a href="7-cgl.html#SP14_5">§14.5</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_3">§1.3</a>, <a href="7-cgt.html#SP1_4_3">§1.4.3</a>, <a href="7-cgt.html#SP1_5">§1.5</a><br/>Noun Filter Tokens - <a href="7-nft.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">alias</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">alias</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">NOTHING_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">alias</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
|
@ -189,7 +189,7 @@ which would be a typesafe list in I7, so they can be absolutely any data.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::end</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::end</span></span>:<br/>Short Names - <a href="2-sn.html#SP4">§4</a><br/>List Literals - <a href="4-ll.html#SP1">§1</a>, <a href="4-ll.html#SP2">§2</a><br/>Text Literals - <a href="4-tl.html#SP1">§1</a><br/>Text Substitutions - <a href="4-ts.html#SP1">§1</a><br/>Box Quotations - <a href="4-bq.html#SP2">§2</a><br/>Relation Literals - <a href="4-rl.html#SP1">§1</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">§1</a><br/>Instances - <a href="5-ins.html#SP4">§4</a><br/>Door Instances - <a href="5-di.html#SP6">§6</a><br/>Multimedia - <a href="5-mlt.html#SP2_1">§2.1</a>, <a href="5-mlt.html#SP2_2">§2.2</a>, <a href="5-mlt.html#SP3_2">§3.2</a><br/>Tables - <a href="5-tbl.html#SP2_1_1">§2.1.1</a>, <a href="5-tbl.html#SP2_1_1_1">§2.1.1.1</a>, <a href="5-tbl.html#SP2_2">§2.2</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2">§2</a>, <a href="5-dbi.html#SP2_8">§2.8</a><br/>Dialogue - <a href="5-dli.html#SP3">§3</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3">§3</a><br/>Relations - <a href="5-rlt.html#SP6_3">§6.3</a>, <a href="5-rlt.html#SP6_3_2">§6.3.2</a>, <a href="5-rlt.html#SP7">§7</a>, <a href="5-rlt.html#SP10">§10</a>, <a href="5-rlt.html#SP10_3">§10.3</a><br/>Kind Constructors - <a href="5-kc.html#SP11">§11</a><br/>Kind IDs - <a href="5-ki.html#SP9_1">§9.1</a><br/>Test Scripts - <a href="5-ts.html#SP4">§4</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP1">§1</a><br/>Action Bitmap Property - <a href="6-abp.html#SP1">§1</a><br/>Command Grammars - <a href="7-cg.html#SP11">§11</a><br/>Name Properties - <a href="7-np.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::end</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::end</span></span>:<br/>Short Names - <a href="2-sn.html#SP4">§4</a><br/>List Literals - <a href="4-ll.html#SP1">§1</a>, <a href="4-ll.html#SP2">§2</a><br/>Text Literals - <a href="4-tl.html#SP1">§1</a><br/>Text Substitutions - <a href="4-ts.html#SP1">§1</a><br/>Box Quotations - <a href="4-bq.html#SP2">§2</a><br/>Relation Literals - <a href="4-rl.html#SP1">§1</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">§1</a><br/>Instances - <a href="5-ins.html#SP4">§4</a><br/>Door Instances - <a href="5-di.html#SP6">§6</a><br/>Multimedia - <a href="5-mlt.html#SP2_1">§2.1</a>, <a href="5-mlt.html#SP2_2">§2.2</a>, <a href="5-mlt.html#SP3_2">§3.2</a><br/>Tables - <a href="5-tbl.html#SP2_1_1">§2.1.1</a>, <a href="5-tbl.html#SP2_1_1_1">§2.1.1.1</a>, <a href="5-tbl.html#SP2_2">§2.2</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2">§2</a>, <a href="5-dbi.html#SP2_8">§2.8</a><br/>Dialogue - <a href="5-dli.html#SP3">§3</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3">§3</a><br/>Relations - <a href="5-rlt.html#SP6_3">§6.3</a>, <a href="5-rlt.html#SP6_3_2">§6.3.2</a>, <a href="5-rlt.html#SP7">§7</a>, <a href="5-rlt.html#SP10">§10</a>, <a href="5-rlt.html#SP10_3">§10.3</a><br/>Kind Constructors - <a href="5-kc.html#SP30_3_2">§30.3.2</a><br/>Kind IDs - <a href="5-ki.html#SP9_1">§9.1</a><br/>Test Scripts - <a href="5-ts.html#SP4">§4</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP1">§1</a><br/>Action Bitmap Property - <a href="6-abp.html#SP1">§1</a><br/>Command Grammars - <a href="7-cg.html#SP11">§11</a><br/>Name Properties - <a href="7-np.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP10" class="function-link"><span class="function-syntax">EmitArrays::end_inner</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Packaging::exit</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -79,7 +79,7 @@ creates the <span class="extract"><span class="extract-syntax">main</span></span
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">LargeScale::begin_new_tree</span><span class="plain-syntax">(</span><span class="identifier-syntax">main_emission_tree</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">main_emission_tree</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
<span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::tree</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Emit::tree</span></span>:<br/><a href="2-emt.html#SP4">§4</a>, <a href="2-emt.html#SP5">§5</a>, <a href="2-emt.html#SP6">§6</a>, <a href="2-emt.html#SP7">§7</a>, <a href="2-emt.html#SP8">§8</a>, <a href="2-emt.html#SP9">§9</a>, <a href="2-emt.html#SP11">§11</a>, <a href="2-emt.html#SP12">§12</a>, <a href="2-emt.html#SP13">§13</a>, <a href="2-emt.html#SP14">§14</a><br/>Hierarchy - <a href="2-hrr.html#SP1">§1</a>, <a href="2-hrr.html#SP2">§2</a>, <a href="2-hrr.html#SP8">§8</a>, <a href="2-hrr.html#SP9">§9</a>, <a href="2-hrr.html#SP11">§11</a>, <a href="2-hrr.html#SP12">§12</a>, <a href="2-hrr.html#SP13">§13</a>, <a href="2-hrr.html#SP14">§14</a>, <a href="2-hrr.html#SP15">§15</a>, <a href="2-hrr.html#SP16">§16</a>, <a href="2-hrr.html#SP17">§17</a>, <a href="2-hrr.html#SP18">§18</a>, <a href="2-hrr.html#SP20">§20</a>, <a href="2-hrr.html#SP21">§21</a>, <a href="2-hrr.html#SP22">§22</a><br/>Compilation Units - <a href="2-cu.html#SP2_1">§2.1</a><br/>Emit Code - <a href="2-ec.html#SP2">§2</a>, <a href="2-ec.html#SP3">§3</a>, <a href="2-ec.html#SP4">§4</a>, <a href="2-ec.html#SP5">§5</a>, <a href="2-ec.html#SP7">§7</a>, <a href="2-ec.html#SP8">§8</a>, <a href="2-ec.html#SP10">§10</a>, <a href="2-ec.html#SP12">§12</a>, <a href="2-ec.html#SP13">§13</a>, <a href="2-ec.html#SP14">§14</a>, <a href="2-ec.html#SP15">§15</a>, <a href="2-ec.html#SP16">§16</a>, <a href="2-ec.html#SP17">§17</a><br/>Emit Arrays - <a href="2-ea.html#SP5">§5</a><br/>Default Values - <a href="2-dv.html#SP1">§1</a><br/>Generic Module - <a href="3-gm.html#SP1">§1</a><br/>Use Options - <a href="3-uo.html#SP3">§3</a><br/>Enclosures - <a href="4-enc.html#SP1">§1</a><br/>Text Substitutions - <a href="4-ts.html#SP7_4">§7.4</a><br/>Rules - <a href="5-rls.html#SP6">§6</a><br/>Variables - <a href="5-vrb.html#SP6">§6</a>, <a href="5-vrb.html#SP15">§15</a><br/>Kind Constructors - <a href="5-kc.html#SP4">§4</a>, <a href="5-kc.html#SP5">§5</a>, <a href="5-kc.html#SP9">§9</a>, <a href="5-kc.html#SP11">§11</a><br/>Property Permissions - <a href="6-pp.html#SP2">§2</a>, <a href="6-pp.html#SP3">§3</a><br/>Property Values - <a href="6-pv.html#SP2">§2</a>, <a href="6-pv.html#SP2_2_1">§2.2.1</a><br/>Command Grammars - <a href="7-cg.html#SP7">§7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::tree</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Emit::tree</span></span>:<br/><a href="2-emt.html#SP4">§4</a>, <a href="2-emt.html#SP5">§5</a>, <a href="2-emt.html#SP6">§6</a>, <a href="2-emt.html#SP7">§7</a>, <a href="2-emt.html#SP8">§8</a>, <a href="2-emt.html#SP9">§9</a>, <a href="2-emt.html#SP11">§11</a>, <a href="2-emt.html#SP12">§12</a>, <a href="2-emt.html#SP13">§13</a>, <a href="2-emt.html#SP14">§14</a><br/>Hierarchy - <a href="2-hrr.html#SP1">§1</a>, <a href="2-hrr.html#SP2">§2</a>, <a href="2-hrr.html#SP8">§8</a>, <a href="2-hrr.html#SP9">§9</a>, <a href="2-hrr.html#SP11">§11</a>, <a href="2-hrr.html#SP12">§12</a>, <a href="2-hrr.html#SP13">§13</a>, <a href="2-hrr.html#SP14">§14</a>, <a href="2-hrr.html#SP15">§15</a>, <a href="2-hrr.html#SP16">§16</a>, <a href="2-hrr.html#SP17">§17</a>, <a href="2-hrr.html#SP18">§18</a>, <a href="2-hrr.html#SP20">§20</a>, <a href="2-hrr.html#SP21">§21</a>, <a href="2-hrr.html#SP22">§22</a><br/>Compilation Units - <a href="2-cu.html#SP2_1">§2.1</a><br/>Emit Code - <a href="2-ec.html#SP2">§2</a>, <a href="2-ec.html#SP3">§3</a>, <a href="2-ec.html#SP4">§4</a>, <a href="2-ec.html#SP5">§5</a>, <a href="2-ec.html#SP7">§7</a>, <a href="2-ec.html#SP8">§8</a>, <a href="2-ec.html#SP10">§10</a>, <a href="2-ec.html#SP12">§12</a>, <a href="2-ec.html#SP13">§13</a>, <a href="2-ec.html#SP14">§14</a>, <a href="2-ec.html#SP15">§15</a>, <a href="2-ec.html#SP16">§16</a>, <a href="2-ec.html#SP17">§17</a><br/>Emit Arrays - <a href="2-ea.html#SP5">§5</a><br/>Default Values - <a href="2-dv.html#SP1">§1</a><br/>Generic Module - <a href="3-gm.html#SP1">§1</a><br/>Use Options - <a href="3-uo.html#SP3">§3</a><br/>Enclosures - <a href="4-enc.html#SP1">§1</a><br/>Text Substitutions - <a href="4-ts.html#SP7_4">§7.4</a><br/>Rules - <a href="5-rls.html#SP6">§6</a><br/>Variables - <a href="5-vrb.html#SP6">§6</a>, <a href="5-vrb.html#SP15">§15</a><br/>Kind Constructors - <a href="5-kc.html#SP3">§3</a>, <a href="5-kc.html#SP9">§9</a>, <a href="5-kc.html#SP12">§12</a>, <a href="5-kc.html#SP17_1">§17.1</a><br/>Property Permissions - <a href="6-pp.html#SP2">§2</a>, <a href="6-pp.html#SP3">§3</a><br/>Property Values - <a href="6-pv.html#SP2">§2</a>, <a href="6-pv.html#SP2_2_1">§2.2.1</a><br/>Command Grammars - <a href="7-cg.html#SP7">§7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">main_emission_tree</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
|
@ -193,7 +193,7 @@ it represents an actual number at run-time, the second if not:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::numeric_constant</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Emit::numeric_constant</span></span>:<br/>Hierarchy - <a href="2-hrr.html#SP23">§23</a><br/>Compilation Units - <a href="2-cu.html#SP2_1_3">§2.1.3</a><br/>The Heap - <a href="2-th.html#SP2">§2</a><br/>Completion Module - <a href="3-cm.html#SP1_5">§1.5</a>, <a href="3-cm.html#SP1_6">§1.6</a>, <a href="3-cm.html#SP1_7">§1.7</a>, <a href="3-cm.html#SP1_8">§1.8</a>, <a href="3-cm.html#SP1_11_1">§1.11.1</a><br/>Use Options - <a href="3-uo.html#SP1_3">§1.3</a>, <a href="3-uo.html#SP3">§3</a><br/>Responses - <a href="4-rsp.html#SP6">§6</a><br/>Activities - <a href="5-act.html#SP8">§8</a><br/>Chronology - <a href="5-chr.html#SP3_3">§3.3</a>, <a href="5-chr.html#SP7_1">§7.1</a><br/>Conjugations - <a href="5-cnj.html#SP12">§12</a><br/>Tables - <a href="5-tbl.html#SP2_1_1_1_3">§2.1.1.1.3</a>, <a href="5-tbl.html#SP2_3">§2.3</a><br/>Table Columns - <a href="5-tc.html#SP2">§2</a><br/>Rules - <a href="5-rls.html#SP12_2">§12.2</a><br/>Rulebooks - <a href="5-rlb.html#SP8_2">§8.2</a><br/>Variables - <a href="5-vrb.html#SP14">§14</a><br/>Properties - <a href="5-prp.html#SP8_3">§8.3</a><br/>Relations - <a href="5-rlt.html#SP5">§5</a>, <a href="5-rlt.html#SP10_3">§10.3</a><br/>Kind Constructors - <a href="5-kc.html#SP11">§11</a><br/>Kind IDs - <a href="5-ki.html#SP9_2">§9.2</a><br/>Actions - <a href="5-act2.html#SP8_1">§8.1</a>, <a href="5-act2.html#SP8_3">§8.3</a><br/>Bibliographic Data - <a href="6-bd.html#SP1_6">§1.6</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP1">§1</a><br/>Command Grammars - <a href="7-cg.html#SP3">§3</a>, <a href="7-cg.html#SP11">§11</a>, <a href="7-cg.html#SP16">§16</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::numeric_constant</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Emit::numeric_constant</span></span>:<br/>Hierarchy - <a href="2-hrr.html#SP23">§23</a><br/>Compilation Units - <a href="2-cu.html#SP2_1_3">§2.1.3</a><br/>The Heap - <a href="2-th.html#SP2">§2</a><br/>Completion Module - <a href="3-cm.html#SP1_5">§1.5</a>, <a href="3-cm.html#SP1_6">§1.6</a>, <a href="3-cm.html#SP1_7">§1.7</a>, <a href="3-cm.html#SP1_8">§1.8</a>, <a href="3-cm.html#SP1_11_1">§1.11.1</a><br/>Use Options - <a href="3-uo.html#SP1_3">§1.3</a>, <a href="3-uo.html#SP3">§3</a><br/>Responses - <a href="4-rsp.html#SP6">§6</a><br/>Activities - <a href="5-act.html#SP8">§8</a><br/>Chronology - <a href="5-chr.html#SP3_3">§3.3</a>, <a href="5-chr.html#SP7_1">§7.1</a><br/>Conjugations - <a href="5-cnj.html#SP12">§12</a><br/>Tables - <a href="5-tbl.html#SP2_1_1_1_3">§2.1.1.1.3</a>, <a href="5-tbl.html#SP2_3">§2.3</a><br/>Table Columns - <a href="5-tc.html#SP2">§2</a><br/>Rules - <a href="5-rls.html#SP12_2">§12.2</a><br/>Rulebooks - <a href="5-rlb.html#SP8_2">§8.2</a><br/>Variables - <a href="5-vrb.html#SP14">§14</a><br/>Properties - <a href="5-prp.html#SP8_3">§8.3</a><br/>Relations - <a href="5-rlt.html#SP5">§5</a>, <a href="5-rlt.html#SP10_3">§10.3</a><br/>Kind Constructors - <a href="5-kc.html#SP30_1_1">§30.1.1</a>, <a href="5-kc.html#SP30_1_2">§30.1.2</a>, <a href="5-kc.html#SP30_3_1">§30.3.1</a>, <a href="5-kc.html#SP30_3_3">§30.3.3</a>, <a href="5-kc.html#SP30_3_4">§30.3.4</a>, <a href="5-kc.html#SP30_3_5">§30.3.5</a><br/>Kind IDs - <a href="5-ki.html#SP9_2">§9.2</a><br/>Actions - <a href="5-act2.html#SP8_1">§8.1</a>, <a href="5-act2.html#SP8_3">§8.3</a><br/>Bibliographic Data - <a href="6-bd.html#SP1_6">§1.6</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP1">§1</a><br/>Command Grammars - <a href="7-cg.html#SP3">§3</a>, <a href="7-cg.html#SP11">§11</a>, <a href="7-cg.html#SP16">§16</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-emt.html#SP6" class="function-link"><span class="function-syntax">Emit::numeric_constant_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterValuePairs::number_in_base</span><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="constant-syntax">10</span><span class="plain-syntax">), </span><span class="identifier-syntax">INT32_ITCONC</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -255,7 +255,7 @@ it represents an actual number at run-time, the second if not:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::iname_constant</span><button class="popup" onclick="togglePopup('usagePopup20')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup20">Usage of <span class="code-font"><span class="function-syntax">Emit::iname_constant</span></span>:<br/>Hierarchy - <a href="2-hrr.html#SP23">§23</a><br/>Instance Counting - <a href="2-ic.html#SP8">§8</a><br/>Short Names - <a href="2-sn.html#SP2">§2</a><br/>Responses - <a href="4-rsp.html#SP6">§6</a><br/>Activities - <a href="5-act.html#SP8">§8</a><br/>Chronology - <a href="5-chr.html#SP4">§4</a>, <a href="5-chr.html#SP8">§8</a><br/>Conjugations - <a href="5-cnj.html#SP12">§12</a><br/>Scene Instances - <a href="5-si.html#SP3">§3</a>, <a href="5-si.html#SP7">§7</a><br/>Tables - <a href="5-tbl.html#SP2_1_1_1_3">§2.1.1.1.3</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2">§2</a><br/>Rulebooks - <a href="5-rlb.html#SP8_2">§8.2</a>, <a href="5-rlb.html#SP8_4">§8.4</a>, <a href="5-rlb.html#SP15_3">§15.3</a><br/>Properties - <a href="5-prp.html#SP8_2">§8.2</a><br/>Relations - <a href="5-rlt.html#SP4">§4</a>, <a href="5-rlt.html#SP5">§5</a>, <a href="5-rlt.html#SP6_2">§6.2</a><br/>Kind Constructors - <a href="5-kc.html#SP5">§5</a><br/>Kind IDs - <a href="5-ki.html#SP6">§6</a>, <a href="5-ki.html#SP9_2">§9.2</a><br/>Actions - <a href="5-act2.html#SP8_3">§8.3</a>, <a href="5-act2.html#SP8_4">§8.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val_iname</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::iname_constant</span><button class="popup" onclick="togglePopup('usagePopup20')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup20">Usage of <span class="code-font"><span class="function-syntax">Emit::iname_constant</span></span>:<br/>Hierarchy - <a href="2-hrr.html#SP23">§23</a><br/>Instance Counting - <a href="2-ic.html#SP8">§8</a><br/>Short Names - <a href="2-sn.html#SP2">§2</a><br/>Responses - <a href="4-rsp.html#SP6">§6</a><br/>Activities - <a href="5-act.html#SP8">§8</a><br/>Chronology - <a href="5-chr.html#SP4">§4</a>, <a href="5-chr.html#SP8">§8</a><br/>Conjugations - <a href="5-cnj.html#SP12">§12</a><br/>Scene Instances - <a href="5-si.html#SP3">§3</a>, <a href="5-si.html#SP7">§7</a><br/>Tables - <a href="5-tbl.html#SP2_1_1_1_3">§2.1.1.1.3</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2">§2</a><br/>Rulebooks - <a href="5-rlb.html#SP8_2">§8.2</a>, <a href="5-rlb.html#SP8_4">§8.4</a>, <a href="5-rlb.html#SP15_3">§15.3</a><br/>Properties - <a href="5-prp.html#SP8_2">§8.2</a><br/>Relations - <a href="5-rlt.html#SP4">§4</a>, <a href="5-rlt.html#SP5">§5</a>, <a href="5-rlt.html#SP6_2">§6.2</a><br/>Kind IDs - <a href="5-ki.html#SP6">§6</a>, <a href="5-ki.html#SP9_2">§9.2</a><br/>Actions - <a href="5-act2.html#SP8_3">§8.3</a>, <a href="5-act2.html#SP8_4">§8.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val_iname</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Packaging::enter_home_of</span><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val_s</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">val_iname</span><span class="plain-syntax">)?</span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">val_iname</span><span class="plain-syntax">):</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -248,7 +248,7 @@ compile time.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_BASE_KINDS</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_subkind_of_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::first_instance_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP10" class="function-link"><span class="function-syntax">RTKindConstructors::first_instance_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next</span><span class="plain-syntax"> = </span><a href="2-ic.html#SP7" class="function-link"><span class="function-syntax">InstanceCounting::next_in_IK_sequence</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">next</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::iname_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">, </span><a href="5-ins.html#SP1" class="function-link"><span class="function-syntax">RTInstances::value_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">next</span><span class="plain-syntax">));</span>
|
||||
|
@ -328,9 +328,8 @@ property values: one for (red car, thing), one for (red car, vehicle). The
|
|||
properties in question are the <span class="extract"><span class="extract-syntax">IK_count_prop</span></span> for thing and vehicle.
|
||||
</p>
|
||||
|
||||
<p class="commentary">Similarly for the next terms in the IK-sequences, where the properties are
|
||||
the <span class="extract"><span class="extract-syntax">
|
||||
</span></span></p>
|
||||
<p class="commentary">Similarly for the next terms in the IK-sequences.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Create the two instance properties for each kind of object</span><span class="named-paragraph-number">10.2</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
@ -340,16 +339,16 @@ the <span class="extract"><span class="extract-syntax">
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_BASE_KINDS</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_subkind_of_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">subj</span><span class="plain-syntax"> = </span><span class="identifier-syntax">KindSubjects::from_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">count_iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::instance_count_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">count_iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP11" class="function-link"><span class="function-syntax">RTKindConstructors::base_IK_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">COUNTING_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">subj</span><span class="plain-syntax">)-></span><span class="identifier-syntax">IK_count_prop</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ValueProperties::new_nameless_using</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_number</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="5-kc.html#SP5" class="function-link"><span class="function-syntax">RTKindConstructors::kind_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">), </span><span class="identifier-syntax">count_iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::kind_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">), </span><span class="identifier-syntax">count_iname</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next_iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::next_instance_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next_iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP10" class="function-link"><span class="function-syntax">RTKindConstructors::next_instance_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">COUNTING_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">subj</span><span class="plain-syntax">)-></span><span class="identifier-syntax">next_in_IK_sequence_prop</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ValueProperties::new_nameless_using</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_object</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="5-kc.html#SP5" class="function-link"><span class="function-syntax">RTKindConstructors::kind_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">), </span><span class="identifier-syntax">next_iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::kind_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">), </span><span class="identifier-syntax">next_iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-ic.html#SP10">§10</a>.</li></ul>
|
||||
|
@ -440,8 +439,8 @@ misleading to a human reader.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Calculus::Schemas::modify</span><span class="plain-syntax">(</span><span class="identifier-syntax">sch</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"for (*1=nothing: false: )"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">first_iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::first_instance_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next_iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::next_instance_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">first_iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP10" class="function-link"><span class="function-syntax">RTKindConstructors::first_instance_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next_iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP10" class="function-link"><span class="function-syntax">RTKindConstructors::next_instance_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Calculus::Schemas::modify</span><span class="plain-syntax">(</span><span class="identifier-syntax">sch</span><span class="plain-syntax">, </span><span class="string-syntax">"for (*1=%n: *1: *1=*1.%n)"</span><span class="plain-syntax">, </span><span class="identifier-syntax">first_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">next_iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -65,7 +65,7 @@ function togglePopup(material_id) {
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">RTKindDeclarations::base_represented_in_Inter</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">RTKindDeclarations::base_represented_in_Inter</span></span>:<br/><a href="2-kd.html#SP5">§5</a>, <a href="2-kd.html#SP7">§7</a><br/>Kind Constructors - <a href="5-kc.html#SP11_6">§11.6</a>, <a href="5-kc.html#SP11_7">§11.7</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">RTKindDeclarations::base_represented_in_Inter</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">RTKindDeclarations::base_represented_in_Inter</span></span>:<br/><a href="2-kd.html#SP5">§5</a>, <a href="2-kd.html#SP7">§7</a><br/>Kind Constructors - <a href="5-kc.html#SP29">§29</a>, <a href="5-kc.html#SP33">§33</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Kinds::Behaviour::is_kind_of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::is_proper_constructor</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax"> != </span><span class="identifier-syntax">K_void</span><span class="plain-syntax">) &&</span>
|
||||
|
@ -130,7 +130,7 @@ the kind in Inter, ensuring that it has been declared exactly once.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTKindDeclarations::iname</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">RTKindDeclarations::iname</span></span>:<br/><a href="2-kd.html#SP7">§7</a>, <a href="2-kd.html#SP8">§8</a><br/>Relations - <a href="5-rlt.html#SP19_1">§19.1</a>, <a href="5-rlt.html#SP19_2">§19.2</a>, <a href="5-rlt.html#SP19_3">§19.3</a>, <a href="5-rlt.html#SP19_4">§19.4</a>, <a href="5-rlt.html#SP19_5">§19.5</a>, <a href="5-rlt.html#SP21">§21</a><br/>Kind Constructors - <a href="5-kc.html#SP2">§2</a>, <a href="5-kc.html#SP11">§11</a><br/>Kind IDs - <a href="5-ki.html#SP10">§10</a><br/>Property Permissions - <a href="6-pp.html#SP1">§1</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_2_4">§1.2.4</a>, <a href="7-cgt.html#SP1_2_10_1_1">§1.2.10.1.1</a>, <a href="7-cgt.html#SP1_2_10_2_2">§1.2.10.2.2</a><br/>Noun Filter Tokens - <a href="7-nft.html#SP3_2">§3.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTKindDeclarations::iname</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">RTKindDeclarations::iname</span></span>:<br/><a href="2-kd.html#SP7">§7</a>, <a href="2-kd.html#SP8">§8</a><br/>Relations - <a href="5-rlt.html#SP19_1">§19.1</a>, <a href="5-rlt.html#SP19_2">§19.2</a>, <a href="5-rlt.html#SP19_3">§19.3</a>, <a href="5-rlt.html#SP19_4">§19.4</a>, <a href="5-rlt.html#SP19_5">§19.5</a>, <a href="5-rlt.html#SP21">§21</a><br/>Kind Constructors - <a href="5-kc.html#SP10">§10</a>, <a href="5-kc.html#SP11">§11</a>, <a href="5-kc.html#SP13">§13</a>, <a href="5-kc.html#SP30_2_7">§30.2.7</a><br/>Kind IDs - <a href="5-ki.html#SP10">§10</a><br/>Property Permissions - <a href="6-pp.html#SP1">§1</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_2_4">§1.2.4</a>, <a href="7-cgt.html#SP1_2_10_1_1">§1.2.10.1.1</a>, <a href="7-cgt.html#SP1_2_10_2_2">§1.2.10.2.2</a><br/>Noun Filter Tokens - <a href="7-nft.html#SP3_2">§3.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-kd.html#SP1" class="function-link"><span class="function-syntax">RTKindDeclarations::base_represented_in_Inter</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">noun</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nt</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Kinds::Behaviour::get_noun</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">nt</span><span class="plain-syntax">) && (</span><a href="2-ni.html#SP3" class="function-link"><span class="function-syntax">NounIdentifiers::iname_set</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">nt</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">))</span>
|
||||
|
@ -166,7 +166,7 @@ sequence in which declarations are made here.
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTKindDeclarations::create_iname</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">RTKindDeclarations::create_iname</span></span>:<br/><a href="2-kd.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP1" class="function-link"><span class="function-syntax">RTKindConstructors::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="identifier-syntax">construct</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="identifier-syntax">construct</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">KT</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Kinds::Textual::write</span><span class="plain-syntax">(</span><span class="identifier-syntax">KT</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Feeds::feed_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">KT</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -71,7 +71,7 @@ plugged in.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">SHOWME_is_active</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">RTShowmeCommand::needed_for_kind</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">RTShowmeCommand::needed_for_kind</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP11">§11</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">RTShowmeCommand::needed_for_kind</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">RTShowmeCommand::needed_for_kind</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP30_3">§30.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">SHOWME_is_active</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">subj</span><span class="plain-syntax"> = </span><span class="identifier-syntax">KindSubjects::from_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">;</span>
|
||||
|
@ -108,7 +108,7 @@ properties.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTShowmeCommand::compile_kind_showme_fn</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">RTShowmeCommand::compile_kind_showme_fn</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP11">§11</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTShowmeCommand::compile_kind_showme_fn</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">RTShowmeCommand::compile_kind_showme_fn</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP30_3_18">§30.3.18</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Functions::begin</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">which_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::new_other_as_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"which"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">na_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::new_other_as_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"na"</span><span class="plain-syntax">);</span>
|
||||
|
@ -420,7 +420,7 @@ routine for colours; and the best thing is to print nothing at all.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">INDIRECT1V_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP8" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="5-kc.html#SP5" class="function-link"><span class="function-syntax">RTKindConstructors::get_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP8" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="5-kc.html#SP16" class="function-link"><span class="function-syntax">RTKindConstructors::printing_fn_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">GPROPERTY_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="5-ki.html#SP2" class="function-link"><span class="function-syntax">RTKindIDs::emit_weak_ID_as_val</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_object</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -70,7 +70,7 @@ It can be conjured into being by calling this function:
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P_cap_short_name</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">property_iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">CAPSHORTNAME_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">P_cap_short_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ValueProperties::new_nameless_using</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">K_text</span><span class="plain-syntax">, </span><a href="5-kc.html#SP5" class="function-link"><span class="function-syntax">RTKindConstructors::kind_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_object</span><span class="plain-syntax">), </span><span class="identifier-syntax">property_iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">K_text</span><span class="plain-syntax">, </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::kind_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_object</span><span class="plain-syntax">), </span><span class="identifier-syntax">property_iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP17" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">property_iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">P_cap_short_name</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -215,15 +215,9 @@ for the number of instances it has:
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">ListLiterals::extent_of_instance_list</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">ListLiterals::extent_of_instance_list</span></span>:<br/><a href="4-ll.html#SP7">§7</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax"> = -1;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_an_enumeration</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP12" class="function-link"><span class="function-syntax">RTKindConstructors::count_enumeration_entries</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_subkind_of_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_INSTANCES</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">) </span><span class="identifier-syntax">N</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_an_enumeration</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-kc.html#SP26" class="function-link"><span class="function-syntax">RTKindConstructors::enumeration_size</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_subkind_of_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">Instances::count</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> -1;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>§7. </b>And the following then constructs the literal list, on demand:
|
||||
|
@ -233,16 +227,16 @@ for the number of instances it has:
|
|||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">ListLiterals::get_instance_list</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax"> = </span><a href="4-ll.html#SP6" class="function-link"><span class="function-syntax">ListLiterals::extent_of_instance_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax"> < </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">large_block_iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::list_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Kinds::get_construct</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">large_block_iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP14" class="function-link"><span class="function-syntax">RTKindConstructors::list_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Kinds::get_construct</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">large_block_iname</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">large_block_iname</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_LIST_HL</span><span class="plain-syntax">, </span><a href="5-kc.html#SP5" class="function-link"><span class="function-syntax">RTKindConstructors::kind_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_LIST_HL</span><span class="plain-syntax">, </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::kind_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><a href="4-ll.html#SP1" class="function-link"><span class="function-syntax">ListLiterals::begin_large_block</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">large_block_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">Kinds::unary_con</span><span class="plain-syntax">(</span><span class="identifier-syntax">CON_list_of</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">), </span><span class="identifier-syntax">N</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_an_enumeration</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) </span><a href="5-kc.html#SP13" class="function-link"><span class="function-syntax">RTKindConstructors::make_enumeration_entries</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_an_enumeration</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) </span><a href="5-kc.html#SP28" class="function-link"><span class="function-syntax">RTKindConstructors::make_enumeration_entries</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_subkind_of_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) </span><span class="named-paragraph-container code-font"><a href="4-ll.html#SP7_1" class="named-paragraph-link"><span class="named-paragraph">Compile entries for a kind of object</span><span class="named-paragraph-number">7.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="4-ll.html#SP1" class="function-link"><span class="function-syntax">ListLiterals::end_large_block</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::set_list_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Kinds::get_construct</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">), </span><span class="identifier-syntax">large_block_iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-kc.html#SP14" class="function-link"><span class="function-syntax">RTKindConstructors::set_list_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Kinds::get_construct</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">), </span><span class="identifier-syntax">large_block_iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-ll.html#SP2" class="function-link"><span class="function-syntax">ListLiterals::small_block</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">large_block_iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
|
|
@ -163,7 +163,6 @@ through a sentence like:
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="string-syntax">"response (%c) to '%W'"</span><span class="plain-syntax">, </span><span class="character-syntax">'A'</span><span class="plain-syntax">+</span><span class="identifier-syntax">marker</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">-></span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Sequence::queue</span><span class="plain-syntax">(&</span><a href="4-rsp.html#SP6" class="function-link"><span class="function-syntax">Responses::compilation_agent</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">STORE_POINTER_response_message</span><span class="plain-syntax">(</span><span class="identifier-syntax">resp</span><span class="plain-syntax">), </span><span class="identifier-syntax">desc</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">resp</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
|
|
@ -495,7 +495,7 @@ the function is attached to.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">var</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">PARSED_NUMBER_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">INDIRECT1V_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP8" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="5-kc.html#SP5" class="function-link"><span class="function-syntax">RTKindConstructors::get_debug_print_fn_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP8" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="5-kc.html#SP18" class="function-link"><span class="function-syntax">RTKindConstructors::debug_print_fn_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">K_understanding</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_understanding</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">PLUS_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
|
|
|
@ -90,7 +90,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">icd</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTInstances::value_iname</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">RTInstances::value_iname</span></span>:<br/><a href="5-ins.html#SP4">§4</a>, <a href="5-ins.html#SP4_1">§4.1</a>, <a href="5-ins.html#SP5">§5</a><br/>Default Values - <a href="2-dv.html#SP2_4">§2.4</a><br/>Instance Counting - <a href="2-ic.html#SP8">§8</a><br/>Short Names - <a href="2-sn.html#SP4_1">§4.1</a><br/>List Literals - <a href="4-ll.html#SP7_1">§7.1</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">§1</a><br/>Backdrop Instances - <a href="5-bi.html#SP2_1">§2.1</a><br/>Door Instances - <a href="5-di.html#SP3">§3</a>, <a href="5-di.html#SP5">§5</a>, <a href="5-di.html#SP6">§6</a><br/>Region Instances - <a href="5-ri.html#SP2">§2</a><br/>Scene Instances - <a href="5-si.html#SP1">§1</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP1">§1</a>, <a href="5-dbi.html#SP2">§2</a>, <a href="5-dbi.html#SP2_4">§2.4</a>, <a href="5-dbi.html#SP2_5">§2.5</a>, <a href="5-dbi.html#SP2_6_1_1">§2.6.1.1</a>, <a href="5-dbi.html#SP2_7_1">§2.7.1</a>, <a href="5-dbi.html#SP3">§3</a><br/>Dialogue - <a href="5-dli.html#SP3_3">§3.3</a>, <a href="5-dli.html#SP3_4">§3.4</a>, <a href="5-dli.html#SP3_6">§3.6</a>, <a href="5-dli.html#SP3_7">§3.7</a>, <a href="5-dli.html#SP3_11">§3.11</a>, <a href="5-dli.html#SP3_12">§3.12</a>, <a href="5-dli.html#SP3_13">§3.13</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3_4">§3.4</a><br/>Rulebooks - <a href="5-rlb.html#SP8_1">§8.1</a><br/>Kind Constructors - <a href="5-kc.html#SP13">§13</a>, <a href="5-kc.html#SP11_8_3">§11.8.3</a><br/>Test Scripts - <a href="5-ts.html#SP4">§4</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP1">§1</a>, <a href="6-tm.html#SP2">§2</a><br/>Property Permissions - <a href="6-pp.html#SP1">§1</a>, <a href="6-pp.html#SP3">§3</a><br/>Mapping Hints - <a href="6-mh.html#SP1">§1</a><br/>Kind GPRs - <a href="7-kg.html#SP5_1_1_1">§5.1.1.1</a>, <a href="7-kg.html#SP5_1_1_2">§5.1.1.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTInstances::value_iname</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">RTInstances::value_iname</span></span>:<br/><a href="5-ins.html#SP4">§4</a>, <a href="5-ins.html#SP4_1">§4.1</a>, <a href="5-ins.html#SP5">§5</a><br/>Default Values - <a href="2-dv.html#SP2_4">§2.4</a><br/>Instance Counting - <a href="2-ic.html#SP8">§8</a><br/>Short Names - <a href="2-sn.html#SP4_1">§4.1</a><br/>List Literals - <a href="4-ll.html#SP7_1">§7.1</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">§1</a><br/>Backdrop Instances - <a href="5-bi.html#SP2_1">§2.1</a><br/>Door Instances - <a href="5-di.html#SP3">§3</a>, <a href="5-di.html#SP5">§5</a>, <a href="5-di.html#SP6">§6</a><br/>Region Instances - <a href="5-ri.html#SP2">§2</a><br/>Scene Instances - <a href="5-si.html#SP1">§1</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP1">§1</a>, <a href="5-dbi.html#SP2">§2</a>, <a href="5-dbi.html#SP2_4">§2.4</a>, <a href="5-dbi.html#SP2_5">§2.5</a>, <a href="5-dbi.html#SP2_6_1_1">§2.6.1.1</a>, <a href="5-dbi.html#SP2_7_1">§2.7.1</a>, <a href="5-dbi.html#SP3">§3</a><br/>Dialogue - <a href="5-dli.html#SP3_3">§3.3</a>, <a href="5-dli.html#SP3_4">§3.4</a>, <a href="5-dli.html#SP3_6">§3.6</a>, <a href="5-dli.html#SP3_7">§3.7</a>, <a href="5-dli.html#SP3_11">§3.11</a>, <a href="5-dli.html#SP3_12">§3.12</a>, <a href="5-dli.html#SP3_13">§3.13</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3_4">§3.4</a><br/>Rulebooks - <a href="5-rlb.html#SP8_1">§8.1</a><br/>Kind Constructors - <a href="5-kc.html#SP28">§28</a>, <a href="5-kc.html#SP30_3_16">§30.3.16</a><br/>Test Scripts - <a href="5-ts.html#SP4">§4</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP1">§1</a>, <a href="6-tm.html#SP2">§2</a><br/>Property Permissions - <a href="6-pp.html#SP1">§1</a>, <a href="6-pp.html#SP3">§3</a><br/>Mapping Hints - <a href="6-mh.html#SP1">§1</a><br/>Kind GPRs - <a href="7-kg.html#SP5_1_1_1">§5.1.1.1</a>, <a href="7-kg.html#SP5_1_1_2">§5.1.1.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">instance_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -222,7 +222,7 @@ using Inter's <span class="extract"><span class="extract-syntax">INSTANCE_IST</s
|
|||
|
||||
<span class="plain-syntax"> </span><a href="5-ki.html#SP6" class="function-link"><span class="function-syntax">RTKindIDs::define_constant_as_strong_id</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kn_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">INSTANCE_KIND_XREF_MD_HL</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="5-kc.html#SP1" class="function-link"><span class="function-syntax">RTKindConstructors::xref_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="identifier-syntax">construct</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="5-kc.html#SP5" class="function-link"><span class="function-syntax">RTKindConstructors::xref_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="identifier-syntax">construct</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_subkind_of_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">INSTANCE_IS_OBJECT_MD_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
|
@ -398,12 +398,12 @@ an instance with an unexpected runtime value is called "out of place".
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTInstances::set_explicit_runtime_value</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">RTInstances::set_explicit_runtime_value</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTInstances::set_explicit_runtime_value</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">RTInstances::set_explicit_runtime_value</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP27">§27</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">has_explicit_runtime_value</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">explicit_runtime_value</span><span class="plain-syntax"> = </span><span class="identifier-syntax">val</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">RTInstances::out_of_place</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">RTInstances::out_of_place</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">RTInstances::out_of_place</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">RTInstances::out_of_place</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP27">§27</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">has_explicit_runtime_value</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">explicit_runtime_value</span><span class="plain-syntax"> == (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">I</span><span class="plain-syntax">-></span><span class="identifier-syntax">enumeration_index</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -111,30 +111,29 @@ like variables. That's what makes them intermediate.)
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">RTKindIDs::identifier_for_weak_ID</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">RTKindIDs::identifier_for_weak_ID</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kc</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">kc</span><span class="plain-syntax">-></span><span class="identifier-syntax">explicit_identifier</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">kc</span><span class="plain-syntax">-></span><span class="identifier-syntax">explicit_identifier</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">RTKindIDs::identifier_for_weak_ID</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">RTKindIDs::identifier_for_weak_ID</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kc</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">kc</span><span class="plain-syntax">-></span><span class="identifier-syntax">explicit_identifier</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">kc</span><span class="plain-syntax">-></span><span class="identifier-syntax">explicit_identifier</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">invented</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">invented</span><span class="plain-syntax">, </span><span class="string-syntax">"WEAK_ID_%d"</span><span class="plain-syntax">, </span><span class="identifier-syntax">kc</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">invented</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTKindIDs::weak_iname</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">RTKindIDs::weak_iname</span></span>:<br/><a href="5-ki.html#SP2">§2</a>, <a href="5-ki.html#SP6">§6</a>, <a href="5-ki.html#SP9_1">§9.1</a><br/>Emit Code - <a href="2-ec.html#SP9">§9</a><br/>The Heap - <a href="2-th.html#SP6">§6</a><br/>Short Names - <a href="2-sn.html#SP4_1">§4.1</a><br/>Kind Constructors - <a href="5-kc.html#SP11_8_1">§11.8.1</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_2_1">§1.2.1</a>, <a href="7-cgt.html#SP1_2_2">§1.2.2</a>, <a href="7-cgt.html#SP1_2_3">§1.2.3</a>, <a href="7-cgt.html#SP1_2_4">§1.2.4</a>, <a href="7-cgt.html#SP1_2_5">§1.2.5</a>, <a href="7-cgt.html#SP1_2_6">§1.2.6</a>, <a href="7-cgt.html#SP1_2_7">§1.2.7</a>, <a href="7-cgt.html#SP1_2_9">§1.2.9</a>, <a href="7-cgt.html#SP1_2_10_2_1">§1.2.10.2.1</a>, <a href="7-cgt.html#SP1_2_10_2_2">§1.2.10.2.2</a><br/>Parse Name Properties - <a href="7-pnp.html#SP8">§8</a>, <a href="7-pnp.html#SP10">§10</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) { </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::UNKNOWN_iname</span></a><span class="plain-syntax">(); }</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTKindIDs::weak_iname</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">RTKindIDs::weak_iname</span></span>:<br/><a href="5-ki.html#SP2">§2</a>, <a href="5-ki.html#SP6">§6</a>, <a href="5-ki.html#SP9_1">§9.1</a><br/>Emit Code - <a href="2-ec.html#SP9">§9</a><br/>The Heap - <a href="2-th.html#SP6">§6</a><br/>Short Names - <a href="2-sn.html#SP4_1">§4.1</a><br/>Kind Constructors - <a href="5-kc.html#SP30_3_14">§30.3.14</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_2_1">§1.2.1</a>, <a href="7-cgt.html#SP1_2_2">§1.2.2</a>, <a href="7-cgt.html#SP1_2_3">§1.2.3</a>, <a href="7-cgt.html#SP1_2_4">§1.2.4</a>, <a href="7-cgt.html#SP1_2_5">§1.2.5</a>, <a href="7-cgt.html#SP1_2_6">§1.2.6</a>, <a href="7-cgt.html#SP1_2_7">§1.2.7</a>, <a href="7-cgt.html#SP1_2_9">§1.2.9</a>, <a href="7-cgt.html#SP1_2_10_2_1">§1.2.10.2.1</a>, <a href="7-cgt.html#SP1_2_10_2_2">§1.2.10.2.2</a><br/>Parse Name Properties - <a href="7-pnp.html#SP8">§8</a>, <a href="7-pnp.html#SP10">§10</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-kc.html#SP6" class="function-link"><span class="function-syntax">RTKindConstructors::weak_ID_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">CON_UNKNOWN</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_subkind_of_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) </span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Kinds::get_construct</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::weak_ID_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP6" class="function-link"><span class="function-syntax">RTKindConstructors::weak_ID_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">iname</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"%u has no weak ID iname\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"kind has no weak ID iname"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTKindIDs::weak_iname_of_constructor</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">RTKindIDs::weak_iname_of_constructor</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP11">§11</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kc</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">kc</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::UNKNOWN_iname</span></a><span class="plain-syntax">();</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTKindIDs::weak_iname_of_constructor</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">RTKindIDs::weak_iname_of_constructor</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP30_2_1">§30.2.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kc</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">kc</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-kc.html#SP6" class="function-link"><span class="function-syntax">RTKindConstructors::weak_ID_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">CON_UNKNOWN</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_subkind_of_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">Kinds::base_construction</span><span class="plain-syntax">(</span><span class="identifier-syntax">kc</span><span class="plain-syntax">)))</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-ki.html#SP1" class="function-link"><span class="function-syntax">RTKindIDs::weak_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_object</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::weak_ID_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kc</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-kc.html#SP6" class="function-link"><span class="function-syntax">RTKindConstructors::weak_ID_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kc</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b>And the following compiles an easier-on-the-eye form of the weak ID, but
|
||||
|
|
|
@ -81,7 +81,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">lpcd</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure literal_pattern_compilation_data is accessed in 3/uo, 5/mlt, 5/tbl, 5/dbi, 5/dli, 5/dci, 5/prp, 5/act2, 5/nap and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure literal_pattern_compilation_data is accessed in 3/uo, 5/mlt, 5/tbl, 5/dbi, 5/dli, 5/dci, 5/prp, 5/kc, 5/act2, 5/nap and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b>And each gives rise to a package, though it contains only two functions:
|
||||
one to print, one to parse from a player's command. (So in Basic Inform, only
|
||||
the first function appears.)
|
||||
|
@ -1467,7 +1467,7 @@ sets the <span class="extract"><span class="extract-syntax">parsed_number</span>
|
|||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. Printing the I6 variable |value| out in an LP's notation at run-time. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTLiteralPatterns::printing_routine</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">RTLiteralPatterns::printing_routine</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP11_8_2">§11.8.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">literal_pattern</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lp_list</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTLiteralPatterns::printing_routine</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">RTLiteralPatterns::printing_routine</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP30_3_15">§30.3.15</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">literal_pattern</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lp_list</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Functions::begin</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">literal_pattern_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lpn</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -849,33 +849,6 @@ questionable arrangement, but there it is).
|
|||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTRulebooks::RulebookOutcomePrintingRule</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">printing_rule_name</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP5" class="function-link"><span class="function-syntax">RTKindConstructors::get_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_rulebook_outcome</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Functions::begin</span><span class="plain-syntax">(</span><span class="identifier-syntax">printing_rule_name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rbnov_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::new_other_as_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"nro"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IFELSE_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">EQ_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP8" class="function-link"><span class="function-syntax">EmitCode::val_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">rbnov_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP8" class="function-link"><span class="function-syntax">EmitCode::val_number</span></a><span class="plain-syntax">(0);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP5" class="function-link"><span class="function-syntax">EmitCode::code</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">PRINT_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP8" class="function-link"><span class="function-syntax">EmitCode::val_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"(no outcome)"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP5" class="function-link"><span class="function-syntax">EmitCode::code</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">PRINTSTRING_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP8" class="function-link"><span class="function-syntax">EmitCode::val_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">rbnov_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP15" class="function-link"><span class="function-syntax">EmitCode::rfalse</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Functions::end</span><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
|
|
|
@ -1398,8 +1398,8 @@ this is done by the function <span class="extract"><span class="extract-syntax">
|
|||
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::numeric_entry</span></a><span class="plain-syntax">((</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">left_count</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::numeric_entry</span></a><span class="plain-syntax">((</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">right_count</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::iname_entry</span></a><span class="plain-syntax">(</span><a href="5-kc.html#SP5" class="function-link"><span class="function-syntax">RTKindConstructors::get_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">left_kind</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::iname_entry</span></a><span class="plain-syntax">(</span><a href="5-kc.html#SP5" class="function-link"><span class="function-syntax">RTKindConstructors::get_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">right_kind</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::iname_entry</span></a><span class="plain-syntax">(</span><a href="5-kc.html#SP16" class="function-link"><span class="function-syntax">RTKindConstructors::printing_fn_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">left_kind</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::iname_entry</span></a><span class="plain-syntax">(</span><a href="5-kc.html#SP16" class="function-link"><span class="function-syntax">RTKindConstructors::printing_fn_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">right_kind</span><span class="plain-syntax">));</span>
|
||||
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::numeric_entry</span></a><span class="plain-syntax">(1); </span><span class="comment-syntax"> Cache broken flag</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">left_count</span><span class="plain-syntax"> > </span><span class="constant-syntax">0</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">right_count</span><span class="plain-syntax"> > </span><span class="constant-syntax">0</span><span class="plain-syntax">))</span>
|
||||
|
|
|
@ -66,7 +66,7 @@ has, and so on — is generated.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTInferences::index</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">RTInferences::index</span></span>:<br/>Instances - <a href="5-ins.html#SP4">§4</a><br/>Kind Constructors - <a href="5-kc.html#SP11">§11</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">hl</span><span class="plain-syntax">, </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">infs</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">brief</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTInferences::index</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">RTInferences::index</span></span>:<br/>Instances - <a href="5-ins.html#SP4">§4</a><br/>Kind Constructors - <a href="5-kc.html#SP30_4_9">§30.4.9</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">hl</span><span class="plain-syntax">, </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">infs</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">brief</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">property</span><span class="plain-syntax">) </span><a href="5-prp.html#SP7" class="function-link"><span class="function-syntax">RTProperties::set_indexed_already_flag</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -70,7 +70,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InstanceSubjects::to_instance</span><span class="plain-syntax">(</span><span class="identifier-syntax">subj</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax">) </span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><a href="5-ins.html#SP1" class="function-link"><span class="function-syntax">RTInstances::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><span class="identifier-syntax">KindSubjects::to_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">subj</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax">) </span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP5" class="function-link"><span class="function-syntax">RTKindConstructors::kind_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax">) </span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::kind_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">pack</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
|
@ -87,13 +87,13 @@ function togglePopup(material_id) {
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTPropertyPermissions::emit_kind_permissions</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">RTPropertyPermissions::emit_kind_permissions</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP11_7">§11.7</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTPropertyPermissions::emit_kind_permissions</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">RTPropertyPermissions::emit_kind_permissions</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP33">§33</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">subj</span><span class="plain-syntax"> = </span><span class="identifier-syntax">KindSubjects::from_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">property_permission</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pp</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_PERMISSIONS_FOR_INFS</span><span class="plain-syntax">(</span><span class="identifier-syntax">pp</span><span class="plain-syntax">, </span><span class="identifier-syntax">subj</span><span class="plain-syntax">) </span><span class="identifier-syntax">c</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">c</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="5-kc.html#SP3" class="function-link"><span class="function-syntax">RTKindConstructors::is_nonstandard_enumeration</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="5-kc.html#SP27" class="function-link"><span class="function-syntax">RTKindConstructors::is_nonstandard_enumeration</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"nonstandard enumeration with properties"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Packaging::enter</span><span class="plain-syntax">(</span><a href="6-pp.html#SP1" class="function-link"><span class="function-syntax">RTPropertyPermissions::home</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">subj</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Produce::kind_to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -69,7 +69,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><a href="6-pv.html#SP2" class="function-link"><span class="function-syntax">RTPropertyValues::emit_subject</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Instances::as_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTPropertyValues::compile_values_for_kind</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">RTPropertyValues::compile_values_for_kind</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP11_7">§11.7</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTPropertyValues::compile_values_for_kind</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">RTPropertyValues::compile_values_for_kind</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP33">§33</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="6-pv.html#SP2" class="function-link"><span class="function-syntax">RTPropertyValues::emit_subject</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">KindSubjects::from_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="6-pv.html#SP4" class="function-link"><span class="function-syntax">RTPropertyValues::check_kind_can_have_property</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
|
|
@ -1008,7 +1008,7 @@ object, we again use a noun-filter token:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">GPR</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP4" class="function-link"><span class="function-syntax">RTKindConstructors::get_exp_kind_GPR_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">GPR</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP21" class="function-link"><span class="function-syntax">RTKindConstructors::GPR_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">code_mode</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">STORE_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
|
|
|
@ -136,7 +136,7 @@ which picks up any irregular meanings added by the source text, say by "Understa
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. </b>More generally, we can make a GPR for values of any enumeration or quasinumerical
|
||||
kind on request: see <a href="5-kc.html#SP8" class="internal">RTKindConstructors::request_I6_GPR</a>.
|
||||
kind on request.
|
||||
</p>
|
||||
|
||||
<p class="commentary">This does not work for other kinds, and in particular for kinds of object. Those
|
||||
|
@ -148,10 +148,10 @@ kind, trying each possible notation in turn until one matches:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">KindGPRs::quasinumerical_agent</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">KindGPRs::quasinumerical_agent</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">compilation_subtask</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">KindGPRs::quasinumerical_agent</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">KindGPRs::quasinumerical_agent</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP30_3_20">§30.3.20</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">compilation_subtask</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">data</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_quasinumerical</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"miscall"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP4" class="function-link"><span class="function-syntax">RTKindConstructors::get_kind_GPR_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP21" class="function-link"><span class="function-syntax">RTKindConstructors::GPR_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Functions::begin</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">gpr_kit</span><span class="plain-syntax"> </span><span class="identifier-syntax">kit</span><span class="plain-syntax"> = </span><a href="2-gpr.html#SP3" class="function-link"><span class="function-syntax">GPRs::new_kit</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-gpr.html#SP4" class="function-link"><span class="function-syntax">GPRs::add_original_var</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">kit</span><span class="plain-syntax">);</span>
|
||||
|
@ -235,7 +235,7 @@ kind, trying each possible notation in turn until one matches:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">KindGPRs::enumeration_agent</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">KindGPRs::enumeration_agent</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">compilation_subtask</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">KindGPRs::enumeration_agent</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">KindGPRs::enumeration_agent</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP30_3_19">§30.3.19</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">compilation_subtask</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">data</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_an_enumeration</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"miscall"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-kg.html#SP5_1" class="named-paragraph-link"><span class="named-paragraph">Compile the normal GPR</span><span class="named-paragraph-number">5.1</span></a></span><span class="plain-syntax">;</span>
|
||||
|
@ -251,7 +251,7 @@ For example, for a kind called "colour", it might match any of "burnt umber",
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP4" class="function-link"><span class="function-syntax">RTKindConstructors::get_kind_GPR_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP21" class="function-link"><span class="function-syntax">RTKindConstructors::GPR_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Functions::begin</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">gpr_kit</span><span class="plain-syntax"> </span><span class="identifier-syntax">kit</span><span class="plain-syntax"> = </span><a href="2-gpr.html#SP3" class="function-link"><span class="function-syntax">GPRs::new_kit</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-gpr.html#SP4" class="function-link"><span class="function-syntax">GPRs::add_original_var</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">kit</span><span class="plain-syntax">);</span>
|
||||
|
@ -279,7 +279,7 @@ the grammar holding "sooty" comes out only in the following function.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP4" class="function-link"><span class="function-syntax">RTKindConstructors::get_instance_GPR_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP22" class="function-link"><span class="function-syntax">RTKindConstructors::instance_GPR_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Functions::begin</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">gpr_kit</span><span class="plain-syntax"> </span><span class="identifier-syntax">kit</span><span class="plain-syntax"> = </span><a href="2-gpr.html#SP3" class="function-link"><span class="function-syntax">GPRs::new_kit</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-gpr.html#SP4" class="function-link"><span class="function-syntax">GPRs::add_instance_var</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">kit</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -181,9 +181,7 @@ their names (used as I6 tokens), and compile their routines.
|
|||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">STORE_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::ref_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">v_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gpr_to_ask</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP5" class="function-link"><span class="function-syntax">RTKindConstructors::get_explicit_I6_GPR_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">gpr_to_ask</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">gpr_to_ask</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP4" class="function-link"><span class="function-syntax">RTKindConstructors::get_kind_GPR_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">gpr_to_ask</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><a href="5-kc.html#SP21" class="function-link"><span class="function-syntax">RTKindConstructors::GPR_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -917,7 +917,7 @@ or vice versa, then they are distinguishable;
|
|||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ValueProperties::kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">distinguisher</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP5" class="function-link"><span class="function-syntax">RTKindConstructors::get_distinguisher_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">distinguisher</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP24" class="function-link"><span class="function-syntax">RTKindConstructors::distinguisher_function_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">distinguisher</span><span class="plain-syntax">) {</span>
|
||||
|
@ -1069,7 +1069,7 @@ alter the value of <span class="extract"><span class="extract-syntax">self</span
|
|||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ValueProperties::kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">recog_gpr</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP9" class="function-link"><span class="function-syntax">RTKindConstructors::get_recognition_only_GPR_as_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">recog_gpr</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP23" class="function-link"><span class="function-syntax">RTKindConstructors::recognition_only_GPR_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">recog_gpr</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">EQ_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
|
@ -1084,14 +1084,13 @@ alter the value of <span class="extract"><span class="extract-syntax">self</span
|
|||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP8" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">GPR_PREPOSITION_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="5-kc.html#SP7" class="function-link"><span class="function-syntax">RTKindConstructors::offers_I6_GPR</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">i6_gpr_name</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP5" class="function-link"><span class="function-syntax">RTKindConstructors::get_explicit_I6_GPR_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i6_gpr_name</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_understandable</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="5-kc.html#SP21" class="function-link"><span class="function-syntax">RTKindConstructors::GPR_provided_by_kit</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">AND_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">EQ_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">i6_gpr_name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><a href="5-kc.html#SP21" class="function-link"><span class="function-syntax">RTKindConstructors::GPR_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP8" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">GPR_NUMBER_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">EQ_BIP</span><span class="plain-syntax">);</span>
|
||||
|
@ -1108,7 +1107,7 @@ alter the value of <span class="extract"><span class="extract-syntax">self</span
|
|||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_an_enumeration</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">EQ_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><a href="5-kc.html#SP4" class="function-link"><span class="function-syntax">RTKindConstructors::get_instance_GPR_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><a href="5-kc.html#SP22" class="function-link"><span class="function-syntax">RTKindConstructors::instance_GPR_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">PROPERTYVALUE_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
|
@ -1124,7 +1123,7 @@ alter the value of <span class="extract"><span class="extract-syntax">self</span
|
|||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">EQ_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><a href="5-kc.html#SP4" class="function-link"><span class="function-syntax">RTKindConstructors::get_kind_GPR_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><a href="5-kc.html#SP21" class="function-link"><span class="function-syntax">RTKindConstructors::GPR_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP8" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">GPR_NUMBER_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">EQ_BIP</span><span class="plain-syntax">);</span>
|
||||
|
|
2
inform7/.gitignore
vendored
2
inform7/.gitignore
vendored
|
@ -56,9 +56,9 @@ Tests/Test Problems/_Results_Actual/
|
|||
Tests/Test Filings/_Results_Actual/
|
||||
Tests/Documentation/
|
||||
|
||||
**/*.interb
|
||||
Internal/Inter/Architecture16Kit/*.interb
|
||||
Internal/Inter/Architecture32Kit/*.interb
|
||||
Internal/Inter/BasicInformExtrasKit/*.interb
|
||||
Internal/Inter/BasicInformKit/*.interb
|
||||
Internal/Inter/CommandParserKit/*.interb
|
||||
Internal/Inter/DialogueKit/*.interb
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
Total memory consumption was 135557K = 132 MB
|
||||
Total memory consumption was 135608K = 132 MB
|
||||
|
||||
---- was used for 2101939 objects, in 373236 frames in 0 x 800K = 0K = 0 MB:
|
||||
---- was used for 2111059 objects, in 373571 frames in 0 x 800K = 0K = 0 MB:
|
||||
|
||||
30.6% inter_tree_node_array 59 x 8192 = 483328 objects, 42534752 bytes
|
||||
19.4% text_stream_array 4798 x 100 = 479800 objects, 27022336 bytes
|
||||
18.1% linked_list 45099 objects, 25255440 bytes
|
||||
31.1% inter_tree_node_array 60 x 8192 = 491520 objects, 43255680 bytes
|
||||
19.4% text_stream_array 4802 x 100 = 480200 objects, 27044864 bytes
|
||||
18.2% linked_list 45247 objects, 25338320 bytes
|
||||
10.2% inter_symbol_array 134 x 1024 = 137216 objects, 14274752 bytes
|
||||
10.0% inter_error_stash_array 106 x 1024 = 108544 objects, 13897024 bytes
|
||||
7.6% parse_node 133440 objects, 10675200 bytes
|
||||
|
@ -16,13 +16,13 @@ Total memory consumption was 135557K = 132 MB
|
|||
1.9% kind_array 68 x 1000 = 68000 objects, 2722176 bytes
|
||||
1.5% inter_schema_token 14157 objects, 2151864 bytes
|
||||
1.4% inter_name_generator_array 51 x 1000 = 51000 objects, 2041632 bytes
|
||||
1.3% package_request 21252 objects, 1870176 bytes
|
||||
1.3% package_request 21270 objects, 1871760 bytes
|
||||
1.3% vocabulary_entry_array 164 x 100 = 16400 objects, 1842048 bytes
|
||||
1.1% dict_entry_array 482 x 100 = 48200 objects, 1557824 bytes
|
||||
1.0% inter_symbols_table 26799 objects, 1500744 bytes
|
||||
1.1% dict_entry_array 483 x 100 = 48300 objects, 1561056 bytes
|
||||
1.0% inter_symbols_table 26838 objects, 1502928 bytes
|
||||
1.0% match_trie_array 11 x 1000 = 11000 objects, 1496352 bytes
|
||||
1.0% i6_schema_array 24 x 100 = 2400 objects, 1440768 bytes
|
||||
0.9% inter_package 26799 objects, 1286352 bytes
|
||||
0.9% inter_package 26838 objects, 1288224 bytes
|
||||
0.8% map_data 672 objects, 1128960 bytes
|
||||
0.7% id_body 957 objects, 1094808 bytes
|
||||
0.7% adjective_meaning 208 objects, 1030016 bytes
|
||||
|
@ -33,18 +33,18 @@ Total memory consumption was 135557K = 132 MB
|
|||
0.6% grammatical_usage 3641 objects, 873840 bytes
|
||||
0.6% individual_form 2574 objects, 864864 bytes
|
||||
0.4% unary_predicate_array 17 x 1000 = 17000 objects, 680544 bytes
|
||||
0.3% local_variable_array 48 x 100 = 4800 objects, 462336 bytes
|
||||
0.3% local_variable_array 49 x 100 = 4900 objects, 471968 bytes
|
||||
0.2% verb_usage 1148 objects, 394912 bytes
|
||||
0.2% dictionary 7726 objects, 370848 bytes
|
||||
0.2% rule 472 objects, 370048 bytes
|
||||
0.2% dictionary 7708 objects, 369984 bytes
|
||||
0.2% verb_form 388 objects, 350752 bytes
|
||||
0.2% noun 2389 objects, 286680 bytes
|
||||
0.1% compilation_subtask 3369 objects, 269520 bytes
|
||||
0.1% compilation_subtask 3380 objects, 270400 bytes
|
||||
0.1% inter_annotation_array 2 x 8192 = 16384 objects, 262208 bytes
|
||||
0.1% inference_subject 667 objects, 261464 bytes
|
||||
0.1% vanilla_function 3772 objects, 241408 bytes
|
||||
0.1% vanilla_function 3794 objects, 242816 bytes
|
||||
0.1% binary_predicate 326 objects, 172128 bytes
|
||||
0.1% hierarchy_location 1187 objects, 170928 bytes
|
||||
0.1% hierarchy_location 1181 objects, 170064 bytes
|
||||
0.1% linguistic_stock_item 3332 objects, 159936 bytes
|
||||
0.1% rule_family_data 403 objects, 148304 bytes
|
||||
0.1% nonterminal 774 objects, 142416 bytes
|
||||
|
@ -55,8 +55,8 @@ Total memory consumption was 135557K = 132 MB
|
|||
---- inter_schema 1539 objects, 110808 bytes
|
||||
---- imperative_defn 1395 objects, 100440 bytes
|
||||
---- noun_usage 2412 objects, 96480 bytes
|
||||
---- inter_tree 7 objects, 96152 bytes
|
||||
---- anl_entry_array 2 x 1000 = 2000 objects, 96064 bytes
|
||||
---- inter_tree 7 objects, 95704 bytes
|
||||
---- preposition 274 objects, 87680 bytes
|
||||
---- lexical_cluster 2529 objects, 80928 bytes
|
||||
---- kind_variable_declaration 1656 objects, 79488 bytes
|
||||
|
@ -64,11 +64,11 @@ Total memory consumption was 135557K = 132 MB
|
|||
---- label_namespace 1480 objects, 71040 bytes
|
||||
---- spatial_data 672 objects, 64512 bytes
|
||||
---- linked_list_item_array 4 x 1000 = 4000 objects, 64128 bytes
|
||||
---- kind_constructor 78 objects, 63648 bytes
|
||||
---- kind_macro_definition 9 objects, 62280 bytes
|
||||
---- booking 863 objects, 62136 bytes
|
||||
---- actions_rcd_data 1914 objects, 61248 bytes
|
||||
---- scenes_rcd_data 1914 objects, 61248 bytes
|
||||
---- kind_constructor 78 objects, 61152 bytes
|
||||
---- command_grammar 130 objects, 58240 bytes
|
||||
---- table 7 objects, 56672 bytes
|
||||
---- pcalc_func_array 1 x 1000 objects, 56032 bytes
|
||||
|
@ -89,9 +89,9 @@ Total memory consumption was 135557K = 132 MB
|
|||
---- regions_data 672 objects, 32256 bytes
|
||||
---- counting_data 672 objects, 32256 bytes
|
||||
---- property_permission 96 objects, 31488 bytes
|
||||
---- filename 767 objects, 30680 bytes
|
||||
---- parse_node_tree 34 objects, 29648 bytes
|
||||
---- stack_frame_box 307 objects, 29472 bytes
|
||||
---- filename 735 objects, 29400 bytes
|
||||
---- verb_sense 407 objects, 29304 bytes
|
||||
---- action_pattern_array 7 x 100 = 700 objects, 28224 bytes
|
||||
---- pathname 659 objects, 26360 bytes
|
||||
|
@ -116,10 +116,10 @@ Total memory consumption was 135557K = 132 MB
|
|||
---- booking_list 407 objects, 13024 bytes
|
||||
---- web_bibliographic_datum 203 objects, 12992 bytes
|
||||
---- adjective_iname_holder 323 objects, 12920 bytes
|
||||
---- uniqueness_count 474 objects, 11376 bytes
|
||||
---- uniqueness_count 481 objects, 11544 bytes
|
||||
---- inter_construct 32 objects, 11008 bytes
|
||||
---- heading_tree 34 objects, 10608 bytes
|
||||
---- stopwatch_timer 122 objects, 9760 bytes
|
||||
---- stopwatch_timer 123 objects, 9840 bytes
|
||||
---- inbuild_work 138 objects, 8832 bytes
|
||||
---- inbuild_copy 66 objects, 7920 bytes
|
||||
---- equation_node 68 objects, 7616 bytes
|
||||
|
@ -129,7 +129,7 @@ Total memory consumption was 135557K = 132 MB
|
|||
---- inbuild_edition 99 objects, 7128 bytes
|
||||
---- verb 109 objects, 6976 bytes
|
||||
---- inform_extension 33 objects, 6864 bytes
|
||||
---- hierarchy_attachment_point 78 objects, 6864 bytes
|
||||
---- hierarchy_attachment_point 77 objects, 6776 bytes
|
||||
---- text_literal_holder 163 objects, 6520 bytes
|
||||
---- section_md 62 objects, 5952 bytes
|
||||
---- parsed_use_option_setting 80 objects, 5760 bytes
|
||||
|
@ -249,18 +249,18 @@ Total memory consumption was 135557K = 132 MB
|
|||
---- kind_template_definition 1 object, 40 bytes
|
||||
---- by_function_bp_data 1 object, 40 bytes
|
||||
|
||||
99.9% was used for memory not allocated for objects:
|
||||
100.0% was used for memory not allocated for objects:
|
||||
|
||||
61.3% text stream storage 85221620 bytes in 499602 claims
|
||||
3.8% dictionary storage 5360128 bytes in 7708 claims
|
||||
---- sorting 2800 bytes in 531 claims
|
||||
61.4% text stream storage 85279084 bytes in 499957 claims
|
||||
3.8% dictionary storage 5364736 bytes in 7726 claims
|
||||
---- sorting 3320 bytes in 547 claims
|
||||
5.1% source text 7200000 bytes in 3 claims
|
||||
7.7% source text details 10800000 bytes in 2 claims
|
||||
0.1% documentation fragments 262144 bytes in 1 claim
|
||||
---- linguistic stock array 81920 bytes in 2 claims
|
||||
---- small word set array 105600 bytes in 22 claims
|
||||
3.2% inter symbols storage 4570576 bytes in 28177 claims
|
||||
12.0% inter bytecode storage 16764404 bytes in 15 claims
|
||||
3.2% inter symbols storage 4566640 bytes in 28213 claims
|
||||
12.0% inter bytecode storage 16757840 bytes in 15 claims
|
||||
4.4% inter links storage 6222976 bytes in 11 claims
|
||||
0.1% inter tree location list storage 191232 bytes in 32 claims
|
||||
1.2% instance-of-kind counting 1705636 bytes in 1 claim
|
||||
|
@ -269,5 +269,5 @@ Total memory consumption was 135557K = 132 MB
|
|||
---- code generation workspace for objects 3480 bytes in 19 claims
|
||||
0.2% emitter array storage 280672 bytes in 2002 claims
|
||||
|
||||
-139.-3% was overhead - -193495568 bytes = -188960K = -184 MB
|
||||
-139.-9% was overhead - -194346184 bytes = -189791K = -185 MB
|
||||
|
||||
|
|
|
@ -1,28 +1,29 @@
|
|||
100.0% in inform7 run
|
||||
67.5% in compilation to Inter
|
||||
45.5% in //Sequence::undertake_queued_tasks//
|
||||
4.6% in //MajorNodes::pre_pass//
|
||||
3.4% in //MajorNodes::pass_1//
|
||||
45.8% in //Sequence::undertake_queued_tasks//
|
||||
4.5% in //MajorNodes::pre_pass//
|
||||
3.8% in //MajorNodes::pass_1//
|
||||
1.5% in //ImperativeDefinitions::assess_all//
|
||||
1.5% in //RTKindConstructors::compile//
|
||||
1.5% in //RTPhrasebook::compile_entries//
|
||||
0.7% in //Sequence::lint_inter//
|
||||
1.1% in //Sequence::lint_inter//
|
||||
0.3% in //CompletionModule::compile//
|
||||
0.3% in //ImperativeDefinitions::compile_first_block//
|
||||
0.3% in //MajorNodes::pass_2//
|
||||
0.3% in //RTKindConstructors::compile_permissions//
|
||||
0.3% in //Sequence::undertake_queued_tasks//
|
||||
0.3% in //Sequence::undertake_queued_tasks//
|
||||
0.3% in //World::stage_V//
|
||||
6.2% not specifically accounted for
|
||||
28.1% in running Inter pipeline
|
||||
9.2% in step 14/15: generate inform6 -> auto.inf
|
||||
7.3% in step 5/15: load-binary-kits
|
||||
5.0% not specifically accounted for
|
||||
27.8% in running Inter pipeline
|
||||
9.5% in step 14/15: generate inform6 -> auto.inf
|
||||
7.2% in step 5/15: load-binary-kits
|
||||
5.7% in step 6/15: make-synoptic-module
|
||||
1.9% in step 9/15: make-identifiers-unique
|
||||
0.3% in step 12/15: eliminate-redundant-operations
|
||||
0.3% in step 4/15: compile-splats
|
||||
0.3% in step 7/15: shorten-wiring
|
||||
0.3% in step 8/15: detect-indirect-calls
|
||||
2.3% not specifically accounted for
|
||||
1.9% not specifically accounted for
|
||||
3.4% in supervisor
|
||||
0.8% not specifically accounted for
|
||||
1.2% not specifically accounted for
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "Architecture16Kit",
|
||||
"version": "10.2.0-beta+6W66"
|
||||
"version": "10.2.0-beta+6W67"
|
||||
},
|
||||
"compatibility": "16-bit",
|
||||
"kit-details": {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "Architecture32Kit",
|
||||
"version": "10.2.0-beta+6W66"
|
||||
"version": "10.2.0-beta+6W67"
|
||||
},
|
||||
"compatibility": "32-bit",
|
||||
"kit-details": {
|
||||
|
|
|
@ -207,16 +207,10 @@ And here is how to tell what the results were.
|
|||
return 0;
|
||||
];
|
||||
|
||||
@h Printing Rule Names.
|
||||
This is the I6 printing rule used for a value of kind "rule", which as
|
||||
noted above can either be rulebook ID numbers in the range 0 to $N-1$ or
|
||||
are addresses of individual rules.
|
||||
|
||||
Names of rules and rulebooks take up a fair amount of space, and one of the
|
||||
main memory economies enforced by the "Use memory economy" option is to
|
||||
omit the necessary arrays. (It's not the text which is the problem so
|
||||
much as the table of addresses pointing to that text, which has to live in
|
||||
precious readable memory on the Z-machine.)
|
||||
[ RulebookOutcomePrintingRule nro;
|
||||
if (nro == 0) print "(no outcome)";
|
||||
else print (string) nro;
|
||||
];
|
||||
|
||||
@h Casting.
|
||||
Nothing needs to be done to a rulebook value to make it a rule value.
|
||||
|
|
|
@ -186,7 +186,7 @@ builtin base TABLE_TY {
|
|||
documentation-reference: kind_tablename
|
||||
index-priority: 6
|
||||
index-default-value: <i>a table with no rows or columns</i>
|
||||
indexed-grey-if-empty: yes
|
||||
indexed-grey-if-empty: no
|
||||
specification-text: Like tables of information in a book or newspaper, tables in Inform hold values which have been organised into rows and columns. A table name is just a single value, identifying which table is meant - say, 'Table of US Presidents' might be a table name value.
|
||||
}
|
||||
|
||||
|
@ -275,7 +275,7 @@ builtin constructor RULE_TY {
|
|||
|
||||
documentation-reference: kind_rule
|
||||
index-default-value: the little-used do nothing rule
|
||||
indexed-grey-if-empty: yes
|
||||
indexed-grey-if-empty: no
|
||||
specification-text: One of many, many rules which determine what happens during play. Rules can be triggered by scenes beginning or ending, by certain actions, at certain times, or in the course of carrying out certain activities.
|
||||
}
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "BasicInformKit",
|
||||
"version": "10.2.0-beta+6W66"
|
||||
"version": "10.2.0-beta+6W67"
|
||||
},
|
||||
"needs": [ {
|
||||
"need": {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "CommandParserKit",
|
||||
"version": "10.2.0-beta+6W66"
|
||||
"version": "10.2.0-beta+6W67"
|
||||
},
|
||||
"needs": [ {
|
||||
"need": {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "EnglishLanguageKit",
|
||||
"version": "10.2.0-beta+6W66"
|
||||
"version": "10.2.0-beta+6W67"
|
||||
},
|
||||
"needs": [ {
|
||||
"need": {
|
||||
|
|
|
@ -81,9 +81,6 @@ by enumerating them in the property |room_index| and by the flags in the
|
|||
|DoorRoutingViable| array respectively.
|
||||
|
||||
=
|
||||
Constant NUM_DOORS = ICOUNT_DOOR;
|
||||
Constant NUM_ROOMS = ICOUNT_ROOM;
|
||||
|
||||
Array DoorRoutingViable -> NUM_DOORS+1;
|
||||
|
||||
Global map_has_changed = true;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "WorldModelKit",
|
||||
"version": "10.2.0-beta+6W66"
|
||||
"version": "10.2.0-beta+6W67"
|
||||
},
|
||||
"needs": [ {
|
||||
"need": {
|
||||
|
|
|
@ -869,7 +869,7 @@
|
|||
</tr>
|
||||
<tr class="stripetwo">
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
phrase K -> L <a href=#A2189><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
phrase K -> L <a href=#A2185><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top" colspan="4">
|
||||
<i>always the default value of L</i>
|
||||
|
@ -877,7 +877,7 @@
|
|||
</tr>
|
||||
<tr class="stripeone">
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
<span class="indexgrey"></span>relation<span class="indexgrey"> of K</span> <a href=#A2194><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
<span class="indexgrey"></span>relation<span class="indexgrey"> of K</span> <a href=#A2190><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top" colspan="4">
|
||||
<i>a relation never holding</i>
|
||||
|
@ -885,7 +885,7 @@
|
|||
</tr>
|
||||
<tr class="stripetwo">
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
<span class="indexgrey">K based</span> rule<span class="indexgrey"> producing L</span> <a href=inform:/doc325.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A2197><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
<span class="indexgrey">K based</span> rule<span class="indexgrey"> producing L</span> <a href=inform:/doc325.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A2193><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top" colspan="4">
|
||||
the little-used do nothing rule
|
||||
|
@ -893,7 +893,7 @@
|
|||
</tr>
|
||||
<tr class="stripeone">
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
<span class="indexgrey">K based</span> rulebook<span class="indexgrey"> producing L</span> <a href=inform:/doc325.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A2200><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
<span class="indexgrey">K based</span> rulebook<span class="indexgrey"> producing L</span> <a href=inform:/doc325.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A2196><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top" colspan="4">
|
||||
the action-processing rules
|
||||
|
@ -901,7 +901,7 @@
|
|||
</tr>
|
||||
<tr class="stripetwo">
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
<span class="indexgrey"></span>activity<span class="indexgrey"> on K</span> <a href=inform:/doc285.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A2203><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
<span class="indexgrey"></span>activity<span class="indexgrey"> on K</span> <a href=inform:/doc285.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A2199><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top" colspan="4">
|
||||
printing the name
|
||||
|
@ -909,7 +909,7 @@
|
|||
</tr>
|
||||
<tr class="stripeone">
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
description of K <a href=inform:/doc362.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A2209><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
description of K <a href=inform:/doc362.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A2205><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top" colspan="4">
|
||||
<i>matching nothing</i>
|
||||
|
@ -917,7 +917,7 @@
|
|||
</tr>
|
||||
<tr class="stripetwo">
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
<span class="indexgrey">K valued</span> property<span class="indexgrey"></span> <a href=#A2211><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
<span class="indexgrey">K valued</span> property<span class="indexgrey"></span> <a href=#A2207><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top" colspan="4">
|
||||
--
|
||||
|
@ -925,7 +925,7 @@
|
|||
</tr>
|
||||
<tr class="stripeone">
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
<span class="indexgrey">K valued</span> table<span class="indexgrey"></span> column<span class="indexgrey"></span> <a href=#A2213><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
<span class="indexgrey">K valued</span> table<span class="indexgrey"></span> column<span class="indexgrey"></span> <a href=#A2209><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top" colspan="4">
|
||||
--
|
||||
|
|
|
@ -107,7 +107,6 @@ activity *Activities::new(kind *K, wording W) {
|
|||
av->after_rules = Activities::make_rulebook(av, 2);
|
||||
|
||||
PluginCalls::new_activity_notify(av);
|
||||
|
||||
return av;
|
||||
}
|
||||
|
||||
|
|
|
@ -198,6 +198,7 @@ here, which only happens when special runs are made for compiler testing.
|
|||
BENCH(RTUseOptions::compile)
|
||||
BENCH(RTCommandGrammars::compile_non_generic_constants)
|
||||
BENCH(Interventions::make_all)
|
||||
BENCH(RTKindConstructors::assign_declaration_sequence_numbers)
|
||||
BENCH(RTKindConstructors::compile)
|
||||
BENCH(RTLiteralPatterns::compile)
|
||||
|
||||
|
|
|
@ -540,7 +540,7 @@ be a description which is true or false for any given value, so:
|
|||
if ((K_understanding) &&
|
||||
(Kinds::Behaviour::is_object(K) == FALSE) &&
|
||||
(Kinds::eq(K, K_understanding) == FALSE) &&
|
||||
(RTKindConstructors::request_I6_GPR(K) == FALSE)) {
|
||||
(Kinds::Behaviour::is_understandable(K) == FALSE)) {
|
||||
Problems::quote_source(1, current_sentence);
|
||||
Problems::quote_wording(2, CGTokens::text(cgt));
|
||||
StandardProblems::handmade_problem(Task::syntax_tree(), _p_(PM_UnparsableKind));
|
||||
|
|
|
@ -19,6 +19,7 @@ void ParsingPlugin::start(void) {
|
|||
PluginCalls::plug(COMPLETE_MODEL_PLUG, ParsingPlugin::complete_model);
|
||||
|
||||
RTLiteralPatterns::enable_parsing();
|
||||
RTKindConstructors::enable_parsing();
|
||||
}
|
||||
|
||||
@ This will also need extensive amounts of run-time code, and the sequence
|
||||
|
|
|
@ -594,11 +594,12 @@ void Understand::property_block(property *pr, int level, inference_subject *subj
|
|||
"and this refers to something which is not an object.");
|
||||
return;
|
||||
}
|
||||
kind *PK = ValueProperties::kind(pr);
|
||||
if ((Properties::is_either_or(pr) == FALSE) &&
|
||||
(Str::len(RTKindConstructors::get_recognition_only_GPR(ValueProperties::kind(pr))) == 0) &&
|
||||
((Kinds::Behaviour::is_object(ValueProperties::kind(pr))) ||
|
||||
(RTKindConstructors::request_I6_GPR(ValueProperties::kind(pr)) == FALSE))) {
|
||||
if (Kinds::Behaviour::is_object(ValueProperties::kind(pr)))
|
||||
(RTKindConstructors::recognition_only_GPR_provided_by_kit(PK) == FALSE) &&
|
||||
((Kinds::Behaviour::is_object(PK)) ||
|
||||
(Kinds::Behaviour::is_understandable(PK) == FALSE))) {
|
||||
if (Kinds::Behaviour::is_object(PK))
|
||||
StandardProblems::sentence_problem(Task::syntax_tree(),
|
||||
_p_(PM_ThingReferringProperty),
|
||||
"the value of that property is itself a kind of object",
|
||||
|
@ -804,7 +805,7 @@ void Understand::text_block(wording W, understanding_reference *ur) {
|
|||
"make sense.");
|
||||
return;
|
||||
}
|
||||
if (RTKindConstructors::request_I6_GPR(K) == FALSE) {
|
||||
if (Kinds::Behaviour::is_understandable(K) == FALSE) {
|
||||
StandardProblems::sentence_problem(Task::syntax_tree(),
|
||||
_p_(PM_UnderstandAsBadValue),
|
||||
"'understand ... as ...' gives text meaning a value whose kind "
|
||||
|
|
|
@ -233,11 +233,11 @@ int CompileLoops::schema(i6_schema *sch, kind *K) {
|
|||
inter_name *lname = RTKindConstructors::instances_array_iname(K);
|
||||
Calculus::Schemas::modify(sch,
|
||||
"for (*2=1, *1=%n-->*2: *2<=%d: *2++, *1=%n-->*2)",
|
||||
lname, RTKindConstructors::get_highest_valid_value_as_integer(K), lname);
|
||||
lname, RTKindConstructors::enumeration_size(K), lname);
|
||||
} else {
|
||||
Calculus::Schemas::modify(sch,
|
||||
"for (*1=1: *1<=%d: *1++)",
|
||||
RTKindConstructors::get_highest_valid_value_as_integer(K));
|
||||
RTKindConstructors::enumeration_size(K));
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
|
|
@ -243,7 +243,7 @@ void CompilePropositions::to_random_match(parse_node *desc) {
|
|||
EmitCode::inv(INDIRECT0_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::val_iname(K_value,
|
||||
RTKindConstructors::get_ranger_iname(K));
|
||||
RTKindConstructors::random_value_fn_iname(K));
|
||||
EmitCode::up();
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -177,7 +177,7 @@ void CompileSchemas::compile_term_of_token(pcalc_term *pt, int m, kind *cast_to,
|
|||
@<Compile comparison function for the kind@> =
|
||||
inter_name *cr;
|
||||
if (pt->term_checked_as_kind)
|
||||
cr = RTKindConstructors::get_comparison_fn_iname(pt->term_checked_as_kind->construct);
|
||||
cr = RTKindConstructors::comparison_fn_iname(pt->term_checked_as_kind);
|
||||
else
|
||||
cr = Hierarchy::find(SIGNEDCOMPARE_HL);
|
||||
EmitCode::val_iname(K_value, cr);
|
||||
|
|
|
@ -715,21 +715,21 @@ proposition.
|
|||
@<Inline command "next-routine"@> =
|
||||
kind *K = CSIInline::parse_bracing_operand_as_kind(ist->operand,
|
||||
Node::get_kind_variable_declarations(inv));
|
||||
if (K) EmitCode::val_iname(K_value, RTKindConstructors::get_inc_iname(K));
|
||||
if (K) EmitCode::val_iname(K_value, RTKindConstructors::increment_fn_iname(K));
|
||||
else @<Issue an inline no-such-kind problem@>;
|
||||
return;
|
||||
|
||||
@<Inline command "previous-routine"@> =
|
||||
kind *K = CSIInline::parse_bracing_operand_as_kind(ist->operand,
|
||||
Node::get_kind_variable_declarations(inv));
|
||||
if (K) EmitCode::val_iname(K_value, RTKindConstructors::get_dec_iname(K));
|
||||
if (K) EmitCode::val_iname(K_value, RTKindConstructors::decrement_fn_iname(K));
|
||||
else @<Issue an inline no-such-kind problem@>;
|
||||
return;
|
||||
|
||||
@<Inline command "printing-routine"@> =
|
||||
kind *K = CSIInline::parse_bracing_operand_as_kind(ist->operand,
|
||||
Node::get_kind_variable_declarations(inv));
|
||||
if (K) EmitCode::val_iname(K_value, RTKindConstructors::get_iname(K));
|
||||
if (K) EmitCode::val_iname(K_value, RTKindConstructors::printing_fn_iname(K));
|
||||
else @<Issue an inline no-such-kind problem@>;
|
||||
return;
|
||||
|
||||
|
@ -739,14 +739,14 @@ proposition.
|
|||
if ((Kinds::eq(K, K_number)) ||
|
||||
(Kinds::eq(K, K_time)))
|
||||
EmitCode::val_iname(K_value, Hierarchy::find(GENERATERANDOMNUMBER_HL));
|
||||
else if (K) EmitCode::val_iname(K_value, RTKindConstructors::get_ranger_iname(K));
|
||||
else if (K) EmitCode::val_iname(K_value, RTKindConstructors::random_value_fn_iname(K));
|
||||
else @<Issue an inline no-such-kind problem@>;
|
||||
return;
|
||||
|
||||
@<Inline command "indexing-routine"@> =
|
||||
kind *K = CSIInline::parse_bracing_operand_as_kind(ist->operand,
|
||||
Node::get_kind_variable_declarations(inv));
|
||||
if (K) EmitCode::val_iname(K_value, RTKindConstructors::get_indexing_iname(K));
|
||||
if (K) EmitCode::val_iname(K_value, RTKindConstructors::indexing_fn_iname(K));
|
||||
else @<Issue an inline no-such-kind problem@>;
|
||||
return;
|
||||
|
||||
|
@ -1279,7 +1279,7 @@ result would be the same without the optimisation.
|
|||
if (Kinds::eq(K, K_number)) @<Inline say number@>;
|
||||
if (Kinds::eq(K, K_unicode_character)) @<Inline say unicode character@>;
|
||||
if (K) {
|
||||
EmitCode::call(RTKindConstructors::get_iname(K));
|
||||
EmitCode::call(RTKindConstructors::printing_fn_iname(K));
|
||||
EmitCode::down();
|
||||
CompileValues::to_code_val_of_kind(to_say, K);
|
||||
EmitCode::up();
|
||||
|
@ -1301,7 +1301,7 @@ result would be the same without the optimisation.
|
|||
EmitCode::up();
|
||||
} else {
|
||||
kind *K = Specifications::to_kind(to_say);
|
||||
EmitCode::call(RTKindConstructors::get_iname(K));
|
||||
EmitCode::call(RTKindConstructors::printing_fn_iname(K));
|
||||
EmitCode::down();
|
||||
CompileValues::to_code_val_of_kind(to_say, K);
|
||||
EmitCode::up();
|
||||
|
@ -1804,7 +1804,7 @@ void CSIInline::emit_showme(parse_node *spec) {
|
|||
EmitCode::val_number(1);
|
||||
EmitCode::up();
|
||||
} else {
|
||||
EmitCode::call(RTKindConstructors::get_iname(K));
|
||||
EmitCode::call(RTKindConstructors::printing_fn_iname(K));
|
||||
EmitCode::down();
|
||||
CompileValues::to_code_val(spec);
|
||||
EmitCode::up();
|
||||
|
|
|
@ -54,6 +54,7 @@ Tests/Test Problems/_Results_Actual/
|
|||
Tests/Test Filings/_Results_Actual/
|
||||
Tests/Documentation/
|
||||
|
||||
**/*.interb
|
||||
Internal/Inter/Architecture16Kit/*.interb
|
||||
Internal/Inter/Architecture32Kit/*.interb
|
||||
Internal/Inter/BasicInformKit/*.interb
|
||||
|
|
|
@ -1177,6 +1177,7 @@ void Hierarchy::establish(void) {
|
|||
@e KIND_INDEX_PLURAL_MD_HL
|
||||
@e KIND_SHOWME_MD_HL
|
||||
@e KIND_IS_BASE_MD_HL
|
||||
@e KIND_IS_PROPER_MD_HL
|
||||
@e KIND_IS_QUASINUMERICAL_MD_HL
|
||||
@e KIND_IS_DEF_MD_HL
|
||||
@e KIND_IS_OBJECT_MD_HL
|
||||
|
@ -1209,6 +1210,8 @@ void Hierarchy::establish(void) {
|
|||
@e WEAK_ID_HL
|
||||
@e ICOUNT_HL
|
||||
@e FWMATRIX_SIZE_HL
|
||||
@e NUM_DOORS_HL
|
||||
@e NUM_ROOMS_HL
|
||||
@e ENUMERATION_ARRAY_MD_HL
|
||||
@e KIND_XREF_SYMBOL_HL
|
||||
@e DECREMENT_FN_HL
|
||||
|
@ -1226,17 +1229,17 @@ void Hierarchy::establish(void) {
|
|||
@e FIRST_INSTANCE_HL
|
||||
@e INSTANCES_ARRAY_HL
|
||||
@e NEXT_INSTANCE_HL
|
||||
@e COUNT_INSTANCE_1_HL
|
||||
@e COUNT_INSTANCE_2_HL
|
||||
@e COUNT_INSTANCE_3_HL
|
||||
@e COUNT_INSTANCE_4_HL
|
||||
@e COUNT_INSTANCE_5_HL
|
||||
@e COUNT_INSTANCE_6_HL
|
||||
@e COUNT_INSTANCE_7_HL
|
||||
@e COUNT_INSTANCE_8_HL
|
||||
@e COUNT_INSTANCE_9_HL
|
||||
@e COUNT_INSTANCE_10_HL
|
||||
@e COUNT_INSTANCE_HL
|
||||
@e BASE_IK_1_HL
|
||||
@e BASE_IK_2_HL
|
||||
@e BASE_IK_3_HL
|
||||
@e BASE_IK_4_HL
|
||||
@e BASE_IK_5_HL
|
||||
@e BASE_IK_6_HL
|
||||
@e BASE_IK_7_HL
|
||||
@e BASE_IK_8_HL
|
||||
@e BASE_IK_9_HL
|
||||
@e BASE_IK_10_HL
|
||||
@e BASE_IK_HL
|
||||
@e KIND_INLINE_PROPERTIES_HAP
|
||||
@e KIND_INLINE_PROPERTY_HL
|
||||
@e KIND_PROPERTIES_HAP
|
||||
|
@ -1250,7 +1253,6 @@ void Hierarchy::establish(void) {
|
|||
@e DK_KIND_HL
|
||||
@e DK_DEFAULT_VALUE_HL
|
||||
|
||||
@e KIND_USAGE_HAP
|
||||
@e KIND_CLASS_HL
|
||||
|
||||
@e MULTIPLICATION_RULE_HAP
|
||||
|
@ -1288,6 +1290,7 @@ void Hierarchy::establish(void) {
|
|||
H_C_U(KIND_INDEX_VARIANCE_MD_HL, I"^variance")
|
||||
H_C_U(KIND_SHOWME_MD_HL, I"^showme_fn")
|
||||
H_C_U(KIND_IS_BASE_MD_HL, I"^is_base")
|
||||
H_C_U(KIND_IS_PROPER_MD_HL, I"^is_proper")
|
||||
H_C_U(KIND_IS_QUASINUMERICAL_MD_HL, I"^is_quasinumerical")
|
||||
H_C_U(KIND_IS_DEF_MD_HL, I"^is_definite")
|
||||
H_C_U(KIND_IS_OBJECT_MD_HL, I"^is_object")
|
||||
|
@ -1321,6 +1324,8 @@ void Hierarchy::establish(void) {
|
|||
H_C_I(ICOUNT_HL)
|
||||
H_C_U(ENUMERATION_ARRAY_MD_HL, I"^enumeration_array")
|
||||
H_C_U(FWMATRIX_SIZE_HL, I"FWMATRIX_SIZE")
|
||||
H_C_U(NUM_DOORS_HL, I"NUM_DOORS")
|
||||
H_C_U(NUM_ROOMS_HL, I"NUM_ROOMS")
|
||||
H_C_U(KIND_XREF_SYMBOL_HL, I"kind_ref")
|
||||
H_F_U(MKDEF_FN_HL, I"mkdef_fn")
|
||||
H_F_U(DECREMENT_FN_HL, I"decrement_fn")
|
||||
|
@ -1337,17 +1342,17 @@ void Hierarchy::establish(void) {
|
|||
H_C_S(FIRST_INSTANCE_HL, I"_First")
|
||||
H_C_S(NEXT_INSTANCE_HL, I"_Next")
|
||||
H_C_S(INSTANCES_ARRAY_HL, I"_Array")
|
||||
H_C_T(COUNT_INSTANCE_1_HL, I"IK1_Count")
|
||||
H_C_T(COUNT_INSTANCE_2_HL, I"IK2_Count")
|
||||
H_C_T(COUNT_INSTANCE_3_HL, I"IK3_Count")
|
||||
H_C_T(COUNT_INSTANCE_4_HL, I"IK4_Count")
|
||||
H_C_T(COUNT_INSTANCE_5_HL, I"IK5_Count")
|
||||
H_C_T(COUNT_INSTANCE_6_HL, I"IK6_Count")
|
||||
H_C_T(COUNT_INSTANCE_7_HL, I"IK7_Count")
|
||||
H_C_T(COUNT_INSTANCE_8_HL, I"IK8_Count")
|
||||
H_C_T(COUNT_INSTANCE_9_HL, I"IK9_Count")
|
||||
H_C_T(COUNT_INSTANCE_10_HL, I"IK10_Count")
|
||||
H_C_S(COUNT_INSTANCE_HL, I"_Count")
|
||||
H_C_T(BASE_IK_1_HL, I"IK1_Count")
|
||||
H_C_T(BASE_IK_2_HL, I"IK2_Count")
|
||||
H_C_T(BASE_IK_3_HL, I"IK3_Count")
|
||||
H_C_T(BASE_IK_4_HL, I"IK4_Count")
|
||||
H_C_T(BASE_IK_5_HL, I"IK5_Count")
|
||||
H_C_T(BASE_IK_6_HL, I"IK6_Count")
|
||||
H_C_T(BASE_IK_7_HL, I"IK7_Count")
|
||||
H_C_T(BASE_IK_8_HL, I"IK8_Count")
|
||||
H_C_T(BASE_IK_9_HL, I"IK9_Count")
|
||||
H_C_T(BASE_IK_10_HL, I"IK10_Count")
|
||||
H_C_S(BASE_IK_HL, I"_Count")
|
||||
H_C_G(KIND_CLASS_HL, I"K")
|
||||
H_BEGIN_AP(KIND_INLINE_PROPERTIES_HAP, I"inline_property", I"_inline_property")
|
||||
H_C_U(KIND_INLINE_PROPERTY_HL, I"inline")
|
||||
|
@ -1367,8 +1372,6 @@ void Hierarchy::establish(void) {
|
|||
H_END
|
||||
|
||||
H_BEGIN(LocationRequirements::completion_submodule(I, kinds))
|
||||
H_BEGIN_AP(KIND_USAGE_HAP, I"kind_usage", I"_kind_usage")
|
||||
H_END
|
||||
H_BEGIN_AP(MULTIPLICATION_RULE_HAP, I"multiplication_rule", I"_multiplication_rule")
|
||||
H_C_U(SET_AT_MD_HL, I"^at")
|
||||
H_C_U(LEFT_OPERAND_MD_HL, I"^left_operand")
|
||||
|
@ -1962,36 +1965,12 @@ void Hierarchy::establish(void) {
|
|||
@e K_NUMBER_XPACKAGE
|
||||
@e K_TIME_XPACKAGE
|
||||
@e K_TRUTH_STATE_XPACKAGE
|
||||
@e K_TABLE_XPACKAGE
|
||||
@e K_FIGURE_NAME_XPACKAGE
|
||||
@e K_SOUND_NAME_XPACKAGE
|
||||
@e K_USE_OPTION_XPACKAGE
|
||||
@e K_EXTERNAL_FILE_XPACKAGE
|
||||
@e K_INTERNAL_FILE_XPACKAGE
|
||||
@e K_RULEBOOK_OUTCOME_XPACKAGE
|
||||
@e K_RESPONSE_XPACKAGE
|
||||
@e K_SCENE_XPACKAGE
|
||||
@e K_DIALOGUE_BEAT_XPACKAGE
|
||||
@e K_DIALOGUE_LINE_XPACKAGE
|
||||
@e K_DIALOGUE_CHOICE_XPACKAGE
|
||||
@e K_PERFORMANCE_STYLE_XPACKAGE
|
||||
|
||||
@e CAPSHORTNAME_HL
|
||||
@e DECIMAL_TOKEN_INNER_HL
|
||||
@e TIME_TOKEN_INNER_HL
|
||||
@e TRUTH_STATE_TOKEN_INNER_HL
|
||||
|
||||
@e PRINT_RULEBOOK_OUTCOME_HL
|
||||
@e PRINT_FIGURE_NAME_HL
|
||||
@e PRINT_SOUND_NAME_HL
|
||||
@e PRINT_EXTERNAL_FILE_NAME_HL
|
||||
@e PRINT_INTERNAL_FILE_NAME_HL
|
||||
@e PRINT_SCENE_HL
|
||||
@e PRINT_DIALOGUE_BEAT_HL
|
||||
@e PRINT_DIALOGUE_LINE_HL
|
||||
@e PRINT_DIALOGUE_CHOICE_HL
|
||||
@e PRINT_PERFORMANCE_STYLE_HL
|
||||
|
||||
@<The rest@> =
|
||||
H_BEGIN(LocationRequirements::this_exotic_package(K_OBJECT_XPACKAGE))
|
||||
H_C_T(CAPSHORTNAME_HL, I"cap_short_name")
|
||||
|
@ -2009,46 +1988,6 @@ void Hierarchy::establish(void) {
|
|||
H_F_T(TRUTH_STATE_TOKEN_INNER_HL, I"gpr_fn", I"TRUTH_STATE_TOKEN_INNER")
|
||||
H_END
|
||||
|
||||
H_BEGIN(LocationRequirements::this_exotic_package(K_FIGURE_NAME_XPACKAGE))
|
||||
H_F_T(PRINT_FIGURE_NAME_HL, I"print_fn", I"PrintFigureName")
|
||||
H_END
|
||||
|
||||
H_BEGIN(LocationRequirements::this_exotic_package(K_SOUND_NAME_XPACKAGE))
|
||||
H_F_T(PRINT_SOUND_NAME_HL, I"print_fn", I"PrintSoundName")
|
||||
H_END
|
||||
|
||||
H_BEGIN(LocationRequirements::this_exotic_package(K_EXTERNAL_FILE_XPACKAGE))
|
||||
H_F_T(PRINT_EXTERNAL_FILE_NAME_HL, I"print_fn", I"PrintExternalFileName")
|
||||
H_END
|
||||
|
||||
H_BEGIN(LocationRequirements::this_exotic_package(K_INTERNAL_FILE_XPACKAGE))
|
||||
H_F_T(PRINT_INTERNAL_FILE_NAME_HL, I"print_fn", I"PrintInternalFileName")
|
||||
H_END
|
||||
|
||||
H_BEGIN(LocationRequirements::this_exotic_package(K_RULEBOOK_OUTCOME_XPACKAGE))
|
||||
H_F_T(PRINT_RULEBOOK_OUTCOME_HL, I"print_fn", I"RulebookOutcomePrintingRule")
|
||||
H_END
|
||||
|
||||
H_BEGIN(LocationRequirements::this_exotic_package(K_SCENE_XPACKAGE))
|
||||
H_F_T(PRINT_SCENE_HL, I"print_fn", I"PrintSceneName")
|
||||
H_END
|
||||
|
||||
H_BEGIN(LocationRequirements::this_exotic_package(K_DIALOGUE_BEAT_XPACKAGE))
|
||||
H_F_T(PRINT_DIALOGUE_BEAT_HL, I"print_fn", I"PrintDialogueBeatName")
|
||||
H_END
|
||||
|
||||
H_BEGIN(LocationRequirements::this_exotic_package(K_DIALOGUE_LINE_XPACKAGE))
|
||||
H_F_T(PRINT_DIALOGUE_LINE_HL, I"print_fn", I"PrintDialogueLineName")
|
||||
H_END
|
||||
|
||||
H_BEGIN(LocationRequirements::this_exotic_package(K_DIALOGUE_CHOICE_XPACKAGE))
|
||||
H_F_T(PRINT_DIALOGUE_CHOICE_HL, I"print_fn", I"PrintDialogueChoiceName")
|
||||
H_END
|
||||
|
||||
H_BEGIN(LocationRequirements::this_exotic_package(K_PERFORMANCE_STYLE_XPACKAGE))
|
||||
H_F_T(PRINT_PERFORMANCE_STYLE_HL, I"print_fn", I"PrintPerformanceStyleName")
|
||||
H_END
|
||||
|
||||
@h Architectural symbols.
|
||||
These are built-in constants (and one built-in variable, |self|) which come
|
||||
from the platform we are compiling to. See //building: Large-Scale Structure//.
|
||||
|
@ -2142,19 +2081,6 @@ package_request *Hierarchy::exotic_package(int x) {
|
|||
case K_NUMBER_XPACKAGE: return RTKindConstructors::kind_package(K_number);
|
||||
case K_TIME_XPACKAGE: return RTKindConstructors::kind_package(K_time);
|
||||
case K_TRUTH_STATE_XPACKAGE: return RTKindConstructors::kind_package(K_truth_state);
|
||||
case K_TABLE_XPACKAGE: return RTKindConstructors::kind_package(K_table);
|
||||
case K_FIGURE_NAME_XPACKAGE: return RTKindConstructors::kind_package(K_figure_name);
|
||||
case K_SOUND_NAME_XPACKAGE: return RTKindConstructors::kind_package(K_sound_name);
|
||||
case K_USE_OPTION_XPACKAGE: return RTKindConstructors::kind_package(K_use_option);
|
||||
case K_EXTERNAL_FILE_XPACKAGE: return RTKindConstructors::kind_package(K_external_file);
|
||||
case K_INTERNAL_FILE_XPACKAGE: return RTKindConstructors::kind_package(K_internal_file);
|
||||
case K_RULEBOOK_OUTCOME_XPACKAGE: return RTKindConstructors::kind_package(K_rulebook_outcome);
|
||||
case K_RESPONSE_XPACKAGE: return RTKindConstructors::kind_package(K_response);
|
||||
case K_SCENE_XPACKAGE: return RTKindConstructors::kind_package(K_scene);
|
||||
case K_DIALOGUE_BEAT_XPACKAGE: return RTKindConstructors::kind_package(K_dialogue_beat);
|
||||
case K_DIALOGUE_LINE_XPACKAGE: return RTKindConstructors::kind_package(K_dialogue_line);
|
||||
case K_DIALOGUE_CHOICE_XPACKAGE: return RTKindConstructors::kind_package(K_dialogue_choice);
|
||||
case K_PERFORMANCE_STYLE_XPACKAGE: return RTKindConstructors::kind_package(K_performance_style);
|
||||
}
|
||||
internal_error("unknown exotic package");
|
||||
return NULL;
|
||||
|
|
|
@ -240,15 +240,14 @@ IK-count in a numerical property. So the red car, for example, would be given tw
|
|||
property values: one for (red car, thing), one for (red car, vehicle). The
|
||||
properties in question are the |IK_count_prop| for thing and vehicle.
|
||||
|
||||
Similarly for the next terms in the IK-sequences, where the properties are
|
||||
the |
|
||||
Similarly for the next terms in the IK-sequences.
|
||||
|
||||
@<Create the two instance properties for each kind of object@> =
|
||||
kind *K;
|
||||
LOOP_OVER_BASE_KINDS(K)
|
||||
if (Kinds::Behaviour::is_subkind_of_object(K)) {
|
||||
inference_subject *subj = KindSubjects::from_kind(K);
|
||||
inter_name *count_iname = RTKindConstructors::instance_count_iname(K);
|
||||
inter_name *count_iname = RTKindConstructors::base_IK_iname(K);
|
||||
|
||||
COUNTING_DATA(subj)->IK_count_prop =
|
||||
ValueProperties::new_nameless_using(K_number,
|
||||
|
|
|
@ -327,7 +327,7 @@ routine for colours; and the best thing is to print nothing at all.
|
|||
@<Compile the SHOWME of the actual value@> =
|
||||
EmitCode::inv(INDIRECT1V_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::val_iname(K_value, RTKindConstructors::get_iname(K));
|
||||
EmitCode::val_iname(K_value, RTKindConstructors::printing_fn_iname(K));
|
||||
EmitCode::call(Hierarchy::find(GPROPERTY_HL));
|
||||
EmitCode::down();
|
||||
RTKindIDs::emit_weak_ID_as_val(K_object);
|
||||
|
|
|
@ -139,15 +139,9 @@ for the number of instances it has:
|
|||
|
||||
=
|
||||
int ListLiterals::extent_of_instance_list(kind *K) {
|
||||
int N = -1;
|
||||
if (Kinds::Behaviour::is_an_enumeration(K))
|
||||
N = RTKindConstructors::count_enumeration_entries(K);
|
||||
if (Kinds::Behaviour::is_subkind_of_object(K)) {
|
||||
N = 0;
|
||||
instance *I;
|
||||
LOOP_OVER_INSTANCES(I, K) N++;
|
||||
}
|
||||
return N;
|
||||
if (Kinds::Behaviour::is_an_enumeration(K)) return RTKindConstructors::enumeration_size(K);
|
||||
if (Kinds::Behaviour::is_subkind_of_object(K)) return Instances::count(K);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ And the following then constructs the literal list, on demand:
|
||||
|
|
|
@ -93,7 +93,6 @@ response_message *Responses::response_cue(rule *R, int marker, wording W, stack_
|
|||
text_stream *desc = Str::new();
|
||||
WRITE_TO(desc, "response (%c) to '%W'", 'A'+marker, R->name);
|
||||
Sequence::queue(&Responses::compilation_agent, STORE_POINTER_response_message(resp), desc);
|
||||
|
||||
return resp;
|
||||
}
|
||||
|
||||
|
|
|
@ -399,7 +399,7 @@ void RTActions::print_noun_or_second(action_name *an, int n, inter_symbol *n_s,
|
|||
var = InterNames::to_symbol(Hierarchy::find(PARSED_NUMBER_HL));
|
||||
EmitCode::inv(INDIRECT1V_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::val_iname(K_value, RTKindConstructors::get_debug_print_fn_iname(K));
|
||||
EmitCode::val_iname(K_value, RTKindConstructors::debug_print_fn_iname(K));
|
||||
if ((K_understanding) && (Kinds::eq(K, K_understanding))) {
|
||||
EmitCode::inv(PLUS_BIP);
|
||||
EmitCode::down();
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -34,15 +34,14 @@ Weak IDs have already appeared:
|
|||
|
||||
=
|
||||
text_stream *RTKindIDs::identifier_for_weak_ID(kind_constructor *kc) {
|
||||
if (Str::len(kc->explicit_identifier) > 0)
|
||||
return kc->explicit_identifier;
|
||||
if (Str::len(kc->explicit_identifier) > 0) return kc->explicit_identifier;
|
||||
text_stream *invented = Str::new();
|
||||
WRITE_TO(invented, "WEAK_ID_%d", kc->allocation_id);
|
||||
return invented;
|
||||
}
|
||||
|
||||
inter_name *RTKindIDs::weak_iname(kind *K) {
|
||||
if (K == NULL) { return RTKindConstructors::UNKNOWN_iname(); }
|
||||
if (K == NULL) return RTKindConstructors::weak_ID_iname(CON_UNKNOWN);
|
||||
if (Kinds::Behaviour::is_subkind_of_object(K)) K = K_object;
|
||||
kind_constructor *con = Kinds::get_construct(K);
|
||||
inter_name *iname = RTKindConstructors::weak_ID_iname(con);
|
||||
|
@ -53,7 +52,7 @@ inter_name *RTKindIDs::weak_iname(kind *K) {
|
|||
}
|
||||
|
||||
inter_name *RTKindIDs::weak_iname_of_constructor(kind_constructor *kc) {
|
||||
if (kc == NULL) return RTKindConstructors::UNKNOWN_iname();
|
||||
if (kc == NULL) return RTKindConstructors::weak_ID_iname(CON_UNKNOWN);
|
||||
if (Kinds::Behaviour::is_subkind_of_object(Kinds::base_construction(kc)))
|
||||
return RTKindIDs::weak_iname(K_object);
|
||||
return RTKindConstructors::weak_ID_iname(kc);
|
||||
|
|
|
@ -1191,8 +1191,8 @@ this is done by the function |RTRelations::relation_range| (below).
|
|||
|
||||
EmitArrays::numeric_entry((inter_ti) left_count);
|
||||
EmitArrays::numeric_entry((inter_ti) right_count);
|
||||
EmitArrays::iname_entry(RTKindConstructors::get_iname(left_kind));
|
||||
EmitArrays::iname_entry(RTKindConstructors::get_iname(right_kind));
|
||||
EmitArrays::iname_entry(RTKindConstructors::printing_fn_iname(left_kind));
|
||||
EmitArrays::iname_entry(RTKindConstructors::printing_fn_iname(right_kind));
|
||||
|
||||
EmitArrays::numeric_entry(1); /* Cache broken flag */
|
||||
if ((left_count > 0) && (right_count > 0))
|
||||
|
|
|
@ -713,32 +713,5 @@ void RTRulebooks::compile_outcome(named_rulebook_outcome *nro) {
|
|||
}
|
||||
|
||||
void RTRulebooks::RulebookOutcomePrintingRule(void) {
|
||||
inter_name *printing_rule_name = RTKindConstructors::get_iname(K_rulebook_outcome);
|
||||
packaging_state save = Functions::begin(printing_rule_name);
|
||||
inter_symbol *rbnov_s = LocalVariables::new_other_as_symbol(I"nro");
|
||||
EmitCode::inv(IFELSE_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::inv(EQ_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::val_symbol(K_value, rbnov_s);
|
||||
EmitCode::val_number(0);
|
||||
EmitCode::up();
|
||||
EmitCode::code();
|
||||
EmitCode::down();
|
||||
EmitCode::inv(PRINT_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::val_text(I"(no outcome)");
|
||||
EmitCode::up();
|
||||
EmitCode::up();
|
||||
EmitCode::code();
|
||||
EmitCode::down();
|
||||
EmitCode::inv(PRINTSTRING_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::val_symbol(K_value, rbnov_s);
|
||||
EmitCode::up();
|
||||
EmitCode::rfalse();
|
||||
EmitCode::up();
|
||||
EmitCode::up();
|
||||
Functions::end(save);
|
||||
}
|
||||
|
||||
|
|
|
@ -826,7 +826,7 @@ object, we again use a noun-filter token:
|
|||
@ Here we have a token like "[number]", say.
|
||||
|
||||
@<Handle an unqualified common noun non-object token@> =
|
||||
inter_name *GPR = RTKindConstructors::get_exp_kind_GPR_iname(K);
|
||||
inter_name *GPR = RTKindConstructors::GPR_iname(K);
|
||||
if (code_mode) {
|
||||
EmitCode::inv(STORE_BIP);
|
||||
EmitCode::down();
|
||||
|
|
|
@ -69,7 +69,7 @@ void KindGPRs::truth_state(void) {
|
|||
}
|
||||
|
||||
@ More generally, we can make a GPR for values of any enumeration or quasinumerical
|
||||
kind on request: see //RTKindConstructors::request_I6_GPR//.
|
||||
kind on request.
|
||||
|
||||
This does not work for other kinds, and in particular for kinds of object. Those
|
||||
are handled elsewhere by //Noun Filter Tokens//.
|
||||
|
@ -81,7 +81,7 @@ kind, trying each possible notation in turn until one matches:
|
|||
void KindGPRs::quasinumerical_agent(compilation_subtask *t) {
|
||||
kind *K = RETRIEVE_POINTER_kind(t->data);
|
||||
if (Kinds::Behaviour::is_quasinumerical(K) == FALSE) internal_error("miscall");
|
||||
inter_name *iname = RTKindConstructors::get_kind_GPR_iname(K);
|
||||
inter_name *iname = RTKindConstructors::GPR_iname(K);
|
||||
packaging_state save = Functions::begin(iname);
|
||||
gpr_kit kit = GPRs::new_kit();
|
||||
GPRs::add_original_var(&kit);
|
||||
|
@ -160,7 +160,7 @@ For example, for a kind called "colour", it might match any of "burnt umber",
|
|||
"cerulean blue" or "sienna".
|
||||
|
||||
@<Compile the normal GPR@> =
|
||||
inter_name *iname = RTKindConstructors::get_kind_GPR_iname(K);
|
||||
inter_name *iname = RTKindConstructors::GPR_iname(K);
|
||||
packaging_state save = Functions::begin(iname);
|
||||
gpr_kit kit = GPRs::new_kit();
|
||||
GPRs::add_original_var(&kit);
|
||||
|
@ -182,7 +182,7 @@ is the only way to allow, say, "Understand "sooty" as burnt umber." to work --
|
|||
the grammar holding "sooty" comes out only in the following function.
|
||||
|
||||
@<Compile the instance GPR@> =
|
||||
inter_name *iname = RTKindConstructors::get_instance_GPR_iname(K);
|
||||
inter_name *iname = RTKindConstructors::instance_GPR_iname(K);
|
||||
packaging_state save = Functions::begin(iname);
|
||||
gpr_kit kit = GPRs::new_kit();
|
||||
GPRs::add_instance_var(&kit);
|
||||
|
|
|
@ -103,9 +103,7 @@ void NounFilterTokens::compilation_agent(compilation_subtask *t) {
|
|||
EmitCode::inv(STORE_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::ref_symbol(K_value, v_s);
|
||||
inter_name *gpr_to_ask = RTKindConstructors::get_explicit_I6_GPR_iname(K);
|
||||
if (gpr_to_ask == NULL) gpr_to_ask = RTKindConstructors::get_kind_GPR_iname(K);
|
||||
EmitCode::call(gpr_to_ask);
|
||||
EmitCode::call(RTKindConstructors::GPR_iname(K));
|
||||
EmitCode::up();
|
||||
|
||||
EmitCode::inv(IF_BIP);
|
||||
|
|
|
@ -793,7 +793,7 @@ void ParseName::distinguish_visible_property(gpr_kit *kit, property *prn) {
|
|||
EmitCode::up();
|
||||
} else {
|
||||
kind *K = ValueProperties::kind(prn);
|
||||
inter_name *distinguisher = RTKindConstructors::get_distinguisher_iname(K);
|
||||
inter_name *distinguisher = RTKindConstructors::distinguisher_function_iname(K);
|
||||
EmitCode::inv(IF_BIP);
|
||||
EmitCode::down();
|
||||
if (distinguisher) {
|
||||
|
@ -939,7 +939,7 @@ void ParseName::parse_visible_property(gpr_kit *kit,
|
|||
EmitCode::inv(IF_BIP);
|
||||
EmitCode::down();
|
||||
kind *K = ValueProperties::kind(prn);
|
||||
inter_name *recog_gpr = RTKindConstructors::get_recognition_only_GPR_as_iname(K);
|
||||
inter_name *recog_gpr = RTKindConstructors::recognition_only_GPR_iname(K);
|
||||
if (recog_gpr) {
|
||||
EmitCode::inv(EQ_BIP);
|
||||
EmitCode::down();
|
||||
|
@ -954,14 +954,13 @@ void ParseName::parse_visible_property(gpr_kit *kit,
|
|||
EmitCode::up();
|
||||
EmitCode::val_iname(K_value, Hierarchy::find(GPR_PREPOSITION_HL));
|
||||
EmitCode::up();
|
||||
} else if (RTKindConstructors::offers_I6_GPR(K)) {
|
||||
inter_name *i6_gpr_name = RTKindConstructors::get_explicit_I6_GPR_iname(K);
|
||||
if (i6_gpr_name) {
|
||||
} else if (Kinds::Behaviour::is_understandable(K)) {
|
||||
if (RTKindConstructors::GPR_provided_by_kit(K)) {
|
||||
EmitCode::inv(AND_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::inv(EQ_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::call(i6_gpr_name);
|
||||
EmitCode::call(RTKindConstructors::GPR_iname(K));
|
||||
EmitCode::val_iname(K_value, Hierarchy::find(GPR_NUMBER_HL));
|
||||
EmitCode::up();
|
||||
EmitCode::inv(EQ_BIP);
|
||||
|
@ -978,7 +977,7 @@ void ParseName::parse_visible_property(gpr_kit *kit,
|
|||
} else if (Kinds::Behaviour::is_an_enumeration(K)) {
|
||||
EmitCode::inv(EQ_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::call(RTKindConstructors::get_instance_GPR_iname(K));
|
||||
EmitCode::call(RTKindConstructors::instance_GPR_iname(K));
|
||||
EmitCode::down();
|
||||
EmitCode::inv(PROPERTYVALUE_BIP);
|
||||
EmitCode::down();
|
||||
|
@ -994,7 +993,7 @@ void ParseName::parse_visible_property(gpr_kit *kit,
|
|||
EmitCode::down();
|
||||
EmitCode::inv(EQ_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::call(RTKindConstructors::get_kind_GPR_iname(K));
|
||||
EmitCode::call(RTKindConstructors::GPR_iname(K));
|
||||
EmitCode::val_iname(K_value, Hierarchy::find(GPR_NUMBER_HL));
|
||||
EmitCode::up();
|
||||
EmitCode::inv(EQ_BIP);
|
||||
|
|
|
@ -96,8 +96,7 @@ inter_lexicon *IndexLexicon::stock(inter_tree *I, tree_inventory *inv) {
|
|||
@<Add common noun entries@> =
|
||||
inter_package *pack;
|
||||
LOOP_OVER_INVENTORY_PACKAGES(pack, i, inv->kind_nodes)
|
||||
if ((Metadata::read_optional_numeric(pack, I"^is_base")) &&
|
||||
(Metadata::read_optional_numeric(pack, I"^is_subkind_of_object"))) {
|
||||
if (Metadata::read_optional_numeric(pack, I"^is_subkind_of_object")) {
|
||||
index_lexicon_entry *lex = IndexLexicon::new_entry(
|
||||
Metadata::required_textual(pack, I"^name"), COMMON_NOUN_TLEXE);
|
||||
lex->link_to = (int) Metadata::read_numeric(pack, I"^at");
|
||||
|
|
|
@ -38,8 +38,7 @@ higher up, but kinds with priority 0 do not appear in the index at all.
|
|||
for (int priority = 1; priority <= LOWEST_INDEX_PRIORITY; priority++) {
|
||||
inter_package *pack;
|
||||
LOOP_OVER_INVENTORY_PACKAGES(pack, i, inv->kind_nodes)
|
||||
if ((Metadata::read_optional_numeric(pack, I"^is_base")) &&
|
||||
(Metadata::read_optional_numeric(pack, I"^is_subkind_of_object") == 0) &&
|
||||
if ((Metadata::read_optional_numeric(pack, I"^is_subkind_of_object") == 0) &&
|
||||
(priority == (int) Metadata::read_optional_numeric(pack, I"^index_priority"))) {
|
||||
if ((priority == 8) || (Metadata::read_optional_numeric(pack, I"^is_definite"))) {
|
||||
@<Index this kind package@>;
|
||||
|
@ -299,8 +298,7 @@ void ChartElement::index_subkinds(OUTPUT_STREAM, tree_inventory *inv, inter_pack
|
|||
int depth, int pass, index_session *session) {
|
||||
inter_package *subkind_pack;
|
||||
LOOP_OVER_INVENTORY_PACKAGES(subkind_pack, i, inv->kind_nodes)
|
||||
if ((Metadata::read_optional_numeric(subkind_pack, I"^is_base")) &&
|
||||
(Metadata::read_optional_numeric(subkind_pack, I"^is_subkind_of_object"))) {
|
||||
if (Metadata::read_optional_numeric(subkind_pack, I"^is_subkind_of_object")) {
|
||||
inter_symbol *super_weak = Metadata::optional_symbol(subkind_pack, I"^superkind");
|
||||
if ((super_weak) && (InterPackage::container(super_weak->definition) == pack))
|
||||
ChartElement::index_object_kind(OUT, inv, subkind_pack, depth, pass, session);
|
||||
|
|
|
@ -180,8 +180,7 @@ which have to be given some type-safe value to start out at.
|
|||
Produce::down(I);
|
||||
for (int i=0; i<InterNodeList::array_len(inv->kind_nodes); i++) {
|
||||
inter_package *pack = PackageInstruction::at_this_head(inv->kind_nodes->list[i].node);
|
||||
if ((Metadata::read_optional_numeric(pack, I"^is_base")) &&
|
||||
(Metadata::optional_symbol(pack, I"^print_fn")) &&
|
||||
if ((Metadata::optional_symbol(pack, I"^print_fn")) &&
|
||||
(Metadata::read_optional_numeric(pack, I"^is_subkind_of_object") == FALSE)) {
|
||||
inter_symbol *id_s = Metadata::required_symbol(pack, I"^strong_id");
|
||||
inter_symbol *print_fn_s = Metadata::required_symbol(pack, I"^print_fn");
|
||||
|
|
|
@ -326,3 +326,15 @@ The |/main/synoptic/use_options| submodule.
|
|||
SYN_FUNCT(TESTUSEOPTION_HL, I"test_fn", I"TestUseOption")
|
||||
SYN_FUNCT(PRINT_USE_OPTION_HL, I"print_fn", I"PrintUseOption")
|
||||
SYN_CONST(USE_OPTION_VALUES_HL, I"USE_OPTION_VALUES")
|
||||
|
||||
@h Synoptic printing functions.
|
||||
|
||||
=
|
||||
#ifdef CORE_MODULE
|
||||
inter_name *SynopticHierarchy::printing_function_iname(inter_tree *I, kind *K) {
|
||||
if (Kinds::eq(K, K_use_option)) return HierarchyLocations::iname(I, PRINT_USE_OPTION_HL);
|
||||
if (Kinds::eq(K, K_table)) return HierarchyLocations::iname(I, PRINT_TABLE_HL);
|
||||
if (Kinds::eq(K, K_response)) return HierarchyLocations::iname(I, PRINT_RESPONSE_HL);
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -189,8 +189,23 @@ int Kinds::Behaviour::new_enumerated_value(kind *K) {
|
|||
return K->construct->next_free_value++;
|
||||
}
|
||||
|
||||
@h (B) Constructing kinds.
|
||||
@h (B) Command parsing.
|
||||
|
||||
=
|
||||
int Kinds::Behaviour::is_understandable(kind *K) {
|
||||
if (K == NULL) return FALSE;
|
||||
return KindConstructors::is_understandable(K->construct);
|
||||
}
|
||||
|
||||
text_stream *Kinds::Behaviour::GPR_identifier(kind *K) {
|
||||
if (K == NULL) return NULL;
|
||||
return K->construct->explicit_GPR_identifier;
|
||||
}
|
||||
|
||||
text_stream *Kinds::Behaviour::recognition_only_GPR_identifier(kind *K) {
|
||||
if (K == NULL) return NULL;
|
||||
return K->construct->recognition_routine;
|
||||
}
|
||||
|
||||
@h (C) Compatibility with other kinds.
|
||||
|
||||
|
@ -306,6 +321,12 @@ dimensional_rules *Kinds::Behaviour::get_dim_rules(kind *K) {
|
|||
@h (H) An identifier name.
|
||||
|
||||
=
|
||||
int Kinds::Behaviour::comes_from_Neptune(kind *K) {
|
||||
if (K == NULL) return FALSE;
|
||||
if (Str::len(K->construct->explicit_identifier) > 0) return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
text_stream *Kinds::Behaviour::get_identifier(kind *K) {
|
||||
if (K == NULL) return I"UNKNOWN_NT";
|
||||
return K->construct->explicit_identifier;
|
||||
|
|
|
@ -433,6 +433,18 @@ int KindConstructors::variance(kind_constructor *con, int b) {
|
|||
return con->variance[b];
|
||||
}
|
||||
|
||||
int KindConstructors::is_base(kind_constructor *con) {
|
||||
if (con == NULL) return FALSE;
|
||||
if (con->group == BASE_CONSTRUCTOR_GRP) return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
int KindConstructors::is_proper_constructor(kind_constructor *con) {
|
||||
if (con == NULL) return FALSE;
|
||||
if (con->group == PROPER_CONSTRUCTOR_GRP) return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@h Questions about constructors.
|
||||
The rest of Inform is not encouraged to poke at constructors directly; it
|
||||
ought to ask questions about kinds instead (see "Using Kinds"). However:
|
||||
|
@ -447,7 +459,7 @@ int KindConstructors::is_definite(kind_constructor *con) {
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
int KindConstructors::offers_I6_GPR(kind_constructor *con) {
|
||||
int KindConstructors::is_understandable(kind_constructor *con) {
|
||||
if (con == NULL) return FALSE;
|
||||
if ((KindConstructors::is_definite(con)) &&
|
||||
(KindConstructors::compatible(con,
|
||||
|
|
Loading…
Reference in a new issue