mirror of
https://github.com/ganelson/inform.git
synced 2024-07-01 06:24:58 +03:00
Changed the way kinds are tested for being objects
This commit is contained in:
parent
83dcd79164
commit
81491dc4e1
|
@ -871,13 +871,13 @@ direct and region containment, then
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">regionality</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">backdropping</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">pl</span><span class="plain-syntax">-></span><span class="element-syntax">terms</span><span class="plain-syntax">[</span><span class="identifier-syntax">j</span><span class="plain-syntax">].</span><span class="identifier-syntax">constant</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">KR</span><span class="plain-syntax"> = </span><a href="14-sp.html#SP1" class="function-link"><span class="function-syntax">Specifications::to_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pl</span><span class="plain-syntax">-></span><span class="element-syntax">terms</span><span class="plain-syntax">[</span><span class="identifier-syntax">j</span><span class="plain-syntax">].</span><span class="element-syntax">constant</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::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">KR</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_region</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_of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">KR</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_region</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">regionality</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</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">pl</span><span class="plain-syntax">-></span><span class="element-syntax">terms</span><span class="plain-syntax">[1-</span><span class="identifier-syntax">j</span><span class="plain-syntax">].</span><span class="element-syntax">constant</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">KB</span><span class="plain-syntax"> = </span><a href="14-sp.html#SP1" class="function-link"><span class="function-syntax">Specifications::to_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pl</span><span class="plain-syntax">-></span><span class="element-syntax">terms</span><span class="plain-syntax">[1-</span><span class="identifier-syntax">j</span><span class="plain-syntax">].</span><span class="element-syntax">constant</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::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">KB</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_backdrop</span><span class="plain-syntax">)) </span><span class="identifier-syntax">backdropping</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">Kinds::Behaviour::is_object_of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">KB</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_backdrop</span><span class="plain-syntax">)) </span><span class="identifier-syntax">backdropping</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</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">regionality</span><span class="plain-syntax">) && (!</span><span class="identifier-syntax">backdropping</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pl</span><span class="plain-syntax">-></span><span class="element-syntax">predicate</span><span class="plain-syntax"> = </span><span class="identifier-syntax">STORE_POINTER_binary_predicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">R_regional_containment</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -258,7 +258,7 @@ treat it as a piece of nonsense, like "if Wednesday is not custard".
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">v</span><span class="plain-syntax"> = </span><span class="identifier-syntax">pl</span><span class="plain-syntax">-></span><span class="element-syntax">terms</span><span class="plain-syntax">[0].</span><span class="identifier-syntax">variable</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">v</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">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">new_kind</span><span class="plain-syntax"> = </span><span class="identifier-syntax">pl</span><span class="plain-syntax">-></span><span class="element-syntax">assert_kind</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::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">new_kind</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">)) </span><span class="identifier-syntax">new_kind</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="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">new_kind</span><span class="plain-syntax">)) </span><span class="identifier-syntax">new_kind</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</span><span class="plain-syntax"> *</span><span class="identifier-syntax">old_kind</span><span class="plain-syntax"> = </span><span class="identifier-syntax">vta</span><span class="plain-syntax">.</span><span class="element-syntax">assigned_kinds</span><span class="plain-syntax">[</span><span class="identifier-syntax">v</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">old_kind</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::Compare::compatible</span><span class="plain-syntax">(</span><span class="identifier-syntax">old_kind</span><span class="plain-syntax">, </span><span class="identifier-syntax">new_kind</span><span class="plain-syntax">) == </span><span class="identifier-syntax">NEVER_MATCH</span><span class="plain-syntax">) {</span>
|
||||
|
@ -376,7 +376,7 @@ but not meaningless.
|
|||
|
||||
<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">need_to_find</span><span class="plain-syntax"> = </span><span class="identifier-syntax">pl</span><span class="plain-syntax">-></span><span class="element-syntax">assert_kind</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::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">need_to_find</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">)) </span><span class="identifier-syntax">need_to_find</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="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">need_to_find</span><span class="plain-syntax">)) </span><span class="identifier-syntax">need_to_find</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</span><span class="plain-syntax"> *</span><span class="identifier-syntax">actually_find</span><span class="plain-syntax"> = </span><a href="11-tcp.html#SP6" class="function-link"><span class="function-syntax">Calculus::Propositions::Checker::kind_of_term</span></a><span class="plain-syntax">(&(</span><span class="identifier-syntax">pl</span><span class="plain-syntax">-></span><span class="element-syntax">terms</span><span class="plain-syntax">[0]), &</span><span class="identifier-syntax">vta</span><span class="plain-syntax">, </span><span class="identifier-syntax">tck</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::Compare::compatible</span><span class="plain-syntax">(</span><span class="identifier-syntax">actually_find</span><span class="plain-syntax">, </span><span class="identifier-syntax">need_to_find</span><span class="plain-syntax">) == </span><span class="identifier-syntax">NEVER_MATCH</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">tck</span><span class="plain-syntax">-></span><span class="element-syntax">log_to_I6_text</span><span class="plain-syntax">)</span>
|
||||
|
|
|
@ -453,7 +453,7 @@ interpret no indication of a kind as meaning "object".
|
|||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nc</span><span class="plain-syntax"> = </span><a href="6-ins.html#SP5" class="function-link"><span class="function-syntax">Instances::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">NW</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">current_interpretation_as_infs</span><span class="plain-syntax">[</span><span class="identifier-syntax">v</span><span class="plain-syntax">] = </span><a href="6-ins.html#SP12" class="function-link"><span class="function-syntax">Instances::as_subject</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">nc</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="identifier-syntax">Kinds::Compare::le</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="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="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="plain-syntax"> </span><span class="identifier-syntax">current_interpretation_as_spec</span><span class="plain-syntax">[</span><span class="identifier-syntax">v</span><span class="plain-syntax">] = </span><a href="14-rv.html#SP3" class="function-link"><span class="function-syntax">Rvalues::from_instance</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">nc</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">current_interpretation_as_spec</span><span class="plain-syntax">[</span><span class="identifier-syntax">v</span><span class="plain-syntax">] = </span><a href="14-rv.html#SP3" class="function-link"><span class="function-syntax">Rvalues::from_instance</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">nc</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -890,7 +890,7 @@ a loop traverses.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Calculus::Deferrals::has_finite_domain</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">Calculus::Deferrals::has_finite_domain</span></span>:<br/><a href="12-dtd.html#SP17">§17</a><br/>Relations - <a href="7-rlt.html#SP9_2_9_1">§9.2.9.1</a>, <a href="7-rlt.html#SP9_2_10_1">§9.2.10.1</a>, <a href="7-rlt.html#SP9_2_12_1">§9.2.12.1</a><br/>Kinds Index - <a href="13-ki.html#SP1_5">§1.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="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">Kinds::Compare::le</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="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">Kinds::Behaviour::is_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">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">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><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">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="identifier-syntax">loop_domain_schema</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>
|
||||
|
@ -1062,7 +1062,7 @@ until it returns 0, when the domain is exhausted.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val_var_s</span><span class="plain-syntax"> = </span><a href="24-lv.html#SP46" class="function-link"><span class="function-syntax">LocalVariables::declare_this</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">v1</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="constant-syntax">8</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">aux_var_s</span><span class="plain-syntax"> = </span><a href="24-lv.html#SP46" class="function-link"><span class="function-syntax">LocalVariables::declare_this</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">v2</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="constant-syntax">8</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::Compare::le</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="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">K</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">pcalc_prop</span><span class="plain-syntax"> *</span><span class="identifier-syntax">domain_prop</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">use_as_is</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="12-dtd.html#SP15" class="function-link"><span class="function-syntax">Calculus::Deferrals::spec_is_variable_of_kind_description</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">)) </span><span class="identifier-syntax">use_as_is</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">else</span><span class="plain-syntax"> {</span>
|
||||
|
|
|
@ -145,7 +145,7 @@ any kind.
|
|||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="26-pc.html#SP7" class="function-link"><span class="function-syntax">Plugins::Call::typecheck_equality</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kinds_of_terms</span><span class="plain-syntax">[0], </span><span class="identifier-syntax">kinds_of_terms</span><span class="plain-syntax">[1]))</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">ALWAYS_MATCH</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::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">kinds_of_terms</span><span class="plain-syntax">[0], </span><span class="identifier-syntax">K_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">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">kinds_of_terms</span><span class="plain-syntax">[0])) &&</span>
|
||||
<span class="plain-syntax"> (</span><a href="15-cp.html#SP5" class="function-link"><span class="function-syntax">Properties::Conditions::name_can_coincide_with_property</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kinds_of_terms</span><span class="plain-syntax">[1])))</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="12-ter.html#SP4_1" class="named-paragraph-link"><span class="named-paragraph">Apply rule for "is" applied to an object and a value</span><span class="named-paragraph-number">4.1</span></a></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_understanding</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">Kinds::Compare::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">kinds_of_terms</span><span class="plain-syntax">[1], </span><span class="identifier-syntax">K_understanding</span><span class="plain-syntax">)) &&</span>
|
||||
|
@ -291,7 +291,7 @@ of both A and B.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">st</span><span class="plain-syntax">[0] = </span><a href="12-cad.html#SP6" class="function-link"><span class="function-syntax">Calculus::Deferrals::Cinders::kind_of_value_of_term</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">asch</span><span class="plain-syntax">-></span><span class="element-syntax">pt0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">st</span><span class="plain-syntax">[1] = </span><a href="12-cad.html#SP6" class="function-link"><span class="function-syntax">Calculus::Deferrals::Cinders::kind_of_value_of_term</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">asch</span><span class="plain-syntax">-></span><span class="element-syntax">pt1</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::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">st</span><span class="plain-syntax">[0], </span><span class="identifier-syntax">K_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">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">st</span><span class="plain-syntax">[0])) &&</span>
|
||||
<span class="plain-syntax"> (</span><a href="15-cp.html#SP5" class="function-link"><span class="function-syntax">Properties::Conditions::name_can_coincide_with_property</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">st</span><span class="plain-syntax">[1])) && (</span><a href="15-cp.html#SP5" class="function-link"><span class="function-syntax">Properties::Conditions::get_coinciding_property</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">st</span><span class="plain-syntax">[1])))</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="12-ter.html#SP7_1" class="named-paragraph-link"><span class="named-paragraph">Handle the case of setting a property of A separately</span><span class="named-paragraph-number">7.1</span></a></span><span class="plain-syntax">;</span>
|
||||
|
||||
|
@ -441,7 +441,7 @@ one that's more helpfully specific and return <span class="extract"><span class=
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="14-rv.html#SP3" class="function-link"><span class="function-syntax">Rvalues::to_instance</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">asch</span><span class="plain-syntax">-></span><span class="element-syntax">pt0</span><span class="plain-syntax">.</span><span class="element-syntax">constant</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::Compare::le</span><span class="plain-syntax">(</span><a href="14-sp.html#SP1" class="function-link"><span class="function-syntax">Specifications::to_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">asch</span><span class="plain-syntax">-></span><span class="element-syntax">pt0</span><span class="plain-syntax">.</span><span class="element-syntax">constant</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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><a href="14-sp.html#SP1" class="function-link"><span class="function-syntax">Specifications::to_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">asch</span><span class="plain-syntax">-></span><span class="element-syntax">pt0</span><span class="plain-syntax">.</span><span class="element-syntax">constant</span><span class="plain-syntax">)))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">StandardProblems::sentence_problem</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP6" class="function-link"><span class="function-syntax">Task::syntax_tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_CantEquateValues</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"equality is not something I can change"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"so either those are already the same or are different, and I "</span>
|
||||
|
|
|
@ -111,7 +111,7 @@ properties only if its kind passes this test:
|
|||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::Knowledge::has_properties</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">Kinds::Knowledge::has_properties</span></span>:<br/><a href="13-kak.html#SP6">§6</a><br/>New Property Requests - <a href="4-npr.html#SP5_6">§5.6</a><br/>New Property Assertions - <a href="5-npa.html#SP1_1">§1.1</a><br/>Kinds Index - <a href="13-ki.html#SP1_5">§1.5</a><br/>Setting Property Relation - <a href="15-spr2.html#SP9_2">§9.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><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">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><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">Kinds::Compare::le</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="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">Kinds::Behaviour::is_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">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>
|
||||
|
@ -197,7 +197,7 @@ particular order.
|
|||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::Knowledge::emit</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">Kinds::Knowledge::emit</span></span>:<br/>Inference Subjects - <a href="16-is.html#SP29">§29</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">infs</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><a href="16-is.html#SP18" class="function-link"><span class="function-syntax">InferenceSubjects::as_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">infs</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="13-kak.html#SP2" class="function-link"><span class="function-syntax">Kinds::Knowledge::has_properties</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">Kinds::Compare::le</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="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">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><a href="15-epv.html#SP1" class="function-link"><span class="function-syntax">Properties::Emit::emit_subject</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">infs</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="15-pov.html#SP4" class="function-link"><span class="function-syntax">Properties::OfValues::check_allowable</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -228,7 +228,7 @@ kinds:
|
|||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="function-syntax">Kinds::Knowledge::super</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::Compare::le</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="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">K</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">infs</span><span class="plain-syntax"> = </span><a href="13-kak.html#SP1" class="function-link"><span class="function-syntax">Kinds::Knowledge::as_subject</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><a href="16-is.html#SP18" class="function-link"><span class="function-syntax">InferenceSubjects::as_kind</span></a><span class="plain-syntax">(</span><a href="16-is.html#SP13" class="function-link"><span class="function-syntax">InferenceSubjects::narrowest_broader_subject</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">infs</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -236,7 +236,7 @@ kinds:
|
|||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::Knowledge::move_within</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sub</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">super</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::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">super</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="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">super</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><a href="16-is.html#SP14" class="function-link"><span class="function-syntax">InferenceSubjects::falls_within</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><a href="13-kak.html#SP1" class="function-link"><span class="function-syntax">Kinds::Knowledge::as_subject</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sub</span><span class="plain-syntax">), </span><a href="13-kak.html#SP1" class="function-link"><span class="function-syntax">Kinds::Knowledge::as_subject</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">super</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
|
|
@ -120,7 +120,7 @@ kinds being compiled to an I6 <span class="extract"><span class="extract-syntax"
|
|||
|
||||
<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">Kinds::RunTime::I6_classname</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">Kinds::RunTime::I6_classname</span></span>:<br/><a href="13-rsfk.html#SP27">§27</a><br/>Binary Predicates - <a href="7-bp.html#SP24">§24</a><br/>Relations - <a href="7-rlt.html#SP23_2">§23.2</a>, <a href="7-rlt.html#SP23_3">§23.3</a>, <a href="7-rlt.html#SP23_4">§23.4</a>, <a href="7-rlt.html#SP23_5">§23.5</a>, <a href="7-rlt.html#SP23_6">§23.6</a><br/>The Equality Relation - <a href="12-ter.html#SP7_6">§7.6</a><br/>Compile Atoms - <a href="12-ca.html#SP5_2">§5.2</a><br/>Deciding to Defer - <a href="12-dtd.html#SP24">§24</a><br/>Knowledge about Kinds - <a href="13-kak.html#SP3">§3</a><br/>Compile Invocations Inline - <a href="25-cii.html#SP3_1_1_4_7_1">§3.1.1.4.7.1</a>, <a href="25-cii.html#SP8">§8</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::Compare::le</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="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="13-rsfk.html#SP24" class="function-link"><span class="function-syntax">Kinds::RunTime::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">Kinds::Behaviour::is_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><a href="13-rsfk.html#SP24" class="function-link"><span class="function-syntax">Kinds::RunTime::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">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"no I6 classname available"</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>
|
||||
|
@ -141,7 +141,7 @@ kinds being compiled to an I6 <span class="extract"><span class="extract-syntax"
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">ADD_TO_LEXICON_NTOPT</span><span class="plain-syntax"> + </span><span class="identifier-syntax">WITH_PLURAL_FORMS_NTOPT</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">KIND_SLOW_MC</span><span class="plain-syntax">, </span><span class="identifier-syntax">data</span><span class="plain-syntax">, </span><a href="1-wtc.html#SP6" class="function-link"><span class="function-syntax">Task::language_of_syntax</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><a href="8-hdn.html#SP3" class="function-link"><span class="function-syntax">Sentences::Headings::initialise_noun_resolution</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">nt</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::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">super</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="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">super</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Kinds::Behaviour::set_range_number</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">no_kinds_of_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="identifier-syntax">nt</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -1305,7 +1305,7 @@ each such kind, and needed at run-time.
|
|||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::RunTime::compile_instance_counts</span><button class="popup" onclick="togglePopup('usagePopup33')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup33">Usage of <span class="code-font"><span class="function-syntax">Kinds::RunTime::compile_instance_counts</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_7">§2.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="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_an_enumeration</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) || (</span><span class="identifier-syntax">Kinds::Compare::le</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="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">Kinds::Behaviour::is_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">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">ICN</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">ICN</span><span class="plain-syntax">, </span><span class="string-syntax">"ICOUNT_"</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">ICN</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -1857,7 +1857,7 @@ mistake having been made.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">lvar</span><span class="plain-syntax">) && (</span><a href="24-lv.html#SP38" class="function-link"><span class="function-syntax">LocalVariables::protected</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">lvar</span><span class="plain-syntax">)))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">outcome</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEVER_MATCH</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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Compare::le</span><span class="plain-syntax">(</span><a href="14-sp.html#SP1" class="function-link"><span class="function-syntax">Specifications::to_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">target_spec</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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><a href="14-sp.html#SP1" class="function-link"><span class="function-syntax">Specifications::to_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">target_spec</span><span class="plain-syntax">)))</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="14-ds2.html#SP10_9_1_1_5_1" class="named-paragraph-link"><span class="named-paragraph">Step (4I.d.1) Police an assignment to an object</span><span class="named-paragraph-number">10.9.1.1.5.1</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">ph</span><span class="plain-syntax">-></span><span class="element-syntax">type_data</span><span class="plain-syntax">.</span><span class="element-syntax">token_sequence</span><span class="plain-syntax">[0].</span><span class="element-syntax">construct</span><span class="plain-syntax"> != </span><span class="constant-syntax">NEW_LOCAL_PT_CONSTRUCT</span><span class="plain-syntax">)</span>
|
||||
|
@ -2375,7 +2375,7 @@ us there.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owning_subject</span><span class="plain-syntax"> = </span><a href="16-is.html#SP16" class="function-link"><span class="function-syntax">InferenceSubjects::from_specification</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">the_owner</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">owning_subject</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">owning_subject</span><span class="plain-syntax"> = </span><a href="13-kak.html#SP1" class="function-link"><span class="function-syntax">Kinds::Knowledge::as_subject</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="16-pp.html#SP7" class="function-link"><span class="function-syntax">World::Permissions::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owning_subject</span><span class="plain-syntax">, </span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</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><span class="identifier-syntax">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">K2</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_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="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">K2</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) ||</span>
|
||||
<span class="plain-syntax"> ((</span><a href="14-rv.html#SP4" class="function-link"><span class="function-syntax">Rvalues::is_object</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">the_owner</span><span class="plain-syntax">)) &&</span>
|
||||
<span class="plain-syntax"> (</span><a href="14-rv.html#SP6" class="function-link"><span class="function-syntax">Rvalues::is_self_object_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">the_owner</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)))</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="14-ds2.html#SP10_9_1_2_3_4" class="named-paragraph-link"><span class="named-paragraph">Issue a problem message for not being allowed this property</span><span class="named-paragraph-number">10.9.1.2.3.4</span></a></span><span class="plain-syntax">;</span>
|
||||
|
@ -4197,7 +4197,7 @@ into treating it as such.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="14-sp.html#SP3" class="function-link"><span class="function-syntax">Specifications::is_description</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">)) </span><a href="14-ds2.html#SP8" class="function-link"><span class="function-syntax">Dash::check_condition</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="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="14-ds2.html#SP8" class="function-link"><span class="function-syntax">Dash::check_value</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">); </span><span class="comment-syntax"> to force a generic return kind to be evaluated</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind_found</span><span class="plain-syntax"> = </span><a href="14-sp.html#SP1" class="function-link"><span class="function-syntax">Specifications::to_kind</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="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Kinds::get_construct</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_found</span><span class="plain-syntax">) == </span><span class="identifier-syntax">CON_property</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">Kinds::Compare::le</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="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Kinds::get_construct</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_found</span><span class="plain-syntax">) == </span><span class="identifier-syntax">CON_property</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="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">K_understanding</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">Kinds::Compare::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_found</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_snippet</span><span class="plain-syntax">)) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Compare::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>
|
||||
|
|
|
@ -164,7 +164,7 @@ objects.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Rvalues::is_object</span><button class="popup" onclick="togglePopup('usagePopup29')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup29">Usage of <span class="code-font"><span class="function-syntax">Rvalues::is_object</span></span>:<br/><a href="14-rv.html#SP22">§22</a><br/>Supplementary Quotes - <a href="2-sq.html#SP4">§4</a><br/>Assertions - <a href="5-ass.html#SP6_3_41">§6.3.41</a>, <a href="5-ass.html#SP6_3_41_2">§6.3.41.2</a><br/>Relation Knowledge - <a href="5-rk.html#SP1_3">§1.3</a><br/>Specifications - <a href="14-sp.html#SP3">§3</a>, <a href="14-sp.html#SP4">§4</a><br/>Dash - <a href="14-ds2.html#SP10_9_1_2_3">§10.9.1.2.3</a><br/>Local Variables - <a href="24-lv.html#SP33">§33</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">spec</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">Node::is</span><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTANT_NT</span><span class="plain-syntax">)) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_kind_of_value</span><span class="plain-syntax">(</span><span class="identifier-syntax">spec</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">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_kind_of_value</span><span class="plain-syntax">(</span><span class="identifier-syntax">spec</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><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>
|
||||
|
@ -793,7 +793,7 @@ kinds of value:
|
|||
<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><a href="27-em.html#SP4" class="function-link"><span class="function-syntax">Emit::holster</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">VH</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">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">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_of_constant</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="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">kind_of_constant</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">Annotations::read_int</span><span class="plain-syntax">(</span><span class="identifier-syntax">spec_found</span><span class="plain-syntax">, </span><span class="constant-syntax">self_object_ANNOT</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">Holsters::data_acceptable</span><span class="plain-syntax">(</span><span class="identifier-syntax">VH</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><a href="27-em.html#SP4" class="function-link"><span class="function-syntax">Emit::holster</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">VH</span><span class="plain-syntax">, </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SELF_HL</span><span class="plain-syntax">));</span>
|
||||
|
|
|
@ -371,7 +371,7 @@ optimisation applied to some but not all of them.
|
|||
<span class="plain-syntax"> </span><a href="7-am.html#SP33" class="function-link"><span class="function-syntax">Adjectives::Meanings::set_ready_flag</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">am</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><a href="7-am.html#SP25" class="function-link"><span class="function-syntax">Adjectives::Meanings::get_domain</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">am</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::Compare::le</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="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">K</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="15-ep.html#SP15_1" class="named-paragraph-link"><span class="named-paragraph">Set the schemata for an either/or property adjective with objects as domain</span><span class="named-paragraph-number">15.1</span></a></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="15-ep.html#SP15_2" class="named-paragraph-link"><span class="named-paragraph">Set the schemata for an either/or property adjective with some other domain</span><span class="named-paragraph-number">15.2</span></a></span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -118,7 +118,7 @@ each one is marked when visited.
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="15-epv.html#SP1_1_1" class="named-paragraph-link"><span class="named-paragraph">Annotate with the spatial depth</span><span class="named-paragraph-number">1.1.1</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">I</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">Kinds::Compare::le</span><span class="plain-syntax">(</span><a href="6-ins.html#SP17" class="function-link"><span class="function-syntax">Instances::to_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">))) </span><span class="identifier-syntax">words_used</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">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><a href="6-ins.html#SP17" class="function-link"><span class="function-syntax">Instances::to_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)))) </span><span class="identifier-syntax">words_used</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="15-epv.html#SP1_1_2" class="named-paragraph-link"><span class="named-paragraph">Append any inclusions the source text requested</span><span class="named-paragraph-number">1.1.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="15-pr.html#SP22" class="function-link"><span class="function-syntax">Properties::begin_traverse</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="15-epv.html#SP1_1_3" class="named-paragraph-link"><span class="named-paragraph">Emit inferred object properties</span><span class="named-paragraph-number">1.1.3</span></a></span><span class="plain-syntax">;</span>
|
||||
|
@ -130,7 +130,7 @@ each one is marked when visited.
|
|||
|
||||
<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">IF_MODULE</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">Kinds::Compare::le</span><span class="plain-syntax">(</span><a href="6-ins.html#SP17" class="function-link"><span class="function-syntax">Instances::to_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</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="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">I</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><a href="6-ins.html#SP17" class="function-link"><span class="function-syntax">Instances::to_kind</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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">AC</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PL::Spatial::get_definition_depth</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">AC</span><span class="plain-syntax"> > </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">Produce::annotate_i</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">ARROW_COUNT_IANN</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">AC</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
|
|
@ -134,7 +134,7 @@ and it seems best to reject the extra complexity needed.
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Properties::OfValues::check_allowable</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">Properties::OfValues::check_allowable</span></span>:<br/>Knowledge about Kinds - <a href="13-kak.html#SP6">§6</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::Compare::le</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="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><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="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><span class="identifier-syntax">Kinds::Behaviour::definite</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="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-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="reserved-syntax">property_permission</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pp</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -268,7 +268,7 @@ be caught later on Inform's run.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">compatible</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Kinds::Compare::compatible</span><span class="plain-syntax">(</span><span class="identifier-syntax">kinds_of_terms</span><span class="plain-syntax">[1], </span><span class="identifier-syntax">val_kind</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">compatible</span><span class="plain-syntax"> == </span><span class="identifier-syntax">ALWAYS_MATCH</span><span class="plain-syntax">) </span><span class="identifier-syntax">safe</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">compatible</span><span class="plain-syntax"> == </span><span class="identifier-syntax">SOMETIMES_MATCH</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::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">val_kind</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="identifier-syntax">safe</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">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">val_kind</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="identifier-syntax">safe</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">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">IF_MODULE</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Kinds::Compare::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">val_kind</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_direction</span><span class="plain-syntax">)) ||</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Compare::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">val_kind</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_room</span><span class="plain-syntax">)) ||</span>
|
||||
|
@ -335,7 +335,7 @@ be caught later on Inform's run.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bp</span><span class="plain-syntax">, </span><span class="reserved-syntax">annotated_i6_schema</span><span class="plain-syntax"> *</span><span class="identifier-syntax">asch</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><a href="12-cad.html#SP6" class="function-link"><span class="function-syntax">Calculus::Deferrals::Cinders::kind_of_value_of_term</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">asch</span><span class="plain-syntax">-></span><span class="element-syntax">pt0</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::Compare::le</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="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">Kinds::Behaviour::is_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">FALSE</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax"> = </span><span class="identifier-syntax">bp</span><span class="plain-syntax">-></span><span class="element-syntax">set_property</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">task</span><span class="plain-syntax">) {</span>
|
||||
|
|
|
@ -149,12 +149,12 @@ can't be changed at compile time.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax"> = </span><a href="14-rv.html#SP2" class="function-link"><span class="function-syntax">Rvalues::to_property</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">asch</span><span class="plain-syntax">-></span><span class="element-syntax">pt1</span><span class="plain-syntax">.</span><span class="element-syntax">constant</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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">prn</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::Compare::le</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="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">K</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="15-tpr.html#SP6_1" class="named-paragraph-link"><span class="named-paragraph">Compile an I6 run-time test of property provision</span><span class="named-paragraph-number">6.1</span></a></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="15-tpr.html#SP6_2" class="named-paragraph-link"><span class="named-paragraph">Determine the result now, since we know already, and compile only the outcome</span><span class="named-paragraph-number">6.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><span class="identifier-syntax">TRUE</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::Compare::le</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="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_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">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">PK</span><span class="plain-syntax"> = </span><a href="12-cad.html#SP6" class="function-link"><span class="function-syntax">Calculus::Deferrals::Cinders::kind_of_value_of_term</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">asch</span><span class="plain-syntax">-></span><span class="element-syntax">pt1</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::get_construct</span><span class="plain-syntax">(</span><span class="identifier-syntax">PK</span><span class="plain-syntax">) == </span><span class="identifier-syntax">CON_property</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::Compare::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_truth_state</span><span class="plain-syntax">, </span><span class="identifier-syntax">Kinds::unary_construction_material</span><span class="plain-syntax">(</span><span class="identifier-syntax">PK</span><span class="plain-syntax">)))</span>
|
||||
|
|
|
@ -449,7 +449,7 @@ arise.
|
|||
<span class="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">InferenceSubjects::as_object_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">InferenceSubjects::as_object_instance</span></span>:<br/><a href="16-is.html#SP17">§17</a>, <a href="16-is.html#SP19">§19</a><br/>Supplementary Quotes - <a href="2-sq.html#SP2">§2</a><br/>Anaphoric References - <a href="3-ar.html#SP3">§3</a><br/>Adjective Meanings - <a href="7-am.html#SP22">§22</a><br/>Assert Propositions - <a href="12-ap.html#SP8_6">§8.6</a>, <a href="12-ap.html#SP8_7">§8.7</a>, <a href="12-ap.html#SP8_8">§8.8</a>, <a href="12-ap.html#SP8_9">§8.9</a>, <a href="12-ap.html#SP8_10">§8.10</a>, <a href="12-ap.html#SP9">§9</a><br/>Lvalues - <a href="14-lv.html#SP13_3_1">§13.3.1</a><br/>Inferences - <a href="16-in.html#SP11">§11</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">infs</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">infs</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">infs</span><span class="plain-syntax">-></span><span class="element-syntax">kind_of_infs</span><span class="plain-syntax"> == </span><span class="constant-syntax">INST_SUB</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_instance</span><span class="plain-syntax">(</span><span class="identifier-syntax">infs</span><span class="plain-syntax">-></span><span class="element-syntax">represents</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::Compare::le</span><span class="plain-syntax">(</span><a href="6-ins.html#SP17" class="function-link"><span class="function-syntax">Instances::to_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">nc</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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><a href="6-ins.html#SP17" class="function-link"><span class="function-syntax">Instances::to_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">nc</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">nc</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">NULL</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -456,7 +456,7 @@ should return <span class="extract"><span class="extract-syntax">FALSE</span></s
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Tables::Support::requires_blanks_bitmap</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">Tables::Support::requires_blanks_bitmap</span></span>:<br/><a href="19-rsft.html#SP1_1_1_1_1_3">§1.1.1.1.1.3</a>, <a href="19-rsft.html#SP1_2">§1.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><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">Kinds::Compare::le</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="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">Kinds::Behaviour::is_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">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_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><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><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
|
|
@ -83,7 +83,7 @@ And here's another one.
|
|||
<span class="plain-syntax"> </span><a href="12-is.html#SP3_1" class="function-link"><span class="function-syntax">Calculus::Schemas::modify</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sch</span><span class="plain-syntax">, </span><span class="string-syntax">"(%n(*1))"</span><span class="plain-syntax">, </span><a href="22-ph.html#SP10" class="function-link"><span class="function-syntax">Phrases::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ph</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> *</span><span class="identifier-syntax">CW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">def</span><span class="plain-syntax">-></span><span class="element-syntax">domain_calling</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><a href="7-am.html#SP25" class="function-link"><span class="function-syntax">Adjectives::Meanings::get_domain_forcing</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">def</span><span class="plain-syntax">-></span><span class="element-syntax">am_of_def</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="identifier-syntax">Kinds::Compare::le</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="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="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="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="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
|
|
@ -987,7 +987,7 @@ an instance of the kind "bystander".
|
|||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">LocalVariables::permit_as_new_local</span><button class="popup" onclick="togglePopup('usagePopup47')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup47">Usage of <span class="code-font"><span class="function-syntax">LocalVariables::permit_as_new_local</span></span>:<br/><a href="24-lv.html#SP32_2">§32.2</a><br/>Dash - <a href="14-ds2.html#SP10_8">§10.8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">found</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">as_calling</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">Node::is</span><span class="plain-syntax">(</span><span class="identifier-syntax">found</span><span class="plain-syntax">, </span><span class="identifier-syntax">AMBIGUITY_NT</span><span class="plain-syntax">)) </span><span class="identifier-syntax">found</span><span class="plain-syntax"> = </span><span class="identifier-syntax">found</span><span class="plain-syntax">-></span><span class="element-syntax">down</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="14-sp.html#SP2" class="function-link"><span class="function-syntax">Specifications::is_kind_like</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">found</span><span class="plain-syntax">)) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Compare::le</span><span class="plain-syntax">(</span><a href="14-sp.html#SP1" class="function-link"><span class="function-syntax">Specifications::to_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">found</span><span class="plain-syntax">), </span><span class="identifier-syntax">K_object</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">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><a href="14-sp.html#SP1" class="function-link"><span class="function-syntax">Specifications::to_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">found</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">Node::is</span><span class="plain-syntax">(</span><span class="identifier-syntax">found</span><span class="plain-syntax">, </span><span class="identifier-syntax">UNKNOWN_NT</span><span class="plain-syntax">)) ||</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Node::is</span><span class="plain-syntax">(</span><span class="identifier-syntax">found</span><span class="plain-syntax">, </span><span class="constant-syntax">NONLOCAL_VARIABLE_NT</span><span class="plain-syntax">)) ||</span>
|
||||
<span class="plain-syntax"> (</span><a href="14-sp.html#SP3" class="function-link"><span class="function-syntax">Specifications::is_description</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">found</span><span class="plain-syntax">)) ||</span>
|
||||
|
@ -1212,7 +1212,7 @@ value.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::ref_symbol</span><span class="plain-syntax">(</span><a href="27-em.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">lvar_s</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><a href="24-lv.html#SP36" class="function-link"><span class="function-syntax">LocalVariables::kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">lvar</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="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Compare::le</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">Kinds::Behaviour::is_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">Kinds::Behaviour::definite</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><a href="13-rsfk.html#SP5" class="function-link"><span class="function-syntax">Kinds::RunTime::emit_default_value_as_val</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">, </span><span class="string-syntax">"'called' 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">Produce::val</span><span class="plain-syntax">(</span><a href="27-em.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_truth_state</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -1066,7 +1066,7 @@ the problem messages are phrased differently if something goes wrong.
|
|||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">allow_me</span><span class="plain-syntax"> == </span><span class="identifier-syntax">ALWAYS_MATCH</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="14-cfs.html#SP7" class="function-link"><span class="function-syntax">Specifications::Compiler::emit_to_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">supplied</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind_needed</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">allow_me</span><span class="plain-syntax"> == </span><span class="identifier-syntax">SOMETIMES_MATCH</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_needed</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="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">allow_me</span><span class="plain-syntax"> == </span><span class="identifier-syntax">SOMETIMES_MATCH</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_needed</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_call_iname</span><span class="plain-syntax">(</span><a href="27-em.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">CHECKKINDRETURNED_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="27-em.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><a href="14-cfs.html#SP7" class="function-link"><span class="function-syntax">Specifications::Compiler::emit_to_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">supplied</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind_needed</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -617,7 +617,7 @@ insert them into the Inter stream close to the top.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val_kind</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>
|
||||
<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="identifier-syntax">iname</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><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><span class="identifier-syntax">alias</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><span class="identifier-syntax">Kinds::Compare::le</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="identifier-syntax">alias</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Site::veneer_symbol</span><span class="plain-syntax">(</span><a href="27-em.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">NOTHING_VSYMB</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">K</span><span class="plain-syntax">)) </span><span class="identifier-syntax">alias</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Site::veneer_symbol</span><span class="plain-syntax">(</span><a href="27-em.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">NOTHING_VSYMB</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">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"can't handle a null alias"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val1</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -232,7 +232,7 @@ whatever was named in column 1: see below.
|
|||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-dbtr.html#SP4_1_1" class="named-paragraph-link"><span class="named-paragraph">Determine the kind of what to make</span><span class="named-paragraph-number">4.1.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-dbtr.html#SP4_1_2" class="named-paragraph-link"><span class="named-paragraph">Check that this is a kind where it makes sense to enumerate new values</span><span class="named-paragraph-number">4.1.2</span></a></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">Kinds::weaken</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="reserved-syntax">if</span><span class="plain-syntax"> (!(</span><span class="identifier-syntax">Kinds::Compare::le</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><a href="13-rsfk.html#SP2" class="function-link"><span class="function-syntax">Kinds::RunTime::set_defined_by_table</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">t</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">K</span><span class="plain-syntax">))) </span><a href="13-rsfk.html#SP2" class="function-link"><span class="function-syntax">Kinds::RunTime::set_defined_by_table</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</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">t</span><span class="plain-syntax">-></span><span class="element-syntax">kind_defined_in_this_table</span><span class="plain-syntax"> = </span><span class="identifier-syntax">K</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="19-tc.html#SP5" class="function-link"><span class="function-syntax">Tables::Columns::set_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">columns</span><span class="plain-syntax">[0].</span><span class="element-syntax">column_identity</span><span class="plain-syntax">, </span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-dbtr.html#SP4_1_3" class="named-paragraph-link"><span class="named-paragraph">Create values for this kind as enumerated by names in the first column</span><span class="named-paragraph-number">4.1.3</span></a></span><span class="plain-syntax">;</span>
|
||||
|
@ -247,7 +247,7 @@ whatever was named in column 1: see below.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">defining_objects</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="14-sp.html#SP2" class="function-link"><span class="function-syntax">Specifications::is_kind_like</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">what</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><a href="14-sp.html#SP1" class="function-link"><span class="function-syntax">Specifications::to_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">what</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::Compare::le</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="identifier-syntax">defining_objects</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">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">defining_objects</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">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="14-sp.html#SP4" class="function-link"><span class="function-syntax">Specifications::object_exactly_described_if_any</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">what</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-dbtr.html#SP4_1_1_1" class="named-paragraph-link"><span class="named-paragraph">Issue PM_TableDefiningObject problem</span><span class="named-paragraph-number">4.1.1.1</span></a></span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
|
@ -278,7 +278,7 @@ whatever was named in column 1: see below.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Kinds::Compare::le</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="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">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::has_named_constant_values</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">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"K is %u\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">Problems::quote_source</span><span class="plain-syntax">(1, </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -1517,7 +1517,7 @@ this ought to be allowed...
|
|||
<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">Kinds::Compare::le</span><span class="plain-syntax">(</span><a href="14-sp.html#SP1" class="function-link"><span class="function-syntax">Specifications::to_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_evaluation</span><span class="plain-syntax">(</span><span class="identifier-syntax">px</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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><a href="14-sp.html#SP1" class="function-link"><span class="function-syntax">Specifications::to_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_evaluation</span><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">))))</span>
|
||||
<span class="plain-syntax"> </span><a href="2-up.html#SP5" class="function-link"><span class="function-syntax">Problems::Using::assertion_problem</span></a><span class="plain-syntax">(</span><a href="1-wtc.html#SP6" class="function-link"><span class="function-syntax">Task::syntax_tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_KindRelated</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"something described only by its kind should not be given a "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"specific place or role in the world"</span><span class="plain-syntax">,</span>
|
||||
|
@ -2006,7 +2006,7 @@ the "creation proposition" of Y, and we now assert this to be true about X.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">spec</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_evaluation</span><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-ass.html#SP6_3_40_1" class="named-paragraph-link"><span class="named-paragraph">Silently pass sentences like "The colours are red and blue."</span><span class="named-paragraph-number">6.3.40.1</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::Compare::le</span><span class="plain-syntax">(</span><a href="14-sp.html#SP1" class="function-link"><span class="function-syntax">Specifications::to_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_evaluation</span><span class="plain-syntax">(</span><span class="identifier-syntax">py</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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><a href="14-sp.html#SP1" class="function-link"><span class="function-syntax">Specifications::to_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_evaluation</span><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">))))</span>
|
||||
<span class="plain-syntax"> </span><a href="5-ass.html#SP8" class="function-link"><span class="function-syntax">Assertions::issue_value_equation_problem</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">, </span><span class="identifier-syntax">px</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="2-up.html#SP5" class="function-link"><span class="function-syntax">Problems::Using::assertion_problem</span></a><span class="plain-syntax">(</span><a href="1-wtc.html#SP6" class="function-link"><span class="function-syntax">Task::syntax_tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_CommonIsProper</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"this seems to say that a general description is something else"</span><span class="plain-syntax">,</span>
|
||||
|
|
|
@ -244,7 +244,7 @@ first it's a <span class="extract"><span class="extract-syntax">RELATIONSHIP_NT<
|
|||
<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">instance_kind</span><span class="plain-syntax"> = </span><a href="16-is.html#SP18" class="function-link"><span class="function-syntax">InferenceSubjects::as_nonobject_kind</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">instance_kind</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">instance_kind</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_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">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">instance_kind</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::has_named_constant_values</span><span class="plain-syntax">(</span><span class="identifier-syntax">instance_kind</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">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"$T"</span><span class="plain-syntax">, </span><span class="identifier-syntax">look_for</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">"$T"</span><span class="plain-syntax">, </span><span class="identifier-syntax">what_to_make</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -156,8 +156,8 @@ equal. So the proposition has to pass typechecking.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_segment</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"The sentence %1 tells me that '%2', which is %4 that varies, "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"should start out with the value '%3', but this is %5 and not %4."</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::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">constant_kind</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">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_as_declared</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="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">constant_kind</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">kind_as_declared</span><span class="plain-syntax">)))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_segment</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">" %PIn sentences like this, when I can't understand some text, "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"I often assume that it's meant to be a new object. So it may "</span>
|
||||
|
|
|
@ -354,7 +354,7 @@ in the node's subject, so this case is easy.
|
|||
<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="14-sp.html#SP2" class="function-link"><span class="function-syntax">Specifications::is_kind_like</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">)) </span><span class="identifier-syntax">found</span><span class="plain-syntax"> = </span><a href="14-sp.html#SP1" class="function-link"><span class="function-syntax">Specifications::to_kind</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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">found</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> *</span><span class="identifier-syntax">governing</span><span class="plain-syntax"> = </span><span class="identifier-syntax">p</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::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">found</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</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="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">found</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</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="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">found</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -602,7 +602,7 @@ from the tree.
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><creation-problem-diagnosis></span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::set_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</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">create_as</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">create_as</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="reserved-syntax">if</span><span class="plain-syntax"> (((</span><span class="identifier-syntax">create_as</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">create_as</span><span class="plain-syntax">))) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">prevailing_mood</span><span class="plain-syntax"> != </span><span class="identifier-syntax">INITIALLY_CE</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">prevailing_mood</span><span class="plain-syntax"> != </span><span class="identifier-syntax">CERTAIN_CE</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">recent_creation</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
@ -1140,7 +1140,7 @@ object.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">instance_kind</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="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="14-sp.html#SP2" class="function-link"><span class="function-syntax">Specifications::is_kind_like</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_evaluation</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">)))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">instance_kind</span><span class="plain-syntax"> = </span><a href="14-sp.html#SP1" class="function-link"><span class="function-syntax">Specifications::to_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_evaluation</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</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::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">instance_kind</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_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="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">instance_kind</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::has_named_constant_values</span><span class="plain-syntax">(</span><span class="identifier-syntax">instance_kind</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-tc.html#SP8_1" class="named-paragraph-link"><span class="named-paragraph">Point out that it's impossible to create values implicitly for this kind</span><span class="named-paragraph-number">8.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-tc.html#SP8_3" class="named-paragraph-link"><span class="named-paragraph">Calculate the instance count, that is, the number of duplicates to be made</span><span class="named-paragraph-number">8.3</span></a></span><span class="plain-syntax">;</span>
|
||||
|
@ -1241,7 +1241,7 @@ to a different vehicle object.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">NW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">, </span><span class="identifier-syntax">NAW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EMPTY_WORDING</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">propriety</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-tc.html#SP8_4_1_1" class="named-paragraph-link"><span class="named-paragraph">Confect a name for the new object, if that's the bag we're into</span><span class="named-paragraph-number">8.4.1.1</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::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">instance_kind</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_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="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">instance_kind</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-tc.html#SP8_4_1_2" class="named-paragraph-link"><span class="named-paragraph">Check that the new name is non-empty and distinct from all existing ones</span><span class="named-paragraph-number">8.4.1.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">NW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Wordings::truncate</span><span class="plain-syntax">(</span><span class="identifier-syntax">NW</span><span class="plain-syntax">, </span><span class="constant-syntax">32</span><span class="plain-syntax">); </span><span class="comment-syntax"> truncate to the maximum length</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pz</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">PROPER_NOUN_NT</span><span class="plain-syntax">);</span>
|
||||
|
@ -1276,7 +1276,7 @@ and an <span class="extract"><span class="extract-syntax">COMMON_NOUN_NT</span><
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_implicit_in_creation_of</span><span class="plain-syntax">(</span><span class="identifier-syntax">current_sentence</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">owner</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">instance_count</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> ((</span><span class="identifier-syntax">confect_name_flag</span><span class="plain-syntax">) ||</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">instance_kind</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">CW</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">instance_kind</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">CW</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">OW</span><span class="plain-syntax"> = </span><a href="16-is.html#SP23" class="function-link"><span class="function-syntax">InferenceSubjects::get_name_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">subject_here</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -236,7 +236,7 @@ full, whereas a "tuna fish" (an object) can be called just "tuna".
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">exact_parsing</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">, </span><span class="identifier-syntax">any_parsing</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">cp</span><span class="plain-syntax">) && (</span><a href="15-cp.html#SP4" class="function-link"><span class="function-syntax">Properties::Conditions::of_what</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cp</span><span class="plain-syntax">))) </span><span class="identifier-syntax">any_parsing</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::Compare::le</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="identifier-syntax">exact_parsing</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">K</span><span class="plain-syntax">)) </span><span class="identifier-syntax">exact_parsing</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">any_parsing</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">exact_parsing</span><span class="plain-syntax">)</span>
|
||||
|
@ -273,7 +273,7 @@ be done later on: see the "Instance Counts" plugin.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (!(</span><span class="identifier-syntax">Kinds::Compare::le</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="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">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::has_named_constant_values</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">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"tried to make an instance value for impossible kind"</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">enumeration_index</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Kinds::Behaviour::new_enumerated_value</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP6" class="function-link"><span class="function-syntax">Task::syntax_tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
|
@ -365,7 +365,7 @@ turns up subsequently, e.g., in response to
|
|||
<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="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<null instance>"</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><span class="identifier-syntax">Streams::I6_escapes_enabled</span><span class="plain-syntax">(</span><span class="identifier-syntax">DL</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"I%d"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</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="identifier-syntax">Nouns::write</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">-></span><span class="element-syntax">tag</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::Compare::le</span><span class="plain-syntax">(</span><a href="6-ins.html#SP17" class="function-link"><span class="function-syntax">Instances::to_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</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="reserved-syntax">if</span><span class="plain-syntax"> (!(</span><span class="identifier-syntax">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><a href="6-ins.html#SP17" class="function-link"><span class="function-syntax">Instances::to_kind</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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"["</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">OUT</span><span class="plain-syntax">, </span><a href="6-ins.html#SP17" class="function-link"><span class="function-syntax">Instances::to_kind</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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"]"</span><span class="plain-syntax">);</span>
|
||||
|
@ -491,7 +491,7 @@ instances have excerpts registered under <span class="extract"><span class="extr
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pn</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_parse_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">Nouns::meaning</span><span class="plain-syntax">(</span><span class="identifier-syntax">nt</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">Node::is</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTANT_NT</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">Node::get_kind_of_value</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</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::Compare::le</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="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">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">Node::get_constant_instance</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -852,7 +852,7 @@ declarations) and finally return <span class="extract"><span class="extract-synt
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_OBJECTS_IN_COMPILATION_SEQUENCE</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="6-ins.html#SP33" class="function-link"><span class="function-syntax">Instances::SUBJ_compile</span></a><span class="plain-syntax">(</span><a href="6-ins.html#SP12" class="function-link"><span class="function-syntax">Instances::as_subject</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">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">instance</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::Compare::le</span><span class="plain-syntax">(</span><a href="6-ins.html#SP17" class="function-link"><span class="function-syntax">Instances::to_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">K_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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><a href="6-ins.html#SP17" class="function-link"><span class="function-syntax">Instances::to_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="6-ins.html#SP33" class="function-link"><span class="function-syntax">Instances::SUBJ_compile</span></a><span class="plain-syntax">(</span><a href="6-ins.html#SP12" class="function-link"><span class="function-syntax">Instances::as_subject</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">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">IF_MODULE</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PL::Naming::compile_small_names</span><span class="plain-syntax">();</span>
|
||||
|
|
|
@ -397,11 +397,11 @@ early in the run when sorting cannot yet be done.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">am</span><span class="plain-syntax">-></span><span class="element-syntax">setting_domain</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</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">am_kind</span><span class="plain-syntax"> = </span><a href="7-am.html#SP25" class="function-link"><span class="function-syntax">Adjectives::Meanings::get_domain</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">am</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::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">am_kind</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="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">am_kind</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">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">Kinds::Compare::le</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="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">Kinds::Behaviour::is_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">TRUE</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="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">K</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">Kinds::Compare::le</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="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">K</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::Compare::compatible</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">am_kind</span><span class="plain-syntax">) == </span><span class="identifier-syntax">ALWAYS_MATCH</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>
|
||||
|
@ -737,7 +737,7 @@ disambiguation is used when applying adjectives to objects.
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Adjectives::Meanings::set_domain_from_kind</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">Adjectives::Meanings::set_domain_from_kind</span></span>:<br/>Instances - <a href="6-ins.html#SP37_2">§37.2</a><br/>Either-Or Properties - <a href="15-ep.html#SP12">§12</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">adjective_meaning</span><span class="plain-syntax"> *</span><span class="identifier-syntax">am</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">K</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">Kinds::Compare::le</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="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="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="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">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">am</span><span class="plain-syntax">-></span><span class="element-syntax">domain_infs</span><span class="plain-syntax"> = </span><a href="13-kak.html#SP1" class="function-link"><span class="function-syntax">Kinds::Knowledge::as_subject</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">am</span><span class="plain-syntax">-></span><span class="element-syntax">domain_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">am</span><span class="plain-syntax">-></span><span class="element-syntax">domain_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">;</span>
|
||||
|
@ -1039,7 +1039,7 @@ can choose to go via a support routine or not.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">via_support</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><a href="7-am.html#SP25" class="function-link"><span class="function-syntax">Adjectives::Meanings::get_domain</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">am</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="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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Compare::le</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="identifier-syntax">via_support</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">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">via_support</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">am</span><span class="plain-syntax">-></span><span class="element-syntax">task_via_support_routine</span><span class="plain-syntax">[</span><span class="identifier-syntax">T</span><span class="plain-syntax">] = </span><span class="identifier-syntax">via_support</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">am</span><span class="plain-syntax">-></span><span class="element-syntax">i6s_for_runtime_task</span><span class="plain-syntax">[</span><span class="identifier-syntax">T</span><span class="plain-syntax">]);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
|
|
@ -341,8 +341,8 @@ this means using up heap memory allocated dynamically at run-time.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">rvno</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">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">RR</span><span class="plain-syntax">-></span><span class="element-syntax">terms</span><span class="plain-syntax">[0].</span><span class="element-syntax">domain</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">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">RR</span><span class="plain-syntax">-></span><span class="element-syntax">terms</span><span class="plain-syntax">[1].</span><span class="element-syntax">domain</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">))) </span><span class="identifier-syntax">rvno</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">RR</span><span class="plain-syntax">-></span><span class="element-syntax">terms</span><span class="plain-syntax">[0].</span><span class="element-syntax">domain</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">RR</span><span class="plain-syntax">-></span><span class="element-syntax">terms</span><span class="plain-syntax">[1].</span><span class="element-syntax">domain</span><span class="plain-syntax">))) </span><span class="identifier-syntax">rvno</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">Wordings::empty</span><span class="plain-syntax">(</span><span class="identifier-syntax">RR</span><span class="plain-syntax">-></span><span class="element-syntax">CONW</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::Compare::lt</span><span class="plain-syntax">(</span><span class="identifier-syntax">RR</span><span class="plain-syntax">-></span><span class="element-syntax">terms</span><span class="plain-syntax">[0].</span><span class="element-syntax">domain</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &&</span>
|
||||
|
@ -389,12 +389,12 @@ omitted from the index.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">storage_kind</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RR</span><span class="plain-syntax">-></span><span class="element-syntax">terms</span><span class="plain-syntax">[0].</span><span class="element-syntax">domain</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">RR</span><span class="plain-syntax">-></span><span class="element-syntax">terms</span><span class="plain-syntax">[1].</span><span class="element-syntax">domain</span><span class="plain-syntax">) </span><span class="identifier-syntax">PK</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RR</span><span class="plain-syntax">-></span><span class="element-syntax">terms</span><span class="plain-syntax">[1].</span><span class="element-syntax">domain</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">PK</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">PK</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)) </span><a href="15-vp.html#SP5" class="function-link"><span class="function-syntax">Properties::Valued::set_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">PK</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">PK</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="identifier-syntax">FALSE</span><span class="plain-syntax">)) </span><a href="15-vp.html#SP5" class="function-link"><span class="function-syntax">Properties::Valued::set_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">PK</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">storage_kind</span><span class="plain-syntax">) </span><span class="identifier-syntax">storage_infs</span><span class="plain-syntax"> = </span><a href="13-kak.html#SP1" class="function-link"><span class="function-syntax">Kinds::Knowledge::as_subject</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">storage_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">storage_infs</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><span class="identifier-syntax">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">storage_kind</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="identifier-syntax">bp</span><span class="plain-syntax">-></span><span class="element-syntax">storage_kind</span><span class="plain-syntax"> = </span><span class="identifier-syntax">storage_kind</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">storage_kind</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="identifier-syntax">bp</span><span class="plain-syntax">-></span><span class="element-syntax">storage_kind</span><span class="plain-syntax"> = </span><span class="identifier-syntax">storage_kind</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">RR</span><span class="plain-syntax">-></span><span class="element-syntax">terms</span><span class="plain-syntax">[0].</span><span class="element-syntax">unique</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">RR</span><span class="plain-syntax">-></span><span class="element-syntax">terms</span><span class="plain-syntax">[1].</span><span class="element-syntax">unique</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::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">PK</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_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">Kinds::Behaviour::is_object</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><a href="15-vp.html#SP9" class="function-link"><span class="function-syntax">Properties::Valued::now_used_for_non_typesafe_relation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="7-rlt.html#SP4_1">§4.1</a>.</li></ul>
|
||||
|
@ -430,7 +430,7 @@ and \(14D\) bytes on Glulx, where \(D\) is the size of the domain...
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">bp</span><span class="plain-syntax">-></span><span class="element-syntax">form_of_relation</span><span class="plain-syntax"> = </span><span class="constant-syntax">Relation_OtoO</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">provide_prn</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">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">storage_kind</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="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">storage_kind</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">bp</span><span class="plain-syntax">-></span><span class="element-syntax">make_true_function</span><span class="plain-syntax"> = </span><a href="12-is.html#SP3" class="function-link"><span class="function-syntax">Calculus::Schemas::new</span></a><span class="plain-syntax">(</span><span class="string-syntax">"Relation_Now1to1(*2,%n,*1)"</span><span class="plain-syntax">, </span><span class="identifier-syntax">i6_prn_name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">bp</span><span class="plain-syntax">-></span><span class="element-syntax">make_false_function</span><span class="plain-syntax"> = </span><a href="12-is.html#SP3" class="function-link"><span class="function-syntax">Calculus::Schemas::new</span></a><span class="plain-syntax">(</span><span class="string-syntax">"Relation_NowN1toV(*2,%n,*1)"</span><span class="plain-syntax">, </span><span class="identifier-syntax">i6_prn_name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
|
@ -450,7 +450,7 @@ and \(14D\) bytes on Glulx, where \(D\) is the size of the domain...
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">bp</span><span class="plain-syntax">-></span><span class="element-syntax">form_of_relation</span><span class="plain-syntax"> = </span><span class="constant-syntax">Relation_OtoV</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">provide_prn</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">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">storage_kind</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="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">storage_kind</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">bp</span><span class="plain-syntax">-></span><span class="element-syntax">make_true_function</span><span class="plain-syntax"> = </span><a href="12-is.html#SP3" class="function-link"><span class="function-syntax">Calculus::Schemas::new</span></a><span class="plain-syntax">(</span><span class="string-syntax">"*2.%n = *1"</span><span class="plain-syntax">, </span><span class="identifier-syntax">i6_prn_name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">bp</span><span class="plain-syntax">-></span><span class="element-syntax">make_false_function</span><span class="plain-syntax"> = </span><a href="12-is.html#SP3" class="function-link"><span class="function-syntax">Calculus::Schemas::new</span></a><span class="plain-syntax">(</span><span class="string-syntax">"Relation_NowN1toV(*2,%n,*1)"</span><span class="plain-syntax">, </span><span class="identifier-syntax">i6_prn_name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
|
@ -470,7 +470,7 @@ and \(14D\) bytes on Glulx, where \(D\) is the size of the domain...
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">bp</span><span class="plain-syntax">-></span><span class="element-syntax">form_of_relation</span><span class="plain-syntax"> = </span><span class="constant-syntax">Relation_VtoO</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">provide_prn</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">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">storage_kind</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="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">storage_kind</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">bp</span><span class="plain-syntax">-></span><span class="element-syntax">make_true_function</span><span class="plain-syntax"> = </span><a href="12-is.html#SP3" class="function-link"><span class="function-syntax">Calculus::Schemas::new</span></a><span class="plain-syntax">(</span><span class="string-syntax">"*1.%n = *2"</span><span class="plain-syntax">, </span><span class="identifier-syntax">i6_prn_name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">bp</span><span class="plain-syntax">-></span><span class="element-syntax">make_false_function</span><span class="plain-syntax"> = </span><a href="12-is.html#SP3" class="function-link"><span class="function-syntax">Calculus::Schemas::new</span></a><span class="plain-syntax">(</span><span class="string-syntax">"Relation_NowN1toV(*1,%n,*2)"</span><span class="plain-syntax">, </span><span class="identifier-syntax">i6_prn_name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
|
@ -510,7 +510,7 @@ another".
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">bp</span><span class="plain-syntax">-></span><span class="element-syntax">form_of_relation</span><span class="plain-syntax"> = </span><span class="constant-syntax">Relation_Sym_OtoO</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">provide_prn</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">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">storage_kind</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="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">storage_kind</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">bp</span><span class="plain-syntax">-></span><span class="element-syntax">make_true_function</span><span class="plain-syntax"> = </span><a href="12-is.html#SP3" class="function-link"><span class="function-syntax">Calculus::Schemas::new</span></a><span class="plain-syntax">(</span><span class="string-syntax">"Relation_NowS1to1(*2,%n,*1)"</span><span class="plain-syntax">, </span><span class="identifier-syntax">i6_prn_name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">bp</span><span class="plain-syntax">-></span><span class="element-syntax">make_false_function</span><span class="plain-syntax"> = </span><a href="12-is.html#SP3" class="function-link"><span class="function-syntax">Calculus::Schemas::new</span></a><span class="plain-syntax">(</span><span class="string-syntax">"Relation_NowSN1to1(*2,%n,*1)"</span><span class="plain-syntax">, </span><span class="identifier-syntax">i6_prn_name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
|
@ -551,7 +551,7 @@ other in groups".
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">bp</span><span class="plain-syntax">-></span><span class="element-syntax">form_of_relation</span><span class="plain-syntax"> = </span><span class="constant-syntax">Relation_Equiv</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">bp</span><span class="plain-syntax">-></span><span class="element-syntax">arbitrary</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">provide_prn</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">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">storage_kind</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="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">storage_kind</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">bp</span><span class="plain-syntax">-></span><span class="element-syntax">test_function</span><span class="plain-syntax"> = </span><a href="12-is.html#SP3" class="function-link"><span class="function-syntax">Calculus::Schemas::new</span></a><span class="plain-syntax">(</span><span class="string-syntax">"(*1.%n == *2.%n)"</span><span class="plain-syntax">, </span><span class="identifier-syntax">i6_prn_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">i6_prn_name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">bp</span><span class="plain-syntax">-></span><span class="element-syntax">make_true_function</span><span class="plain-syntax"> = </span><a href="12-is.html#SP3" class="function-link"><span class="function-syntax">Calculus::Schemas::new</span></a><span class="plain-syntax">(</span><span class="string-syntax">"Relation_NowEquiv(*1,%n,*2)"</span><span class="plain-syntax">, </span><span class="identifier-syntax">i6_prn_name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">bp</span><span class="plain-syntax">-></span><span class="element-syntax">make_false_function</span><span class="plain-syntax"> = </span><a href="12-is.html#SP3" class="function-link"><span class="function-syntax">Calculus::Schemas::new</span></a><span class="plain-syntax">(</span><span class="string-syntax">"Relation_NowNEquiv(*1,%n,*2)"</span><span class="plain-syntax">, </span><span class="identifier-syntax">i6_prn_name</span><span class="plain-syntax">);</span>
|
||||
|
@ -606,7 +606,7 @@ have the form \(B(x, f_1(x))\).
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">i6_schema</span><span class="plain-syntax"> *</span><span class="identifier-syntax">f0</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, *</span><span class="identifier-syntax">f1</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><span class="identifier-syntax">RR</span><span class="plain-syntax">-></span><span class="element-syntax">terms</span><span class="plain-syntax">[0].</span><span class="element-syntax">unique</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">RR</span><span class="plain-syntax">-></span><span class="element-syntax">terms</span><span class="plain-syntax">[1].</span><span class="element-syntax">domain</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::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">RR</span><span class="plain-syntax">-></span><span class="element-syntax">terms</span><span class="plain-syntax">[1].</span><span class="element-syntax">domain</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="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">RR</span><span class="plain-syntax">-></span><span class="element-syntax">terms</span><span class="plain-syntax">[1].</span><span class="element-syntax">domain</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">f0</span><span class="plain-syntax"> = </span><a href="12-is.html#SP3" class="function-link"><span class="function-syntax">Calculus::Schemas::new</span></a><span class="plain-syntax">(</span><span class="string-syntax">"(*1.%n)"</span><span class="plain-syntax">, </span><span class="identifier-syntax">i6_prn_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="identifier-syntax">f0</span><span class="plain-syntax"> = </span><a href="12-is.html#SP3" class="function-link"><span class="function-syntax">Calculus::Schemas::new</span></a><span class="plain-syntax">(</span><span class="string-syntax">"(GProperty(%k, *1, %n))"</span><span class="plain-syntax">,</span>
|
||||
|
@ -614,7 +614,7 @@ have the form \(B(x, f_1(x))\).
|
|||
<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">RR</span><span class="plain-syntax">-></span><span class="element-syntax">terms</span><span class="plain-syntax">[1].</span><span class="element-syntax">unique</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">RR</span><span class="plain-syntax">-></span><span class="element-syntax">terms</span><span class="plain-syntax">[0].</span><span class="element-syntax">domain</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::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">RR</span><span class="plain-syntax">-></span><span class="element-syntax">terms</span><span class="plain-syntax">[0].</span><span class="element-syntax">domain</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="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">RR</span><span class="plain-syntax">-></span><span class="element-syntax">terms</span><span class="plain-syntax">[0].</span><span class="element-syntax">domain</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">f1</span><span class="plain-syntax"> = </span><a href="12-is.html#SP3" class="function-link"><span class="function-syntax">Calculus::Schemas::new</span></a><span class="plain-syntax">(</span><span class="string-syntax">"(*1.%n)"</span><span class="plain-syntax">, </span><span class="identifier-syntax">i6_prn_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="identifier-syntax">f1</span><span class="plain-syntax"> = </span><a href="12-is.html#SP3" class="function-link"><span class="function-syntax">Calculus::Schemas::new</span></a><span class="plain-syntax">(</span><span class="string-syntax">"(GProperty(%k, *1, %n))"</span><span class="plain-syntax">,</span>
|
||||
|
@ -655,7 +655,7 @@ to have a name:
|
|||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Relations::check_finite_range</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">Relations::check_finite_range</span></span>:<br/><a href="7-rlt.html#SP4_1_3">§4.1.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">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><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">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">TRUE</span><span class="plain-syntax">; </span><span class="comment-syntax"> to recover from earlier problems</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Kinds::Compare::le</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="identifier-syntax">Kinds::Behaviour::definite</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_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) || (</span><span class="identifier-syntax">Kinds::Behaviour::definite</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><a href="1-wtc.html#SP6" class="function-link"><span class="function-syntax">Task::syntax_tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_RangeOverlyBroad</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"relations aren't allowed to range over all 'objects' or all 'values'"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"as these are too broad. A relation has to be between two kinds of "</span>
|
||||
|
@ -2127,7 +2127,7 @@ in turn.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Relations::equivalence_relation_add_properties</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">Relations::equivalence_relation_add_properties</span></span>:<br/>Binary Predicates - <a href="7-bp.html#SP32">§32</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bp</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><a href="7-bp.html#SP37" class="function-link"><span class="function-syntax">BinaryPredicates::term_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">bp</span><span class="plain-syntax">, </span><span class="constant-syntax">1</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::Compare::le</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="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">k</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-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="plain-syntax"> </span><span class="reserved-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">infs</span><span class="plain-syntax"> = </span><a href="6-ins.html#SP12" class="function-link"><span class="function-syntax">Instances::as_subject</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -857,8 +857,8 @@ the following:
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">scope_k</span><span class="plain-syntax"> = </span><span class="function-syntax"><<kind:kscope>></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::Compare::lt</span><span class="plain-syntax">(</span><span class="identifier-syntax">scope_k</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="identifier-syntax">scope_k</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><span class="identifier-syntax">scope_k</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> ((</span><span class="identifier-syntax">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">scope_k</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_room</span><span class="plain-syntax">)) ||</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">scope_k</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_region</span><span class="plain-syntax">)))) {</span>
|
||||
<span class="plain-syntax"> ((</span><span class="identifier-syntax">Kinds::Behaviour::is_object_of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">scope_k</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_room</span><span class="plain-syntax">)) ||</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_object_of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">scope_k</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_region</span><span class="plain-syntax">)))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">SPATIAL_MAP</span><span class="plain-syntax">, </span><span class="string-syntax">"Setting for kind %u\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">scope_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="identifier-syntax">bad_scope</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">break</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -110,7 +110,7 @@ properties.
|
|||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PL::Showme::compile_SHOWME_type</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t_0_s</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="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::Compare::le</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="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">K</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><a href="3-sc.html#SP2" class="function-link"><span class="function-syntax">PL::Showme::compile_SHOWME_type_subj</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="identifier-syntax">Kinds::Knowledge::as_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">), </span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">na_s</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_OBJECT_INSTANCES</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)</span>
|
||||
|
@ -261,7 +261,7 @@ routine for colours; and the best thing is to print nothing at all.
|
|||
<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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">require_nonzero</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">Properties::Valued::is_used_for_non_typesafe_relation</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">Kinds::Compare::le</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">Kinds::Behaviour::is_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">require_nonzero</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">require_nonzero</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -348,8 +348,8 @@ if it turns out to be news, we infer <span class="extract"><span class="extract-
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">PL::Spatial::spatial_set_kind_notify</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">PL::Spatial::spatial_set_kind_notify</span></span>:<br/><a href="3-sm.html#SP6">§6</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">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">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kw</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::to_kind</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">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">kw</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_room</span><span class="plain-syntax">))) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">k</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_room</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_of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">kw</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_room</span><span class="plain-syntax">))) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_object_of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">k</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_room</span><span class="plain-syntax">)))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">World::Inferences::draw</span><span class="plain-syntax">(</span><span class="constant-syntax">IS_ROOM_INF</span><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="identifier-syntax">CERTAIN_CE</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">NULL</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">FALSE</span><span class="plain-syntax">;</span>
|
||||
|
@ -802,7 +802,7 @@ when it's legitimately a door.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sentence_setting_kind</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::get_kind_set_sentence</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">designers_choice</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">geography_certainty</span><span class="plain-syntax"> == </span><span class="identifier-syntax">CERTAIN_CE</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">geography_choice</span><span class="plain-syntax">, </span><span class="identifier-syntax">designers_choice</span><span class="plain-syntax">))))</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_object_of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">geography_choice</span><span class="plain-syntax">, </span><span class="identifier-syntax">designers_choice</span><span class="plain-syntax">))))</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-sm.html#SP29_1_3_1" class="named-paragraph-link"><span class="named-paragraph">Accept the geography choice, since it only refines what we already know</span><span class="named-paragraph-number">29.1.3.1</span></a></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">geography_certainty</span><span class="plain-syntax"> == </span><span class="identifier-syntax">CERTAIN_CE</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (!((</span><span class="identifier-syntax">Kinds::Compare::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">designers_choice</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_door</span><span class="plain-syntax">)) &&</span>
|
||||
|
|
|
@ -307,14 +307,14 @@ Rules. (So there is no need to translate this to other languages.)
|
|||
<span class="plain-syntax"> </span><span class="string-syntax">"geography of the physical world."</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>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">K_backdrop</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">sub</span><span class="plain-syntax"> == </span><span class="identifier-syntax">K_door</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">super</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_backdrop</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_backdrop</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">sub</span><span class="plain-syntax"> == </span><span class="identifier-syntax">K_door</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">Kinds::Behaviour::is_object_of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">super</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_backdrop</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="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_DoorAdrift</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"'door' is not allowed to be a kind of 'backdrop'"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"because it's too fundamental to the way Inform maps out the "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"geography of the physical world."</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>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">K_backdrop</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">sub</span><span class="plain-syntax"> == </span><span class="identifier-syntax">K_backdrop</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">super</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_door</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_backdrop</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">sub</span><span class="plain-syntax"> == </span><span class="identifier-syntax">K_backdrop</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">Kinds::Behaviour::is_object_of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">super</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_door</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="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_BackdropAdrift</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"'backdrop' is not allowed to be a kind of 'door'"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"because it's too fundamental to the way Inform maps out the "</span>
|
||||
|
@ -394,8 +394,8 @@ no need to translate this to other languages.)
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">PL::Map::map_set_kind_notify</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">PL::Map::map_set_kind_notify</span></span>:<br/><a href="3-tm.html#SP7">§7</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">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">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kw</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::to_kind</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">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">kw</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_direction</span><span class="plain-syntax">))) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">k</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_direction</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_of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">kw</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_direction</span><span class="plain-syntax">))) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_object_of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">k</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_direction</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">IW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::get_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-tm.html#SP20_1" class="named-paragraph-link"><span class="named-paragraph">Vet the direction name for acceptability</span><span class="named-paragraph-number">20.1</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="function-syntax"><notable-map-directions></span><span class="plain-syntax">(</span><span class="identifier-syntax">IW</span><span class="plain-syntax">)) {</span>
|
||||
|
@ -458,7 +458,7 @@ quite crunchy algorithms, has the fastest possible access to the layout.
|
|||
<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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">d</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">LOOP_OVER_OBJECT_INSTANCES</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">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">Instances::to_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">K_direction</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_of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">Instances::to_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">K_direction</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PF_I</span><span class="plain-syntax">(</span><span class="identifier-syntax">map</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">)-></span><span class="element-syntax">direction_index</span><span class="plain-syntax"> = </span><span class="identifier-syntax">d</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
|
|
@ -448,7 +448,7 @@ together in lists.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_room</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_of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_room</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::Compare::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_thing</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">World::Inferences::get_prop_state_without_inheritance</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">subj</span><span class="plain-syntax">, </span><span class="identifier-syntax">P_printed_plural_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)) {</span>
|
||||
|
|
|
@ -1119,8 +1119,8 @@ It's convenient to define a single action clause first:
|
|||
<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">an</span><span class="plain-syntax">-></span><span class="identifier-syntax">max_parameters</span><span class="plain-syntax"> >= </span><span class="constant-syntax">2</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::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">an</span><span class="plain-syntax">-></span><span class="element-syntax">noun_kind</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_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">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">an</span><span class="plain-syntax">-></span><span class="element-syntax">second_kind</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_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="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">an</span><span class="plain-syntax">-></span><span class="element-syntax">noun_kind</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">an</span><span class="plain-syntax">-></span><span class="element-syntax">second_kind</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="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_ActionBothValues</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"this action definition asks to have a single action apply "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"to two different things which are not objects"</span><span class="plain-syntax">,</span>
|
||||
|
@ -1175,7 +1175,7 @@ in question. This is where we compile the bitmaps in their fresh, empty form.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">an</span><span class="plain-syntax">-></span><span class="element-syntax">min_parameters</span><span class="plain-syntax"> > </span><span class="constant-syntax">1</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">an</span><span class="plain-syntax">-></span><span class="identifier-syntax">max_parameters</span><span class="plain-syntax"> > </span><span class="constant-syntax">1</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">an</span><span class="plain-syntax">-></span><span class="identifier-syntax">max_parameters</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">an</span><span class="plain-syntax">-></span><span class="element-syntax">noun_kind</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_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">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">an</span><span class="plain-syntax">-></span><span class="element-syntax">noun_kind</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><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><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -1269,7 +1269,7 @@ in question. This is where we compile the bitmaps in their fresh, empty form.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">REQUIRES_ACCESS:</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">REQUIRES_POSSESSION:</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">DOESNT_REQUIRE_ACCESS:</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">tok_value_kinds</span><span class="plain-syntax">[0], </span><span class="identifier-syntax">K_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="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">tok_value_kinds</span><span class="plain-syntax">[0]) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">failed_on</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"the thing you suggest this action should act on "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"is not an object at all"</span><span class="plain-syntax">;</span>
|
||||
|
@ -1295,7 +1295,7 @@ in question. This is where we compile the bitmaps in their fresh, empty form.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">REQUIRES_ACCESS:</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">REQUIRES_POSSESSION:</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">DOESNT_REQUIRE_ACCESS:</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">tok_value_kinds</span><span class="plain-syntax">[1], </span><span class="identifier-syntax">K_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="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">tok_value_kinds</span><span class="plain-syntax">[1]) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">failed_on</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"the second thing you suggest this action should act on "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"is not an object at all"</span><span class="plain-syntax">;</span>
|
||||
|
@ -1514,7 +1514,7 @@ infrastructure, and we access it with a single call.
|
|||
<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="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><span class="identifier-syntax">an</span><span class="plain-syntax">-></span><span class="element-syntax">second_kind</span><span class="plain-syntax">; </span><span class="identifier-syntax">var</span><span class="plain-syntax"> = </span><span class="identifier-syntax">s_s</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">Kinds::Compare::le</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="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">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">var</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">Hierarchy::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">PARSED_NUMBER_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">INDIRECT1V_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">());</span>
|
||||
|
@ -1698,7 +1698,7 @@ infrastructure, and we access it with a single call.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::begin_colour</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"000080"</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">argc</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><span class="identifier-syntax">an</span><span class="plain-syntax">-></span><span class="element-syntax">noun_kind</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">argc</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><span class="identifier-syntax">an</span><span class="plain-syntax">-></span><span class="element-syntax">second_kind</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::Compare::le</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="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"something"</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">K</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"something"</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_understanding</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">Kinds::Compare::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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"some text"</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">Kinds::Textual::write</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</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">HTML::end_colour</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -1756,7 +1756,7 @@ and in this case we therefore ignore <span class="extract"><span class="extract-
|
|||
<span class="plain-syntax"> }</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">Specifications::is_kind_like</span><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">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">Specifications::to_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">), </span><span class="identifier-syntax">K_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">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">Specifications::to_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">spec</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">force_proposition</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</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">ParseTreeUsage::is_rvalue</span><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">)) {</span>
|
||||
|
@ -1987,7 +1987,7 @@ and in this case we therefore ignore <span class="extract"><span class="extract-
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">kind_of_noun</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">kind_of_noun</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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_of_noun</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="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">kind_of_noun</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">ap</span><span class="plain-syntax">.</span><span class="element-syntax">noun_spec</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CPMC_NEEDED</span><span class="plain-syntax">(</span><span class="constant-syntax">NOUN_MATCHES_AS_OBJECT_CPMC</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -2000,7 +2000,7 @@ and in this case we therefore ignore <span class="extract"><span class="extract-
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind_of_second</span><span class="plain-syntax"> = </span><a href="4-act.html#SP32" class="function-link"><span class="function-syntax">PL::Actions::get_data_type_of_second_noun</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ap</span><span class="plain-syntax">.</span><span class="element-syntax">action</span><span class="plain-syntax">-></span><span class="element-syntax">action_listed</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">kind_of_second</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">kind_of_second</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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_of_second</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="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">kind_of_second</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">ap</span><span class="plain-syntax">.</span><span class="element-syntax">second_spec</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CPMC_NEEDED</span><span class="plain-syntax">(</span><span class="constant-syntax">SECOND_MATCHES_AS_OBJECT_CPMC</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
|
|
@ -561,7 +561,7 @@ look seriously at tokens is in Phase II.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Specifications::is_description</span><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">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">spec</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="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Compare::le</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="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">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::Compare::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">Kinds::Behaviour::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">Problems::quote_source</span><span class="plain-syntax">(1, </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">);</span>
|
||||
|
@ -1047,7 +1047,7 @@ nothing else.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">continue_loop_on_fail</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">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">BinaryPredicates::term_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">bp</span><span class="plain-syntax">, </span><span class="constant-syntax">1</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::Compare::le</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="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">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_source</span><span class="plain-syntax">(2, </span><span class="identifier-syntax">pn</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_kind</span><span class="plain-syntax">(3, </span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
|
@ -1186,7 +1186,7 @@ nothing else.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Specifications::is_kind_like</span><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">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_kind_of_value</span><span class="plain-syntax">(</span><span class="identifier-syntax">spec</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="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Compare::le</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="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">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::Compare::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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::offers_I6_GPR</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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">i6_gpr_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Kinds::Behaviour::get_explicit_I6_GPR</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
|
@ -1348,7 +1348,7 @@ nothing else.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Emit::array_iname_entry</span><span class="plain-syntax">(</span><span class="identifier-syntax">Kinds::RunTime::get_kind_GPR_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="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::Compare::le</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="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_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="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><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">STORE_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">());</span>
|
||||
|
|
|
@ -1015,13 +1015,13 @@ by any GPR existing because of the above routines.)
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PL::Parsing::Verbs::set_parsing_grammar</span><button class="popup" onclick="togglePopup('usagePopup37')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup37">Usage of <span class="code-font"><span class="function-syntax">PL::Parsing::Verbs::set_parsing_grammar</span></span>:<br/><a href="5-gv.html#SP17">§17</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">grammar_verb</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gv</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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Compare::le</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="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"wrong way to handle object grammar"</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">K</span><span class="plain-syntax">)) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"wrong way to handle object grammar"</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">construct</span><span class="plain-syntax">-></span><span class="identifier-syntax">understand_as_values</span><span class="plain-syntax"> = </span><span class="identifier-syntax">gv</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">grammar_verb</span><span class="plain-syntax"> *</span><span class="function-syntax">PL::Parsing::Verbs::get_parsing_grammar</span><button class="popup" onclick="togglePopup('usagePopup38')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup38">Usage of <span class="code-font"><span class="function-syntax">PL::Parsing::Verbs::get_parsing_grammar</span></span>:<br/><a href="5-gv.html#SP17">§17</a><br/>Tokens Parsing Values - <a href="5-tpv.html#SP1">§1</a>, <a href="5-tpv.html#SP1_1">§1.1</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><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><span class="identifier-syntax">Kinds::Compare::le</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="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"wrong way to handle object grammar"</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">K</span><span class="plain-syntax">)) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"wrong way to handle object grammar"</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="identifier-syntax">construct</span><span class="plain-syntax">-></span><span class="identifier-syntax">understand_as_values</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
|
|
@ -125,7 +125,7 @@ their names (used as I6 tokens), and compile their routines.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Specifications::to_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">nft</span><span class="plain-syntax">-></span><span class="element-syntax">the_filter</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">NonlocalVariables::kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">I6_noun_VAR</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">NonlocalVariables::set_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">I6_noun_VAR</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</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::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="identifier-syntax">nft</span><span class="plain-syntax">-></span><span class="element-syntax">parse_using_gpr</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">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="identifier-syntax">nft</span><span class="plain-syntax">-></span><span class="element-syntax">parse_using_gpr</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">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Routines::begin</span><span class="plain-syntax">(</span><span class="identifier-syntax">nft</span><span class="plain-syntax">-></span><span class="element-syntax">nft_iname</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">nft</span><span class="plain-syntax">-></span><span class="element-syntax">parse_using_gpr</span><span class="plain-syntax">) {</span>
|
||||
|
@ -326,7 +326,7 @@ that's why.)
|
|||
<span class="plain-syntax"> </span><span class="string-syntax">"for instance by being applied to several previous turns in a row."</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">spec</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::Compare::le</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="identifier-syntax">FALSE</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">Kinds::Behaviour::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="identifier-syntax">global_scope</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">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">Kinds::Behaviour::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="identifier-syntax">global_scope</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="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">BelievedImpossible</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"this is a kind of value I can't understand in command grammar"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"so the '[any ...]' part will have to go."</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -751,7 +751,7 @@ problem message for this case is now commented out.
|
|||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PL::Parsing::understand_property_block</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">PL::Parsing::understand_property_block</span></span>:<br/><a href="5-tfg.html#SP17_2">§17.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pr</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">level</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">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">WHENW</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">Kinds::Behaviour::get_recognition_only_GPR</span><span class="plain-syntax">(</span><span class="identifier-syntax">Properties::Valued::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::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">Properties::Valued::kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">pr</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">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">Properties::Valued::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">Kinds::Behaviour::request_I6_GPR</span><span class="plain-syntax">(</span><span class="identifier-syntax">Properties::Valued::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="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="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_BadReferringProperty</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"that property is of a kind which I can't recognise in "</span>
|
||||
|
@ -872,7 +872,7 @@ problem message for this case is now commented out.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">RetryValue:</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">GRAMMAR_CONSTRUCTION</span><span class="plain-syntax">, </span><span class="string-syntax">"Understand as specification: $T"</span><span class="plain-syntax">, </span><span class="identifier-syntax">spec</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">Specifications::is_kind_like</span><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">Kinds::Compare::le</span><span class="plain-syntax">(</span><span class="identifier-syntax">Specifications::to_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">), </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)) </span><span class="reserved-syntax">goto</span><span class="plain-syntax"> </span><span class="identifier-syntax">ImpreciseProblemMessage</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">Specifications::to_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">)) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)) </span><span class="reserved-syntax">goto</span><span class="plain-syntax"> </span><span class="identifier-syntax">ImpreciseProblemMessage</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">ParseTreeUsage::is_phrasal</span><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">)) </span><span class="reserved-syntax">goto</span><span class="plain-syntax"> </span><span class="identifier-syntax">ImpreciseProblemMessage</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">Rvalues::is_nothing_object_constant</span><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">)) </span><span class="reserved-syntax">goto</span><span class="plain-syntax"> </span><span class="identifier-syntax">ImpreciseProblemMessage</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">ParseTreeUsage::is_rvalue</span><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">)) {</span>
|
||||
|
|
|
@ -118,6 +118,13 @@ MathJax = {
|
|||
<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">Kinds::Behaviour::is_object_of_kind</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="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</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-kc.html#SP8" class="function-link"><span class="function-syntax">Kinds::Compare::le</span></a><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><a href="2-kc.html#SP8" class="function-link"><span class="function-syntax">Kinds::Compare::le</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">)) &&</span>
|
||||
<span class="plain-syntax"> (</span><a href="2-kc.html#SP9" class="function-link"><span class="function-syntax">Kinds::Compare::eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_nil</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><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="SP3"></a><b>§3. Definiteness. </b>A kind like "number" is definite. One way to be indefinite is to be a
|
||||
kind of kind, like "arithmetic value":
|
||||
|
|
|
@ -1,26 +1,26 @@
|
|||
100.0% in inform7 run
|
||||
65.8% in compilation to Inter
|
||||
24.9% in //Phrases::Manager::compile_first_block//
|
||||
65.9% in compilation to Inter
|
||||
25.0% in //Phrases::Manager::compile_first_block//
|
||||
8.2% in //Phrases::Manager::compile_as_needed//
|
||||
7.1% in //Strings::compile_responses//
|
||||
6.1% in //World::Compile::compile//
|
||||
7.0% in //Strings::compile_responses//
|
||||
6.2% in //World::Compile::compile//
|
||||
4.6% in //MajorNodes::pre_pass//
|
||||
3.2% in //MajorNodes::pass_1//
|
||||
3.1% in //MajorNodes::pass_1//
|
||||
2.1% in //Phrases::Manager::RulePrintingRule_routine//
|
||||
1.9% in //Phrases::Manager::rulebooks_array//
|
||||
1.1% in //VerbsAtRunTime::ConjugateVerb//
|
||||
0.7% in //Phrases::Manager::traverse//
|
||||
0.5% in //Phrases::Manager::parse_rule_parameters//
|
||||
0.3% in //Phrases::Manager::compile_rulebooks//
|
||||
0.3% in //Phrases::Manager::parse_rule_parameters//
|
||||
0.3% in //Relations::compile_defined_relations//
|
||||
0.1% in //MajorNodes::pass_2//
|
||||
0.1% in //PL::Parsing::Verbs::compile_all//
|
||||
0.1% in //Task::make_built_in_kind_constructors//
|
||||
0.1% in //World::complete//
|
||||
3.5% not specifically accounted for
|
||||
31.8% in running Inter pipeline
|
||||
31.7% in running Inter pipeline
|
||||
10.3% in step preparation
|
||||
10.1% in inter step 2/12: link
|
||||
10.1% in step preparation
|
||||
7.4% in inter step 12/12: generate inform6 -> auto.inf
|
||||
0.3% in inter step 9/12: make-identifiers-unique
|
||||
0.1% in inter step 10/12: reconcile-verbs
|
||||
|
@ -29,6 +29,6 @@
|
|||
0.1% in inter step 6/12: assimilate
|
||||
0.1% in inter step 7/12: resolve-external-symbols
|
||||
0.1% in inter step 8/12: inspect-plugs
|
||||
2.5% not specifically accounted for
|
||||
2.2% not specifically accounted for
|
||||
2.1% in supervisor
|
||||
0.2% not specifically accounted for
|
||||
|
|
|
@ -716,13 +716,13 @@ pcalc_prop *Calculus::Simplifications::region_containment(pcalc_prop *prop, int
|
|||
int regionality = FALSE, backdropping = FALSE;
|
||||
if (pl->terms[j].constant) {
|
||||
kind *KR = Specifications::to_kind(pl->terms[j].constant);
|
||||
if (Kinds::Compare::le(KR, K_region)) {
|
||||
if (Kinds::Behaviour::is_object_of_kind(KR, K_region)) {
|
||||
regionality = TRUE;
|
||||
}
|
||||
}
|
||||
if (pl->terms[1-j].constant) {
|
||||
kind *KB = Specifications::to_kind(pl->terms[1-j].constant);
|
||||
if (Kinds::Compare::le(KB, K_backdrop)) backdropping = TRUE;
|
||||
if (Kinds::Behaviour::is_object_of_kind(KB, K_backdrop)) backdropping = TRUE;
|
||||
}
|
||||
if ((regionality) && (!backdropping)) {
|
||||
pl->predicate = STORE_POINTER_binary_predicate(R_regional_containment);
|
||||
|
|
|
@ -162,7 +162,7 @@ treat it as a piece of nonsense, like "if Wednesday is not custard".
|
|||
int v = pl->terms[0].variable;
|
||||
if (v >= 0) {
|
||||
kind *new_kind = pl->assert_kind;
|
||||
if (Kinds::Compare::le(new_kind, K_object)) new_kind = K_object;
|
||||
if (Kinds::Behaviour::is_object(new_kind)) new_kind = K_object;
|
||||
kind *old_kind = vta.assigned_kinds[v];
|
||||
if (old_kind) {
|
||||
if (Kinds::Compare::compatible(old_kind, new_kind) == NEVER_MATCH) {
|
||||
|
@ -254,7 +254,7 @@ but not meaningless.
|
|||
|
||||
@<A KIND atom is not allowed if it can be proved to be false@> =
|
||||
kind *need_to_find = pl->assert_kind;
|
||||
if (Kinds::Compare::le(need_to_find, K_object)) need_to_find = K_object;
|
||||
if (Kinds::Behaviour::is_object(need_to_find)) need_to_find = K_object;
|
||||
kind *actually_find = Calculus::Propositions::Checker::kind_of_term(&(pl->terms[0]), &vta, tck);
|
||||
if (Kinds::Compare::compatible(actually_find, need_to_find) == NEVER_MATCH) {
|
||||
if (tck->log_to_I6_text)
|
||||
|
|
|
@ -322,7 +322,7 @@ interpret no indication of a kind as meaning "object".
|
|||
} else {
|
||||
instance *nc = Instances::new(NW, K);
|
||||
current_interpretation_as_infs[v] = Instances::as_subject(nc);
|
||||
if ((K == NULL) || (Kinds::Compare::le(K, K_object)))
|
||||
if ((K == NULL) || (Kinds::Behaviour::is_object(K)))
|
||||
current_interpretation_as_spec[v] = Rvalues::from_instance(nc);
|
||||
else
|
||||
current_interpretation_as_spec[v] = Rvalues::from_instance(nc);
|
||||
|
|
|
@ -734,7 +734,7 @@ a loop traverses.
|
|||
=
|
||||
int Calculus::Deferrals::has_finite_domain(kind *K) {
|
||||
if (K == NULL) return FALSE;
|
||||
if (Kinds::Compare::le(K, K_object)) return TRUE;
|
||||
if (Kinds::Behaviour::is_object(K)) return TRUE;
|
||||
if (Kinds::Behaviour::is_an_enumeration(K)) return TRUE;
|
||||
if (Str::len(K->construct->loop_domain_schema) > 0) return TRUE;
|
||||
return FALSE;
|
||||
|
@ -891,7 +891,7 @@ void Calculus::Deferrals::emit_repeat_through_domain_S(parse_node *spec,
|
|||
inter_symbol *val_var_s = LocalVariables::declare_this(v1, FALSE, 8);
|
||||
inter_symbol *aux_var_s = LocalVariables::declare_this(v2, FALSE, 8);
|
||||
|
||||
if (Kinds::Compare::le(K, K_object)) {
|
||||
if (Kinds::Behaviour::is_object(K)) {
|
||||
pcalc_prop *domain_prop = NULL; int use_as_is = FALSE;
|
||||
if (Calculus::Deferrals::spec_is_variable_of_kind_description(spec)) use_as_is = TRUE;
|
||||
else {
|
||||
|
|
|
@ -64,7 +64,7 @@ int Calculus::Equality::REL_typecheck(binary_predicate *bp,
|
|||
|
||||
if (Plugins::Call::typecheck_equality(kinds_of_terms[0], kinds_of_terms[1]))
|
||||
return ALWAYS_MATCH;
|
||||
if ((Kinds::Compare::le(kinds_of_terms[0], K_object)) &&
|
||||
if ((Kinds::Behaviour::is_object(kinds_of_terms[0])) &&
|
||||
(Properties::Conditions::name_can_coincide_with_property(kinds_of_terms[1])))
|
||||
@<Apply rule for "is" applied to an object and a value@>
|
||||
else if ((K_understanding) && (Kinds::Compare::eq(kinds_of_terms[1], K_understanding)) &&
|
||||
|
@ -190,7 +190,7 @@ int Calculus::Equality::REL_compile(int task, binary_predicate *bp, annotated_i6
|
|||
st[0] = Calculus::Deferrals::Cinders::kind_of_value_of_term(asch->pt0);
|
||||
st[1] = Calculus::Deferrals::Cinders::kind_of_value_of_term(asch->pt1);
|
||||
|
||||
if ((Kinds::Compare::le(st[0], K_object)) &&
|
||||
if ((Kinds::Behaviour::is_object(st[0])) &&
|
||||
(Properties::Conditions::name_can_coincide_with_property(st[1])) && (Properties::Conditions::get_coinciding_property(st[1])))
|
||||
@<Handle the case of setting a property of A separately@>;
|
||||
|
||||
|
@ -315,7 +315,7 @@ one that's more helpfully specific and return |TRUE|.
|
|||
|
||||
@<Issue problem message for being unable to set equal@> =
|
||||
if (Rvalues::to_instance(asch->pt0.constant)) {
|
||||
if (Kinds::Compare::le(Specifications::to_kind(asch->pt0.constant), K_object))
|
||||
if (Kinds::Behaviour::is_object(Specifications::to_kind(asch->pt0.constant)))
|
||||
StandardProblems::sentence_problem(Task::syntax_tree(), _p_(PM_CantEquateValues),
|
||||
"equality is not something I can change",
|
||||
"so either those are already the same or are different, and I "
|
||||
|
|
|
@ -39,7 +39,7 @@ properties only if its kind passes this test:
|
|||
int Kinds::Knowledge::has_properties(kind *K) {
|
||||
if (K == NULL) return FALSE;
|
||||
if (Kinds::Behaviour::is_an_enumeration(K)) return TRUE;
|
||||
if (Kinds::Compare::le(K, K_object)) return TRUE;
|
||||
if (Kinds::Behaviour::is_object(K)) return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -120,7 +120,7 @@ void Kinds::Knowledge::emit_recursive(inference_subject *within) {
|
|||
void Kinds::Knowledge::emit(inference_subject *infs) {
|
||||
kind *K = InferenceSubjects::as_kind(infs);
|
||||
if ((Kinds::Knowledge::has_properties(K)) &&
|
||||
(Kinds::Compare::le(K, K_object) == FALSE))
|
||||
(Kinds::Behaviour::is_object(K) == FALSE))
|
||||
Properties::Emit::emit_subject(infs);
|
||||
Properties::OfValues::check_allowable(K);
|
||||
}
|
||||
|
@ -150,7 +150,7 @@ int Kinds::Knowledge::compatible(kind *from, kind *to) {
|
|||
}
|
||||
|
||||
kind *Kinds::Knowledge::super(kind *K) {
|
||||
if (Kinds::Compare::le(K, K_object)) {
|
||||
if (Kinds::Behaviour::is_object(K)) {
|
||||
inference_subject *infs = Kinds::Knowledge::as_subject(K);
|
||||
return InferenceSubjects::as_kind(InferenceSubjects::narrowest_broader_subject(infs));
|
||||
}
|
||||
|
@ -158,7 +158,7 @@ kind *Kinds::Knowledge::super(kind *K) {
|
|||
}
|
||||
|
||||
void Kinds::Knowledge::move_within(kind *sub, kind *super) {
|
||||
if (Kinds::Compare::le(super, K_object))
|
||||
if (Kinds::Behaviour::is_object(super))
|
||||
InferenceSubjects::falls_within(
|
||||
Kinds::Knowledge::as_subject(sub), Kinds::Knowledge::as_subject(super));
|
||||
}
|
||||
|
|
|
@ -39,7 +39,7 @@ kinds being compiled to an I6 |Class|.
|
|||
|
||||
=
|
||||
inter_name *Kinds::RunTime::I6_classname(kind *K) {
|
||||
if (Kinds::Compare::le(K, K_object)) return Kinds::RunTime::iname(K);
|
||||
if (Kinds::Behaviour::is_object(K)) return Kinds::RunTime::iname(K);
|
||||
internal_error("no I6 classname available");
|
||||
return NULL;
|
||||
}
|
||||
|
@ -59,7 +59,7 @@ noun *Kinds::RunTime::register(kind *K, kind *super, wording W, general_pointer
|
|||
ADD_TO_LEXICON_NTOPT + WITH_PLURAL_FORMS_NTOPT,
|
||||
KIND_SLOW_MC, data, Task::language_of_syntax());
|
||||
Sentences::Headings::initialise_noun_resolution(nt);
|
||||
if (Kinds::Compare::le(super, K_object))
|
||||
if (Kinds::Behaviour::is_object(super))
|
||||
Kinds::Behaviour::set_range_number(K, no_kinds_of_object++);
|
||||
return nt;
|
||||
}
|
||||
|
@ -1105,7 +1105,7 @@ void Kinds::RunTime::compile_nnci(inter_name *name, int val) {
|
|||
void Kinds::RunTime::compile_instance_counts(void) {
|
||||
kind *K;
|
||||
LOOP_OVER_BASE_KINDS(K) {
|
||||
if ((Kinds::Behaviour::is_an_enumeration(K)) || (Kinds::Compare::le(K, K_object))) {
|
||||
if ((Kinds::Behaviour::is_an_enumeration(K)) || (Kinds::Behaviour::is_object(K))) {
|
||||
TEMPORARY_TEXT(ICN)
|
||||
WRITE_TO(ICN, "ICOUNT_");
|
||||
Kinds::Textual::write(ICN, K);
|
||||
|
|
|
@ -1459,7 +1459,7 @@ mistake having been made.
|
|||
if ((lvar) && (LocalVariables::protected(lvar)))
|
||||
outcome = NEVER_MATCH;
|
||||
else {
|
||||
if (Kinds::Compare::le(Specifications::to_kind(target_spec), K_object))
|
||||
if (Kinds::Behaviour::is_object(Specifications::to_kind(target_spec)))
|
||||
@<Step (4I.d.1) Police an assignment to an object@>;
|
||||
|
||||
if (ph->type_data.token_sequence[0].construct != NEW_LOCAL_PT_CONSTRUCT)
|
||||
|
@ -1865,7 +1865,7 @@ us there.
|
|||
inference_subject *owning_subject = InferenceSubjects::from_specification(the_owner);
|
||||
if (owning_subject == NULL) owning_subject = Kinds::Knowledge::as_subject(K2);
|
||||
if (World::Permissions::find(owning_subject, prn, TRUE) == NULL) {
|
||||
if ((Kinds::Compare::le(K2, K_object) == FALSE) ||
|
||||
if ((Kinds::Behaviour::is_object(K2) == FALSE) ||
|
||||
((Rvalues::is_object(the_owner)) &&
|
||||
(Rvalues::is_self_object_constant(the_owner) == FALSE)))
|
||||
@<Issue a problem message for not being allowed this property@>;
|
||||
|
@ -3380,7 +3380,7 @@ int Dash::validate_parameter(parse_node *spec, kind *K) {
|
|||
if (Specifications::is_description(spec)) Dash::check_condition(spec);
|
||||
else Dash::check_value(spec, NULL); /* to force a generic return kind to be evaluated */
|
||||
kind_found = Specifications::to_kind(spec);
|
||||
if ((Kinds::get_construct(kind_found) == CON_property) && (Kinds::Compare::le(K, K_object)))
|
||||
if ((Kinds::get_construct(kind_found) == CON_property) && (Kinds::Behaviour::is_object(K)))
|
||||
return TRUE;
|
||||
if ((K_understanding) && (Kinds::Compare::eq(kind_found, K_snippet)) &&
|
||||
(Kinds::Compare::eq(K, K_understanding)))
|
||||
|
|
|
@ -94,7 +94,7 @@ instance *Rvalues::to_instance(parse_node *spec) { CONV_TO(instance) }
|
|||
=
|
||||
int Rvalues::is_object(parse_node *spec) {
|
||||
if ((Node::is(spec, CONSTANT_NT)) &&
|
||||
(Kinds::Compare::le(Node::get_kind_of_value(spec), K_object)))
|
||||
(Kinds::Behaviour::is_object(Node::get_kind_of_value(spec))))
|
||||
return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -662,7 +662,7 @@ kinds of value:
|
|||
if (N) Emit::holster(VH, N);
|
||||
return;
|
||||
}
|
||||
if (Kinds::Compare::le(kind_of_constant, K_object)) {
|
||||
if (Kinds::Behaviour::is_object(kind_of_constant)) {
|
||||
if (Annotations::read_int(spec_found, self_object_ANNOT)) {
|
||||
if (Holsters::data_acceptable(VH)) {
|
||||
Emit::holster(VH, Hierarchy::find(SELF_HL));
|
||||
|
|
|
@ -296,7 +296,7 @@ void Properties::EitherOr::ADJ_compiling_soon(adjective_meaning *am, property *p
|
|||
Adjectives::Meanings::set_ready_flag(am);
|
||||
|
||||
kind *K = Adjectives::Meanings::get_domain(am);
|
||||
if (Kinds::Compare::le(K, K_object))
|
||||
if (Kinds::Behaviour::is_object(K))
|
||||
@<Set the schemata for an either/or property adjective with objects as domain@>
|
||||
else
|
||||
@<Set the schemata for an either/or property adjective with some other domain@>;
|
||||
|
|
|
@ -48,7 +48,7 @@ each one is marked when visited.
|
|||
|
||||
@<Compile the actual object@> =
|
||||
@<Annotate with the spatial depth@>;
|
||||
if ((I) && (Kinds::Compare::le(Instances::to_kind(I), K_object))) words_used++;
|
||||
if ((I) && (Kinds::Behaviour::is_object(Instances::to_kind(I)))) words_used++;
|
||||
@<Append any inclusions the source text requested@>;
|
||||
Properties::begin_traverse();
|
||||
@<Emit inferred object properties@>;
|
||||
|
@ -56,7 +56,7 @@ each one is marked when visited.
|
|||
|
||||
@<Annotate with the spatial depth@> =
|
||||
#ifdef IF_MODULE
|
||||
if ((I) && (Kinds::Compare::le(Instances::to_kind(I), K_object))) {
|
||||
if ((I) && (Kinds::Behaviour::is_object(Instances::to_kind(I)))) {
|
||||
int AC = PL::Spatial::get_definition_depth(I);
|
||||
if (AC > 0) Produce::annotate_i(iname, ARROW_COUNT_IANN, (inter_ti) AC);
|
||||
}
|
||||
|
|
|
@ -63,7 +63,7 @@ and it seems best to reject the extra complexity needed.
|
|||
|
||||
=
|
||||
void Properties::OfValues::check_allowable(kind *K) {
|
||||
if (Kinds::Compare::le(K, K_object)) return;
|
||||
if (Kinds::Behaviour::is_object(K)) return;
|
||||
if (Kinds::Behaviour::definite(K) == FALSE) return;
|
||||
property *prn;
|
||||
property_permission *pp;
|
||||
|
|
|
@ -164,7 +164,7 @@ be caught later on Inform's run.
|
|||
int compatible = Kinds::Compare::compatible(kinds_of_terms[1], val_kind);
|
||||
if (compatible == ALWAYS_MATCH) safe = TRUE;
|
||||
if (compatible == SOMETIMES_MATCH) {
|
||||
if (Kinds::Compare::le(val_kind, K_object) == FALSE) safe = TRUE;
|
||||
if (Kinds::Behaviour::is_object(val_kind) == FALSE) safe = TRUE;
|
||||
#ifdef IF_MODULE
|
||||
if ((Kinds::Compare::eq(val_kind, K_direction)) ||
|
||||
(Kinds::Compare::eq(val_kind, K_room)) ||
|
||||
|
@ -226,7 +226,7 @@ int Properties::SettingRelations::REL_compile(int task,
|
|||
binary_predicate *bp, annotated_i6_schema *asch) {
|
||||
kind *K = Calculus::Deferrals::Cinders::kind_of_value_of_term(asch->pt0);
|
||||
|
||||
if (Kinds::Compare::le(K, K_object)) return FALSE;
|
||||
if (Kinds::Behaviour::is_object(K)) return FALSE;
|
||||
|
||||
property *prn = bp->set_property;
|
||||
switch (task) {
|
||||
|
|
|
@ -82,12 +82,12 @@ int Properties::ProvisionRelation::REL_compile(int task, binary_predicate *bp,
|
|||
property *prn = Rvalues::to_property(asch->pt1.constant);
|
||||
if (K) {
|
||||
if (prn) {
|
||||
if (Kinds::Compare::le(K, K_object))
|
||||
if (Kinds::Behaviour::is_object(K))
|
||||
@<Compile an I6 run-time test of property provision@>
|
||||
else
|
||||
@<Determine the result now, since we know already, and compile only the outcome@>;
|
||||
return TRUE;
|
||||
} else if (Kinds::Compare::le(K, K_object)) {
|
||||
} else if (Kinds::Behaviour::is_object(K)) {
|
||||
kind *PK = Calculus::Deferrals::Cinders::kind_of_value_of_term(asch->pt1);
|
||||
if (Kinds::get_construct(PK) == CON_property) {
|
||||
if (Kinds::Compare::eq(K_truth_state, Kinds::unary_construction_material(PK)))
|
||||
|
|
|
@ -348,7 +348,7 @@ instance *InferenceSubjects::as_instance(inference_subject *infs) {
|
|||
instance *InferenceSubjects::as_object_instance(inference_subject *infs) {
|
||||
if ((infs) && (infs->kind_of_infs == INST_SUB)) {
|
||||
instance *nc = RETRIEVE_POINTER_instance(infs->represents);
|
||||
if (Kinds::Compare::le(Instances::to_kind(nc), K_object))
|
||||
if (Kinds::Behaviour::is_object(Instances::to_kind(nc)))
|
||||
return nc;
|
||||
}
|
||||
return NULL;
|
||||
|
|
|
@ -321,7 +321,7 @@ should return |FALSE|; if in any doubt, we must return |TRUE|.
|
|||
=
|
||||
int Tables::Support::requires_blanks_bitmap(kind *K) {
|
||||
if (K == NULL) return FALSE;
|
||||
if (Kinds::Compare::le(K, K_object)) return FALSE;
|
||||
if (Kinds::Behaviour::is_object(K)) return FALSE;
|
||||
if (Kinds::Behaviour::is_an_enumeration(K)) return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
|
|
@ -18,7 +18,7 @@ void Phrases::Phrasal::define_adjective_by_phrase(parse_node *p, phrase *ph, wor
|
|||
Calculus::Schemas::modify(sch, "(%n(*1))", Phrases::iname(ph));
|
||||
*CW = def->domain_calling;
|
||||
*K = Adjectives::Meanings::get_domain_forcing(def->am_of_def);
|
||||
if ((*K == NULL) || (Kinds::Compare::le(*K, K_object)))
|
||||
if ((*K == NULL) || (Kinds::Behaviour::is_object(*K)))
|
||||
*K = K_object;
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -830,7 +830,7 @@ an instance of the kind "bystander".
|
|||
int LocalVariables::permit_as_new_local(parse_node *found, int as_calling) {
|
||||
if (Node::is(found, AMBIGUITY_NT)) found = found->down;
|
||||
if ((Specifications::is_kind_like(found)) &&
|
||||
(Kinds::Compare::le(Specifications::to_kind(found), K_object) == FALSE)) return FALSE;
|
||||
(Kinds::Behaviour::is_object(Specifications::to_kind(found)) == FALSE)) return FALSE;
|
||||
if ((Node::is(found, UNKNOWN_NT)) ||
|
||||
(Node::is(found, NONLOCAL_VARIABLE_NT)) ||
|
||||
(Specifications::is_description(found)) ||
|
||||
|
@ -1048,7 +1048,7 @@ void LocalVariables::end_condition_emit(void) {
|
|||
Produce::ref_symbol(Emit::tree(), K_value, lvar_s);
|
||||
kind *K = LocalVariables::kind(lvar);
|
||||
if ((K == NULL) ||
|
||||
(Kinds::Compare::le(K, K_object)) ||
|
||||
(Kinds::Behaviour::is_object(K)) ||
|
||||
(Kinds::Behaviour::definite(K) == FALSE) ||
|
||||
(Kinds::RunTime::emit_default_value_as_val(K, EMPTY_WORDING, "'called' value") != TRUE))
|
||||
Produce::val(Emit::tree(), K_truth_state, LITERAL_IVAL, 0);
|
||||
|
|
|
@ -729,7 +729,7 @@ the problem messages are phrased differently if something goes wrong.
|
|||
|
||||
if (allow_me == ALWAYS_MATCH) {
|
||||
Specifications::Compiler::emit_to_kind(supplied, kind_needed);
|
||||
} else if ((allow_me == SOMETIMES_MATCH) && (Kinds::Compare::le(kind_needed, K_object))) {
|
||||
} else if ((allow_me == SOMETIMES_MATCH) && (Kinds::Behaviour::is_object(kind_needed))) {
|
||||
Produce::inv_call_iname(Emit::tree(), Hierarchy::find(CHECKKINDRETURNED_HL));
|
||||
Produce::down(Emit::tree());
|
||||
Specifications::Compiler::emit_to_kind(supplied, kind_needed);
|
||||
|
|
|
@ -549,7 +549,7 @@ inter_name *Emit::named_iname_constant(inter_name *name, kind *K, inter_name *in
|
|||
inter_symbol *val_kind = Produce::kind_to_symbol(K);
|
||||
inter_symbol *alias = (iname)?InterNames::to_symbol(iname):NULL;
|
||||
if (alias == NULL) {
|
||||
if (Kinds::Compare::le(K, K_object)) alias = Site::veneer_symbol(Emit::tree(), NOTHING_VSYMB);
|
||||
if (Kinds::Behaviour::is_object(K)) alias = Site::veneer_symbol(Emit::tree(), NOTHING_VSYMB);
|
||||
else internal_error("can't handle a null alias");
|
||||
}
|
||||
inter_ti val1 = 0, val2 = 0;
|
||||
|
|
|
@ -128,7 +128,7 @@ void DefineByTable::kind_defined_by_table(parse_node *V) {
|
|||
@<Determine the kind of what to make@>;
|
||||
@<Check that this is a kind where it makes sense to enumerate new values@>;
|
||||
K = Kinds::weaken(K, K_object);
|
||||
if (!(Kinds::Compare::le(K, K_object))) Kinds::RunTime::set_defined_by_table(K, t);
|
||||
if (!(Kinds::Behaviour::is_object(K))) Kinds::RunTime::set_defined_by_table(K, t);
|
||||
t->kind_defined_in_this_table = K;
|
||||
Tables::Columns::set_kind(t->columns[0].column_identity, t, K);
|
||||
@<Create values for this kind as enumerated by names in the first column@>;
|
||||
|
@ -139,7 +139,7 @@ void DefineByTable::kind_defined_by_table(parse_node *V) {
|
|||
int defining_objects = FALSE;
|
||||
if (Specifications::is_kind_like(what)) {
|
||||
K = Specifications::to_kind(what);
|
||||
if (Kinds::Compare::le(K, K_object)) defining_objects = TRUE;
|
||||
if (Kinds::Behaviour::is_object(K)) defining_objects = TRUE;
|
||||
} else if (Specifications::object_exactly_described_if_any(what)) {
|
||||
@<Issue PM_TableDefiningObject problem@>
|
||||
return;
|
||||
|
@ -162,7 +162,7 @@ void DefineByTable::kind_defined_by_table(parse_node *V) {
|
|||
"define a single specific object, as here, is not allowed.");
|
||||
|
||||
@<Check that this is a kind where it makes sense to enumerate new values@> =
|
||||
if ((Kinds::Compare::le(K, K_object) == FALSE) &&
|
||||
if ((Kinds::Behaviour::is_object(K) == FALSE) &&
|
||||
(Kinds::Behaviour::has_named_constant_values(K) == FALSE)) {
|
||||
LOG("K is %u\n", K);
|
||||
Problems::quote_source(1, current_sentence);
|
||||
|
|
|
@ -142,7 +142,7 @@ void Assertions::Assemblies::make_generalisation(parse_node *look_for, parse_nod
|
|||
@<Forbid generalisation about fixed kinds@> =
|
||||
kind *instance_kind = InferenceSubjects::as_nonobject_kind(k);
|
||||
if ((instance_kind) &&
|
||||
(Kinds::Compare::le(instance_kind, K_object) == FALSE) &&
|
||||
(Kinds::Behaviour::is_object(instance_kind) == FALSE) &&
|
||||
(Kinds::Behaviour::has_named_constant_values(instance_kind) == FALSE)) {
|
||||
LOG("$T", look_for);
|
||||
LOG("$T", what_to_make);
|
||||
|
|
|
@ -1123,7 +1123,7 @@ this ought to be allowed...
|
|||
return;
|
||||
}
|
||||
|
||||
if (Kinds::Compare::le(Specifications::to_kind(Node::get_evaluation(px)), K_object))
|
||||
if (Kinds::Behaviour::is_object(Specifications::to_kind(Node::get_evaluation(px))))
|
||||
Problems::Using::assertion_problem(Task::syntax_tree(), _p_(PM_KindRelated),
|
||||
"something described only by its kind should not be given a "
|
||||
"specific place or role in the world",
|
||||
|
@ -1505,7 +1505,7 @@ the "creation proposition" of Y, and we now assert this to be true about X.
|
|||
@<Case 40 - COMMON NOUN vs PROPER NOUN@> =
|
||||
parse_node *spec = Node::get_evaluation(py);
|
||||
@<Silently pass sentences like "The colours are red and blue."@>;
|
||||
if (Kinds::Compare::le(Specifications::to_kind(Node::get_evaluation(py)), K_object))
|
||||
if (Kinds::Behaviour::is_object(Specifications::to_kind(Node::get_evaluation(py))))
|
||||
Assertions::issue_value_equation_problem(py, px);
|
||||
else Problems::Using::assertion_problem(Task::syntax_tree(), _p_(PM_CommonIsProper),
|
||||
"this seems to say that a general description is something else",
|
||||
|
|
|
@ -77,8 +77,8 @@ For both these reasons, then, we perform a simple type-check here.
|
|||
Problems::issue_problem_segment(
|
||||
"The sentence %1 tells me that '%2', which is %4 that varies, "
|
||||
"should start out with the value '%3', but this is %5 and not %4.");
|
||||
if ((Kinds::Compare::le(constant_kind, K_object)) &&
|
||||
(!Kinds::Compare::le(kind_as_declared, K_object)))
|
||||
if ((Kinds::Behaviour::is_object(constant_kind)) &&
|
||||
(!Kinds::Behaviour::is_object(kind_as_declared)))
|
||||
Problems::issue_problem_segment(
|
||||
" %PIn sentences like this, when I can't understand some text, "
|
||||
"I often assume that it's meant to be a new object. So it may "
|
||||
|
|
|
@ -225,7 +225,7 @@ in the node's subject, so this case is easy.
|
|||
else if (Specifications::is_kind_like(spec)) found = Specifications::to_kind(spec);
|
||||
if (found) {
|
||||
*governing = p;
|
||||
if (Kinds::Compare::le(found, K_object)) return K_object;
|
||||
if (Kinds::Behaviour::is_object(found)) return K_object;
|
||||
}
|
||||
return found;
|
||||
}
|
||||
|
@ -416,7 +416,7 @@ from the tree.
|
|||
}
|
||||
if (<creation-problem-diagnosis>(W)) W = EMPTY_WORDING;
|
||||
Node::set_text(p, W);
|
||||
if (((create_as == NULL) || (Kinds::Compare::le(create_as, K_object))) &&
|
||||
if (((create_as == NULL) || (Kinds::Behaviour::is_object(create_as))) &&
|
||||
(prevailing_mood != INITIALLY_CE) &&
|
||||
(prevailing_mood != CERTAIN_CE)) {
|
||||
instance *recent_creation = NULL;
|
||||
|
@ -844,7 +844,7 @@ void Assertions::Creator::convert_instance_to_nounphrase(parse_node *p, binary_p
|
|||
kind *instance_kind = K_object;
|
||||
if (Specifications::is_kind_like(Node::get_evaluation(p)))
|
||||
instance_kind = Specifications::to_kind(Node::get_evaluation(p));
|
||||
if ((Kinds::Compare::le(instance_kind, K_object) == FALSE) &&
|
||||
if ((Kinds::Behaviour::is_object(instance_kind) == FALSE) &&
|
||||
(Kinds::Behaviour::has_named_constant_values(instance_kind) == FALSE))
|
||||
@<Point out that it's impossible to create values implicitly for this kind@>;
|
||||
@<Calculate the instance count, that is, the number of duplicates to be made@>;
|
||||
|
@ -924,7 +924,7 @@ to a different vehicle object.
|
|||
wording NW = EMPTY_WORDING, NAW = EMPTY_WORDING;
|
||||
int propriety = FALSE;
|
||||
@<Confect a name for the new object, if that's the bag we're into@>;
|
||||
if (Kinds::Compare::le(instance_kind, K_object) == FALSE)
|
||||
if (Kinds::Behaviour::is_object(instance_kind) == FALSE)
|
||||
@<Check that the new name is non-empty and distinct from all existing ones@>;
|
||||
NW = Wordings::truncate(NW, 32); /* truncate to the maximum length */
|
||||
parse_node *pz = Node::new(PROPER_NOUN_NT);
|
||||
|
@ -954,7 +954,7 @@ and an |COMMON_NOUN_NT| node, "nose".
|
|||
inference_subject *owner = Node::get_implicit_in_creation_of(current_sentence);
|
||||
if ((owner) && (instance_count == 1) &&
|
||||
((confect_name_flag) ||
|
||||
(Kinds::Compare::le(instance_kind, K_object) == FALSE) || (Wordings::nonempty(CW)))) {
|
||||
(Kinds::Behaviour::is_object(instance_kind) == FALSE) || (Wordings::nonempty(CW)))) {
|
||||
wording OW = InferenceSubjects::get_name_text(owner);
|
||||
|
||||
inference_subject *subject_here = Node::get_subject(p);
|
||||
|
|
|
@ -141,7 +141,7 @@ full, whereas a "tuna fish" (an object) can be called just "tuna".
|
|||
@<Make a noun for the new instance@> =
|
||||
int exact_parsing = TRUE, any_parsing = TRUE;
|
||||
if ((cp) && (Properties::Conditions::of_what(cp))) any_parsing = FALSE;
|
||||
if (Kinds::Compare::le(K, K_object)) exact_parsing = FALSE;
|
||||
if (Kinds::Behaviour::is_object(K)) exact_parsing = FALSE;
|
||||
|
||||
if (any_parsing) {
|
||||
if (exact_parsing)
|
||||
|
@ -172,7 +172,7 @@ for objects within kinds is certainly useful, but it's harder to do and will
|
|||
be done later on: see the "Instance Counts" plugin.
|
||||
|
||||
@<Add the new instance to its enumeration@> =
|
||||
if (!(Kinds::Compare::le(K, K_object))) {
|
||||
if (!(Kinds::Behaviour::is_object(K))) {
|
||||
if (Kinds::Behaviour::has_named_constant_values(K) == FALSE)
|
||||
internal_error("tried to make an instance value for impossible kind");
|
||||
I->enumeration_index = Kinds::Behaviour::new_enumerated_value(Task::syntax_tree(), K);
|
||||
|
@ -250,7 +250,7 @@ void Instances::write(OUTPUT_STREAM, instance *I) {
|
|||
if (I== NULL) { WRITE("<null instance>"); return; }
|
||||
if (Streams::I6_escapes_enabled(DL) == FALSE) WRITE("I%d", I->allocation_id);
|
||||
Nouns::write(OUT, I->tag);
|
||||
if (!(Kinds::Compare::le(Instances::to_kind(I), K_object))) {
|
||||
if (!(Kinds::Behaviour::is_object(Instances::to_kind(I)))) {
|
||||
WRITE("[");
|
||||
Kinds::Textual::write(OUT, Instances::to_kind(I));
|
||||
WRITE("]");
|
||||
|
@ -368,7 +368,7 @@ instance *Instances::parse_object(wording W) {
|
|||
parse_node *pn = RETRIEVE_POINTER_parse_node(Nouns::meaning(nt));
|
||||
if (Node::is(pn, CONSTANT_NT)) {
|
||||
kind *K = Node::get_kind_of_value(pn);
|
||||
if (Kinds::Compare::le(K, K_object))
|
||||
if (Kinds::Behaviour::is_object(K))
|
||||
return Node::get_constant_instance(pn);
|
||||
}
|
||||
}
|
||||
|
@ -705,7 +705,7 @@ int Instances::SUBJ_compile_all(void) {
|
|||
LOOP_OVER_OBJECTS_IN_COMPILATION_SEQUENCE(I)
|
||||
Instances::SUBJ_compile(Instances::as_subject(I));
|
||||
LOOP_OVER(I, instance)
|
||||
if (Kinds::Compare::le(Instances::to_kind(I), K_object) == FALSE)
|
||||
if (Kinds::Behaviour::is_object(Instances::to_kind(I)) == FALSE)
|
||||
Instances::SUBJ_compile(Instances::as_subject(I));
|
||||
#ifdef IF_MODULE
|
||||
PL::Naming::compile_small_names();
|
||||
|
|
|
@ -271,11 +271,11 @@ int Adjectives::Meanings::applicable_to(adjective *aph,
|
|||
am->setting_domain = FALSE;
|
||||
}
|
||||
kind *am_kind = Adjectives::Meanings::get_domain(am);
|
||||
if (Kinds::Compare::le(am_kind, K_object)) {
|
||||
if (Kinds::Behaviour::is_object(am_kind)) {
|
||||
if (K == NULL) return TRUE;
|
||||
if (Kinds::Compare::le(K, K_object)) return TRUE;
|
||||
if (Kinds::Behaviour::is_object(K)) return TRUE;
|
||||
} else {
|
||||
if ((K) && (Kinds::Compare::le(K, K_object) == FALSE) &&
|
||||
if ((K) && (Kinds::Behaviour::is_object(K) == FALSE) &&
|
||||
(Kinds::Compare::compatible(K, am_kind) == ALWAYS_MATCH))
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -588,7 +588,7 @@ disambiguation is used when applying adjectives to objects.
|
|||
|
||||
=
|
||||
void Adjectives::Meanings::set_domain_from_kind(adjective_meaning *am, kind *K) {
|
||||
if ((K == NULL) || (Kinds::Compare::le(K, K_object))) K = K_object;
|
||||
if ((K == NULL) || (Kinds::Behaviour::is_object(K))) K = K_object;
|
||||
am->domain_infs = Kinds::Knowledge::as_subject(K);
|
||||
am->domain_kind = K;
|
||||
am->domain_text = EMPTY_WORDING;
|
||||
|
@ -845,7 +845,7 @@ i6_schema *Adjectives::Meanings::set_i6_schema(adjective_meaning *am,
|
|||
int T, int via_support) {
|
||||
kind *K = Adjectives::Meanings::get_domain(am);
|
||||
if (K == NULL) K = K_object;
|
||||
if (Kinds::Compare::le(K, K_object)) via_support = TRUE;
|
||||
if (Kinds::Behaviour::is_object(K)) via_support = TRUE;
|
||||
am->task_via_support_routine[T] = via_support;
|
||||
return &(am->i6s_for_runtime_task[T]);
|
||||
}
|
||||
|
|
|
@ -240,8 +240,8 @@ this means using up heap memory allocated dynamically at run-time.
|
|||
@<Work out the kinds of the terms in the relation@> =
|
||||
|
||||
rvno = TRUE;
|
||||
if ((Kinds::Compare::le(RR->terms[0].domain, K_object)) &&
|
||||
(Kinds::Compare::le(RR->terms[1].domain, K_object))) rvno = FALSE;
|
||||
if ((Kinds::Behaviour::is_object(RR->terms[0].domain)) &&
|
||||
(Kinds::Behaviour::is_object(RR->terms[1].domain))) rvno = FALSE;
|
||||
|
||||
if (Wordings::empty(RR->CONW)) {
|
||||
if ((Kinds::Compare::lt(RR->terms[0].domain, K_object) == FALSE) &&
|
||||
|
@ -283,12 +283,12 @@ omitted from the index.
|
|||
storage_kind = RR->terms[0].domain;
|
||||
if (RR->terms[1].domain) PK = RR->terms[1].domain;
|
||||
}
|
||||
if ((PK) && (Kinds::Compare::le(PK, K_object) == FALSE)) Properties::Valued::set_kind(prn, PK);
|
||||
if ((PK) && (Kinds::Behaviour::is_object(PK) == FALSE)) Properties::Valued::set_kind(prn, PK);
|
||||
if (storage_kind) storage_infs = Kinds::Knowledge::as_subject(storage_kind);
|
||||
else storage_infs = NULL;
|
||||
if (Kinds::Compare::le(storage_kind, K_object) == FALSE) bp->storage_kind = storage_kind;
|
||||
if (Kinds::Behaviour::is_object(storage_kind) == FALSE) bp->storage_kind = storage_kind;
|
||||
if (((RR->terms[0].unique) || (RR->terms[1].unique)) && (PK) &&
|
||||
(Kinds::Compare::le(PK, K_object) == FALSE))
|
||||
(Kinds::Behaviour::is_object(PK) == FALSE))
|
||||
Properties::Valued::now_used_for_non_typesafe_relation(prn);
|
||||
|
||||
@<Issue a problem message since this won't be stored in a property@> =
|
||||
|
@ -314,7 +314,7 @@ and $14D$ bytes on Glulx, where $D$ is the size of the domain...
|
|||
@<Complete as an asymmetric one-to-one BP@> =
|
||||
bp->form_of_relation = Relation_OtoO;
|
||||
provide_prn = TRUE;
|
||||
if (Kinds::Compare::le(storage_kind, K_object)) {
|
||||
if (Kinds::Behaviour::is_object(storage_kind)) {
|
||||
bp->make_true_function = Calculus::Schemas::new("Relation_Now1to1(*2,%n,*1)", i6_prn_name);
|
||||
bp->make_false_function = Calculus::Schemas::new("Relation_NowN1toV(*2,%n,*1)", i6_prn_name);
|
||||
} else {
|
||||
|
@ -329,7 +329,7 @@ and $14D$ bytes on Glulx, where $D$ is the size of the domain...
|
|||
@<Complete as a one-to-various BP@> =
|
||||
bp->form_of_relation = Relation_OtoV;
|
||||
provide_prn = TRUE;
|
||||
if (Kinds::Compare::le(storage_kind, K_object)) {
|
||||
if (Kinds::Behaviour::is_object(storage_kind)) {
|
||||
bp->make_true_function = Calculus::Schemas::new("*2.%n = *1", i6_prn_name);
|
||||
bp->make_false_function = Calculus::Schemas::new("Relation_NowN1toV(*2,%n,*1)", i6_prn_name);
|
||||
} else {
|
||||
|
@ -344,7 +344,7 @@ and $14D$ bytes on Glulx, where $D$ is the size of the domain...
|
|||
@<Complete as a various-to-one BP@> =
|
||||
bp->form_of_relation = Relation_VtoO;
|
||||
provide_prn = TRUE;
|
||||
if (Kinds::Compare::le(storage_kind, K_object)) {
|
||||
if (Kinds::Behaviour::is_object(storage_kind)) {
|
||||
bp->make_true_function = Calculus::Schemas::new("*1.%n = *2", i6_prn_name);
|
||||
bp->make_false_function = Calculus::Schemas::new("Relation_NowN1toV(*1,%n,*2)", i6_prn_name);
|
||||
} else {
|
||||
|
@ -374,7 +374,7 @@ another".
|
|||
@<Complete as a symmetric one-to-one BP@> =
|
||||
bp->form_of_relation = Relation_Sym_OtoO;
|
||||
provide_prn = TRUE;
|
||||
if (Kinds::Compare::le(storage_kind, K_object)) {
|
||||
if (Kinds::Behaviour::is_object(storage_kind)) {
|
||||
bp->make_true_function = Calculus::Schemas::new("Relation_NowS1to1(*2,%n,*1)", i6_prn_name);
|
||||
bp->make_false_function = Calculus::Schemas::new("Relation_NowSN1to1(*2,%n,*1)", i6_prn_name);
|
||||
} else {
|
||||
|
@ -405,7 +405,7 @@ other in groups".
|
|||
bp->form_of_relation = Relation_Equiv;
|
||||
bp->arbitrary = TRUE;
|
||||
provide_prn = TRUE;
|
||||
if (Kinds::Compare::le(storage_kind, K_object)) {
|
||||
if (Kinds::Behaviour::is_object(storage_kind)) {
|
||||
bp->test_function = Calculus::Schemas::new("(*1.%n == *2.%n)", i6_prn_name, i6_prn_name);
|
||||
bp->make_true_function = Calculus::Schemas::new("Relation_NowEquiv(*1,%n,*2)", i6_prn_name);
|
||||
bp->make_false_function = Calculus::Schemas::new("Relation_NowNEquiv(*1,%n,*2)", i6_prn_name);
|
||||
|
@ -448,7 +448,7 @@ have the form $B(x, f_1(x))$.
|
|||
i6_schema *f0 = NULL, *f1 = NULL;
|
||||
if (RR->terms[0].unique) {
|
||||
if (RR->terms[1].domain) {
|
||||
if (Kinds::Compare::le(RR->terms[1].domain, K_object))
|
||||
if (Kinds::Behaviour::is_object(RR->terms[1].domain))
|
||||
f0 = Calculus::Schemas::new("(*1.%n)", i6_prn_name);
|
||||
else
|
||||
f0 = Calculus::Schemas::new("(GProperty(%k, *1, %n))",
|
||||
|
@ -456,7 +456,7 @@ have the form $B(x, f_1(x))$.
|
|||
}
|
||||
} else if (RR->terms[1].unique) {
|
||||
if (RR->terms[0].domain) {
|
||||
if (Kinds::Compare::le(RR->terms[0].domain, K_object))
|
||||
if (Kinds::Behaviour::is_object(RR->terms[0].domain))
|
||||
f1 = Calculus::Schemas::new("(*1.%n)", i6_prn_name);
|
||||
else
|
||||
f1 = Calculus::Schemas::new("(GProperty(%k, *1, %n))",
|
||||
|
@ -490,7 +490,7 @@ to have a name:
|
|||
int Relations::check_finite_range(kind *K) {
|
||||
if (Kinds::Behaviour::is_an_enumeration(K)) return TRUE;
|
||||
if (K == NULL) return TRUE; /* to recover from earlier problems */
|
||||
if ((Kinds::Compare::le(K, K_object)) || (Kinds::Behaviour::definite(K) == FALSE))
|
||||
if ((Kinds::Behaviour::is_object(K)) || (Kinds::Behaviour::definite(K) == FALSE))
|
||||
StandardProblems::sentence_problem(Task::syntax_tree(), _p_(PM_RangeOverlyBroad),
|
||||
"relations aren't allowed to range over all 'objects' or all 'values'",
|
||||
"as these are too broad. A relation has to be between two kinds of "
|
||||
|
@ -1801,7 +1801,7 @@ in turn.
|
|||
=
|
||||
void Relations::equivalence_relation_add_properties(binary_predicate *bp) {
|
||||
kind *k = BinaryPredicates::term_kind(bp, 1);
|
||||
if (Kinds::Compare::le(k, K_object)) {
|
||||
if (Kinds::Behaviour::is_object(k)) {
|
||||
instance *I;
|
||||
LOOP_OVER_INSTANCES(I, k) {
|
||||
inference_subject *infs = Instances::as_subject(I);
|
||||
|
|
|
@ -675,8 +675,8 @@ void PL::EPSMap::new_map_hint_sentence(int pass, parse_node *p) {
|
|||
scope_k = <<kind:kscope>>;
|
||||
if (Kinds::Compare::lt(scope_k, K_object) == FALSE) scope_k = NULL;
|
||||
if ((scope_k) &&
|
||||
((Kinds::Compare::le(scope_k, K_room)) ||
|
||||
(Kinds::Compare::le(scope_k, K_region)))) {
|
||||
((Kinds::Behaviour::is_object_of_kind(scope_k, K_room)) ||
|
||||
(Kinds::Behaviour::is_object_of_kind(scope_k, K_region)))) {
|
||||
LOGIF(SPATIAL_MAP, "Setting for kind %u\n", scope_k);
|
||||
} else bad_scope = TRUE;
|
||||
break;
|
||||
|
|
|
@ -43,7 +43,7 @@ void PL::Showme::compile_SHOWME_details(void) {
|
|||
void PL::Showme::compile_SHOWME_type(int val, inter_symbol *t_0_s, inter_symbol *na_s) {
|
||||
kind *K;
|
||||
LOOP_OVER_BASE_KINDS(K)
|
||||
if (Kinds::Compare::le(K, K_object))
|
||||
if (Kinds::Behaviour::is_object(K))
|
||||
PL::Showme::compile_SHOWME_type_subj(val, Kinds::Knowledge::as_subject(K), t_0_s, na_s);
|
||||
instance *I;
|
||||
LOOP_OVER_OBJECT_INSTANCES(I)
|
||||
|
@ -173,7 +173,7 @@ routine for colours; and the best thing is to print nothing at all.
|
|||
if (K) {
|
||||
int require_nonzero = FALSE;
|
||||
if ((Properties::Valued::is_used_for_non_typesafe_relation(prn)) ||
|
||||
(Kinds::Compare::le(K, K_object)))
|
||||
(Kinds::Behaviour::is_object(K)))
|
||||
require_nonzero = TRUE;
|
||||
if (require_nonzero) {
|
||||
Produce::inv_primitive(Emit::tree(), IF_BIP);
|
||||
|
|
|
@ -266,8 +266,8 @@ if it turns out to be news, we infer |IS_ROOM_INF| with certainty.
|
|||
=
|
||||
int PL::Spatial::spatial_set_kind_notify(instance *I, kind *k) {
|
||||
kind *kw = Instances::to_kind(I);
|
||||
if ((!(Kinds::Compare::le(kw, K_room))) &&
|
||||
(Kinds::Compare::le(k, K_room)))
|
||||
if ((!(Kinds::Behaviour::is_object_of_kind(kw, K_room))) &&
|
||||
(Kinds::Behaviour::is_object_of_kind(k, K_room)))
|
||||
World::Inferences::draw(IS_ROOM_INF, Instances::as_subject(I), CERTAIN_CE,
|
||||
NULL, NULL);
|
||||
return FALSE;
|
||||
|
@ -665,7 +665,7 @@ when it's legitimately a door.
|
|||
parse_node *sentence_setting_kind = Instances::get_kind_set_sentence(I);
|
||||
if ((designers_choice == NULL) ||
|
||||
((geography_certainty == CERTAIN_CE) &&
|
||||
(Kinds::Compare::le(geography_choice, designers_choice))))
|
||||
(Kinds::Behaviour::is_object_of_kind(geography_choice, designers_choice))))
|
||||
@<Accept the geography choice, since it only refines what we already know@>
|
||||
else if ((geography_certainty == CERTAIN_CE) &&
|
||||
(!((Kinds::Compare::eq(designers_choice, K_door)) &&
|
||||
|
|
|
@ -211,14 +211,14 @@ int PL::Map::map_set_subkind_notify(kind *sub, kind *super) {
|
|||
"geography of the physical world.");
|
||||
return TRUE;
|
||||
}
|
||||
if ((K_backdrop) && (sub == K_door) && (Kinds::Compare::le(super, K_backdrop))) {
|
||||
if ((K_backdrop) && (sub == K_door) && (Kinds::Behaviour::is_object_of_kind(super, K_backdrop))) {
|
||||
StandardProblems::sentence_problem(Task::syntax_tree(), _p_(PM_DoorAdrift),
|
||||
"'door' is not allowed to be a kind of 'backdrop'",
|
||||
"because it's too fundamental to the way Inform maps out the "
|
||||
"geography of the physical world.");
|
||||
return TRUE;
|
||||
}
|
||||
if ((K_backdrop) && (sub == K_backdrop) && (Kinds::Compare::le(super, K_door))) {
|
||||
if ((K_backdrop) && (sub == K_backdrop) && (Kinds::Behaviour::is_object_of_kind(super, K_door))) {
|
||||
StandardProblems::sentence_problem(Task::syntax_tree(), _p_(PM_BackdropAdrift),
|
||||
"'backdrop' is not allowed to be a kind of 'door'",
|
||||
"because it's too fundamental to the way Inform maps out the "
|
||||
|
@ -287,8 +287,8 @@ no need to translate this to other languages.)
|
|||
@ =
|
||||
int PL::Map::map_set_kind_notify(instance *I, kind *k) {
|
||||
kind *kw = Instances::to_kind(I);
|
||||
if ((!(Kinds::Compare::le(kw, K_direction))) &&
|
||||
(Kinds::Compare::le(k, K_direction))) {
|
||||
if ((!(Kinds::Behaviour::is_object_of_kind(kw, K_direction))) &&
|
||||
(Kinds::Behaviour::is_object_of_kind(k, K_direction))) {
|
||||
wording IW = Instances::get_name(I, FALSE);
|
||||
@<Vet the direction name for acceptability@>;
|
||||
if (<notable-map-directions>(IW)) {
|
||||
|
@ -342,7 +342,7 @@ void PL::Map::build_exits_array(void) {
|
|||
instance *I;
|
||||
int d = 0;
|
||||
LOOP_OVER_OBJECT_INSTANCES(I) {
|
||||
if (Kinds::Compare::le(Instances::to_kind(I), K_direction)) {
|
||||
if (Kinds::Behaviour::is_object_of_kind(Instances::to_kind(I), K_direction)) {
|
||||
PF_I(map, I)->direction_index = d++;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -329,7 +329,7 @@ vague, and might cause Inform at run-time to spuriously group unrelated things
|
|||
together in lists.
|
||||
|
||||
@<Assert the printed plural name property for kinds other than thing or kinds of room@> =
|
||||
if ((Kinds::Compare::le(K, K_room) == FALSE) &&
|
||||
if ((Kinds::Behaviour::is_object_of_kind(K, K_room) == FALSE) &&
|
||||
(Kinds::Compare::eq(K, K_thing) == FALSE) &&
|
||||
(World::Inferences::get_prop_state_without_inheritance(
|
||||
subj, P_printed_plural_name, NULL) == NULL)) {
|
||||
|
|
|
@ -1543,7 +1543,7 @@ int PL::Actions::Patterns::compile_pattern_match_clause_inner(int f,
|
|||
}
|
||||
}
|
||||
else if ((Specifications::is_kind_like(spec)) &&
|
||||
(Kinds::Compare::le(Specifications::to_kind(spec), K_object) == FALSE)) {
|
||||
(Kinds::Behaviour::is_object(Specifications::to_kind(spec)) == FALSE)) {
|
||||
force_proposition = FALSE;
|
||||
}
|
||||
else if (ParseTreeUsage::is_rvalue(spec)) {
|
||||
|
@ -1774,7 +1774,7 @@ void PL::Actions::Patterns::compile_pattern_match(value_holster *VH, action_patt
|
|||
if (kind_of_noun == NULL) kind_of_noun = K_object;
|
||||
}
|
||||
|
||||
if (Kinds::Compare::le(kind_of_noun, K_object)) {
|
||||
if (Kinds::Behaviour::is_object(kind_of_noun)) {
|
||||
if (ap.noun_spec) {
|
||||
CPMC_NEEDED(NOUN_MATCHES_AS_OBJECT_CPMC, NULL);
|
||||
}
|
||||
|
@ -1787,7 +1787,7 @@ void PL::Actions::Patterns::compile_pattern_match(value_holster *VH, action_patt
|
|||
kind_of_second = PL::Actions::get_data_type_of_second_noun(ap.action->action_listed);
|
||||
if (kind_of_second == NULL) kind_of_second = K_object;
|
||||
}
|
||||
if (Kinds::Compare::le(kind_of_second, K_object)) {
|
||||
if (Kinds::Behaviour::is_object(kind_of_second)) {
|
||||
if (ap.second_spec) {
|
||||
CPMC_NEEDED(SECOND_MATCHES_AS_OBJECT_CPMC, NULL);
|
||||
}
|
||||
|
|
|
@ -945,8 +945,8 @@ void PL::Actions::act_parse_definition(parse_node *p) {
|
|||
}
|
||||
|
||||
if (an->max_parameters >= 2) {
|
||||
if ((Kinds::Compare::le(an->noun_kind, K_object) == FALSE) &&
|
||||
(Kinds::Compare::le(an->second_kind, K_object) == FALSE)) {
|
||||
if ((Kinds::Behaviour::is_object(an->noun_kind) == FALSE) &&
|
||||
(Kinds::Behaviour::is_object(an->second_kind) == FALSE)) {
|
||||
StandardProblems::sentence_problem(Task::syntax_tree(), _p_(PM_ActionBothValues),
|
||||
"this action definition asks to have a single action apply "
|
||||
"to two different things which are not objects",
|
||||
|
@ -1001,7 +1001,7 @@ int PL::Actions::can_be_compiled_in_past_tense(action_name *an) {
|
|||
if (an->min_parameters > 1) return FALSE;
|
||||
if (an->max_parameters > 1) return FALSE;
|
||||
if ((an->max_parameters == 1) &&
|
||||
(Kinds::Compare::le(an->noun_kind, K_object) == FALSE))
|
||||
(Kinds::Behaviour::is_object(an->noun_kind) == FALSE))
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -1095,7 +1095,7 @@ void PL::Actions::check_types_for_grammar(action_name *an, int tok_values,
|
|||
case REQUIRES_ACCESS:
|
||||
case REQUIRES_POSSESSION:
|
||||
case DOESNT_REQUIRE_ACCESS:
|
||||
if (Kinds::Compare::le(tok_value_kinds[0], K_object) == FALSE) {
|
||||
if (Kinds::Behaviour::is_object(tok_value_kinds[0]) == FALSE) {
|
||||
failed_on =
|
||||
"the thing you suggest this action should act on "
|
||||
"is not an object at all";
|
||||
|
@ -1121,7 +1121,7 @@ void PL::Actions::check_types_for_grammar(action_name *an, int tok_values,
|
|||
case REQUIRES_ACCESS:
|
||||
case REQUIRES_POSSESSION:
|
||||
case DOESNT_REQUIRE_ACCESS:
|
||||
if (Kinds::Compare::le(tok_value_kinds[1], K_object) == FALSE) {
|
||||
if (Kinds::Behaviour::is_object(tok_value_kinds[1]) == FALSE) {
|
||||
failed_on =
|
||||
"the second thing you suggest this action should act on "
|
||||
"is not an object at all";
|
||||
|
@ -1334,7 +1334,7 @@ void PL::Actions::cat_something2(action_name *an, int n, inter_symbol *n_s, inte
|
|||
if (n > 0) {
|
||||
K = an->second_kind; var = s_s;
|
||||
}
|
||||
if (Kinds::Compare::le(K, K_object) == FALSE)
|
||||
if (Kinds::Behaviour::is_object(K) == FALSE)
|
||||
var = InterNames::to_symbol(Hierarchy::find(PARSED_NUMBER_HL));
|
||||
Produce::inv_primitive(Emit::tree(), INDIRECT1V_BIP);
|
||||
Produce::down(Emit::tree());
|
||||
|
@ -1518,7 +1518,7 @@ void PL::Actions::act_index_something(OUTPUT_STREAM, action_name *an, int argc)
|
|||
HTML::begin_colour(OUT, I"000080");
|
||||
if (argc == 0) K = an->noun_kind;
|
||||
if (argc == 1) K = an->second_kind;
|
||||
if (Kinds::Compare::le(K, K_object)) WRITE("something");
|
||||
if (Kinds::Behaviour::is_object(K)) WRITE("something");
|
||||
else if ((K_understanding) && (Kinds::Compare::eq(K, K_understanding))) WRITE("some text");
|
||||
else Kinds::Textual::write(OUT, K);
|
||||
HTML::end_colour(OUT);
|
||||
|
|
|
@ -427,7 +427,7 @@ parse_node *PL::Parsing::Tokens::determine(parse_node *pn, int depth, int *score
|
|||
if (Specifications::is_description(spec)) {
|
||||
kind *K = Specifications::to_kind(spec);
|
||||
if ((K_understanding) &&
|
||||
(Kinds::Compare::le(K, K_object) == FALSE) &&
|
||||
(Kinds::Behaviour::is_object(K) == FALSE) &&
|
||||
(Kinds::Compare::eq(K, K_understanding) == FALSE) &&
|
||||
(Kinds::Behaviour::request_I6_GPR(K) == FALSE)) {
|
||||
Problems::quote_source(1, current_sentence);
|
||||
|
@ -911,7 +911,7 @@ kind *PL::Parsing::Tokens::compile(gpr_kit *gprk, parse_node *pn, int code_mode,
|
|||
continue_loop_on_fail = FALSE;
|
||||
} else {
|
||||
kind *K = BinaryPredicates::term_kind(bp, 1);
|
||||
if (Kinds::Compare::le(K, K_object) == FALSE) {
|
||||
if (Kinds::Behaviour::is_object(K) == FALSE) {
|
||||
Problems::quote_source(1, current_sentence);
|
||||
Problems::quote_source(2, pn);
|
||||
Problems::quote_kind(3, K);
|
||||
|
@ -1050,7 +1050,7 @@ kind *PL::Parsing::Tokens::compile(gpr_kit *gprk, parse_node *pn, int code_mode,
|
|||
if (Specifications::is_kind_like(spec)) {
|
||||
kind *K = Node::get_kind_of_value(spec);
|
||||
if ((K_understanding) &&
|
||||
(Kinds::Compare::le(K, K_object) == FALSE) &&
|
||||
(Kinds::Behaviour::is_object(K) == FALSE) &&
|
||||
(Kinds::Compare::eq(K, K_understanding) == FALSE)) {
|
||||
if (Kinds::Behaviour::offers_I6_GPR(K)) {
|
||||
text_stream *i6_gpr_name = Kinds::Behaviour::get_explicit_I6_GPR(K);
|
||||
|
@ -1212,7 +1212,7 @@ kind *PL::Parsing::Tokens::compile(gpr_kit *gprk, parse_node *pn, int code_mode,
|
|||
else
|
||||
Emit::array_iname_entry(Kinds::RunTime::get_kind_GPR_iname(K));
|
||||
}
|
||||
} else if (Kinds::Compare::le(K, K_object)) {
|
||||
} else if (Kinds::Behaviour::is_object(K)) {
|
||||
if (code_mode) {
|
||||
Produce::inv_primitive(Emit::tree(), STORE_BIP);
|
||||
Produce::down(Emit::tree());
|
||||
|
|
|
@ -931,13 +931,13 @@ by any GPR existing because of the above routines.)
|
|||
=
|
||||
void PL::Parsing::Verbs::set_parsing_grammar(kind *K, grammar_verb *gv) {
|
||||
if (K == NULL) return;
|
||||
if (Kinds::Compare::le(K, K_object)) internal_error("wrong way to handle object grammar");
|
||||
if (Kinds::Behaviour::is_object(K)) internal_error("wrong way to handle object grammar");
|
||||
K->construct->understand_as_values = gv;
|
||||
}
|
||||
|
||||
grammar_verb *PL::Parsing::Verbs::get_parsing_grammar(kind *K) {
|
||||
if (K == NULL) return NULL;
|
||||
if (Kinds::Compare::le(K, K_object)) internal_error("wrong way to handle object grammar");
|
||||
if (Kinds::Behaviour::is_object(K)) internal_error("wrong way to handle object grammar");
|
||||
return K->construct->understand_as_values;
|
||||
}
|
||||
|
||||
|
|
|
@ -60,7 +60,7 @@ void PL::Parsing::Tokens::Filters::nft_compile_routine(noun_filter_token *nft) {
|
|||
kind *R = Specifications::to_kind(nft->the_filter);
|
||||
kind *K = NonlocalVariables::kind(I6_noun_VAR);
|
||||
NonlocalVariables::set_kind(I6_noun_VAR, R);
|
||||
if (Kinds::Compare::le(R, K_object) == FALSE) nft->parse_using_gpr = TRUE;
|
||||
if (Kinds::Behaviour::is_object(R) == FALSE) nft->parse_using_gpr = TRUE;
|
||||
|
||||
packaging_state save = Routines::begin(nft->nft_iname);
|
||||
if (nft->parse_using_gpr) {
|
||||
|
@ -261,7 +261,7 @@ int PL::Parsing::Tokens::Filters::new_id(parse_node *spec, int global_scope, int
|
|||
"for instance by being applied to several previous turns in a row.");
|
||||
|
||||
kind *K = Specifications::to_kind(spec);
|
||||
if ((Kinds::Compare::le(K, K_object) == FALSE) && (Kinds::Behaviour::request_I6_GPR(K) == FALSE) && (global_scope))
|
||||
if ((Kinds::Behaviour::is_object(K) == FALSE) && (Kinds::Behaviour::request_I6_GPR(K) == FALSE) && (global_scope))
|
||||
StandardProblems::sentence_problem(Task::syntax_tree(), _p_(BelievedImpossible),
|
||||
"this is a kind of value I can't understand in command grammar",
|
||||
"so the '[any ...]' part will have to go.");
|
||||
|
|
|
@ -550,7 +550,7 @@ void PL::Parsing::understand_the_command(wording W, wording ASW) {
|
|||
void PL::Parsing::understand_property_block(property *pr, int level, inference_subject *subj, wording WHENW) {
|
||||
if ((Properties::is_either_or(pr) == FALSE) &&
|
||||
(Str::len(Kinds::Behaviour::get_recognition_only_GPR(Properties::Valued::kind(pr))) == 0) &&
|
||||
((Kinds::Compare::le(Properties::Valued::kind(pr), K_object)) ||
|
||||
((Kinds::Behaviour::is_object(Properties::Valued::kind(pr))) ||
|
||||
(Kinds::Behaviour::request_I6_GPR(Properties::Valued::kind(pr)) == FALSE))) {
|
||||
StandardProblems::sentence_problem(Task::syntax_tree(), _p_(PM_BadReferringProperty),
|
||||
"that property is of a kind which I can't recognise in "
|
||||
|
@ -667,7 +667,7 @@ void PL::Parsing::understand_block(wording W, understanding_reference *ur, wordi
|
|||
RetryValue:
|
||||
LOGIF(GRAMMAR_CONSTRUCTION, "Understand as specification: $T", spec);
|
||||
if ((Specifications::is_kind_like(spec)) &&
|
||||
(Kinds::Compare::le(Specifications::to_kind(spec), K_object) == FALSE)) goto ImpreciseProblemMessage;
|
||||
(Kinds::Behaviour::is_object(Specifications::to_kind(spec)) == FALSE)) goto ImpreciseProblemMessage;
|
||||
if (ParseTreeUsage::is_phrasal(spec)) goto ImpreciseProblemMessage;
|
||||
if (Rvalues::is_nothing_object_constant(spec)) goto ImpreciseProblemMessage;
|
||||
if (ParseTreeUsage::is_rvalue(spec)) {
|
||||
|
|
|
@ -40,6 +40,13 @@ int Kinds::Behaviour::is_object(kind *K) {
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
int Kinds::Behaviour::is_object_of_kind(kind *K, kind *L) {
|
||||
if ((Kinds::Compare::le(K, K_object)) && (Kinds::Compare::le(K, L)) &&
|
||||
(Kinds::Compare::eq(K, K_nil) == FALSE))
|
||||
return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@h Definiteness.
|
||||
A kind like "number" is definite. One way to be indefinite is to be a
|
||||
kind of kind, like "arithmetic value":
|
||||
|
|
Loading…
Reference in a new issue