1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-06-29 05:24:57 +03:00

Further simplified possessives

This commit is contained in:
Graham Nelson 2020-08-02 12:35:36 +01:00
parent 97a3197678
commit f6a2e5495f
66 changed files with 967 additions and 919 deletions

File diff suppressed because one or more lines are too long

View file

@ -113,7 +113,7 @@ a <span class="extract"><span class="extract-syntax">pcalc_prop</span></span> st
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">pcalc_prop</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next</span><span class="plain-syntax">; </span><span class="comment-syntax"> next atom in the list for this proposition</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">pcalc_prop</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure pcalc_prop is accessed in 3/cs, 3/dlr, 3/pr, 3/tr, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/rs, 9/tfa, 9/tbath, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/pr, 11/bas, 11/tc, 11/sc, 11/sm, 11/tcp, 12/ap, 12/ca, 12/dtd, 12/cad, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/ps, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>
<ul class="endnotetexts"><li>The structure pcalc_prop is accessed in 3/cs, 3/dlr, 3/pr, 3/tr, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/rs, 9/tfa, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/pr, 11/bas, 11/tc, 11/sc, 11/sm, 11/tcp, 12/ap, 12/ca, 12/dtd, 12/cad, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/ps, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP3"></a><b>&#167;3. </b>The Universe is filled with atoms, but they come in different kinds, called
elements. For us, an "element" is the identifying number, stored in the
<span class="extract"><span class="extract-syntax">element</span></span> field, which tells Inform what kind of atom something is. The
@ -414,7 +414,7 @@ that case.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">pcalc_prop</span><span class="plain-syntax"> *</span><span class="function-syntax">Calculus::Atoms::KIND_new</span><button class="popup" onclick="togglePopup('usagePopup22')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup22">Usage of <span class="code-font"><span class="function-syntax">Calculus::Atoms::KIND_new</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP3_3_39_5">&#167;3.3.39.5</a><br/>Implications - <a href="9-imp.html#SP7_1_3">&#167;7.1.3</a><br/>Tree Conversions - <a href="11-tc.html#SP1">&#167;1</a>, <a href="11-tc.html#SP2">&#167;2</a>, <a href="11-tc.html#SP7">&#167;7</a><br/>Sentence Conversions - <a href="11-sc.html#SP3_3">&#167;3.3</a><br/>Simplifications - <a href="11-sm.html#SP3_2">&#167;3.2</a>, <a href="11-sm.html#SP4">&#167;4</a>, <a href="11-sm.html#SP8">&#167;8</a>, <a href="11-sm.html#SP10_3_2">&#167;10.3.2</a><br/>Deciding to Defer - <a href="12-dtd.html#SP10">&#167;10</a>, <a href="12-dtd.html#SP13">&#167;13</a><br/>Descriptions - <a href="14-ds.html#SP3">&#167;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="reserved-syntax">pcalc_term</span><span class="plain-syntax"> </span><span class="identifier-syntax">pt</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">pcalc_prop</span><span class="plain-syntax"> *</span><span class="function-syntax">Calculus::Atoms::KIND_new</span><button class="popup" onclick="togglePopup('usagePopup22')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup22">Usage of <span class="code-font"><span class="function-syntax">Calculus::Atoms::KIND_new</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP4_3_39_5">&#167;4.3.39.5</a><br/>Implications - <a href="9-imp.html#SP7_1_3">&#167;7.1.3</a><br/>Tree Conversions - <a href="11-tc.html#SP1">&#167;1</a>, <a href="11-tc.html#SP2">&#167;2</a>, <a href="11-tc.html#SP7">&#167;7</a><br/>Sentence Conversions - <a href="11-sc.html#SP3_3">&#167;3.3</a><br/>Simplifications - <a href="11-sm.html#SP3_2">&#167;3.2</a>, <a href="11-sm.html#SP4">&#167;4</a>, <a href="11-sm.html#SP8">&#167;8</a>, <a href="11-sm.html#SP10_3_2">&#167;10.3.2</a><br/>Deciding to Defer - <a href="12-dtd.html#SP10">&#167;10</a>, <a href="12-dtd.html#SP13">&#167;13</a><br/>Descriptions - <a href="14-ds.html#SP3">&#167;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="reserved-syntax">pcalc_term</span><span class="plain-syntax"> </span><span class="identifier-syntax">pt</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">prop</span><span class="plain-syntax"> = </span><a href="11-ap.html#SP7" class="function-link"><span class="function-syntax">Calculus::Atoms::new</span></a><span class="plain-syntax">(</span><span class="constant-syntax">KIND_ATOM</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">prop</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">arity</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">prop</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">assert_kind</span><span class="plain-syntax"> = </span><span class="identifier-syntax">K</span><span class="plain-syntax">;</span>

View file

@ -213,7 +213,7 @@ the quantifier has finished. We set the <span class="extract"><span class="extra
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Calculus::Variables::number_free</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">Calculus::Variables::number_free</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP3_3_39_5">&#167;3.3.39.5</a><br/>Sentence Conversions - <a href="11-sc.html#SP1_14">&#167;1.14</a>, <a href="11-sc.html#SP3_2">&#167;3.2</a><br/>Deciding to Defer - <a href="12-dtd.html#SP28">&#167;28</a><br/>Descriptions - <a href="14-ds.html#SP6">&#167;6</a><br/>Dash - <a href="14-ds2.html#SP25">&#167;25</a><br/>Describing Phrase Type Data - <a href="22-dptd.html#SP20_2_3">&#167;20.2.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">pcalc_prop</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Calculus::Variables::number_free</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">Calculus::Variables::number_free</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP4_3_39_5">&#167;4.3.39.5</a><br/>Sentence Conversions - <a href="11-sc.html#SP1_14">&#167;1.14</a>, <a href="11-sc.html#SP3_2">&#167;3.2</a><br/>Deciding to Defer - <a href="12-dtd.html#SP28">&#167;28</a><br/>Descriptions - <a href="14-ds.html#SP6">&#167;6</a><br/>Dash - <a href="14-ds2.html#SP25">&#167;25</a><br/>Describing Phrase Type Data - <a href="22-dptd.html#SP20_2_3">&#167;20.2.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">pcalc_prop</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop</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">var_states</span><span class="plain-syntax">[26], </span><span class="identifier-syntax">j</span><span class="plain-syntax">, </span><span class="identifier-syntax">c</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="11-bas.html#SP4" class="function-link"><span class="function-syntax">Calculus::Variables::determine_status</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prop</span><span class="plain-syntax">, </span><span class="identifier-syntax">var_states</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">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">j</span><span class="plain-syntax">=0, </span><span class="identifier-syntax">c</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">j</span><span class="plain-syntax">&lt;26; </span><span class="identifier-syntax">j</span><span class="plain-syntax">++) </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">var_states</span><span class="plain-syntax">[</span><span class="identifier-syntax">j</span><span class="plain-syntax">] == </span><span class="constant-syntax">FREE_VST</span><span class="plain-syntax">) </span><span class="identifier-syntax">c</span><span class="plain-syntax">++;</span>

View file

@ -115,7 +115,7 @@ their existence.
<span class="plain-syntax"> </span><a href="5-ins.html#SP13" 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="identifier-syntax">prevailing_mood</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Calculus::Propositions::Abstract::assert_kind_of_subject</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Calculus::Propositions::Abstract::assert_kind_of_subject</span></span>:<br/>The Creator - <a href="9-tc.html#SP5_2_1">&#167;5.2.1</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_8">&#167;3.3.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inst</span><span class="plain-syntax">, </span><span class="reserved-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">new</span><span class="plain-syntax">,</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Calculus::Propositions::Abstract::assert_kind_of_subject</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Calculus::Propositions::Abstract::assert_kind_of_subject</span></span>:<br/>The Creator - <a href="9-tc.html#SP5_2_1">&#167;5.2.1</a><br/>Make Assertions - <a href="9-ma.html#SP4_3_8">&#167;4.3.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inst</span><span class="plain-syntax">, </span><span class="reserved-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">new</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">subject_to</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#SP21" class="function-link"><span class="function-syntax">InferenceSubjects::domain</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">new</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">prop</span><span class="plain-syntax"> = </span><a href="11-ap.html#SP18" class="function-link"><span class="function-syntax">Calculus::Atoms::KIND_new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><a href="11-tr.html#SP4" class="function-link"><span class="function-syntax">Calculus::Terms::new_variable</span></a><span class="plain-syntax">(0));</span>
@ -253,7 +253,7 @@ parse the text to find what which property is referred to.
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="function-syntax">&lt;np-as-object&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">VW</span><span class="plain-syntax">);</span>
<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="function-syntax">&lt;&lt;rp&gt;&gt;</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP8" class="function-link"><span class="function-syntax">Assertions::Refiner::refine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">, </span><span class="constant-syntax">FORBID_CREATION</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP9" class="function-link"><span class="function-syntax">Assertions::Refiner::refine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">, </span><span class="constant-syntax">FORBID_CREATION</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">P</span><span class="plain-syntax"> = </span><a href="11-tc.html#SP6" class="function-link"><span class="function-syntax">Calculus::Propositions::Abstract::from_property_subtree</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">pn</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">prop</span><span class="plain-syntax"> = </span><a href="11-pr.html#SP16" class="function-link"><span class="function-syntax">Calculus::Propositions::conjoin</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prop</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">else</span><span class="plain-syntax"> { </span><span class="comment-syntax"> no value is supplied...</span>

View file

@ -146,7 +146,7 @@ field is
<p class="commentary firstcommentary"><a id="SP4"></a><b>&#167;4. Creating new terms. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">pcalc_term</span><span class="plain-syntax"> </span><span class="function-syntax">Calculus::Terms::new_variable</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Calculus::Terms::new_variable</span></span>:<br/><a href="11-tr.html#SP8">&#167;8</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_39_5">&#167;3.3.39.5</a><br/>Implications - <a href="9-imp.html#SP7_1_3">&#167;7.1.3</a><br/>Atomic Propositions - <a href="11-ap.html#SP8">&#167;8</a>, <a href="11-ap.html#SP20">&#167;20</a>, <a href="11-ap.html#SP22">&#167;22</a><br/>Propositions - <a href="11-pr.html#SP26">&#167;26</a>, <a href="11-pr.html#SP27">&#167;27</a><br/>Tree Conversions - <a href="11-tc.html#SP1">&#167;1</a>, <a href="11-tc.html#SP2">&#167;2</a>, <a href="11-tc.html#SP3">&#167;3</a>, <a href="11-tc.html#SP4">&#167;4</a>, <a href="11-tc.html#SP5">&#167;5</a>, <a href="11-tc.html#SP7">&#167;7</a><br/>Sentence Conversions - <a href="11-sc.html#SP3_3">&#167;3.3</a>, <a href="11-sc.html#SP3_7">&#167;3.7</a><br/>Simplifications - <a href="11-sm.html#SP3_2">&#167;3.2</a>, <a href="11-sm.html#SP4">&#167;4</a>, <a href="11-sm.html#SP8">&#167;8</a>, <a href="11-sm.html#SP10_3_2">&#167;10.3.2</a><br/>Compile Atoms - <a href="12-ca.html#SP8">&#167;8</a><br/>Deciding to Defer - <a href="12-dtd.html#SP10">&#167;10</a>, <a href="12-dtd.html#SP13">&#167;13</a><br/>Compile Deferred Propositions - <a href="12-cdp.html#SP5">&#167;5</a><br/>Descriptions - <a href="14-ds.html#SP3">&#167;3</a>, <a href="14-ds.html#SP10">&#167;10</a></span></button><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="reserved-syntax">pcalc_term</span><span class="plain-syntax"> </span><span class="function-syntax">Calculus::Terms::new_variable</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Calculus::Terms::new_variable</span></span>:<br/><a href="11-tr.html#SP8">&#167;8</a><br/>Make Assertions - <a href="9-ma.html#SP4_3_39_5">&#167;4.3.39.5</a><br/>Implications - <a href="9-imp.html#SP7_1_3">&#167;7.1.3</a><br/>Atomic Propositions - <a href="11-ap.html#SP8">&#167;8</a>, <a href="11-ap.html#SP20">&#167;20</a>, <a href="11-ap.html#SP22">&#167;22</a><br/>Propositions - <a href="11-pr.html#SP26">&#167;26</a>, <a href="11-pr.html#SP27">&#167;27</a><br/>Tree Conversions - <a href="11-tc.html#SP1">&#167;1</a>, <a href="11-tc.html#SP2">&#167;2</a>, <a href="11-tc.html#SP3">&#167;3</a>, <a href="11-tc.html#SP4">&#167;4</a>, <a href="11-tc.html#SP5">&#167;5</a>, <a href="11-tc.html#SP7">&#167;7</a><br/>Sentence Conversions - <a href="11-sc.html#SP3_3">&#167;3.3</a>, <a href="11-sc.html#SP3_7">&#167;3.7</a><br/>Simplifications - <a href="11-sm.html#SP3_2">&#167;3.2</a>, <a href="11-sm.html#SP4">&#167;4</a>, <a href="11-sm.html#SP8">&#167;8</a>, <a href="11-sm.html#SP10_3_2">&#167;10.3.2</a><br/>Compile Atoms - <a href="12-ca.html#SP8">&#167;8</a><br/>Deciding to Defer - <a href="12-dtd.html#SP10">&#167;10</a>, <a href="12-dtd.html#SP13">&#167;13</a><br/>Compile Deferred Propositions - <a href="12-cdp.html#SP5">&#167;5</a><br/>Descriptions - <a href="14-ds.html#SP3">&#167;3</a>, <a href="14-ds.html#SP10">&#167;10</a></span></button><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="plain-syntax"> </span><span class="reserved-syntax">pcalc_term</span><span class="plain-syntax"> </span><span class="identifier-syntax">pt</span><span class="plain-syntax">; </span><span class="named-paragraph-container code-font"><a href="11-tr.html#SP4_1" class="named-paragraph-link"><span class="named-paragraph">Make new blank term structure pt</span><span class="named-paragraph-number">4.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">v</span><span class="plain-syntax"> &lt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">v</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">26</span><span class="plain-syntax">)) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"bad variable term created"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">pt</span><span class="plain-syntax">.</span><span class="element-syntax">variable</span><span class="plain-syntax"> = </span><span class="identifier-syntax">v</span><span class="plain-syntax">;</span>

View file

@ -173,7 +173,7 @@ we don't accidentally break this rule:
<span class="plain-syntax"> </span><a href="12-ap.html#SP8" class="function-link"><span class="function-syntax">Calculus::Propositions::Assert::prop_true_in_world_model_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prop</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">certitude</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Calculus::Propositions::Assert::assert_true_about</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">Calculus::Propositions::Assert::assert_true_about</span></span>:<br/>Relations - <a href="6-rlt.html#SP9">&#167;9</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_39_5">&#167;3.3.39.5</a><br/>Property Knowledge - <a href="9-pk.html#SP3">&#167;3</a><br/>Relation Knowledge - <a href="9-rk.html#SP1_2">&#167;1.2</a><br/>Implications - <a href="9-imp.html#SP7_1_3">&#167;7.1.3</a><br/>Property Declarations - <a href="9-pd.html#SP5_9">&#167;5.9</a>, <a href="9-pd.html#SP5_10">&#167;5.10</a>, <a href="9-pd.html#SP6_1">&#167;6.1</a><br/>Tree Conversions - <a href="11-tc.html#SP2">&#167;2</a><br/>Either-Or Properties - <a href="15-ep.html#SP9">&#167;9</a><br/>Valued Properties - <a href="15-vp.html#SP10">&#167;10</a><br/>Tables of Definitions - <a href="19-tod.html#SP6_4">&#167;6.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">pcalc_prop</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop</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>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Calculus::Propositions::Assert::assert_true_about</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">Calculus::Propositions::Assert::assert_true_about</span></span>:<br/>Relations - <a href="6-rlt.html#SP9">&#167;9</a><br/>Make Assertions - <a href="9-ma.html#SP4_3_39_5">&#167;4.3.39.5</a><br/>Property Knowledge - <a href="9-pk.html#SP3">&#167;3</a><br/>Relation Knowledge - <a href="9-rk.html#SP1_2">&#167;1.2</a><br/>Implications - <a href="9-imp.html#SP7_1_3">&#167;7.1.3</a><br/>Property Declarations - <a href="9-pd.html#SP5_9">&#167;5.9</a>, <a href="9-pd.html#SP5_10">&#167;5.10</a>, <a href="9-pd.html#SP6_1">&#167;6.1</a><br/>Tree Conversions - <a href="11-tc.html#SP2">&#167;2</a><br/>Either-Or Properties - <a href="15-ep.html#SP9">&#167;9</a><br/>Valued Properties - <a href="15-vp.html#SP10">&#167;10</a><br/>Tables of Definitions - <a href="19-tod.html#SP6_4">&#167;6.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">pcalc_prop</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop</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>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">certitude</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="12-ap.html#SP8" class="function-link"><span class="function-syntax">Calculus::Propositions::Assert::prop_true_in_world_model_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prop</span><span class="plain-syntax">, </span><span class="identifier-syntax">infs</span><span class="plain-syntax">, </span><span class="identifier-syntax">certitude</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>

View file

@ -87,7 +87,7 @@ are drawn about them.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="function-syntax">Kinds::Knowledge::as_subject</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Kinds::Knowledge::as_subject</span></span>:<br/><a href="13-kak.html#SP5">&#167;5</a>, <a href="13-kak.html#SP6">&#167;6</a><br/>Adjective Meanings - <a href="4-am.html#SP22">&#167;22</a>, <a href="4-am.html#SP23">&#167;23</a>, <a href="4-am.html#SP24">&#167;24</a><br/>Instances - <a href="5-ins.html#SP6_2">&#167;6.2</a>, <a href="5-ins.html#SP19">&#167;19</a><br/>Index Physical World - <a href="5-ipw.html#SP3_7">&#167;3.7</a><br/>Binary Predicates - <a href="6-bp.html#SP20">&#167;20</a><br/>Relations - <a href="6-rlt.html#SP9_3_1">&#167;9.3.1</a>, <a href="6-rlt.html#SP9_3_8">&#167;9.3.8</a>, <a href="6-rlt.html#SP20_4">&#167;20.4</a><br/>Refine Parse Tree - <a href="9-rpt.html#SP1">&#167;1</a>, <a href="9-rpt.html#SP9_6">&#167;9.6</a>, <a href="9-rpt.html#SP9_6_1">&#167;9.6.1</a>, <a href="9-rpt.html#SP9_6_2">&#167;9.6.2</a>, <a href="9-rpt.html#SP9_8_2_3_1">&#167;9.8.2.3.1</a>, <a href="9-rpt.html#SP10_1">&#167;10.1</a><br/>The Creator - <a href="9-tc.html#SP8_4_1_2">&#167;8.4.1.2</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_25">&#167;3.3.25</a>, <a href="9-ma.html#SP3_3_26">&#167;3.3.26</a>, <a href="9-ma.html#SP3_3_34">&#167;3.3.34</a>, <a href="9-ma.html#SP3_3_39">&#167;3.3.39</a><br/>Property Knowledge - <a href="9-pk.html#SP3">&#167;3</a><br/>Implications - <a href="9-imp.html#SP4_2_1">&#167;4.2.1</a><br/>Property Declarations - <a href="9-pd.html#SP5_6">&#167;5.6</a>, <a href="9-pd.html#SP6_1_1">&#167;6.1.1</a><br/>Quasinumeric Relations - <a href="12-qr.html#SP3">&#167;3</a><br/>Assert Propositions - <a href="12-ap.html#SP9_5_2">&#167;9.5.2</a>, <a href="12-ap.html#SP12">&#167;12</a><br/>Kinds Index - <a href="13-ki.html#SP1_11">&#167;1.11</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_2_3">&#167;11.9.1.2.3</a><br/>Indefinite Appearance - <a href="15-ia.html#SP1">&#167;1</a><br/>The Provision Relation - <a href="15-tpr.html#SP7_2">&#167;7.2</a><br/>Setting Property Relation - <a href="15-spr2.html#SP2">&#167;2</a><br/>Inference Subjects - <a href="16-is.html#SP17">&#167;17</a><br/>Instance Counting - <a href="16-ic.html#SP12_2">&#167;12.2</a>, <a href="16-ic.html#SP12_3">&#167;12.3</a>, <a href="16-ic.html#SP13">&#167;13</a>, <a href="16-ic.html#SP14">&#167;14</a>, <a href="16-ic.html#SP15">&#167;15</a><br/>Tables of Definitions - <a href="19-tod.html#SP6_4">&#167;6.4</a><br/>Listed-In Relations - <a href="19-lr.html#SP2">&#167;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="reserved-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="function-syntax">Kinds::Knowledge::as_subject</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Kinds::Knowledge::as_subject</span></span>:<br/><a href="13-kak.html#SP5">&#167;5</a>, <a href="13-kak.html#SP6">&#167;6</a><br/>Adjective Meanings - <a href="4-am.html#SP22">&#167;22</a>, <a href="4-am.html#SP23">&#167;23</a>, <a href="4-am.html#SP24">&#167;24</a><br/>Instances - <a href="5-ins.html#SP6_2">&#167;6.2</a>, <a href="5-ins.html#SP19">&#167;19</a><br/>Index Physical World - <a href="5-ipw.html#SP3_7">&#167;3.7</a><br/>Binary Predicates - <a href="6-bp.html#SP20">&#167;20</a><br/>Relations - <a href="6-rlt.html#SP9_3_1">&#167;9.3.1</a>, <a href="6-rlt.html#SP9_3_8">&#167;9.3.8</a>, <a href="6-rlt.html#SP20_4">&#167;20.4</a><br/>Refine Parse Tree - <a href="9-rpt.html#SP1">&#167;1</a>, <a href="9-rpt.html#SP10_6">&#167;10.6</a>, <a href="9-rpt.html#SP10_6_1">&#167;10.6.1</a>, <a href="9-rpt.html#SP10_6_2">&#167;10.6.2</a>, <a href="9-rpt.html#SP10_8_2_3_1">&#167;10.8.2.3.1</a>, <a href="9-rpt.html#SP11_1">&#167;11.1</a><br/>The Creator - <a href="9-tc.html#SP8_4_1_2">&#167;8.4.1.2</a><br/>Make Assertions - <a href="9-ma.html#SP4_3_25">&#167;4.3.25</a>, <a href="9-ma.html#SP4_3_26">&#167;4.3.26</a>, <a href="9-ma.html#SP4_3_34">&#167;4.3.34</a>, <a href="9-ma.html#SP4_3_39">&#167;4.3.39</a><br/>Property Knowledge - <a href="9-pk.html#SP3">&#167;3</a><br/>Implications - <a href="9-imp.html#SP4_2_1">&#167;4.2.1</a><br/>Property Declarations - <a href="9-pd.html#SP5_6">&#167;5.6</a>, <a href="9-pd.html#SP6_1_1">&#167;6.1.1</a><br/>Quasinumeric Relations - <a href="12-qr.html#SP3">&#167;3</a><br/>Assert Propositions - <a href="12-ap.html#SP9_5_2">&#167;9.5.2</a>, <a href="12-ap.html#SP12">&#167;12</a><br/>Kinds Index - <a href="13-ki.html#SP1_11">&#167;1.11</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_2_3">&#167;11.9.1.2.3</a><br/>Indefinite Appearance - <a href="15-ia.html#SP1">&#167;1</a><br/>The Provision Relation - <a href="15-tpr.html#SP7_2">&#167;7.2</a><br/>Setting Property Relation - <a href="15-spr2.html#SP2">&#167;2</a><br/>Inference Subjects - <a href="16-is.html#SP17">&#167;17</a><br/>Instance Counting - <a href="16-ic.html#SP12_2">&#167;12.2</a>, <a href="16-ic.html#SP12_3">&#167;12.3</a>, <a href="16-ic.html#SP13">&#167;13</a>, <a href="16-ic.html#SP14">&#167;14</a>, <a href="16-ic.html#SP15">&#167;15</a><br/>Tables of Definitions - <a href="19-tod.html#SP6_4">&#167;6.4</a><br/>Listed-In Relations - <a href="19-lr.html#SP2">&#167;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">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">dt_knowledge</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>

View file

@ -143,7 +143,7 @@ a kind but do so only implicitly ("scenery").
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Descriptions::makes_kind_explicit</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Descriptions::makes_kind_explicit</span></span>:<br/>Refine Parse Tree - <a href="9-rpt.html#SP10_1">&#167;10.1</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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Descriptions::makes_kind_explicit</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Descriptions::makes_kind_explicit</span></span>:<br/>Refine Parse Tree - <a href="9-rpt.html#SP11_1">&#167;11.1</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><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">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="14-ds.html#SP4" class="function-link"><span class="function-syntax">Descriptions::explicit_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">spec</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>
@ -168,7 +168,7 @@ a named object or similar, so:
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="14-ds.html#SP1" class="function-link"><span class="function-syntax">Descriptions::from_proposition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prop</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">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">Descriptions::to_instance</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">Descriptions::to_instance</span></span>:<br/>Refine Parse Tree - <a href="9-rpt.html#SP9_8_2_3_1">&#167;9.8.2.3.1</a>, <a href="9-rpt.html#SP9_8_2_5_1">&#167;9.8.2.5.1</a>, <a href="9-rpt.html#SP10_1">&#167;10.1</a><br/>Assert Propositions - <a href="12-ap.html#SP12">&#167;12</a><br/>Deciding to Defer - <a href="12-dtd.html#SP18">&#167;18</a><br/>Specifications - <a href="14-sp.html#SP4">&#167;4</a><br/>Dash - <a href="14-ds2.html#SP27">&#167;27</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="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">Descriptions::to_instance</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">Descriptions::to_instance</span></span>:<br/>Refine Parse Tree - <a href="9-rpt.html#SP10_8_2_3_1">&#167;10.8.2.3.1</a>, <a href="9-rpt.html#SP10_8_2_5_1">&#167;10.8.2.5.1</a>, <a href="9-rpt.html#SP11_1">&#167;11.1</a><br/>Assert Propositions - <a href="12-ap.html#SP12">&#167;12</a><br/>Deciding to Defer - <a href="12-dtd.html#SP18">&#167;18</a><br/>Specifications - <a href="14-sp.html#SP4">&#167;4</a><br/>Dash - <a href="14-ds2.html#SP27">&#167;27</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><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>
<span class="plain-syntax"> </span><span class="reserved-syntax">pcalc_prop</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop</span><span class="plain-syntax"> = </span><a href="14-ds.html#SP1" class="function-link"><span class="function-syntax">Descriptions::to_proposition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax"> = </span><a href="11-pr.html#SP24" class="function-link"><span class="function-syntax">Calculus::Propositions::describes_value</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prop</span><span class="plain-syntax">);</span>
@ -230,7 +230,7 @@ during play.
<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">Descriptions::is_complex</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Descriptions::is_complex</span></span>:<br/><a href="14-ds.html#SP12_1">&#167;12.1</a><br/>Refine Parse Tree - <a href="9-rpt.html#SP9_8_2_5">&#167;9.8.2.5</a><br/>Dash - <a href="14-ds2.html#SP19_4">&#167;19.4</a>, <a href="14-ds2.html#SP19_6_2_1">&#167;19.6.2.1</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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Descriptions::is_complex</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Descriptions::is_complex</span></span>:<br/><a href="14-ds.html#SP12_1">&#167;12.1</a><br/>Refine Parse Tree - <a href="9-rpt.html#SP10_8_2_5">&#167;10.8.2.5</a><br/>Dash - <a href="14-ds2.html#SP19_4">&#167;19.4</a>, <a href="14-ds2.html#SP19_6_2_1">&#167;19.6.2.1</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><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>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="11-pr.html#SP13" class="function-link"><span class="function-syntax">Calculus::Propositions::is_complex</span></a><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><a href="14-ds.html#SP1" class="function-link"><span class="function-syntax">Descriptions::to_proposition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">));</span>
@ -258,12 +258,12 @@ a list. It's sometimes convenient to loop through this list:
<span class="plain-syntax"> </span><span class="identifier-syntax">au</span><span class="plain-syntax"> = </span><a href="11-pr.html#SP28" class="function-link"><span class="function-syntax">Calculus::Propositions::next_unary_predicate</span></a><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">au_prop</span><span class="plain-syntax">))</span>
</pre>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Descriptions::number_of_adjectives_applied_to</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">Descriptions::number_of_adjectives_applied_to</span></span>:<br/><a href="14-ds.html#SP7">&#167;7</a>, <a href="14-ds.html#SP12_3">&#167;12.3</a><br/>Refine Parse Tree - <a href="9-rpt.html#SP9_8_2_3_1">&#167;9.8.2.3.1</a>, <a href="9-rpt.html#SP9_8_2_5_1">&#167;9.8.2.5.1</a>, <a href="9-rpt.html#SP10">&#167;10</a>, <a href="9-rpt.html#SP10_3">&#167;10.3</a><br/>Property Knowledge - <a href="9-pk.html#SP3_2">&#167;3.2</a><br/>Deciding to Defer - <a href="12-dtd.html#SP18">&#167;18</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_1_5_1_2">&#167;11.9.1.1.5.1.2</a><br/>Activities - <a href="21-ac.html#SP8">&#167;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">spec</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Descriptions::number_of_adjectives_applied_to</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">Descriptions::number_of_adjectives_applied_to</span></span>:<br/><a href="14-ds.html#SP7">&#167;7</a>, <a href="14-ds.html#SP12_3">&#167;12.3</a><br/>Refine Parse Tree - <a href="9-rpt.html#SP10_8_2_3_1">&#167;10.8.2.3.1</a>, <a href="9-rpt.html#SP10_8_2_5_1">&#167;10.8.2.5.1</a>, <a href="9-rpt.html#SP11">&#167;11</a>, <a href="9-rpt.html#SP11_3">&#167;11.3</a><br/>Property Knowledge - <a href="9-pk.html#SP3_2">&#167;3.2</a><br/>Deciding to Defer - <a href="12-dtd.html#SP18">&#167;18</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_1_5_1_2">&#167;11.9.1.1.5.1.2</a><br/>Activities - <a href="21-ac.html#SP8">&#167;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">spec</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="11-pr.html#SP25" class="function-link"><span class="function-syntax">Calculus::Propositions::count_unary_predicates</span></a><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><a href="14-ds.html#SP1" class="function-link"><span class="function-syntax">Descriptions::to_proposition</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">unary_predicate</span><span class="plain-syntax"> *</span><span class="function-syntax">Descriptions::first_unary_predicate</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">Descriptions::first_unary_predicate</span></span>:<br/>Refine Parse Tree - <a href="9-rpt.html#SP10_3">&#167;10.3</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_1_5_1_2">&#167;11.9.1.1.5.1.2</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="reserved-syntax">unary_predicate</span><span class="plain-syntax"> *</span><span class="function-syntax">Descriptions::first_unary_predicate</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">Descriptions::first_unary_predicate</span></span>:<br/>Refine Parse Tree - <a href="9-rpt.html#SP11_3">&#167;11.3</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_1_5_1_2">&#167;11.9.1.1.5.1.2</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">return</span><span class="plain-syntax"> </span><a href="11-pr.html#SP28" class="function-link"><span class="function-syntax">Calculus::Propositions::first_unary_predicate</span></a><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><a href="14-ds.html#SP1" class="function-link"><span class="function-syntax">Descriptions::to_proposition</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="plain-syntax">}</span>
@ -331,7 +331,7 @@ a list. It's sometimes convenient to loop through this list:
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="11-pr.html#SP35" class="function-link"><span class="function-syntax">Calculus::Propositions::from_spec</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="identifier-syntax">quantifier</span><span class="plain-syntax"> *</span><span class="function-syntax">Descriptions::get_quantifier</span><button class="popup" onclick="togglePopup('usagePopup22')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup22">Usage of <span class="code-font"><span class="function-syntax">Descriptions::get_quantifier</span></span>:<br/><a href="14-ds.html#SP8">&#167;8</a><br/>Refine Parse Tree - <a href="9-rpt.html#SP9_8_2_3">&#167;9.8.2.3</a>, <a href="9-rpt.html#SP9_8_2_3_1">&#167;9.8.2.3.1</a><br/>Deciding to Defer - <a href="12-dtd.html#SP13">&#167;13</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_2_3_3">&#167;11.9.1.2.3.3</a>, <a href="14-ds2.html#SP19_5_3">&#167;19.5.3</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="identifier-syntax">quantifier</span><span class="plain-syntax"> *</span><span class="function-syntax">Descriptions::get_quantifier</span><button class="popup" onclick="togglePopup('usagePopup22')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup22">Usage of <span class="code-font"><span class="function-syntax">Descriptions::get_quantifier</span></span>:<br/><a href="14-ds.html#SP8">&#167;8</a><br/>Refine Parse Tree - <a href="9-rpt.html#SP10_8_2_3">&#167;10.8.2.3</a>, <a href="9-rpt.html#SP10_8_2_3_1">&#167;10.8.2.3.1</a><br/>Deciding to Defer - <a href="12-dtd.html#SP13">&#167;13</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_2_3_3">&#167;11.9.1.2.3.3</a>, <a href="14-ds2.html#SP19_5_3">&#167;19.5.3</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><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>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="11-ap.html#SP9" class="function-link"><span class="function-syntax">Calculus::Atoms::get_quantifier</span></a><span class="plain-syntax">(</span><a href="14-ds.html#SP1" class="function-link"><span class="function-syntax">Descriptions::to_proposition</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>

View file

@ -201,7 +201,7 @@ make problem messages more readable.
<p class="commentary firstcommentary"><a id="SP7"></a><b>&#167;7. Testing. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">node_type_t</span><span class="plain-syntax"> </span><span class="function-syntax">Lvalues::get_storage_form</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Lvalues::get_storage_form</span></span>:<br/>Nonlocal Variables - <a href="5-nv.html#SP25">&#167;25</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_39">&#167;3.3.39</a>, <a href="9-ma.html#SP3_3_41_3">&#167;3.3.41.3</a><br/>Verbal and Relative Clauses - <a href="10-varc.html#SP13_4_1">&#167;13.4.1</a><br/>Binding and Substitution - <a href="11-bas.html#SP19">&#167;19</a><br/>Simplifications - <a href="11-sm.html#SP4">&#167;4</a><br/>The Equality Relation - <a href="12-ter.html#SP8">&#167;8</a><br/>Deciding to Defer - <a href="12-dtd.html#SP10">&#167;10</a><br/>Specifications - <a href="14-sp.html#SP7_5">&#167;7.5</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_1_5_2">&#167;11.9.1.1.5.2</a>, <a href="14-ds2.html#SP11_9_1_1_8">&#167;11.9.1.1.8</a><br/>Phrase Type Data - <a href="22-ptd.html#SP18">&#167;18</a><br/>Compile Invocations Inline - <a href="25-cii.html#SP3_5_4">&#167;3.5.4</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="identifier-syntax">node_type_t</span><span class="plain-syntax"> </span><span class="function-syntax">Lvalues::get_storage_form</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Lvalues::get_storage_form</span></span>:<br/>Nonlocal Variables - <a href="5-nv.html#SP25">&#167;25</a><br/>Make Assertions - <a href="9-ma.html#SP4_3_39">&#167;4.3.39</a>, <a href="9-ma.html#SP4_3_41_3">&#167;4.3.41.3</a><br/>Verbal and Relative Clauses - <a href="10-varc.html#SP13_4_1">&#167;13.4.1</a><br/>Binding and Substitution - <a href="11-bas.html#SP19">&#167;19</a><br/>Simplifications - <a href="11-sm.html#SP4">&#167;4</a><br/>The Equality Relation - <a href="12-ter.html#SP8">&#167;8</a><br/>Deciding to Defer - <a href="12-dtd.html#SP10">&#167;10</a><br/>Specifications - <a href="14-sp.html#SP7_5">&#167;7.5</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_1_5_2">&#167;11.9.1.1.5.2</a>, <a href="14-ds2.html#SP11_9_1_1_8">&#167;11.9.1.1.8</a><br/>Phrase Type Data - <a href="22-ptd.html#SP18">&#167;18</a><br/>Compile Invocations Inline - <a href="25-cii.html#SP3_5_4">&#167;3.5.4</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><a href="7-ptu.html#SP12" class="function-link"><span class="function-syntax">ParseTreeUsage::is_lvalue</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">Node::get_type</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">UNKNOWN_NT</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
@ -210,7 +210,7 @@ make problem messages more readable.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Lvalues::is_actual_NONLOCAL_VARIABLE</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Lvalues::is_actual_NONLOCAL_VARIABLE</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP3_2">&#167;3.2</a><br/>Property Declarations - <a href="9-pd.html#SP5_6">&#167;5.6</a><br/>The Equality Relation - <a href="12-ter.html#SP7">&#167;7</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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Lvalues::is_actual_NONLOCAL_VARIABLE</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Lvalues::is_actual_NONLOCAL_VARIABLE</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP4_2">&#167;4.2</a><br/>Property Declarations - <a href="9-pd.html#SP5_6">&#167;5.6</a><br/>The Equality Relation - <a href="12-ter.html#SP7">&#167;7</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">NONLOCAL_VARIABLE_NT</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>

View file

@ -87,7 +87,7 @@ pointers:
<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="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Rvalues::from_action_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">action_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax">) { </span><span class="identifier-syntax">CONV_FROM</span><span class="plain-syntax">(</span><span class="identifier-syntax">action_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_action_name</span><span class="plain-syntax">) }</span>
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Rvalues::from_action_pattern</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Rvalues::from_action_pattern</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP3_3_11">&#167;3.3.11</a><br/>Conditions - <a href="14-cn.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">action_pattern</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Rvalues::from_action_pattern</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Rvalues::from_action_pattern</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP4_3_11">&#167;4.3.11</a><br/>Conditions - <a href="14-cn.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">action_pattern</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (((</span><span class="identifier-syntax">PL::Actions::Patterns::is_unspecific</span><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">PL::Actions::Patterns::is_overspecific</span><span class="plain-syntax">(</span><span class="identifier-syntax">val</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">preform_lookahead_mode</span><span class="plain-syntax">)) {</span>
@ -105,7 +105,7 @@ pointers:
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Rvalues::from_constant_phrase</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">Rvalues::from_constant_phrase</span></span>:<br/>Phrases as Values - <a href="22-pav.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">constant_phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax">) { </span><span class="identifier-syntax">CONV_FROM</span><span class="plain-syntax">(</span><span class="reserved-syntax">constant_phrase</span><span class="plain-syntax">, </span><span class="identifier-syntax">Kinds::base_construction</span><span class="plain-syntax">(</span><span class="identifier-syntax">CON_phrase</span><span class="plain-syntax">)) }</span>
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Rvalues::from_equation</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Rvalues::from_equation</span></span>:<br/>Type Expressions and Values - <a href="10-teav.html#SP12_1">&#167;12.1</a>, <a href="10-teav.html#SP12_3">&#167;12.3</a><br/>Equations - <a href="20-eq.html#SP10_1_3">&#167;10.1.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">equation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax">) { </span><span class="identifier-syntax">CONV_FROM</span><span class="plain-syntax">(</span><span class="reserved-syntax">equation</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_equation</span><span class="plain-syntax">) }</span>
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Rvalues::from_named_rulebook_outcome</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Rvalues::from_named_rulebook_outcome</span></span>:<br/>Focus and Outcome - <a href="21-fao.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">named_rulebook_outcome</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax">) { </span><span class="identifier-syntax">CONV_FROM</span><span class="plain-syntax">(</span><span class="reserved-syntax">named_rulebook_outcome</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_rulebook_outcome</span><span class="plain-syntax">) }</span>
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Rvalues::from_property</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Rvalues::from_property</span></span>:<br/>Refine Parse Tree - <a href="9-rpt.html#SP9_8_2_1">&#167;9.8.2.1</a><br/>Terms - <a href="11-tr.html#SP8">&#167;8</a><br/>Propositions - <a href="11-pr.html#SP27">&#167;27</a><br/>Tree Conversions - <a href="11-tc.html#SP4">&#167;4</a><br/>Properties - <a href="15-pr.html#SP5_8">&#167;5.8</a><br/>Measurement Adjectives - <a href="15-ma.html#SP13">&#167;13</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax">) { </span><span class="identifier-syntax">CONV_FROM</span><span class="plain-syntax">(</span><span class="reserved-syntax">property</span><span class="plain-syntax">, </span><a href="15-pr.html#SP6" class="function-link"><span class="function-syntax">Properties::to_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">)) }</span>
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Rvalues::from_property</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Rvalues::from_property</span></span>:<br/>Refine Parse Tree - <a href="9-rpt.html#SP10_8_2_1">&#167;10.8.2.1</a><br/>Terms - <a href="11-tr.html#SP8">&#167;8</a><br/>Propositions - <a href="11-pr.html#SP27">&#167;27</a><br/>Tree Conversions - <a href="11-tc.html#SP4">&#167;4</a><br/>Properties - <a href="15-pr.html#SP5_8">&#167;5.8</a><br/>Measurement Adjectives - <a href="15-ma.html#SP13">&#167;13</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax">) { </span><span class="identifier-syntax">CONV_FROM</span><span class="plain-syntax">(</span><span class="reserved-syntax">property</span><span class="plain-syntax">, </span><a href="15-pr.html#SP6" class="function-link"><span class="function-syntax">Properties::to_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">)) }</span>
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Rvalues::from_rule</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Rvalues::from_rule</span></span>:<br/>Rules - <a href="21-rl.html#SP5_1">&#167;5.1</a><br/>Rule Bookings - <a href="21-rb.html#SP24_1">&#167;24.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">rule</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax">) { </span><span class="identifier-syntax">CONV_FROM</span><span class="plain-syntax">(</span><span class="reserved-syntax">rule</span><span class="plain-syntax">, </span><a href="21-rl.html#SP8" class="function-link"><span class="function-syntax">Rules::to_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">)) }</span>
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Rvalues::from_rulebook</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">Rvalues::from_rulebook</span></span>:<br/>The Creator - <a href="9-tc.html#SP5_4_2_4">&#167;5.4.2.4</a><br/>Rulebooks - <a href="21-rl2.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">rulebook</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax">) { </span><span class="identifier-syntax">CONV_FROM</span><span class="plain-syntax">(</span><span class="reserved-syntax">rulebook</span><span class="plain-syntax">, </span><a href="21-rl2.html#SP10" class="function-link"><span class="function-syntax">Rulebooks::to_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">)) }</span>
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Rvalues::from_table</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Rvalues::from_table</span></span>:<br/>Tables - <a href="19-tb.html#SP20_7">&#167;20.7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax">) { </span><span class="identifier-syntax">CONV_FROM</span><span class="plain-syntax">(</span><span class="reserved-syntax">table</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_table</span><span class="plain-syntax">) }</span>
@ -129,14 +129,14 @@ pointers:
<span class="identifier-syntax">named_action_pattern</span><span class="plain-syntax"> *</span><span class="function-syntax">Rvalues::to_named_action_pattern</span><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">CONV_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">named_action_pattern</span><span class="plain-syntax">) }</span>
<span class="identifier-syntax">scene</span><span class="plain-syntax"> *</span><span class="function-syntax">Rvalues::to_scene</span><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">CONV_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">scene</span><span class="plain-syntax">) }</span>
<span class="plain-syntax">#</span><span class="identifier-syntax">endif</span>
<span class="reserved-syntax">activity</span><span class="plain-syntax"> *</span><span class="function-syntax">Rvalues::to_activity</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">Rvalues::to_activity</span></span>:<br/><a href="14-rv.html#SP20">&#167;20</a>, <a href="14-rv.html#SP24_3">&#167;24.3</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_25_1">&#167;3.3.25.1</a><br/>Activities - <a href="21-ac.html#SP11">&#167;11</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="identifier-syntax">CONV_TO</span><span class="plain-syntax">(</span><span class="reserved-syntax">activity</span><span class="plain-syntax">) }</span>
<span class="reserved-syntax">activity</span><span class="plain-syntax"> *</span><span class="function-syntax">Rvalues::to_activity</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">Rvalues::to_activity</span></span>:<br/><a href="14-rv.html#SP20">&#167;20</a>, <a href="14-rv.html#SP24_3">&#167;24.3</a><br/>Make Assertions - <a href="9-ma.html#SP4_3_25_1">&#167;4.3.25.1</a><br/>Activities - <a href="21-ac.html#SP11">&#167;11</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="identifier-syntax">CONV_TO</span><span class="plain-syntax">(</span><span class="reserved-syntax">activity</span><span class="plain-syntax">) }</span>
<span class="reserved-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="function-syntax">Rvalues::to_binary_predicate</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">Rvalues::to_binary_predicate</span></span>:<br/><a href="14-rv.html#SP20">&#167;20</a>, <a href="14-rv.html#SP23_2">&#167;23.2</a>, <a href="14-rv.html#SP24_3">&#167;24.3</a><br/>Type Check Propositions - <a href="11-tcp.html#SP11_3">&#167;11.3</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="identifier-syntax">CONV_TO</span><span class="plain-syntax">(</span><span class="reserved-syntax">binary_predicate</span><span class="plain-syntax">) }</span>
<span class="reserved-syntax">constant_phrase</span><span class="plain-syntax"> *</span><span class="function-syntax">Rvalues::to_constant_phrase</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">Rvalues::to_constant_phrase</span></span>:<br/><a href="14-rv.html#SP20">&#167;20</a>, <a href="14-rv.html#SP23_6">&#167;23.6</a>, <a href="14-rv.html#SP24_3">&#167;24.3</a><br/>Phrases as Values - <a href="22-pav.html#SP4">&#167;4</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="identifier-syntax">CONV_TO</span><span class="plain-syntax">(</span><span class="reserved-syntax">constant_phrase</span><span class="plain-syntax">) }</span>
<span class="reserved-syntax">equation</span><span class="plain-syntax"> *</span><span class="function-syntax">Rvalues::to_equation</span><button class="popup" onclick="togglePopup('usagePopup18')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup18">Usage of <span class="code-font"><span class="function-syntax">Rvalues::to_equation</span></span>:<br/><a href="14-rv.html#SP24_3">&#167;24.3</a><br/>Type Expressions and Values - <a href="10-teav.html#SP12_2">&#167;12.2</a><br/>Compile Invocations Inline - <a href="25-cii.html#SP3_7_3">&#167;3.7.3</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="identifier-syntax">CONV_TO</span><span class="plain-syntax">(</span><span class="reserved-syntax">equation</span><span class="plain-syntax">) }</span>
<span class="reserved-syntax">named_rulebook_outcome</span><span class="plain-syntax"> *</span><span class="function-syntax">Rvalues::to_named_rulebook_outcome</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">Rvalues::to_named_rulebook_outcome</span></span>:<br/><a href="14-rv.html#SP24_3">&#167;24.3</a><br/>Focus and Outcome - <a href="21-fao.html#SP9">&#167;9</a>, <a href="21-fao.html#SP10">&#167;10</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="identifier-syntax">CONV_TO</span><span class="plain-syntax">(</span><span class="reserved-syntax">named_rulebook_outcome</span><span class="plain-syntax">) }</span>
<span class="reserved-syntax">property</span><span class="plain-syntax"> *</span><span class="function-syntax">Rvalues::to_property</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">Rvalues::to_property</span></span>:<br/><a href="14-rv.html#SP20">&#167;20</a>, <a href="14-rv.html#SP23_3">&#167;23.3</a>, <a href="14-rv.html#SP24_3_1">&#167;24.3.1</a><br/>The Creator - <a href="9-tc.html#SP4_5">&#167;4.5</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_8_2">&#167;3.3.8.2</a>, <a href="9-ma.html#SP3_3_41_4">&#167;3.3.41.4</a>, <a href="9-ma.html#SP3_3_41_7">&#167;3.3.41.7</a><br/>Propositions - <a href="11-pr.html#SP35_2">&#167;35.2</a><br/>Sentence Conversions - <a href="11-sc.html#SP3_3">&#167;3.3</a><br/>Simplifications - <a href="11-sm.html#SP17_1">&#167;17.1</a>, <a href="11-sm.html#SP18">&#167;18</a><br/>Lvalues - <a href="14-lv.html#SP10">&#167;10</a>, <a href="14-lv.html#SP12_5">&#167;12.5</a>, <a href="14-lv.html#SP14_3">&#167;14.3</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_1_2_1">&#167;11.9.1.1.2.1</a>, <a href="14-ds2.html#SP11_9_1_1_5_1_2">&#167;11.9.1.1.5.1.2</a>, <a href="14-ds2.html#SP11_9_1_2_3">&#167;11.9.1.2.3</a>, <a href="14-ds2.html#SP13">&#167;13</a>, <a href="14-ds2.html#SP19_3">&#167;19.3</a><br/>Properties - <a href="15-pr.html#SP4">&#167;4</a><br/>The Provision Relation - <a href="15-tpr.html#SP6">&#167;6</a>, <a href="15-tpr.html#SP7">&#167;7</a><br/>Compile Invocations Inline - <a href="25-cii.html#SP3_1_1_4_11">&#167;3.1.1.4.11</a>, <a href="25-cii.html#SP3_7">&#167;3.7</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="identifier-syntax">CONV_TO</span><span class="plain-syntax">(</span><span class="reserved-syntax">property</span><span class="plain-syntax">) }</span>
<span class="reserved-syntax">rule</span><span class="plain-syntax"> *</span><span class="function-syntax">Rvalues::to_rule</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">Rvalues::to_rule</span></span>:<br/><a href="14-rv.html#SP20">&#167;20</a>, <a href="14-rv.html#SP24_3">&#167;24.3</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_41_6">&#167;3.3.41.6</a><br/>I6 Schemas - <a href="12-is.html#SP7_1">&#167;7.1</a><br/>Rules - <a href="21-rl.html#SP6">&#167;6</a><br/>Compile Invocations Inline - <a href="25-cii.html#SP3_1_1_4_12">&#167;3.1.1.4.12</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="identifier-syntax">CONV_TO</span><span class="plain-syntax">(</span><span class="reserved-syntax">rule</span><span class="plain-syntax">) }</span>
<span class="reserved-syntax">rulebook</span><span class="plain-syntax"> *</span><span class="function-syntax">Rvalues::to_rulebook</span><button class="popup" onclick="togglePopup('usagePopup22')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup22">Usage of <span class="code-font"><span class="function-syntax">Rvalues::to_rulebook</span></span>:<br/><a href="14-rv.html#SP20">&#167;20</a>, <a href="14-rv.html#SP24_3">&#167;24.3</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_18">&#167;3.3.18</a>, <a href="9-ma.html#SP3_3_25_2">&#167;3.3.25.2</a><br/>Rule Placement Sentences - <a href="21-rps.html#SP2">&#167;2</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="identifier-syntax">CONV_TO</span><span class="plain-syntax">(</span><span class="reserved-syntax">rulebook</span><span class="plain-syntax">) }</span>
<span class="reserved-syntax">property</span><span class="plain-syntax"> *</span><span class="function-syntax">Rvalues::to_property</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">Rvalues::to_property</span></span>:<br/><a href="14-rv.html#SP20">&#167;20</a>, <a href="14-rv.html#SP23_3">&#167;23.3</a>, <a href="14-rv.html#SP24_3_1">&#167;24.3.1</a><br/>The Creator - <a href="9-tc.html#SP4_5">&#167;4.5</a><br/>Make Assertions - <a href="9-ma.html#SP4_3_8_2">&#167;4.3.8.2</a>, <a href="9-ma.html#SP4_3_41_4">&#167;4.3.41.4</a>, <a href="9-ma.html#SP4_3_41_7">&#167;4.3.41.7</a><br/>Propositions - <a href="11-pr.html#SP35_2">&#167;35.2</a><br/>Sentence Conversions - <a href="11-sc.html#SP3_3">&#167;3.3</a><br/>Simplifications - <a href="11-sm.html#SP17_1">&#167;17.1</a>, <a href="11-sm.html#SP18">&#167;18</a><br/>Lvalues - <a href="14-lv.html#SP10">&#167;10</a>, <a href="14-lv.html#SP12_5">&#167;12.5</a>, <a href="14-lv.html#SP14_3">&#167;14.3</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_1_2_1">&#167;11.9.1.1.2.1</a>, <a href="14-ds2.html#SP11_9_1_1_5_1_2">&#167;11.9.1.1.5.1.2</a>, <a href="14-ds2.html#SP11_9_1_2_3">&#167;11.9.1.2.3</a>, <a href="14-ds2.html#SP13">&#167;13</a>, <a href="14-ds2.html#SP19_3">&#167;19.3</a><br/>Properties - <a href="15-pr.html#SP4">&#167;4</a><br/>The Provision Relation - <a href="15-tpr.html#SP6">&#167;6</a>, <a href="15-tpr.html#SP7">&#167;7</a><br/>Compile Invocations Inline - <a href="25-cii.html#SP3_1_1_4_11">&#167;3.1.1.4.11</a>, <a href="25-cii.html#SP3_7">&#167;3.7</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="identifier-syntax">CONV_TO</span><span class="plain-syntax">(</span><span class="reserved-syntax">property</span><span class="plain-syntax">) }</span>
<span class="reserved-syntax">rule</span><span class="plain-syntax"> *</span><span class="function-syntax">Rvalues::to_rule</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">Rvalues::to_rule</span></span>:<br/><a href="14-rv.html#SP20">&#167;20</a>, <a href="14-rv.html#SP24_3">&#167;24.3</a><br/>Make Assertions - <a href="9-ma.html#SP4_3_41_6">&#167;4.3.41.6</a><br/>I6 Schemas - <a href="12-is.html#SP7_1">&#167;7.1</a><br/>Rules - <a href="21-rl.html#SP6">&#167;6</a><br/>Compile Invocations Inline - <a href="25-cii.html#SP3_1_1_4_12">&#167;3.1.1.4.12</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="identifier-syntax">CONV_TO</span><span class="plain-syntax">(</span><span class="reserved-syntax">rule</span><span class="plain-syntax">) }</span>
<span class="reserved-syntax">rulebook</span><span class="plain-syntax"> *</span><span class="function-syntax">Rvalues::to_rulebook</span><button class="popup" onclick="togglePopup('usagePopup22')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup22">Usage of <span class="code-font"><span class="function-syntax">Rvalues::to_rulebook</span></span>:<br/><a href="14-rv.html#SP20">&#167;20</a>, <a href="14-rv.html#SP24_3">&#167;24.3</a><br/>Make Assertions - <a href="9-ma.html#SP4_3_18">&#167;4.3.18</a>, <a href="9-ma.html#SP4_3_25_2">&#167;4.3.25.2</a><br/>Rule Placement Sentences - <a href="21-rps.html#SP2">&#167;2</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="identifier-syntax">CONV_TO</span><span class="plain-syntax">(</span><span class="reserved-syntax">rulebook</span><span class="plain-syntax">) }</span>
<span class="reserved-syntax">table</span><span class="plain-syntax"> *</span><span class="function-syntax">Rvalues::to_table</span><button class="popup" onclick="togglePopup('usagePopup23')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup23">Usage of <span class="code-font"><span class="function-syntax">Rvalues::to_table</span></span>:<br/><a href="14-rv.html#SP24_3">&#167;24.3</a><br/>Tables of Definitions - <a href="19-tod.html#SP6">&#167;6</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="identifier-syntax">CONV_TO</span><span class="plain-syntax">(</span><span class="reserved-syntax">table</span><span class="plain-syntax">) }</span>
<span class="reserved-syntax">table_column</span><span class="plain-syntax"> *</span><span class="function-syntax">Rvalues::to_table_column</span><button class="popup" onclick="togglePopup('usagePopup24')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup24">Usage of <span class="code-font"><span class="function-syntax">Rvalues::to_table_column</span></span>:<br/><a href="14-rv.html#SP20">&#167;20</a>, <a href="14-rv.html#SP23_5">&#167;23.5</a>, <a href="14-rv.html#SP24_3">&#167;24.3</a><br/>Simplifications - <a href="11-sm.html#SP4">&#167;4</a><br/>Lvalues - <a href="14-lv.html#SP12_3">&#167;12.3</a><br/>Table Columns - <a href="19-tc.html#SP13">&#167;13</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="identifier-syntax">CONV_TO</span><span class="plain-syntax">(</span><span class="reserved-syntax">table_column</span><span class="plain-syntax">) }</span>
<span class="reserved-syntax">use_option</span><span class="plain-syntax"> *</span><span class="function-syntax">Rvalues::to_use_option</span><button class="popup" onclick="togglePopup('usagePopup25')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup25">Usage of <span class="code-font"><span class="function-syntax">Rvalues::to_use_option</span></span>:<br/><a href="14-rv.html#SP24_3">&#167;24.3</a><br/>Use Options - <a href="26-uo.html#SP7">&#167;7</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="identifier-syntax">CONV_TO</span><span class="plain-syntax">(</span><span class="reserved-syntax">use_option</span><span class="plain-syntax">) }</span>
@ -156,13 +156,13 @@ objects.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">Rvalues::to_instance</span><button class="popup" onclick="togglePopup('usagePopup28')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup28">Usage of <span class="code-font"><span class="function-syntax">Rvalues::to_instance</span></span>:<br/><a href="14-rv.html#SP4">&#167;4</a>, <a href="14-rv.html#SP20">&#167;20</a>, <a href="14-rv.html#SP22">&#167;22</a>, <a href="14-rv.html#SP23_1">&#167;23.1</a>, <a href="14-rv.html#SP24_3">&#167;24.3</a><br/>Supplementary Quotes - <a href="2-sq.html#SP4">&#167;4</a><br/>Adjective Meanings - <a href="4-am.html#SP26_4">&#167;26.4</a><br/>Instances - <a href="5-ins.html#SP17">&#167;17</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_39">&#167;3.3.39</a>, <a href="9-ma.html#SP3_3_40_1">&#167;3.3.40.1</a>, <a href="9-ma.html#SP3_3_41_5">&#167;3.3.41.5</a><br/>Verbal and Relative Clauses - <a href="10-varc.html#SP9_1">&#167;9.1</a><br/>Propositions - <a href="11-pr.html#SP35_1">&#167;35.1</a><br/>The Equality Relation - <a href="12-ter.html#SP8_5">&#167;8.5</a><br/>Specifications - <a href="14-sp.html#SP4">&#167;4</a><br/>Descriptions - <a href="14-ds.html#SP5">&#167;5</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_1_5_1_1">&#167;11.9.1.1.5.1.1</a><br/>Inference Subjects - <a href="16-is.html#SP17">&#167;17</a><br/>Phrase Runtime Context Data - <a href="22-prcd.html#SP6">&#167;6</a><br/>Local Variables - <a href="24-lv.html#SP34">&#167;34</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="identifier-syntax">CONV_TO</span><span class="plain-syntax">(</span><span class="reserved-syntax">instance</span><span class="plain-syntax">) }</span>
<span class="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">Rvalues::to_instance</span><button class="popup" onclick="togglePopup('usagePopup28')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup28">Usage of <span class="code-font"><span class="function-syntax">Rvalues::to_instance</span></span>:<br/><a href="14-rv.html#SP4">&#167;4</a>, <a href="14-rv.html#SP20">&#167;20</a>, <a href="14-rv.html#SP22">&#167;22</a>, <a href="14-rv.html#SP23_1">&#167;23.1</a>, <a href="14-rv.html#SP24_3">&#167;24.3</a><br/>Supplementary Quotes - <a href="2-sq.html#SP4">&#167;4</a><br/>Adjective Meanings - <a href="4-am.html#SP26_4">&#167;26.4</a><br/>Instances - <a href="5-ins.html#SP17">&#167;17</a><br/>Make Assertions - <a href="9-ma.html#SP4_3_39">&#167;4.3.39</a>, <a href="9-ma.html#SP4_3_40_1">&#167;4.3.40.1</a>, <a href="9-ma.html#SP4_3_41_5">&#167;4.3.41.5</a><br/>Verbal and Relative Clauses - <a href="10-varc.html#SP9_1">&#167;9.1</a><br/>Propositions - <a href="11-pr.html#SP35_1">&#167;35.1</a><br/>The Equality Relation - <a href="12-ter.html#SP8_5">&#167;8.5</a><br/>Specifications - <a href="14-sp.html#SP4">&#167;4</a><br/>Descriptions - <a href="14-ds.html#SP5">&#167;5</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_1_5_1_1">&#167;11.9.1.1.5.1.1</a><br/>Inference Subjects - <a href="16-is.html#SP17">&#167;17</a><br/>Phrase Runtime Context Data - <a href="22-prcd.html#SP6">&#167;6</a><br/>Local Variables - <a href="24-lv.html#SP34">&#167;34</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="identifier-syntax">CONV_TO</span><span class="plain-syntax">(</span><span class="reserved-syntax">instance</span><span class="plain-syntax">) }</span>
</pre>
<p class="commentary firstcommentary"><a id="SP4"></a><b>&#167;4. </b>An instance of a subkind of <span class="extract"><span class="extract-syntax">K_object</span></span> is called an "object":
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">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">&#167;22</a>, <a href="14-rv.html#SP23">&#167;23</a><br/>Supplementary Quotes - <a href="2-sq.html#SP4">&#167;4</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_41">&#167;3.3.41</a>, <a href="9-ma.html#SP3_3_41_2">&#167;3.3.41.2</a><br/>Relation Knowledge - <a href="9-rk.html#SP1_3">&#167;1.3</a><br/>Specifications - <a href="14-sp.html#SP3">&#167;3</a>, <a href="14-sp.html#SP4">&#167;4</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_2_3">&#167;11.9.1.2.3</a><br/>Local Variables - <a href="24-lv.html#SP34">&#167;34</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="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">&#167;22</a>, <a href="14-rv.html#SP23">&#167;23</a><br/>Supplementary Quotes - <a href="2-sq.html#SP4">&#167;4</a><br/>Make Assertions - <a href="9-ma.html#SP4_3_41">&#167;4.3.41</a>, <a href="9-ma.html#SP4_3_41_2">&#167;4.3.41.2</a><br/>Relation Knowledge - <a href="9-rk.html#SP1_3">&#167;1.3</a><br/>Specifications - <a href="14-sp.html#SP3">&#167;3</a>, <a href="14-sp.html#SP4">&#167;4</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_2_3">&#167;11.9.1.2.3</a><br/>Local Variables - <a href="24-lv.html#SP34">&#167;34</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">)) &amp;&amp;</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="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
@ -415,14 +415,14 @@ in the proposition.
<p class="commentary firstcommentary"><a id="SP19"></a><b>&#167;19. Testing. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Rvalues::is_CONSTANT_construction</span><button class="popup" onclick="togglePopup('usagePopup50')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup50">Usage of <span class="code-font"><span class="function-syntax">Rvalues::is_CONSTANT_construction</span></span>:<br/><a href="14-rv.html#SP18">&#167;18</a>, <a href="14-rv.html#SP21">&#167;21</a>, <a href="14-rv.html#SP23">&#167;23</a><br/>The Creator - <a href="9-tc.html#SP4_5">&#167;4.5</a><br/>Make Assertions - <a href="9-ma.html#SP3_2">&#167;3.2</a>, <a href="9-ma.html#SP3_3_18">&#167;3.3.18</a>, <a href="9-ma.html#SP3_3_25">&#167;3.3.25</a>, <a href="9-ma.html#SP3_3_41">&#167;3.3.41</a>, <a href="9-ma.html#SP3_3_41_4">&#167;3.3.41.4</a>, <a href="9-ma.html#SP3_3_41_7">&#167;3.3.41.7</a><br/>Property Declarations - <a href="9-pd.html#SP5_11_1">&#167;5.11.1</a><br/>Constants and Descriptions - <a href="10-cad.html#SP3">&#167;3</a>, <a href="10-cad.html#SP5">&#167;5</a><br/>Propositions - <a href="11-pr.html#SP35_2">&#167;35.2</a><br/>Sentence Conversions - <a href="11-sc.html#SP3_3">&#167;3.3</a>, <a href="11-sc.html#SP3_6">&#167;3.6</a><br/>Simplifications - <a href="11-sm.html#SP17">&#167;17</a>, <a href="11-sm.html#SP18">&#167;18</a><br/>Deciding to Defer - <a href="12-dtd.html#SP18">&#167;18</a><br/>Specifications - <a href="14-sp.html#SP3">&#167;3</a><br/>Lvalues - <a href="14-lv.html#SP10">&#167;10</a><br/>Descriptions - <a href="14-ds.html#SP1">&#167;1</a>, <a href="14-ds.html#SP2">&#167;2</a><br/>Dash - <a href="14-ds2.html#SP10_1_1_3_1_3">&#167;10.1.1.3.1.3</a>, <a href="14-ds2.html#SP11_9_1_1_2_1">&#167;11.9.1.1.2.1</a>, <a href="14-ds2.html#SP11_9_1_1_3_1_1">&#167;11.9.1.1.3.1.1</a>, <a href="14-ds2.html#SP11_9_1_1_5_1">&#167;11.9.1.1.5.1</a>, <a href="14-ds2.html#SP11_9_1_1_5_1_2">&#167;11.9.1.1.5.1.2</a>, <a href="14-ds2.html#SP13">&#167;13</a>, <a href="14-ds2.html#SP19_3">&#167;19.3</a><br/>Properties - <a href="15-pr.html#SP5_2">&#167;5.2</a><br/>Rules - <a href="21-rl.html#SP6">&#167;6</a><br/>Rule Placement Sentences - <a href="21-rps.html#SP2">&#167;2</a><br/>Activities - <a href="21-ac.html#SP11">&#167;11</a><br/>Phrases as Values - <a href="22-pav.html#SP4">&#167;4</a><br/>Local Variables - <a href="24-lv.html#SP34">&#167;34</a><br/>Compile Invocations Inline - <a href="25-cii.html#SP3_1_1_4_12">&#167;3.1.1.4.12</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="identifier-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Rvalues::is_CONSTANT_construction</span><button class="popup" onclick="togglePopup('usagePopup50')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup50">Usage of <span class="code-font"><span class="function-syntax">Rvalues::is_CONSTANT_construction</span></span>:<br/><a href="14-rv.html#SP18">&#167;18</a>, <a href="14-rv.html#SP21">&#167;21</a>, <a href="14-rv.html#SP23">&#167;23</a><br/>The Creator - <a href="9-tc.html#SP4_5">&#167;4.5</a><br/>Make Assertions - <a href="9-ma.html#SP4_2">&#167;4.2</a>, <a href="9-ma.html#SP4_3_18">&#167;4.3.18</a>, <a href="9-ma.html#SP4_3_25">&#167;4.3.25</a>, <a href="9-ma.html#SP4_3_41">&#167;4.3.41</a>, <a href="9-ma.html#SP4_3_41_4">&#167;4.3.41.4</a>, <a href="9-ma.html#SP4_3_41_7">&#167;4.3.41.7</a><br/>Property Declarations - <a href="9-pd.html#SP5_11_1">&#167;5.11.1</a><br/>Constants and Descriptions - <a href="10-cad.html#SP3">&#167;3</a>, <a href="10-cad.html#SP5">&#167;5</a><br/>Propositions - <a href="11-pr.html#SP35_2">&#167;35.2</a><br/>Sentence Conversions - <a href="11-sc.html#SP3_3">&#167;3.3</a>, <a href="11-sc.html#SP3_6">&#167;3.6</a><br/>Simplifications - <a href="11-sm.html#SP17">&#167;17</a>, <a href="11-sm.html#SP18">&#167;18</a><br/>Deciding to Defer - <a href="12-dtd.html#SP18">&#167;18</a><br/>Specifications - <a href="14-sp.html#SP3">&#167;3</a><br/>Lvalues - <a href="14-lv.html#SP10">&#167;10</a><br/>Descriptions - <a href="14-ds.html#SP1">&#167;1</a>, <a href="14-ds.html#SP2">&#167;2</a><br/>Dash - <a href="14-ds2.html#SP10_1_1_3_1_3">&#167;10.1.1.3.1.3</a>, <a href="14-ds2.html#SP11_9_1_1_2_1">&#167;11.9.1.1.2.1</a>, <a href="14-ds2.html#SP11_9_1_1_3_1_1">&#167;11.9.1.1.3.1.1</a>, <a href="14-ds2.html#SP11_9_1_1_5_1">&#167;11.9.1.1.5.1</a>, <a href="14-ds2.html#SP11_9_1_1_5_1_2">&#167;11.9.1.1.5.1.2</a>, <a href="14-ds2.html#SP13">&#167;13</a>, <a href="14-ds2.html#SP19_3">&#167;19.3</a><br/>Properties - <a href="15-pr.html#SP5_2">&#167;5.2</a><br/>Rules - <a href="21-rl.html#SP6">&#167;6</a><br/>Rule Placement Sentences - <a href="21-rps.html#SP2">&#167;2</a><br/>Activities - <a href="21-ac.html#SP11">&#167;11</a><br/>Phrases as Values - <a href="22-pav.html#SP4">&#167;4</a><br/>Local Variables - <a href="24-lv.html#SP34">&#167;34</a><br/>Compile Invocations Inline - <a href="25-cii.html#SP3_1_1_4_12">&#167;3.1.1.4.12</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="identifier-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">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">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::get_construct</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">con</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>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Rvalues::is_CONSTANT_of_kind</span><button class="popup" onclick="togglePopup('usagePopup51')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup51">Usage of <span class="code-font"><span class="function-syntax">Rvalues::is_CONSTANT_of_kind</span></span>:<br/><a href="14-rv.html#SP9">&#167;9</a>, <a href="14-rv.html#SP10">&#167;10</a>, <a href="14-rv.html#SP11">&#167;11</a>, <a href="14-rv.html#SP12">&#167;12</a><br/>Literal Patterns - <a href="5-lp.html#SP34_4">&#167;34.4</a><br/>Traverse for Assertions - <a href="9-tfa.html#SP7_2_1">&#167;7.2.1</a><br/>The Creator - <a href="9-tc.html#SP2">&#167;2</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_26_1_1">&#167;3.3.26.1.1</a>, <a href="9-ma.html#SP3_3_41_6">&#167;3.3.41.6</a><br/>Architecture of the S-Parser - <a href="10-aots.html#SP10">&#167;10</a><br/>Constants and Descriptions - <a href="10-cad.html#SP3">&#167;3</a>, <a href="10-cad.html#SP5">&#167;5</a><br/>Type Expressions and Values - <a href="10-teav.html#SP12_2">&#167;12.2</a><br/>Conditions and Phrases - <a href="10-cap.html#SP12_1">&#167;12.1</a><br/>I6 Schemas - <a href="12-is.html#SP7_1">&#167;7.1</a><br/>Dash - <a href="14-ds2.html#SP17">&#167;17</a>, <a href="14-ds2.html#SP19_5_2">&#167;19.5.2</a><br/>Responses - <a href="17-rs.html#SP11">&#167;11</a><br/>Tables of Definitions - <a href="19-tod.html#SP2_1">&#167;2.1</a><br/>Focus and Outcome - <a href="21-fao.html#SP9">&#167;9</a>, <a href="21-fao.html#SP10">&#167;10</a><br/>Compile Invocations - <a href="25-ci.html#SP4_2">&#167;4.2</a><br/>Compile Invocations Inline - <a href="25-cii.html#SP3_1_1_4_6">&#167;3.1.1.4.6</a>, <a href="25-cii.html#SP3_1_1_4_9">&#167;3.1.1.4.9</a>, <a href="25-cii.html#SP3_1_1_4_10">&#167;3.1.1.4.10</a>, <a href="25-cii.html#SP3_5_8_1">&#167;3.5.8.1</a>, <a href="25-cii.html#SP3_7_3">&#167;3.7.3</a><br/>Use Options - <a href="26-uo.html#SP7">&#167;7</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="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Rvalues::is_CONSTANT_of_kind</span><button class="popup" onclick="togglePopup('usagePopup51')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup51">Usage of <span class="code-font"><span class="function-syntax">Rvalues::is_CONSTANT_of_kind</span></span>:<br/><a href="14-rv.html#SP9">&#167;9</a>, <a href="14-rv.html#SP10">&#167;10</a>, <a href="14-rv.html#SP11">&#167;11</a>, <a href="14-rv.html#SP12">&#167;12</a><br/>Literal Patterns - <a href="5-lp.html#SP34_4">&#167;34.4</a><br/>Traverse for Assertions - <a href="9-tfa.html#SP7_2_1">&#167;7.2.1</a><br/>The Creator - <a href="9-tc.html#SP2">&#167;2</a><br/>Make Assertions - <a href="9-ma.html#SP4_3_26_1_1">&#167;4.3.26.1.1</a>, <a href="9-ma.html#SP4_3_41_6">&#167;4.3.41.6</a><br/>Architecture of the S-Parser - <a href="10-aots.html#SP10">&#167;10</a><br/>Constants and Descriptions - <a href="10-cad.html#SP3">&#167;3</a>, <a href="10-cad.html#SP5">&#167;5</a><br/>Type Expressions and Values - <a href="10-teav.html#SP12_2">&#167;12.2</a><br/>Conditions and Phrases - <a href="10-cap.html#SP12_1">&#167;12.1</a><br/>I6 Schemas - <a href="12-is.html#SP7_1">&#167;7.1</a><br/>Dash - <a href="14-ds2.html#SP17">&#167;17</a>, <a href="14-ds2.html#SP19_5_2">&#167;19.5.2</a><br/>Responses - <a href="17-rs.html#SP11">&#167;11</a><br/>Tables of Definitions - <a href="19-tod.html#SP2_1">&#167;2.1</a><br/>Focus and Outcome - <a href="21-fao.html#SP9">&#167;9</a>, <a href="21-fao.html#SP10">&#167;10</a><br/>Compile Invocations - <a href="25-ci.html#SP4_2">&#167;4.2</a><br/>Compile Invocations Inline - <a href="25-cii.html#SP3_1_1_4_6">&#167;3.1.1.4.6</a>, <a href="25-cii.html#SP3_1_1_4_9">&#167;3.1.1.4.9</a>, <a href="25-cii.html#SP3_1_1_4_10">&#167;3.1.1.4.10</a>, <a href="25-cii.html#SP3_5_8_1">&#167;3.5.8.1</a>, <a href="25-cii.html#SP3_7_3">&#167;3.7.3</a><br/>Use Options - <a href="26-uo.html#SP7">&#167;7</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="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">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">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Compare::eq</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</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>

File diff suppressed because one or more lines are too long

View file

@ -236,7 +236,7 @@ becomes the name of a property.
<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">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">can_coincide_with_property</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">property</span><span class="plain-syntax"> *</span><span class="function-syntax">Properties::Conditions::get_coinciding_property</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Properties::Conditions::get_coinciding_property</span></span>:<br/><a href="15-cp.html#SP3">&#167;3</a><br/>Instances - <a href="5-ins.html#SP6">&#167;6</a>, <a href="5-ins.html#SP10">&#167;10</a>, <a href="5-ins.html#SP36">&#167;36</a>, <a href="5-ins.html#SP37">&#167;37</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_41">&#167;3.3.41</a>, <a href="9-ma.html#SP3_3_41_5">&#167;3.3.41.5</a><br/>Terms - <a href="11-tr.html#SP9">&#167;9</a><br/>Propositions - <a href="11-pr.html#SP27">&#167;27</a>, <a href="11-pr.html#SP35_1">&#167;35.1</a><br/>The Equality Relation - <a href="12-ter.html#SP5_1">&#167;5.1</a>, <a href="12-ter.html#SP8">&#167;8</a>, <a href="12-ter.html#SP8_1">&#167;8.1</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_1_5_1_1">&#167;11.9.1.1.5.1.1</a>, <a href="14-ds2.html#SP11_9_1_1_5_1_2">&#167;11.9.1.1.5.1.2</a><br/>Comparative Relations - <a href="15-cr.html#SP5">&#167;5</a>, <a href="15-cr.html#SP7_1">&#167;7.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="reserved-syntax">property</span><span class="plain-syntax"> *</span><span class="function-syntax">Properties::Conditions::get_coinciding_property</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Properties::Conditions::get_coinciding_property</span></span>:<br/><a href="15-cp.html#SP3">&#167;3</a><br/>Instances - <a href="5-ins.html#SP6">&#167;6</a>, <a href="5-ins.html#SP10">&#167;10</a>, <a href="5-ins.html#SP36">&#167;36</a>, <a href="5-ins.html#SP37">&#167;37</a><br/>Make Assertions - <a href="9-ma.html#SP4_3_41">&#167;4.3.41</a>, <a href="9-ma.html#SP4_3_41_5">&#167;4.3.41.5</a><br/>Terms - <a href="11-tr.html#SP9">&#167;9</a><br/>Propositions - <a href="11-pr.html#SP27">&#167;27</a>, <a href="11-pr.html#SP35_1">&#167;35.1</a><br/>The Equality Relation - <a href="12-ter.html#SP5_1">&#167;5.1</a>, <a href="12-ter.html#SP8">&#167;8</a>, <a href="12-ter.html#SP8_1">&#167;8.1</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_1_5_1_1">&#167;11.9.1.1.5.1.1</a>, <a href="14-ds2.html#SP11_9_1_1_5_1_2">&#167;11.9.1.1.5.1.2</a><br/>Comparative Relations - <a href="15-cr.html#SP5">&#167;5</a>, <a href="15-cr.html#SP7_1">&#167;7.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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">coinciding_property</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>

View file

@ -537,7 +537,7 @@ of the other:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Properties::is_either_or</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">Properties::is_either_or</span></span>:<br/><a href="15-pr.html#SP21">&#167;21</a>, <a href="15-pr.html#SP23">&#167;23</a>, <a href="15-pr.html#SP25">&#167;25</a>, <a href="15-pr.html#SP26">&#167;26</a>, <a href="15-pr.html#SP27">&#167;27</a><br/>Instances - <a href="5-ins.html#SP10">&#167;10</a><br/>The Creator - <a href="9-tc.html#SP4_5">&#167;4.5</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_41_7">&#167;3.3.41.7</a><br/>Property Knowledge - <a href="9-pk.html#SP4">&#167;4</a><br/>Implications - <a href="9-imp.html#SP6">&#167;6</a><br/>Property Declarations - <a href="9-pd.html#SP5_8_1">&#167;5.8.1</a>, <a href="9-pd.html#SP5_8_3">&#167;5.8.3</a>, <a href="9-pd.html#SP5_11_2">&#167;5.11.2</a><br/>Propositions - <a href="11-pr.html#SP35_2">&#167;35.2</a><br/>Tree Conversions - <a href="11-tc.html#SP7_1">&#167;7.1</a><br/>Sentence Conversions - <a href="11-sc.html#SP3_3">&#167;3.3</a><br/>RValues - <a href="14-rv.html#SP24_3_1">&#167;24.3.1</a><br/>Lvalues - <a href="14-lv.html#SP12_5">&#167;12.5</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_2_3">&#167;11.9.1.2.3</a>, <a href="14-ds2.html#SP13">&#167;13</a><br/>Properties of Values - <a href="15-pov.html#SP4_1">&#167;4.1</a><br/>Emit Property Values - <a href="15-epv.html#SP2">&#167;2</a>, <a href="15-epv.html#SP2_1">&#167;2.1</a>, <a href="15-epv.html#SP3">&#167;3</a><br/>Property Permissions - <a href="16-pp.html#SP8">&#167;8</a><br/>Inferences - <a href="16-in.html#SP14">&#167;14</a>, <a href="16-in.html#SP16">&#167;16</a>, <a href="16-in.html#SP17">&#167;17</a>, <a href="16-in.html#SP19">&#167;19</a><br/>Complete Model World - <a href="16-cmw.html#SP1_2_2">&#167;1.2.2</a>, <a href="16-cmw.html#SP1_2_2_1_1">&#167;1.2.2.1.1</a><br/>Compile Invocations Inline - <a href="25-cii.html#SP3_1_1_4_11">&#167;3.1.1.4.11</a></span></button><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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Properties::is_either_or</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">Properties::is_either_or</span></span>:<br/><a href="15-pr.html#SP21">&#167;21</a>, <a href="15-pr.html#SP23">&#167;23</a>, <a href="15-pr.html#SP25">&#167;25</a>, <a href="15-pr.html#SP26">&#167;26</a>, <a href="15-pr.html#SP27">&#167;27</a><br/>Instances - <a href="5-ins.html#SP10">&#167;10</a><br/>The Creator - <a href="9-tc.html#SP4_5">&#167;4.5</a><br/>Make Assertions - <a href="9-ma.html#SP4_3_41_7">&#167;4.3.41.7</a><br/>Property Knowledge - <a href="9-pk.html#SP4">&#167;4</a><br/>Implications - <a href="9-imp.html#SP6">&#167;6</a><br/>Property Declarations - <a href="9-pd.html#SP5_8_1">&#167;5.8.1</a>, <a href="9-pd.html#SP5_8_3">&#167;5.8.3</a>, <a href="9-pd.html#SP5_11_2">&#167;5.11.2</a><br/>Propositions - <a href="11-pr.html#SP35_2">&#167;35.2</a><br/>Tree Conversions - <a href="11-tc.html#SP7_1">&#167;7.1</a><br/>Sentence Conversions - <a href="11-sc.html#SP3_3">&#167;3.3</a><br/>RValues - <a href="14-rv.html#SP24_3_1">&#167;24.3.1</a><br/>Lvalues - <a href="14-lv.html#SP12_5">&#167;12.5</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_2_3">&#167;11.9.1.2.3</a>, <a href="14-ds2.html#SP13">&#167;13</a><br/>Properties of Values - <a href="15-pov.html#SP4_1">&#167;4.1</a><br/>Emit Property Values - <a href="15-epv.html#SP2">&#167;2</a>, <a href="15-epv.html#SP2_1">&#167;2.1</a>, <a href="15-epv.html#SP3">&#167;3</a><br/>Property Permissions - <a href="16-pp.html#SP8">&#167;8</a><br/>Inferences - <a href="16-in.html#SP14">&#167;14</a>, <a href="16-in.html#SP16">&#167;16</a>, <a href="16-in.html#SP17">&#167;17</a>, <a href="16-in.html#SP19">&#167;19</a><br/>Complete Model World - <a href="16-cmw.html#SP1_2_2">&#167;1.2.2</a>, <a href="16-cmw.html#SP1_2_2_1_1">&#167;1.2.2.1.1</a><br/>Compile Invocations Inline - <a href="25-cii.html#SP3_1_1_4_11">&#167;3.1.1.4.11</a></span></button><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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">prn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">either_or</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">Properties::is_value_property</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Properties::is_value_property</span></span>:<br/>Dash - <a href="14-ds2.html#SP10_1_1_3_1_3">&#167;10.1.1.3.1.3</a>, <a href="14-ds2.html#SP11_9_1_1_2_1">&#167;11.9.1.1.2.1</a>, <a href="14-ds2.html#SP19_3_1">&#167;19.3.1</a><br/>The Provision Relation - <a href="15-tpr.html#SP7_1">&#167;7.1</a><br/>Same Property Relation - <a href="15-spr.html#SP2">&#167;2</a><br/>Inferences - <a href="16-in.html#SP20_3_3">&#167;20.3.3</a></span></button><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>

View file

@ -106,7 +106,7 @@ sentence will be properly parsed later on.
<span class="plain-syntax"> &amp;&amp; (</span><a href="9-tfa.html#SP9" class="function-link"><span class="function-syntax">Assertions::Traverse::special</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> &amp;&amp; (</span><span class="identifier-syntax">pn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> &amp;&amp; (</span><span class="identifier-syntax">pn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> &amp;&amp; (</span><a href="9-tbath.html#SP3" class="function-link"><span class="function-syntax">Assertions::Copular::possessive</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> &amp;&amp; (</span><span class="identifier-syntax">Diagrams::is_possessive_RELATIONSHIP</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> &amp;&amp; (</span><span class="identifier-syntax">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">) == </span><span class="identifier-syntax">CALLED_NT</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> &amp;&amp; (</span><span class="identifier-syntax">pn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> &amp;&amp; (</span><span class="identifier-syntax">pn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">)) {</span>

View file

@ -356,7 +356,7 @@ be caught later on Inform's run.
<p class="commentary firstcommentary"><a id="SP12"></a><b>&#167;12. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Properties::SettingRelations::bp_sets_a_property</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">Properties::SettingRelations::bp_sets_a_property</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP3_3_34_3">&#167;3.3.34.3</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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Properties::SettingRelations::bp_sets_a_property</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">Properties::SettingRelations::bp_sets_a_property</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP4_3_34_4">&#167;4.3.34.4</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="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">bp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">set_property</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">bp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">property_pending_text</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>

View file

@ -73,7 +73,7 @@ exist, it will be created.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">property</span><span class="plain-syntax"> *</span><span class="function-syntax">Properties::Valued::obtain</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Properties::Valued::obtain</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP3_3_13">&#167;3.3.13</a>, <a href="9-ma.html#SP3_3_26">&#167;3.3.26</a><br/>Property Declarations - <a href="9-pd.html#SP6_1">&#167;6.1</a><br/>Property Sentences - <a href="15-ps.html#SP5">&#167;5</a><br/>Condition Properties - <a href="15-cp.html#SP3">&#167;3</a><br/>Tables of Definitions - <a href="19-tod.html#SP6_4_1">&#167;6.4.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">property</span><span class="plain-syntax"> *</span><span class="function-syntax">Properties::Valued::obtain</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Properties::Valued::obtain</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP4_3_13">&#167;4.3.13</a>, <a href="9-ma.html#SP4_3_26">&#167;4.3.26</a><br/>Property Declarations - <a href="9-pd.html#SP6_1">&#167;6.1</a><br/>Property Sentences - <a href="15-ps.html#SP5">&#167;5</a><br/>Condition Properties - <a href="15-cp.html#SP3">&#167;3</a><br/>Tables of Definitions - <a href="19-tod.html#SP6_4_1">&#167;6.4.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="15-pr.html#SP4" class="function-link"><span class="function-syntax">Properties::obtain</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
@ -182,7 +182,7 @@ to the end user.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="function-syntax">Properties::Valued::kind</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Properties::Valued::kind</span></span>:<br/><a href="15-vp.html#SP11">&#167;11</a><br/>Instances - <a href="5-ins.html#SP10">&#167;10</a><br/>The Creator - <a href="9-tc.html#SP4_5">&#167;4.5</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_25">&#167;3.3.25</a>, <a href="9-ma.html#SP3_3_41_7">&#167;3.3.41.7</a><br/>Property Knowledge - <a href="9-pk.html#SP4">&#167;4</a><br/>Property Declarations - <a href="9-pd.html#SP5_11">&#167;5.11</a>, <a href="9-pd.html#SP7_1">&#167;7.1</a><br/>Tree Conversions - <a href="11-tc.html#SP7_1">&#167;7.1</a><br/>Sentence Conversions - <a href="11-sc.html#SP3_3">&#167;3.3</a><br/>RValues - <a href="14-rv.html#SP23_3">&#167;23.3</a><br/>Lvalues - <a href="14-lv.html#SP10">&#167;10</a>, <a href="14-lv.html#SP12_5">&#167;12.5</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_1_2_1">&#167;11.9.1.1.2.1</a>, <a href="14-ds2.html#SP11_9_1_1_3_1_1">&#167;11.9.1.1.3.1.1</a>, <a href="14-ds2.html#SP13">&#167;13</a>, <a href="14-ds2.html#SP19_3_1">&#167;19.3.1</a><br/>Properties - <a href="15-pr.html#SP15">&#167;15</a><br/>Measurement Adjectives - <a href="15-ma.html#SP8_2">&#167;8.2</a><br/>Setting Property Relation - <a href="15-spr2.html#SP8">&#167;8</a>, <a href="15-spr2.html#SP9">&#167;9</a><br/>Emit Property Values - <a href="15-epv.html#SP1_1_4">&#167;1.1.4</a><br/>Inferences - <a href="16-in.html#SP14">&#167;14</a>, <a href="16-in.html#SP16">&#167;16</a><br/>Tables of Definitions - <a href="19-tod.html#SP6_4_1">&#167;6.4.1</a><br/>Compile Invocations Inline - <a href="25-cii.html#SP3_1_1_4_11">&#167;3.1.1.4.11</a></span></button><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">kind</span><span class="plain-syntax"> *</span><span class="function-syntax">Properties::Valued::kind</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Properties::Valued::kind</span></span>:<br/><a href="15-vp.html#SP11">&#167;11</a><br/>Instances - <a href="5-ins.html#SP10">&#167;10</a><br/>The Creator - <a href="9-tc.html#SP4_5">&#167;4.5</a><br/>Make Assertions - <a href="9-ma.html#SP4_3_25">&#167;4.3.25</a>, <a href="9-ma.html#SP4_3_41_7">&#167;4.3.41.7</a><br/>Property Knowledge - <a href="9-pk.html#SP4">&#167;4</a><br/>Property Declarations - <a href="9-pd.html#SP5_11">&#167;5.11</a>, <a href="9-pd.html#SP7_1">&#167;7.1</a><br/>Tree Conversions - <a href="11-tc.html#SP7_1">&#167;7.1</a><br/>Sentence Conversions - <a href="11-sc.html#SP3_3">&#167;3.3</a><br/>RValues - <a href="14-rv.html#SP23_3">&#167;23.3</a><br/>Lvalues - <a href="14-lv.html#SP10">&#167;10</a>, <a href="14-lv.html#SP12_5">&#167;12.5</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_1_2_1">&#167;11.9.1.1.2.1</a>, <a href="14-ds2.html#SP11_9_1_1_3_1_1">&#167;11.9.1.1.3.1.1</a>, <a href="14-ds2.html#SP13">&#167;13</a>, <a href="14-ds2.html#SP19_3_1">&#167;19.3.1</a><br/>Properties - <a href="15-pr.html#SP15">&#167;15</a><br/>Measurement Adjectives - <a href="15-ma.html#SP8_2">&#167;8.2</a><br/>Setting Property Relation - <a href="15-spr2.html#SP8">&#167;8</a>, <a href="15-spr2.html#SP9">&#167;9</a><br/>Emit Property Values - <a href="15-epv.html#SP1_1_4">&#167;1.1.4</a><br/>Inferences - <a href="16-in.html#SP14">&#167;14</a>, <a href="16-in.html#SP16">&#167;16</a><br/>Tables of Definitions - <a href="19-tod.html#SP6_4_1">&#167;6.4.1</a><br/>Compile Invocations Inline - <a href="25-cii.html#SP3_1_1_4_11">&#167;3.1.1.4.11</a></span></button><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">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">prn</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">prn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">either_or</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="comment-syntax"> for better type-checking Problems</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">prn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">property_value_kind</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
@ -232,7 +232,7 @@ then say that a thing has a weight: that makes a property also called
<span class="plain-syntax"> </span><a href="5-ins.html#SP9" class="function-link"><span class="function-syntax">Instances::make_kind_coincident</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</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">int</span><span class="plain-syntax"> </span><span class="function-syntax">Properties::Valued::coincides_with_kind</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Properties::Valued::coincides_with_kind</span></span>:<br/>The Creator - <a href="9-tc.html#SP4_5">&#167;4.5</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_25">&#167;3.3.25</a>, <a href="9-ma.html#SP3_3_41_7">&#167;3.3.41.7</a><br/>Sentence Conversions - <a href="11-sc.html#SP3_3">&#167;3.3</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_1_3_1_1">&#167;11.9.1.1.3.1.1</a></span></button><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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Properties::Valued::coincides_with_kind</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Properties::Valued::coincides_with_kind</span></span>:<br/>The Creator - <a href="9-tc.html#SP4_5">&#167;4.5</a><br/>Make Assertions - <a href="9-ma.html#SP4_3_25">&#167;4.3.25</a>, <a href="9-ma.html#SP4_3_41_7">&#167;4.3.41.7</a><br/>Sentence Conversions - <a href="11-sc.html#SP3_3">&#167;3.3</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_1_3_1_1">&#167;11.9.1.1.3.1.1</a></span></button><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">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">prn</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">prn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">either_or</span><span class="plain-syntax">)) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"non-value property"</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">prn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">also_a_type</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>

View file

@ -160,7 +160,7 @@ organised as linked lists; hence the <span class="extract"><span class="extract-
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">inference</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure inference is accessed in 3/cs, 3/dlr, 3/pr, 3/tr, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/rs, 9/tfa, 9/tbath, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/ps, 15/cp, 16/is, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>
<ul class="endnotetexts"><li>The structure inference is accessed in 3/cs, 3/dlr, 3/pr, 3/tr, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/rs, 9/tfa, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/ps, 15/cp, 16/is, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP7"></a><b>&#167;7. Creation. </b>The following routine coins a newly minted inference which is not yet attached
to any subject: but it will not stay unattached for long. Note that if nothing
has been said about likelihood, the sentence is assumed to be factually certain.

View file

@ -356,7 +356,7 @@ read and written from specialist sections of Inform rather than here.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">InferenceSubjects::where_created</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">InferenceSubjects::where_created</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP3_3_8">&#167;3.3.8</a>, <a href="9-ma.html#SP3_3_8_1">&#167;3.3.8.1</a>, <a href="9-ma.html#SP6">&#167;6</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="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">InferenceSubjects::where_created</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">InferenceSubjects::where_created</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP4_3_8">&#167;4.3.8</a>, <a href="9-ma.html#SP4_3_8_1">&#167;4.3.8.1</a>, <a href="9-ma.html#SP7">&#167;7</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">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"null INFS"</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">infs</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">infs_created_at</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
@ -448,7 +448,7 @@ arise.
<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">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">InferenceSubjects::as_object_instance</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">InferenceSubjects::as_object_instance</span></span>:<br/><a href="16-is.html#SP18">&#167;18</a>, <a href="16-is.html#SP20">&#167;20</a><br/>Supplementary Quotes - <a href="2-sq.html#SP2">&#167;2</a><br/>Adjective Meanings - <a href="4-am.html#SP22">&#167;22</a><br/>Traverse for Assertions - <a href="9-tfa.html#SP12">&#167;12</a><br/>Assert Propositions - <a href="12-ap.html#SP9_6">&#167;9.6</a>, <a href="12-ap.html#SP9_7">&#167;9.7</a>, <a href="12-ap.html#SP9_8">&#167;9.8</a>, <a href="12-ap.html#SP9_9">&#167;9.9</a>, <a href="12-ap.html#SP9_10">&#167;9.10</a>, <a href="12-ap.html#SP10">&#167;10</a><br/>Lvalues - <a href="14-lv.html#SP14_3_1">&#167;14.3.1</a><br/>Inferences - <a href="16-in.html#SP12">&#167;12</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="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">InferenceSubjects::as_object_instance</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">InferenceSubjects::as_object_instance</span></span>:<br/><a href="16-is.html#SP18">&#167;18</a>, <a href="16-is.html#SP20">&#167;20</a><br/>Supplementary Quotes - <a href="2-sq.html#SP2">&#167;2</a><br/>Adjective Meanings - <a href="4-am.html#SP22">&#167;22</a><br/>Traverse for Assertions - <a href="9-tfa.html#SP13">&#167;13</a><br/>Assert Propositions - <a href="12-ap.html#SP9_6">&#167;9.6</a>, <a href="12-ap.html#SP9_7">&#167;9.7</a>, <a href="12-ap.html#SP9_8">&#167;9.8</a>, <a href="12-ap.html#SP9_9">&#167;9.9</a>, <a href="12-ap.html#SP9_10">&#167;9.10</a>, <a href="12-ap.html#SP10">&#167;10</a><br/>Lvalues - <a href="14-lv.html#SP14_3_1">&#167;14.3.1</a><br/>Inferences - <a href="16-in.html#SP12">&#167;12</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">) &amp;&amp; (</span><span class="identifier-syntax">infs</span><span class="plain-syntax">-&gt;</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">-&gt;</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="5-ins.html#SP18" 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>
@ -457,7 +457,7 @@ arise.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="function-syntax">InferenceSubjects::as_nonobject_kind</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_nonobject_kind</span></span>:<br/><a href="16-is.html#SP22">&#167;22</a><br/>Adjective Meanings - <a href="4-am.html#SP27">&#167;27</a><br/>Refine Parse Tree - <a href="9-rpt.html#SP9_6">&#167;9.6</a><br/>Assemblies - <a href="9-ass.html#SP9_1">&#167;9.1</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="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="function-syntax">InferenceSubjects::as_nonobject_kind</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_nonobject_kind</span></span>:<br/><a href="16-is.html#SP22">&#167;22</a><br/>Adjective Meanings - <a href="4-am.html#SP27">&#167;27</a><br/>Refine Parse Tree - <a href="9-rpt.html#SP10_6">&#167;10.6</a><br/>Assemblies - <a href="9-ass.html#SP9_1">&#167;9.1</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">) &amp;&amp; (</span><span class="identifier-syntax">infs</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kind_of_infs</span><span class="plain-syntax"> == </span><span class="constant-syntax">KIND_SUB</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">Kinds::base_construction</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RETRIEVE_POINTER_kind_constructor</span><span class="plain-syntax">(</span><span class="identifier-syntax">infs</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">represents</span><span class="plain-syntax">));</span>
@ -467,7 +467,7 @@ arise.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="function-syntax">InferenceSubjects::as_kind</span><button class="popup" onclick="togglePopup('usagePopup22')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup22">Usage of <span class="code-font"><span class="function-syntax">InferenceSubjects::as_kind</span></span>:<br/><a href="16-is.html#SP21">&#167;21</a><br/>Instances - <a href="5-ins.html#SP18">&#167;18</a><br/>To Be and To Have - <a href="9-tbath.html#SP6">&#167;6</a><br/>Assert Propositions - <a href="12-ap.html#SP9_6">&#167;9.6</a><br/>Knowledge about Kinds - <a href="13-kak.html#SP2">&#167;2</a>, <a href="13-kak.html#SP4">&#167;4</a>, <a href="13-kak.html#SP5">&#167;5</a>, <a href="13-kak.html#SP6">&#167;6</a><br/>Properties - <a href="15-pr.html#SP27">&#167;27</a><br/>Emit Property Values - <a href="15-epv.html#SP1">&#167;1</a>, <a href="15-epv.html#SP2">&#167;2</a>, <a href="15-epv.html#SP2_1">&#167;2.1</a><br/>Instance Counting - <a href="16-ic.html#SP12_3">&#167;12.3</a>, <a href="16-ic.html#SP14">&#167;14</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="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="function-syntax">InferenceSubjects::as_kind</span><button class="popup" onclick="togglePopup('usagePopup22')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup22">Usage of <span class="code-font"><span class="function-syntax">InferenceSubjects::as_kind</span></span>:<br/><a href="16-is.html#SP21">&#167;21</a><br/>Instances - <a href="5-ins.html#SP18">&#167;18</a><br/>Make Assertions - <a href="9-ma.html#SP1">&#167;1</a><br/>Assert Propositions - <a href="12-ap.html#SP9_6">&#167;9.6</a><br/>Knowledge about Kinds - <a href="13-kak.html#SP2">&#167;2</a>, <a href="13-kak.html#SP4">&#167;4</a>, <a href="13-kak.html#SP5">&#167;5</a>, <a href="13-kak.html#SP6">&#167;6</a><br/>Properties - <a href="15-pr.html#SP27">&#167;27</a><br/>Emit Property Values - <a href="15-epv.html#SP1">&#167;1</a>, <a href="15-epv.html#SP2">&#167;2</a>, <a href="15-epv.html#SP2_1">&#167;2.1</a><br/>Instance Counting - <a href="16-ic.html#SP12_3">&#167;12.3</a>, <a href="16-ic.html#SP14">&#167;14</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">) &amp;&amp; (</span><span class="identifier-syntax">infs</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kind_of_infs</span><span class="plain-syntax"> == </span><span class="constant-syntax">KIND_SUB</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">Kinds::base_construction</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RETRIEVE_POINTER_kind_constructor</span><span class="plain-syntax">(</span><span class="identifier-syntax">infs</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">represents</span><span class="plain-syntax">));</span>
@ -498,11 +498,11 @@ arise.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">InferenceSubjects::is_an_object</span><button class="popup" onclick="togglePopup('usagePopup26')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup26">Usage of <span class="code-font"><span class="function-syntax">InferenceSubjects::is_an_object</span></span>:<br/>Refine Parse Tree - <a href="9-rpt.html#SP9_6_1">&#167;9.6.1</a><br/>The Creator - <a href="9-tc.html#SP5_2_2">&#167;5.2.2</a>, <a href="9-tc.html#SP8_4_1">&#167;8.4.1</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_8">&#167;3.3.8</a>, <a href="9-ma.html#SP3_3_39">&#167;3.3.39</a><br/>Property Knowledge - <a href="9-pk.html#SP3_1">&#167;3.1</a><br/>Emit Property Values - <a href="15-epv.html#SP3_1">&#167;3.1</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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">InferenceSubjects::is_an_object</span><button class="popup" onclick="togglePopup('usagePopup26')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup26">Usage of <span class="code-font"><span class="function-syntax">InferenceSubjects::is_an_object</span></span>:<br/>Refine Parse Tree - <a href="9-rpt.html#SP10_6_1">&#167;10.6.1</a><br/>The Creator - <a href="9-tc.html#SP5_2_2">&#167;5.2.2</a>, <a href="9-tc.html#SP8_4_1">&#167;8.4.1</a><br/>Make Assertions - <a href="9-ma.html#SP4_3_8">&#167;4.3.8</a>, <a href="9-ma.html#SP4_3_39">&#167;4.3.39</a><br/>Property Knowledge - <a href="9-pk.html#SP3_1">&#167;3.1</a><br/>Emit Property Values - <a href="15-epv.html#SP3_1">&#167;3.1</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><a href="16-is.html#SP19" class="function-link"><span class="function-syntax">InferenceSubjects::as_object_instance</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">infs</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">InferenceSubjects::is_a_kind_of_object</span><button class="popup" onclick="togglePopup('usagePopup27')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup27">Usage of <span class="code-font"><span class="function-syntax">InferenceSubjects::is_a_kind_of_object</span></span>:<br/>To Be and To Have - <a href="9-tbath.html#SP6">&#167;6</a><br/>Refine Parse Tree - <a href="9-rpt.html#SP9_6_1">&#167;9.6.1</a><br/>The Creator - <a href="9-tc.html#SP5_2_2">&#167;5.2.2</a>, <a href="9-tc.html#SP8_4_1">&#167;8.4.1</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_8">&#167;3.3.8</a>, <a href="9-ma.html#SP3_3_39">&#167;3.3.39</a><br/>Property Knowledge - <a href="9-pk.html#SP3_1">&#167;3.1</a><br/>Knowledge about Kinds - <a href="13-kak.html#SP5">&#167;5</a><br/>Emit Property Values - <a href="15-epv.html#SP3_1">&#167;3.1</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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">InferenceSubjects::is_a_kind_of_object</span><button class="popup" onclick="togglePopup('usagePopup27')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup27">Usage of <span class="code-font"><span class="function-syntax">InferenceSubjects::is_a_kind_of_object</span></span>:<br/>Refine Parse Tree - <a href="9-rpt.html#SP10_6_1">&#167;10.6.1</a><br/>The Creator - <a href="9-tc.html#SP5_2_2">&#167;5.2.2</a>, <a href="9-tc.html#SP8_4_1">&#167;8.4.1</a><br/>Make Assertions - <a href="9-ma.html#SP1">&#167;1</a>, <a href="9-ma.html#SP4_3_8">&#167;4.3.8</a>, <a href="9-ma.html#SP4_3_39">&#167;4.3.39</a><br/>Property Knowledge - <a href="9-pk.html#SP3_1">&#167;3.1</a><br/>Knowledge about Kinds - <a href="13-kak.html#SP5">&#167;5</a><br/>Emit Property Values - <a href="15-epv.html#SP3_1">&#167;3.1</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">) &amp;&amp; (</span><span class="identifier-syntax">infs</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kind_of_infs</span><span class="plain-syntax"> == </span><span class="constant-syntax">KIND_SUB</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">Kinds::base_construction</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RETRIEVE_POINTER_kind_constructor</span><span class="plain-syntax">(</span><span class="identifier-syntax">infs</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">represents</span><span class="plain-syntax">));</span>
@ -517,7 +517,7 @@ from kinds actually do.)
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="function-syntax">InferenceSubjects::domain</span><button class="popup" onclick="togglePopup('usagePopup28')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup28">Usage of <span class="code-font"><span class="function-syntax">InferenceSubjects::domain</span></span>:<br/><a href="16-is.html#SP18">&#167;18</a><br/>Binary Predicates - <a href="6-bp.html#SP23">&#167;23</a><br/>Relations - <a href="6-rlt.html#SP20_4">&#167;20.4</a><br/>Traverse for Assertions - <a href="9-tfa.html#SP12">&#167;12</a><br/>Refine Parse Tree - <a href="9-rpt.html#SP3">&#167;3</a>, <a href="9-rpt.html#SP9_6">&#167;9.6</a><br/>The Creator - <a href="9-tc.html#SP4_2">&#167;4.2</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_8">&#167;3.3.8</a>, <a href="9-ma.html#SP3_3_32">&#167;3.3.32</a><br/>Property Knowledge - <a href="9-pk.html#SP3_1">&#167;3.1</a><br/>Relation Knowledge - <a href="9-rk.html#SP3_2">&#167;3.2</a><br/>Assemblies - <a href="9-ass.html#SP11">&#167;11</a>, <a href="9-ass.html#SP12">&#167;12</a><br/>Implications - <a href="9-imp.html#SP5">&#167;5</a>, <a href="9-imp.html#SP7_1_3">&#167;7.1.3</a><br/>Property Declarations - <a href="9-pd.html#SP5_6">&#167;5.6</a>, <a href="9-pd.html#SP6_1">&#167;6.1</a><br/>Tree Conversions - <a href="11-tc.html#SP2">&#167;2</a><br/>Assert Propositions - <a href="12-ap.html#SP9_10">&#167;9.10</a><br/>Either-Or Properties - <a href="15-ep.html#SP3">&#167;3</a><br/>Indefinite Appearance - <a href="15-ia.html#SP1">&#167;1</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="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="function-syntax">InferenceSubjects::domain</span><button class="popup" onclick="togglePopup('usagePopup28')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup28">Usage of <span class="code-font"><span class="function-syntax">InferenceSubjects::domain</span></span>:<br/><a href="16-is.html#SP18">&#167;18</a><br/>Binary Predicates - <a href="6-bp.html#SP23">&#167;23</a><br/>Relations - <a href="6-rlt.html#SP20_4">&#167;20.4</a><br/>Traverse for Assertions - <a href="9-tfa.html#SP13">&#167;13</a><br/>Refine Parse Tree - <a href="9-rpt.html#SP3">&#167;3</a>, <a href="9-rpt.html#SP10_6">&#167;10.6</a><br/>The Creator - <a href="9-tc.html#SP4_2">&#167;4.2</a><br/>Make Assertions - <a href="9-ma.html#SP4_3_8">&#167;4.3.8</a>, <a href="9-ma.html#SP4_3_32">&#167;4.3.32</a><br/>Property Knowledge - <a href="9-pk.html#SP3_1">&#167;3.1</a><br/>Relation Knowledge - <a href="9-rk.html#SP3_2">&#167;3.2</a><br/>Assemblies - <a href="9-ass.html#SP11">&#167;11</a>, <a href="9-ass.html#SP12">&#167;12</a><br/>Implications - <a href="9-imp.html#SP5">&#167;5</a>, <a href="9-imp.html#SP7_1_3">&#167;7.1.3</a><br/>Property Declarations - <a href="9-pd.html#SP5_6">&#167;5.6</a>, <a href="9-pd.html#SP6_1">&#167;6.1</a><br/>Tree Conversions - <a href="11-tc.html#SP2">&#167;2</a><br/>Assert Propositions - <a href="12-ap.html#SP9_10">&#167;9.10</a><br/>Either-Or Properties - <a href="15-ep.html#SP3">&#167;3</a><br/>Indefinite Appearance - <a href="15-ia.html#SP1">&#167;1</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">return</span><span class="plain-syntax"> </span><a href="16-is.html#SP19" 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>
</pre>

View file

@ -553,7 +553,7 @@ a given response even at compile time. But the rules code looks after that:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Strings::assert_response_value</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Strings::assert_response_value</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP3_3_41_6">&#167;3.3.41.6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">rule</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">marker</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Strings::assert_response_value</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Strings::assert_response_value</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP4_3_41_6">&#167;4.3.41.6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">rule</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">marker</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="21-rl.html#SP26" class="function-link"><span class="function-syntax">Rules::now_rule_needs_response</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-syntax">marker</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>

View file

@ -217,7 +217,7 @@ contents of a node in the tree:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">literal_text</span><span class="plain-syntax"> *</span><span class="function-syntax">Strings::TextLiterals::compile_literal</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">Strings::TextLiterals::compile_literal</span></span>:<br/><a href="17-tl.html#SP12">&#167;12</a>, <a href="17-tl.html#SP13">&#167;13</a>, <a href="17-tl.html#SP16">&#167;16</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_39_2">&#167;3.3.39.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">value_holster</span><span class="plain-syntax"> *</span><span class="identifier-syntax">VH</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">write</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">literal_text</span><span class="plain-syntax"> *</span><span class="function-syntax">Strings::TextLiterals::compile_literal</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">Strings::TextLiterals::compile_literal</span></span>:<br/><a href="17-tl.html#SP12">&#167;12</a>, <a href="17-tl.html#SP13">&#167;13</a>, <a href="17-tl.html#SP16">&#167;16</a><br/>Make Assertions - <a href="9-ma.html#SP4_3_39_2">&#167;4.3.39.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">value_holster</span><span class="plain-syntax"> *</span><span class="identifier-syntax">VH</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">write</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">w1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Wordings::first_wn</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">Wide::cmp</span><span class="plain-syntax">(</span><span class="identifier-syntax">Lexer::word_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">w1</span><span class="plain-syntax">), </span><span class="identifier-syntax">L</span><span class="string-syntax">"\"\""</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">write</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">VH</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">EMPTY_TEXT_VALUE_HL</span><span class="plain-syntax">));</span>

View file

@ -116,7 +116,7 @@ column ID numbers used at run-time.
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">table_contribution</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next</span><span class="plain-syntax">;</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">table_contribution</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure table_contribution is accessed in 3/cs, 3/dlr, 3/pr, 3/tr, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/rs, 9/tfa, 9/tbath, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/ps, 15/cp, 16/is, 16/in, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>
<ul class="endnotetexts"><li>The structure table_contribution is accessed in 3/cs, 3/dlr, 3/pr, 3/tr, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/rs, 9/tfa, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/ps, 15/cp, 16/is, 16/in, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP4"></a><b>&#167;4. </b>These are convenient during parsing.
</p>

View file

@ -395,8 +395,8 @@ have occurred, but if it does then the creation has worked.
<span class="plain-syntax"> </span><span class="identifier-syntax">NounPhrases::annotate_by_articles</span><span class="plain-syntax">(</span><span class="identifier-syntax">name_entry</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">ProblemBuffer::redirect_problem_sentence</span><span class="plain-syntax">(</span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">, </span><span class="identifier-syntax">name_entry</span><span class="plain-syntax">, </span><span class="identifier-syntax">pn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</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">"Yah $T\nTeh $T\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">name_entry</span><span class="plain-syntax">, </span><span class="identifier-syntax">pn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="9-tbath.html#SP3" class="function-link"><span class="function-syntax">Assertions::Copular::refine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">name_entry</span><span class="plain-syntax">, </span><span class="identifier-syntax">pn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><a href="9-tbath.html#SP4" class="function-link"><span class="function-syntax">Assertions::Copular::make_assertion</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">name_entry</span><span class="plain-syntax">, </span><span class="identifier-syntax">pn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="9-rpt.html#SP7" class="function-link"><span class="function-syntax">Assertions::Refiner::refine_coupling</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">name_entry</span><span class="plain-syntax">, </span><span class="identifier-syntax">pn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><a href="9-ma.html#SP4" class="function-link"><span class="function-syntax">Assertions::Maker::make_assertion_recursive</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">name_entry</span><span class="plain-syntax">, </span><span class="identifier-syntax">pn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">ProblemBuffer::redirect_problem_sentence</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="identifier-syntax">NULL</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">name_entry</span><span class="plain-syntax">, </span><span class="identifier-syntax">NW</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">evaluation</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>

View file

@ -252,7 +252,7 @@ these problems at any particular sentence.
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_end</span><span class="plain-syntax">();</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">StandardProblems::subject_problem_at_sentence</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">StandardProblems::subject_problem_at_sentence</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP3_3_39_5">&#167;3.3.39.5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">SIGIL_ARGUMENTS</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>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">StandardProblems::subject_problem_at_sentence</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">StandardProblems::subject_problem_at_sentence</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP4_3_39_5">&#167;4.3.39.5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">SIGIL_ARGUMENTS</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>
<span class="plain-syntax"> </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">message</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">explanation</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">ACT_ON_SIGIL</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>

View file

@ -146,7 +146,7 @@ this as some kind of marginal will-never-happen case.
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::quote_subject</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Problems::quote_subject</span></span>:<br/>Supplementary Issues - <a href="2-si.html#SP2">&#167;2</a>, <a href="2-si.html#SP7">&#167;7</a>, <a href="2-si.html#SP8">&#167;8</a>, <a href="2-si.html#SP9">&#167;9</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_8_1">&#167;3.3.8.1</a>, <a href="9-ma.html#SP3_3_38">&#167;3.3.38</a><br/>Assemblies - <a href="9-ass.html#SP14_1">&#167;14.1</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_2_3_4">&#167;11.9.1.2.3.4</a><br/>Inferences - <a href="16-in.html#SP20_3_3">&#167;20.3.3</a><br/>Tables - <a href="19-tb.html#SP24_4">&#167;24.4</a></span></button><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">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">infs</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::quote_subject</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Problems::quote_subject</span></span>:<br/>Supplementary Issues - <a href="2-si.html#SP2">&#167;2</a>, <a href="2-si.html#SP7">&#167;7</a>, <a href="2-si.html#SP8">&#167;8</a>, <a href="2-si.html#SP9">&#167;9</a><br/>Make Assertions - <a href="9-ma.html#SP4_3_8_1">&#167;4.3.8.1</a>, <a href="9-ma.html#SP4_3_38">&#167;4.3.38</a><br/>Assemblies - <a href="9-ass.html#SP14_1">&#167;14.1</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_2_3_4">&#167;11.9.1.2.3.4</a><br/>Inferences - <a href="16-in.html#SP20_3_3">&#167;20.3.3</a><br/>Tables - <a href="19-tb.html#SP24_4">&#167;24.4</a></span></button><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">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">NULL</span><span class="plain-syntax">) { </span><span class="identifier-syntax">Problems::quote_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="string-syntax">"something"</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span class="plain-syntax">; }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><a href="16-is.html#SP24" class="function-link"><span class="function-syntax">InferenceSubjects::get_name_text</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><span class="identifier-syntax">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) { </span><span class="identifier-syntax">Problems::quote_wording</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span class="plain-syntax">; }</span>
@ -166,7 +166,7 @@ this as some kind of marginal will-never-happen case.
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::expand_extension_id</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">void</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">Works::write_to_HTML_file</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inbuild_work</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">p</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">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::quote_property</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">Problems::quote_property</span></span>:<br/>Supplementary Issues - <a href="2-si.html#SP9">&#167;9</a>, <a href="2-si.html#SP10">&#167;10</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_8_2">&#167;3.3.8.2</a><br/>Property Knowledge - <a href="9-pk.html#SP4_1">&#167;4.1</a>, <a href="9-pk.html#SP4_2">&#167;4.2</a>, <a href="9-pk.html#SP4_3">&#167;4.3</a>, <a href="9-pk.html#SP4_4">&#167;4.4</a><br/>Property Declarations - <a href="9-pd.html#SP7_1_3">&#167;7.1.3</a><br/>Tree Conversions - <a href="11-tc.html#SP7_1">&#167;7.1</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_1_5_1_3">&#167;11.9.1.1.5.1.3</a><br/>Either-Or Properties - <a href="15-ep.html#SP6">&#167;6</a><br/>Comparative Relations - <a href="15-cr.html#SP5">&#167;5</a><br/>Setting Property Relation - <a href="15-spr2.html#SP9_1">&#167;9.1</a>, <a href="15-spr2.html#SP9_2">&#167;9.2</a><br/>Properties of Values - <a href="15-pov.html#SP4_1">&#167;4.1</a><br/>Inferences - <a href="16-in.html#SP14">&#167;14</a></span></button><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">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) { </span><span class="identifier-syntax">Problems::quote_wording</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">name</span><span class="plain-syntax">); }</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::quote_property</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">Problems::quote_property</span></span>:<br/>Supplementary Issues - <a href="2-si.html#SP9">&#167;9</a>, <a href="2-si.html#SP10">&#167;10</a><br/>Make Assertions - <a href="9-ma.html#SP4_3_8_2">&#167;4.3.8.2</a><br/>Property Knowledge - <a href="9-pk.html#SP4_1">&#167;4.1</a>, <a href="9-pk.html#SP4_2">&#167;4.2</a>, <a href="9-pk.html#SP4_3">&#167;4.3</a>, <a href="9-pk.html#SP4_4">&#167;4.4</a><br/>Property Declarations - <a href="9-pd.html#SP7_1_3">&#167;7.1.3</a><br/>Tree Conversions - <a href="11-tc.html#SP7_1">&#167;7.1</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_1_5_1_3">&#167;11.9.1.1.5.1.3</a><br/>Either-Or Properties - <a href="15-ep.html#SP6">&#167;6</a><br/>Comparative Relations - <a href="15-cr.html#SP5">&#167;5</a><br/>Setting Property Relation - <a href="15-spr2.html#SP9_1">&#167;9.1</a>, <a href="15-spr2.html#SP9_2">&#167;9.2</a><br/>Properties of Values - <a href="15-pov.html#SP4_1">&#167;4.1</a><br/>Inferences - <a href="16-in.html#SP14">&#167;14</a></span></button><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">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) { </span><span class="identifier-syntax">Problems::quote_wording</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">name</span><span class="plain-syntax">); }</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::quote_table</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Problems::quote_table</span></span>:<br/>Supplementary Issues - <a href="2-si.html#SP3">&#167;3</a><br/>The Creator - <a href="9-tc.html#SP5_4_2_7">&#167;5.4.2.7</a><br/>Table Columns - <a href="19-tc.html#SP6_1">&#167;6.1</a>, <a href="19-tc.html#SP14_1">&#167;14.1</a>, <a href="19-tc.html#SP15_5">&#167;15.5</a>, <a href="19-tc.html#SP15_6">&#167;15.6</a><br/>Tables - <a href="19-tb.html#SP8">&#167;8</a>, <a href="19-tb.html#SP20_5">&#167;20.5</a>, <a href="19-tb.html#SP20_6">&#167;20.6</a>, <a href="19-tb.html#SP20_10_2_1">&#167;20.10.2.1</a>, <a href="19-tb.html#SP20_10_2_2">&#167;20.10.2.2</a>, <a href="19-tb.html#SP20_10_3_2">&#167;20.10.3.2</a>, <a href="19-tb.html#SP20_10_4_1">&#167;20.10.4.1</a>, <a href="19-tb.html#SP27_1_3_2">&#167;27.1.3.2</a>, <a href="19-tb.html#SP27_1_3_2_1">&#167;27.1.3.2.1</a></span></button><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">table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tab</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_source</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><a href="19-tb.html#SP14" class="function-link"><span class="function-syntax">Tables::get_headline</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">));</span>
<span class="plain-syntax">}</span>
@ -175,7 +175,7 @@ this as some kind of marginal will-never-happen case.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::quote_kind</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Problems::quote_kind</span></span>:<br/><a href="2-sq.html#SP4">&#167;4</a><br/>Literal Patterns - <a href="5-lp.html#SP34_5">&#167;34.5</a>, <a href="5-lp.html#SP34_6">&#167;34.6</a><br/>Instances - <a href="5-ins.html#SP19_1">&#167;19.1</a><br/>Nonlocal Variables - <a href="5-nv.html#SP7_1">&#167;7.1</a>, <a href="5-nv.html#SP23">&#167;23</a>, <a href="5-nv.html#SP25_2">&#167;25.2</a><br/>The Universal Relation - <a href="6-tur.html#SP5">&#167;5</a><br/>The Creator - <a href="9-tc.html#SP5_4_2_6">&#167;5.4.2.6</a>, <a href="9-tc.html#SP5_4_2_7">&#167;5.4.2.7</a>, <a href="9-tc.html#SP5_4_2_8">&#167;5.4.2.8</a>, <a href="9-tc.html#SP8_1">&#167;8.1</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_39_1">&#167;3.3.39.1</a><br/>Property Knowledge - <a href="9-pk.html#SP2_1">&#167;2.1</a>, <a href="9-pk.html#SP4_4">&#167;4.4</a><br/>Property Declarations - <a href="9-pd.html#SP5_6_1">&#167;5.6.1</a>, <a href="9-pd.html#SP7_1_3">&#167;7.1.3</a><br/>Tree Conversions - <a href="11-tc.html#SP7_1">&#167;7.1</a><br/>Type Check Propositions - <a href="11-tcp.html#SP6_9">&#167;6.9</a>, <a href="11-tcp.html#SP6_10">&#167;6.10</a>, <a href="11-tcp.html#SP6_11">&#167;6.11</a>, <a href="11-tcp.html#SP10">&#167;10</a>, <a href="11-tcp.html#SP11">&#167;11</a>, <a href="11-tcp.html#SP11_3">&#167;11.3</a>, <a href="11-tcp.html#SP12">&#167;12</a><br/>The Equality Relation - <a href="12-ter.html#SP5_1">&#167;5.1</a>, <a href="12-ter.html#SP8_4">&#167;8.4</a><br/>Quasinumeric Relations - <a href="12-qr.html#SP5">&#167;5</a><br/>Compile Atoms - <a href="12-ca.html#SP6_2">&#167;6.2</a><br/>Knowledge about Kinds - <a href="13-kak.html#SP7">&#167;7</a><br/>Runtime Support for Kinds - <a href="13-rsfk.html#SP4_1">&#167;4.1</a>, <a href="13-rsfk.html#SP4_2">&#167;4.2</a>, <a href="13-rsfk.html#SP16_2">&#167;16.2</a>, <a href="13-rsfk.html#SP26">&#167;26</a><br/>Dash - <a href="14-ds2.html#SP10_1_1_3_1">&#167;10.1.1.3.1</a>, <a href="14-ds2.html#SP11_8_1">&#167;11.8.1</a>, <a href="14-ds2.html#SP11_9_1_1_2_2_2">&#167;11.9.1.1.2.2.2</a>, <a href="14-ds2.html#SP11_9_1_1_3_1_1">&#167;11.9.1.1.3.1.1</a>, <a href="14-ds2.html#SP11_9_1_1_5_2">&#167;11.9.1.1.5.2</a>, <a href="14-ds2.html#SP11_9_1_2_3_3">&#167;11.9.1.2.3.3</a>, <a href="14-ds2.html#SP11_9_1_2_4">&#167;11.9.1.2.4</a>, <a href="14-ds2.html#SP15_4">&#167;15.4</a>, <a href="14-ds2.html#SP19_1">&#167;19.1</a>, <a href="14-ds2.html#SP19_2">&#167;19.2</a>, <a href="14-ds2.html#SP19_2_1">&#167;19.2.1</a>, <a href="14-ds2.html#SP19_5_3_2">&#167;19.5.3.2</a>, <a href="14-ds2.html#SP19_6_1_1">&#167;19.6.1.1</a>, <a href="14-ds2.html#SP19_6_2_1">&#167;19.6.2.1</a>, <a href="14-ds2.html#SP19_6_2_2">&#167;19.6.2.2</a><br/>Valued Properties - <a href="15-vp.html#SP5">&#167;5</a><br/>Condition Properties - <a href="15-cp.html#SP3">&#167;3</a><br/>The Provision Relation - <a href="15-tpr.html#SP5">&#167;5</a><br/>Setting Property Relation - <a href="15-spr2.html#SP9_1">&#167;9.1</a>, <a href="15-spr2.html#SP9_2">&#167;9.2</a><br/>Properties of Values - <a href="15-pov.html#SP4_1">&#167;4.1</a><br/>Inferences - <a href="16-in.html#SP14">&#167;14</a><br/>List Constants - <a href="18-lc.html#SP8_2_1">&#167;8.2.1</a><br/>Table Columns - <a href="19-tc.html#SP6_1">&#167;6.1</a>, <a href="19-tc.html#SP14_1">&#167;14.1</a>, <a href="19-tc.html#SP15">&#167;15</a>, <a href="19-tc.html#SP15_6">&#167;15.6</a><br/>Tables of Definitions - <a href="19-tod.html#SP6_2">&#167;6.2</a>, <a href="19-tod.html#SP6_3_3">&#167;6.3.3</a><br/>Equations - <a href="20-eq.html#SP41_4_1">&#167;41.4.1</a>, <a href="20-eq.html#SP41_4_2">&#167;41.4.2</a>, <a href="20-eq.html#SP47_3_2">&#167;47.3.2</a><br/>Rules - <a href="21-rl.html#SP15">&#167;15</a>, <a href="21-rl.html#SP18">&#167;18</a><br/>Phrase Usage - <a href="22-pu.html#SP21_1_1_2">&#167;21.1.1.2</a><br/>Compile Invocations - <a href="25-ci.html#SP3_1_1_2">&#167;3.1.1.2</a><br/>Compile Invocations Inline - <a href="25-cii.html#SP3_2_1_1">&#167;3.2.1.1</a>, <a href="25-cii.html#SP3_1_1_4_7_1_2">&#167;3.1.1.4.7.1.2</a>, <a href="25-cii.html#SP3_5_3">&#167;3.5.3</a>, <a href="25-cii.html#SP3_5_4_3">&#167;3.5.4.3</a><br/>Compile Phrases - <a href="25-cp.html#SP5_3_5">&#167;5.3.5</a></span></button><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="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::quote_kind</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Problems::quote_kind</span></span>:<br/><a href="2-sq.html#SP4">&#167;4</a><br/>Literal Patterns - <a href="5-lp.html#SP34_5">&#167;34.5</a>, <a href="5-lp.html#SP34_6">&#167;34.6</a><br/>Instances - <a href="5-ins.html#SP19_1">&#167;19.1</a><br/>Nonlocal Variables - <a href="5-nv.html#SP7_1">&#167;7.1</a>, <a href="5-nv.html#SP23">&#167;23</a>, <a href="5-nv.html#SP25_2">&#167;25.2</a><br/>The Universal Relation - <a href="6-tur.html#SP5">&#167;5</a><br/>The Creator - <a href="9-tc.html#SP5_4_2_6">&#167;5.4.2.6</a>, <a href="9-tc.html#SP5_4_2_7">&#167;5.4.2.7</a>, <a href="9-tc.html#SP5_4_2_8">&#167;5.4.2.8</a>, <a href="9-tc.html#SP8_1">&#167;8.1</a><br/>Make Assertions - <a href="9-ma.html#SP4_3_39_1">&#167;4.3.39.1</a><br/>Property Knowledge - <a href="9-pk.html#SP2_1">&#167;2.1</a>, <a href="9-pk.html#SP4_4">&#167;4.4</a><br/>Property Declarations - <a href="9-pd.html#SP5_6_1">&#167;5.6.1</a>, <a href="9-pd.html#SP7_1_3">&#167;7.1.3</a><br/>Tree Conversions - <a href="11-tc.html#SP7_1">&#167;7.1</a><br/>Type Check Propositions - <a href="11-tcp.html#SP6_9">&#167;6.9</a>, <a href="11-tcp.html#SP6_10">&#167;6.10</a>, <a href="11-tcp.html#SP6_11">&#167;6.11</a>, <a href="11-tcp.html#SP10">&#167;10</a>, <a href="11-tcp.html#SP11">&#167;11</a>, <a href="11-tcp.html#SP11_3">&#167;11.3</a>, <a href="11-tcp.html#SP12">&#167;12</a><br/>The Equality Relation - <a href="12-ter.html#SP5_1">&#167;5.1</a>, <a href="12-ter.html#SP8_4">&#167;8.4</a><br/>Quasinumeric Relations - <a href="12-qr.html#SP5">&#167;5</a><br/>Compile Atoms - <a href="12-ca.html#SP6_2">&#167;6.2</a><br/>Knowledge about Kinds - <a href="13-kak.html#SP7">&#167;7</a><br/>Runtime Support for Kinds - <a href="13-rsfk.html#SP4_1">&#167;4.1</a>, <a href="13-rsfk.html#SP4_2">&#167;4.2</a>, <a href="13-rsfk.html#SP16_2">&#167;16.2</a>, <a href="13-rsfk.html#SP26">&#167;26</a><br/>Dash - <a href="14-ds2.html#SP10_1_1_3_1">&#167;10.1.1.3.1</a>, <a href="14-ds2.html#SP11_8_1">&#167;11.8.1</a>, <a href="14-ds2.html#SP11_9_1_1_2_2_2">&#167;11.9.1.1.2.2.2</a>, <a href="14-ds2.html#SP11_9_1_1_3_1_1">&#167;11.9.1.1.3.1.1</a>, <a href="14-ds2.html#SP11_9_1_1_5_2">&#167;11.9.1.1.5.2</a>, <a href="14-ds2.html#SP11_9_1_2_3_3">&#167;11.9.1.2.3.3</a>, <a href="14-ds2.html#SP11_9_1_2_4">&#167;11.9.1.2.4</a>, <a href="14-ds2.html#SP15_4">&#167;15.4</a>, <a href="14-ds2.html#SP19_1">&#167;19.1</a>, <a href="14-ds2.html#SP19_2">&#167;19.2</a>, <a href="14-ds2.html#SP19_2_1">&#167;19.2.1</a>, <a href="14-ds2.html#SP19_5_3_2">&#167;19.5.3.2</a>, <a href="14-ds2.html#SP19_6_1_1">&#167;19.6.1.1</a>, <a href="14-ds2.html#SP19_6_2_1">&#167;19.6.2.1</a>, <a href="14-ds2.html#SP19_6_2_2">&#167;19.6.2.2</a><br/>Valued Properties - <a href="15-vp.html#SP5">&#167;5</a><br/>Condition Properties - <a href="15-cp.html#SP3">&#167;3</a><br/>The Provision Relation - <a href="15-tpr.html#SP5">&#167;5</a><br/>Setting Property Relation - <a href="15-spr2.html#SP9_1">&#167;9.1</a>, <a href="15-spr2.html#SP9_2">&#167;9.2</a><br/>Properties of Values - <a href="15-pov.html#SP4_1">&#167;4.1</a><br/>Inferences - <a href="16-in.html#SP14">&#167;14</a><br/>List Constants - <a href="18-lc.html#SP8_2_1">&#167;8.2.1</a><br/>Table Columns - <a href="19-tc.html#SP6_1">&#167;6.1</a>, <a href="19-tc.html#SP14_1">&#167;14.1</a>, <a href="19-tc.html#SP15">&#167;15</a>, <a href="19-tc.html#SP15_6">&#167;15.6</a><br/>Tables of Definitions - <a href="19-tod.html#SP6_2">&#167;6.2</a>, <a href="19-tod.html#SP6_3_3">&#167;6.3.3</a><br/>Equations - <a href="20-eq.html#SP41_4_1">&#167;41.4.1</a>, <a href="20-eq.html#SP41_4_2">&#167;41.4.2</a>, <a href="20-eq.html#SP47_3_2">&#167;47.3.2</a><br/>Rules - <a href="21-rl.html#SP15">&#167;15</a>, <a href="21-rl.html#SP18">&#167;18</a><br/>Phrase Usage - <a href="22-pu.html#SP21_1_1_2">&#167;21.1.1.2</a><br/>Compile Invocations - <a href="25-ci.html#SP3_1_1_2">&#167;3.1.1.2</a><br/>Compile Invocations Inline - <a href="25-cii.html#SP3_2_1_1">&#167;3.2.1.1</a>, <a href="25-cii.html#SP3_1_1_4_7_1_2">&#167;3.1.1.4.7.1.2</a>, <a href="25-cii.html#SP3_5_3">&#167;3.5.3</a>, <a href="25-cii.html#SP3_5_4_3">&#167;3.5.4.3</a><br/>Compile Phrases - <a href="25-cp.html#SP5_3_5">&#167;5.3.5</a></span></button><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="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::eq</span><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">Problems::quote_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="string-syntax">"nothing"</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">Problems::problem_quote</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, (</span><span class="reserved-syntax">void</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><a href="2-sq.html#SP3" class="function-link"><span class="function-syntax">Problems::expand_kind</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
@ -190,7 +190,7 @@ actual constant 15 to the generic constant "number":
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::quote_kind_of</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Problems::quote_kind_of</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP3_3_8_3">&#167;3.3.8.3</a>, <a href="9-ma.html#SP3_3_11">&#167;3.3.11</a>, <a href="9-ma.html#SP3_3_39">&#167;3.3.39</a>, <a href="9-ma.html#SP3_3_41_2_1">&#167;3.3.41.2.1</a>, <a href="9-ma.html#SP3_3_41_8">&#167;3.3.41.8</a><br/>Dash - <a href="14-ds2.html#SP11_4_1">&#167;11.4.1</a>, <a href="14-ds2.html#SP11_8_1">&#167;11.8.1</a>, <a href="14-ds2.html#SP19_6_2_1">&#167;19.6.2.1</a>, <a href="14-ds2.html#SP19_6_2_2">&#167;19.6.2.2</a><br/>Properties - <a href="15-pr.html#SP5_2">&#167;5.2</a><br/>Tables of Definitions - <a href="19-tod.html#SP6_3_3">&#167;6.3.3</a><br/>Local Variables - <a href="24-lv.html#SP33_2">&#167;33.2</a><br/>Compile Invocations Inline - <a href="25-cii.html#SP3_1_1_4_7_1_1">&#167;3.1.1.4.7.1.1</a></span></button><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="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">spec</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::quote_kind_of</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Problems::quote_kind_of</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP4_3_8_3">&#167;4.3.8.3</a>, <a href="9-ma.html#SP4_3_11">&#167;4.3.11</a>, <a href="9-ma.html#SP4_3_39">&#167;4.3.39</a>, <a href="9-ma.html#SP4_3_41_2_1">&#167;4.3.41.2.1</a>, <a href="9-ma.html#SP4_3_41_8">&#167;4.3.41.8</a><br/>Dash - <a href="14-ds2.html#SP11_4_1">&#167;11.4.1</a>, <a href="14-ds2.html#SP11_8_1">&#167;11.8.1</a>, <a href="14-ds2.html#SP19_6_2_1">&#167;19.6.2.1</a>, <a href="14-ds2.html#SP19_6_2_2">&#167;19.6.2.2</a><br/>Properties - <a href="15-pr.html#SP5_2">&#167;5.2</a><br/>Tables of Definitions - <a href="19-tod.html#SP6_3_3">&#167;6.3.3</a><br/>Local Variables - <a href="24-lv.html#SP33_2">&#167;33.2</a><br/>Compile Invocations Inline - <a href="25-cii.html#SP3_1_1_4_7_1_1">&#167;3.1.1.4.7.1.1</a></span></button><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="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><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">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">Annotations::read_int</span><span class="plain-syntax">(</span><span class="identifier-syntax">spec</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="identifier-syntax">Problems::quote_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="string-syntax">"implicit object"</span><span class="plain-syntax">); </span><span class="comment-syntax"> this is probably never seen, but just in case</span>

View file

@ -309,7 +309,7 @@ a message which diagnoses the problem rather better.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::Using::assertion_problem</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">Problems::Using::assertion_problem</span></span>:<br/>The Creator - <a href="9-tc.html#SP6_9">&#167;6.9</a>, <a href="9-tc.html#SP6_10">&#167;6.10</a>, <a href="9-tc.html#SP5_4_2_2_1">&#167;5.4.2.2.1</a>, <a href="9-tc.html#SP8_3">&#167;8.3</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_4">&#167;3.3.4</a>, <a href="9-ma.html#SP3_3_6">&#167;3.3.6</a>, <a href="9-ma.html#SP3_3_7">&#167;3.3.7</a>, <a href="9-ma.html#SP3_3_8_4">&#167;3.3.8.4</a>, <a href="9-ma.html#SP3_3_8_5">&#167;3.3.8.5</a>, <a href="9-ma.html#SP3_3_8_6">&#167;3.3.8.6</a>, <a href="9-ma.html#SP3_3_11">&#167;3.3.11</a>, <a href="9-ma.html#SP3_3_12">&#167;3.3.12</a>, <a href="9-ma.html#SP3_3_13">&#167;3.3.13</a>, <a href="9-ma.html#SP3_3_16">&#167;3.3.16</a>, <a href="9-ma.html#SP3_3_17">&#167;3.3.17</a>, <a href="9-ma.html#SP3_3_19">&#167;3.3.19</a>, <a href="9-ma.html#SP3_3_20">&#167;3.3.20</a>, <a href="9-ma.html#SP3_3_21">&#167;3.3.21</a>, <a href="9-ma.html#SP3_3_23">&#167;3.3.23</a>, <a href="9-ma.html#SP3_3_24">&#167;3.3.24</a>, <a href="9-ma.html#SP3_3_25_1">&#167;3.3.25.1</a>, <a href="9-ma.html#SP3_3_25_2">&#167;3.3.25.2</a>, <a href="9-ma.html#SP3_3_10_1">&#167;3.3.10.1</a>, <a href="9-ma.html#SP3_3_10_2">&#167;3.3.10.2</a>, <a href="9-ma.html#SP3_3_26_1">&#167;3.3.26.1</a>, <a href="9-ma.html#SP3_3_26_1_1">&#167;3.3.26.1.1</a>, <a href="9-ma.html#SP3_3_26_2">&#167;3.3.26.2</a>, <a href="9-ma.html#SP3_3_26_3">&#167;3.3.26.3</a>, <a href="9-ma.html#SP3_3_26_4">&#167;3.3.26.4</a>, <a href="9-ma.html#SP3_3_27">&#167;3.3.27</a>, <a href="9-ma.html#SP3_3_28">&#167;3.3.28</a>, <a href="9-ma.html#SP3_3_30">&#167;3.3.30</a>, <a href="9-ma.html#SP3_3_32">&#167;3.3.32</a>, <a href="9-ma.html#SP3_3_33">&#167;3.3.33</a>, <a href="9-ma.html#SP3_3_34">&#167;3.3.34</a>, <a href="9-ma.html#SP3_3_38_2">&#167;3.3.38.2</a>, <a href="9-ma.html#SP3_3_40">&#167;3.3.40</a>, <a href="9-ma.html#SP3_3_41">&#167;3.3.41</a>, <a href="9-ma.html#SP3_3_41_1">&#167;3.3.41.1</a>, <a href="9-ma.html#SP3_3_41_2">&#167;3.3.41.2</a>, <a href="9-ma.html#SP3_3_41_4">&#167;3.3.41.4</a><br/>Property Declarations - <a href="9-pd.html#SP6_1">&#167;6.1</a>, <a href="9-pd.html#SP6_1_1">&#167;6.1.1</a><br/>Tree Conversions - <a href="11-tc.html#SP7_1_1">&#167;7.1.1</a>, <a href="11-tc.html#SP7_1_2">&#167;7.1.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">SIGIL_ARGUMENTS</span><span class="plain-syntax">,</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::Using::assertion_problem</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">Problems::Using::assertion_problem</span></span>:<br/>The Creator - <a href="9-tc.html#SP6_9">&#167;6.9</a>, <a href="9-tc.html#SP6_10">&#167;6.10</a>, <a href="9-tc.html#SP5_4_2_2_1">&#167;5.4.2.2.1</a>, <a href="9-tc.html#SP8_3">&#167;8.3</a><br/>Make Assertions - <a href="9-ma.html#SP4_3_4">&#167;4.3.4</a>, <a href="9-ma.html#SP4_3_6">&#167;4.3.6</a>, <a href="9-ma.html#SP4_3_7">&#167;4.3.7</a>, <a href="9-ma.html#SP4_3_8_4">&#167;4.3.8.4</a>, <a href="9-ma.html#SP4_3_8_5">&#167;4.3.8.5</a>, <a href="9-ma.html#SP4_3_8_6">&#167;4.3.8.6</a>, <a href="9-ma.html#SP4_3_11">&#167;4.3.11</a>, <a href="9-ma.html#SP4_3_12">&#167;4.3.12</a>, <a href="9-ma.html#SP4_3_13">&#167;4.3.13</a>, <a href="9-ma.html#SP4_3_16">&#167;4.3.16</a>, <a href="9-ma.html#SP4_3_17">&#167;4.3.17</a>, <a href="9-ma.html#SP4_3_19">&#167;4.3.19</a>, <a href="9-ma.html#SP4_3_20">&#167;4.3.20</a>, <a href="9-ma.html#SP4_3_21">&#167;4.3.21</a>, <a href="9-ma.html#SP4_3_23">&#167;4.3.23</a>, <a href="9-ma.html#SP4_3_24">&#167;4.3.24</a>, <a href="9-ma.html#SP4_3_25_1">&#167;4.3.25.1</a>, <a href="9-ma.html#SP4_3_25_2">&#167;4.3.25.2</a>, <a href="9-ma.html#SP4_3_10_1">&#167;4.3.10.1</a>, <a href="9-ma.html#SP4_3_10_2">&#167;4.3.10.2</a>, <a href="9-ma.html#SP4_3_26_1">&#167;4.3.26.1</a>, <a href="9-ma.html#SP4_3_26_1_1">&#167;4.3.26.1.1</a>, <a href="9-ma.html#SP4_3_26_2">&#167;4.3.26.2</a>, <a href="9-ma.html#SP4_3_26_3">&#167;4.3.26.3</a>, <a href="9-ma.html#SP4_3_26_4">&#167;4.3.26.4</a>, <a href="9-ma.html#SP4_3_27">&#167;4.3.27</a>, <a href="9-ma.html#SP4_3_28">&#167;4.3.28</a>, <a href="9-ma.html#SP4_3_30">&#167;4.3.30</a>, <a href="9-ma.html#SP4_3_32">&#167;4.3.32</a>, <a href="9-ma.html#SP4_3_33">&#167;4.3.33</a>, <a href="9-ma.html#SP4_3_34">&#167;4.3.34</a>, <a href="9-ma.html#SP4_3_38_2">&#167;4.3.38.2</a>, <a href="9-ma.html#SP4_3_40">&#167;4.3.40</a>, <a href="9-ma.html#SP4_3_41">&#167;4.3.41</a>, <a href="9-ma.html#SP4_3_41_1">&#167;4.3.41.1</a>, <a href="9-ma.html#SP4_3_41_2">&#167;4.3.41.2</a>, <a href="9-ma.html#SP4_3_41_4">&#167;4.3.41.4</a><br/>Property Declarations - <a href="9-pd.html#SP6_1">&#167;6.1</a>, <a href="9-pd.html#SP6_1_1">&#167;6.1.1</a><br/>Tree Conversions - <a href="11-tc.html#SP7_1_1">&#167;7.1.1</a>, <a href="11-tc.html#SP7_1_2">&#167;7.1.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">SIGIL_ARGUMENTS</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">message</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">explanation</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">RTW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">; </span><span class="comment-syntax"> "rather than" text</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">ACT_ON_SIGIL</span>
@ -346,7 +346,7 @@ a message which diagnoses the problem rather better.
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_end</span><span class="plain-syntax">();</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::Using::diagnose_further</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">Problems::Using::diagnose_further</span></span>:<br/>Rule Subtrees - <a href="7-rs.html#SP6_6_6">&#167;6.6.6</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_41_2_2">&#167;3.3.41.2.2</a><br/>Property Knowledge - <a href="9-pk.html#SP2_1">&#167;2.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::Using::diagnose_further</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">Problems::Using::diagnose_further</span></span>:<br/>Rule Subtrees - <a href="7-rs.html#SP6_6_6">&#167;6.6.6</a><br/>Make Assertions - <a href="9-ma.html#SP4_3_41_2_2">&#167;4.3.41.2.2</a><br/>Property Knowledge - <a href="9-pk.html#SP2_1">&#167;2.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">current_sentence</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">Wordings::empty</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">current_sentence</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">sqc</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>

View file

@ -131,7 +131,7 @@ instance has its own <span class="extract"><span class="extract-syntax">equation
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">equation_symbol</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure equation_symbol is accessed in 2/sq, 2/si, 3/cs, 3/dlr, 3/pr, 3/tr, 5/lp, 5/ut, 5/un, 5/ins, 5/nv, 6/rlt, 6/nv, 7/rs, 8/ef, 9/tfa, 9/tbath, 9/rpt, 9/tc, 9/ma, 9/pk, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/pr, 15/ep, 15/vp, 15/ps, 15/cp, 15/spr, 16/is, 16/in, 16/cmw, 17/rs, 19/tc, 19/tb, 19/rsft, 19/tod, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/ph, 22/pu, 22/dptd, 22/po, 22/pav, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>
<ul class="endnotetexts"><li>The structure equation_symbol is accessed in 2/sq, 2/si, 3/cs, 3/dlr, 3/pr, 3/tr, 5/lp, 5/ut, 5/un, 5/ins, 5/nv, 6/rlt, 6/nv, 7/rs, 8/ef, 9/tfa, 9/rpt, 9/tc, 9/ma, 9/pk, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/pr, 15/ep, 15/vp, 15/ps, 15/cp, 15/spr, 16/is, 16/in, 16/cmw, 17/rs, 19/tc, 19/tb, 19/rsft, 19/tod, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/ph, 22/pu, 22/dptd, 22/po, 22/pav, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP4"></a><b>&#167;4. </b>In addition, there are some standing symbols used by all equations: the
constant "pi", for example. They're stored in this linked list:
</p>

View file

@ -100,7 +100,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">activity_crossref</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next</span><span class="plain-syntax">;</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">activity_crossref</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure activity is accessed in 2/sq, 2/si, 5/ins, 5/nv, 8/ef, 9/ma, 9/pk, 11/sm, 14/lv, 14/ds2, 15/pr, 15/ep, 15/vp, 15/spr, 16/in, 16/cmw, 17/rs, 19/tc, 19/tb, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 22/pu, 22/dptd, 22/po, 22/pav, 25/cii, 26/uo, 26/ts and here.</li><li>The structure activity_list is accessed in 3/cs, 3/dlr, 3/pr, 3/tr, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/rs, 9/tfa, 9/tbath, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/ps, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li><li>The structure activity_crossref is accessed in 3/cs, 3/dlr, 3/pr, 3/tr, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/rs, 9/tfa, 9/tbath, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/ps, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>
<ul class="endnotetexts"><li>The structure activity is accessed in 2/sq, 2/si, 5/ins, 5/nv, 8/ef, 9/ma, 9/pk, 11/sm, 14/lv, 14/ds2, 15/pr, 15/ep, 15/vp, 15/spr, 16/in, 16/cmw, 17/rs, 19/tc, 19/tb, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 22/pu, 22/dptd, 22/po, 22/pav, 25/cii, 26/uo, 26/ts and here.</li><li>The structure activity_list is accessed in 3/cs, 3/dlr, 3/pr, 3/tr, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/rs, 9/tfa, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/ps, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li><li>The structure activity_crossref is accessed in 3/cs, 3/dlr, 3/pr, 3/tr, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/rs, 9/tfa, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/ps, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP2"></a><b>&#167;2. </b></p>
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">STARTING_VIRTUAL_MACHINE_ACT</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span>
@ -357,7 +357,7 @@ noun for it; for example, the "announcing activity".
<p class="commentary firstcommentary"><a id="SP8"></a><b>&#167;8. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Activities::add_variable</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">Activities::add_variable</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP3_3_25_1">&#167;3.3.25.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">activity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">av</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cnode</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Activities::add_variable</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">Activities::add_variable</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP4_3_25_1">&#167;4.3.25.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">activity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">av</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cnode</span><span class="plain-syntax">) {</span>
<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::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">cnode</span><span class="plain-syntax">) != </span><span class="constant-syntax">PROPERTYCALLED_NT</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">cnode</span><span class="plain-syntax">) != </span><span class="identifier-syntax">UNPARSED_NOUN_NT</span><span class="plain-syntax">)) {</span>

View file

@ -150,7 +150,7 @@ its outcomes.
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">rulebook_outcome</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure named_rulebook_outcome is accessed in 2/sq, 2/si, 5/ins, 5/nv, 8/ef, 9/ma, 9/pk, 11/sm, 14/rv, 14/lv, 14/ds2, 15/pr, 15/ep, 15/vp, 15/spr, 16/in, 16/cmw, 17/rs, 19/tc, 19/tb, 19/tod, 20/eq, 21/rl, 21/rl2, 21/rps, 21/sv, 21/ac, 22/pu, 22/dptd, 22/po, 22/pav, 25/cii, 26/uo, 26/ts and here.</li><li>The structure rulebook_outcome is accessed in 3/cs, 3/dlr, 3/pr, 3/tr, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/rs, 9/tfa, 9/tbath, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/ps, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/rps, 21/sv, 21/ac, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>
<ul class="endnotetexts"><li>The structure named_rulebook_outcome is accessed in 2/sq, 2/si, 5/ins, 5/nv, 8/ef, 9/ma, 9/pk, 11/sm, 14/rv, 14/lv, 14/ds2, 15/pr, 15/ep, 15/vp, 15/spr, 16/in, 16/cmw, 17/rs, 19/tc, 19/tb, 19/tod, 20/eq, 21/rl, 21/rl2, 21/rps, 21/sv, 21/ac, 22/pu, 22/dptd, 22/po, 22/pav, 25/cii, 26/uo, 26/ts and here.</li><li>The structure rulebook_outcome is accessed in 3/cs, 3/dlr, 3/pr, 3/tr, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/rs, 9/tfa, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/ps, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/rps, 21/sv, 21/ac, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP5"></a><b>&#167;5. </b></p>
<pre class="displayed-code all-displayed-code code-font">

View file

@ -176,7 +176,7 @@ have affected it in this way:
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">placement_affecting</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure placement_affecting is accessed in 3/cs, 3/dlr, 3/pr, 3/tr, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/rs, 9/tfa, 9/tbath, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/ps, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/fao, 21/rps, 21/sv, 21/ac, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>
<ul class="endnotetexts"><li>The structure placement_affecting is accessed in 3/cs, 3/dlr, 3/pr, 3/tr, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/rs, 9/tfa, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/ps, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/fao, 21/rps, 21/sv, 21/ac, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP6"></a><b>&#167;6. </b>As rulebooks are declared, the first few are quietly copied into
a small array: that way, we can always obtain a pointer to, say, the
turn sequence rules by looking up <span class="extract"><span class="extract-syntax">built_in_rulebooks[TURN_SEQUENCE_RB]</span></span>.
@ -512,7 +512,7 @@ built (for instance, scene endings).
<p class="commentary firstcommentary"><a id="SP14"></a><b>&#167;14. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Rulebooks::add_variable</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">Rulebooks::add_variable</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP3_3_25_2">&#167;3.3.25.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">rulebook</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rb</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cnode</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Rulebooks::add_variable</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">Rulebooks::add_variable</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP4_3_25_2">&#167;4.3.25.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">rulebook</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rb</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cnode</span><span 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::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">cnode</span><span class="plain-syntax">) != </span><span class="constant-syntax">PROPERTYCALLED_NT</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">StandardProblems::handmade_problem</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP5" 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_RulebookVarUncalled</span><span class="plain-syntax">));</span>
@ -1064,7 +1064,7 @@ parses the object noun phrase with the following:
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">outcomes</span><span class="plain-syntax"> *</span><span class="identifier-syntax">outcomes_being_parsed</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Rulebooks::parse_properties</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">Rulebooks::parse_properties</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP3_3_18">&#167;3.3.18</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">rulebook</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rb</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Rulebooks::parse_properties</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">Rulebooks::parse_properties</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP4_3_18">&#167;4.3.18</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">rulebook</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rb</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">outcomes_being_parsed</span><span class="plain-syntax"> = &amp;(</span><span class="identifier-syntax">rb</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">my_outcomes</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="function-syntax">&lt;rulebook-property&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>

View file

@ -101,7 +101,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">stacked_variable_owner_list</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure stacked_variable is accessed in 2/sq, 2/si, 5/ins, 5/nv, 8/ef, 9/ma, 9/pk, 11/sm, 14/lv, 14/ds2, 15/pr, 15/ep, 15/vp, 15/spr, 16/in, 16/cmw, 17/rs, 19/tc, 19/tb, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/ac, 22/pu, 22/dptd, 22/po, 22/pav, 25/cii, 26/uo, 26/ts and here.</li><li>The structure stacked_variable_list is accessed in 3/cs, 3/dlr, 3/pr, 3/tr, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/rs, 9/tfa, 9/tbath, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/ps, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/ac, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li><li>The structure stacked_variable_owner is private to this section.</li><li>The structure stacked_variable_owner_list is accessed in 3/cs, 3/dlr, 3/pr, 3/tr, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/rs, 9/tfa, 9/tbath, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/ps, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/ac, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>
<ul class="endnotetexts"><li>The structure stacked_variable is accessed in 2/sq, 2/si, 5/ins, 5/nv, 8/ef, 9/ma, 9/pk, 11/sm, 14/lv, 14/ds2, 15/pr, 15/ep, 15/vp, 15/spr, 16/in, 16/cmw, 17/rs, 19/tc, 19/tb, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/ac, 22/pu, 22/dptd, 22/po, 22/pav, 25/cii, 26/uo, 26/ts and here.</li><li>The structure stacked_variable_list is accessed in 3/cs, 3/dlr, 3/pr, 3/tr, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/rs, 9/tfa, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/ps, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/ac, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li><li>The structure stacked_variable_owner is private to this section.</li><li>The structure stacked_variable_owner_list is accessed in 3/cs, 3/dlr, 3/pr, 3/tr, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/rs, 9/tfa, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/ps, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/ac, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP2"></a><b>&#167;2. </b></p>
<pre class="displayed-code all-displayed-code code-font">

View file

@ -327,7 +327,7 @@ only conditionally, or substituted by other rules.
<span class="plain-syntax"> </span><span class="identifier-syntax">prevailing_mood</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::read_int</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">, </span><span class="identifier-syntax">verbal_certainty_ANNOT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="9-tfa.html#SP9" class="function-link"><span class="function-syntax">Assertions::Traverse::special</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><a href="9-tfa.html#SP14" class="function-link"><span class="function-syntax">Assertions::Traverse::try_special_meaning</span></a><span class="plain-syntax">(</span><span class="constant-syntax">TRAVERSE_FOR_RULE_FILING_SMFT</span><span class="plain-syntax">, </span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="9-tfa.html#SP16" class="function-link"><span class="function-syntax">Assertions::Traverse::try_special_meaning</span></a><span class="plain-syntax">(</span><span class="constant-syntax">TRAVERSE_FOR_RULE_FILING_SMFT</span><span class="plain-syntax">, </span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
</pre>

View file

@ -90,7 +90,7 @@ defined as "At 9:00 AM: ..." But two values are special:
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">use_as_event</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure use_as_event is accessed in 3/cs, 3/dlr, 3/pr, 3/tr, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/rs, 9/tfa, 9/tbath, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/ps, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/ph, 22/tp, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>
<ul class="endnotetexts"><li>The structure use_as_event is accessed in 3/cs, 3/dlr, 3/pr, 3/tr, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/rs, 9/tfa, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/ps, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/ph, 22/tp, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP4"></a><b>&#167;4. </b>Timed events are stored in two simple arrays, processed by run-time code.
</p>

View file

@ -144,7 +144,7 @@ marks it as deallocated.
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">local_variable</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure local_variable is accessed in 3/cs, 3/dlr, 3/pr, 3/tr, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/rs, 9/tfa, 9/tbath, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/ps, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/ph, 22/tp, 22/tp2, 23/ad, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>
<ul class="endnotetexts"><li>The structure local_variable is accessed in 3/cs, 3/dlr, 3/pr, 3/tr, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/rs, 9/tfa, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/ps, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/ph, 22/tp, 22/tp2, 23/ad, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP4"></a><b>&#167;4. </b>A local variable needs to be stored somewhere at run-time. The obvious
correspondence is to put these into I6 local variables, which are, in effect,
CPU registers. We won't need to do much in the way of register-allocation,

View file

@ -118,7 +118,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">plugin_call</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next</span><span class="plain-syntax">;</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">plugin_call</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure plugin_call is accessed in 3/cs, 3/dlr, 3/pr, 3/tr, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/rs, 9/tfa, 9/tbath, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/ps, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/ts, 27/cm and here.</li></ul>
<ul class="endnotetexts"><li>The structure plugin_call is accessed in 3/cs, 3/dlr, 3/pr, 3/tr, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/rs, 9/tfa, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/ps, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/ts, 27/cm and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP4"></a><b>&#167;4. </b></p>
<pre class="displayed-code all-displayed-code code-font">
@ -221,12 +221,12 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">PLUGIN_PARSE_COMPOSITE_NQS</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">DW</span><span class="plain-syntax">, </span><span class="identifier-syntax">quantifier_used</span><span class="plain-syntax">, </span><span class="identifier-syntax">some_kind</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">Plugins::Call::refine_implicit_noun</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">Plugins::Call::refine_implicit_noun</span></span>:<br/>Refine Parse Tree - <a href="9-rpt.html#SP9_7">&#167;9.7</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Plugins::Call::refine_implicit_noun</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">Plugins::Call::refine_implicit_noun</span></span>:<br/>Refine Parse Tree - <a href="9-rpt.html#SP10_7">&#167;10.7</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</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">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">PLUGIN_REFINE_IMPLICIT_NOUN</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">int</span><span class="plain-syntax"> </span><span class="function-syntax">Plugins::Call::act_on_special_NPs</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Plugins::Call::act_on_special_NPs</span></span>:<br/>Refine Parse Tree - <a href="9-rpt.html#SP9_8_1">&#167;9.8.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Plugins::Call::act_on_special_NPs</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Plugins::Call::act_on_special_NPs</span></span>:<br/>Refine Parse Tree - <a href="9-rpt.html#SP10_8_1">&#167;10.8.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</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">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">PLUGIN_ACT_ON_SPECIAL_NPS</span><span class="plain-syntax">, </span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
@ -251,7 +251,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">PLUGIN_EXPLAIN_CONTRADICTION</span><span class="plain-syntax">, </span><span class="identifier-syntax">A</span><span class="plain-syntax">, </span><span class="identifier-syntax">B</span><span class="plain-syntax">, </span><span class="identifier-syntax">similarity</span><span class="plain-syntax">, </span><span class="identifier-syntax">subj</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Plugins::Call::intervene_in_assertion</span><button class="popup" onclick="togglePopup('usagePopup18')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup18">Usage of <span class="code-font"><span class="function-syntax">Plugins::Call::intervene_in_assertion</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP3_1">&#167;3.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">px</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">py</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Plugins::Call::intervene_in_assertion</span><button class="popup" onclick="togglePopup('usagePopup18')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup18">Usage of <span class="code-font"><span class="function-syntax">Plugins::Call::intervene_in_assertion</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP4_1">&#167;4.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">px</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">py</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">PLUGIN_INTERVENE_IN_ASSERTION</span><span class="plain-syntax">, </span><span class="identifier-syntax">px</span><span class="plain-syntax">, </span><span class="identifier-syntax">py</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
@ -276,11 +276,11 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">PLUGIN_DEFAULT_APPEARANCE</span><span class="plain-syntax">, </span><span class="identifier-syntax">infs</span><span class="plain-syntax">, </span><span class="identifier-syntax">txt</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">Plugins::Call::offered_property</span><button class="popup" onclick="togglePopup('usagePopup23')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup23">Usage of <span class="code-font"><span class="function-syntax">Plugins::Call::offered_property</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP3_3_25">&#167;3.3.25</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">what</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Plugins::Call::offered_property</span><button class="popup" onclick="togglePopup('usagePopup23')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup23">Usage of <span class="code-font"><span class="function-syntax">Plugins::Call::offered_property</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP4_3_25">&#167;4.3.25</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><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">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">PLUGIN_OFFERED_PROPERTY</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">owner</span><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">int</span><span class="plain-syntax"> </span><span class="function-syntax">Plugins::Call::offered_specification</span><button class="popup" onclick="togglePopup('usagePopup24')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup24">Usage of <span class="code-font"><span class="function-syntax">Plugins::Call::offered_specification</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP3_3_26_1">&#167;3.3.26.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Plugins::Call::offered_specification</span><button class="popup" onclick="togglePopup('usagePopup24')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup24">Usage of <span class="code-font"><span class="function-syntax">Plugins::Call::offered_specification</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP4_3_26_1">&#167;4.3.26.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">PLUGIN_OFFERED_SPECIFICATION</span><span class="plain-syntax">, </span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
@ -292,7 +292,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">PLUGIN_FORBID_SETTING</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="function-syntax">Plugins::Call::variable_set_warning</span><button class="popup" onclick="togglePopup('usagePopup27')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup27">Usage of <span class="code-font"><span class="function-syntax">Plugins::Call::variable_set_warning</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP3_3_41_3">&#167;3.3.41.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">q</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Plugins::Call::variable_set_warning</span><button class="popup" onclick="togglePopup('usagePopup27')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup27">Usage of <span class="code-font"><span class="function-syntax">Plugins::Call::variable_set_warning</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP4_3_41_3">&#167;4.3.41.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">q</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">PLUGIN_VARIABLE_SET_WARNING</span><span class="plain-syntax">, </span><span class="identifier-syntax">q</span><span class="plain-syntax">, </span><span class="identifier-syntax">val</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>

View file

@ -726,7 +726,7 @@ insert them into the Inter stream close to the top.
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::guard</span><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Link::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">Packaging::at</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">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">stage</span><span class="plain-syntax">, </span><span class="identifier-syntax">ID1</span><span class="plain-syntax">, </span><span class="identifier-syntax">ID2</span><span class="plain-syntax">, </span><span class="identifier-syntax">ID3</span><span class="plain-syntax">, </span><span class="identifier-syntax">ID4</span><span class="plain-syntax">, </span><span class="identifier-syntax">ref</span><span class="plain-syntax">, </span><span class="identifier-syntax">Produce::baseline</span><span class="plain-syntax">(</span><span class="identifier-syntax">Packaging::at</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">NULL</span><span class="plain-syntax">));</span>
<span class="plain-syntax">}</span>
</pre>
<ul class="endnotetexts"><li>The structure dval_written is private to this section.</li><li>The structure nascent_array is accessed in 2/up, 3/cs, 3/dlr, 5/lp, 5/un, 7/rs, 9/tfa, 9/tbath, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/aots, 10/teav, 10/varc, 10/cap, 11/bas, 11/tc, 11/sc, 11/sm, 12/dtd, 14/sp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/ps, 15/cp, 17/ts, 18/lc, 19/tb, 19/rsft, 19/tod, 21/rl, 21/rl2, 21/rps, 21/ac, 22/cs, 22/ph, 23/ad, 24/lv, 24/ch, 25/in, 25/pi, 25/cp, 26/uo, 26/tti, 27/cm and here.</li></ul>
<ul class="endnotetexts"><li>The structure dval_written is private to this section.</li><li>The structure nascent_array is accessed in 2/up, 3/cs, 3/dlr, 5/lp, 5/un, 7/rs, 9/tfa, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/aots, 10/teav, 10/varc, 10/cap, 11/bas, 11/tc, 11/sc, 11/sm, 12/dtd, 14/sp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/ps, 15/cp, 17/ts, 18/lc, 19/tb, 19/rsft, 19/tod, 21/rl, 21/rl2, 21/rps, 21/ac, 22/cs, 22/ph, 23/ad, 24/lv, 24/ch, 25/in, 25/pi, 25/cp, 26/uo, 26/tti, 27/cm and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP4"></a><b>&#167;4. </b></p>
<pre class="displayed-code all-displayed-code code-font">

View file

@ -160,7 +160,7 @@ and we ask the <a href="../linguistics-module/index.html" class="internal">lingu
<span class="plain-syntax"> </span><a href="15-ps.html#SP2" class="function-link"><span class="function-syntax">PropertySentences::look_for_property_creation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-cs.html#SP4_3" class="named-paragraph-link"><span class="named-paragraph">Issue problem message if either subject or object contains mismatched brackets</span><span class="named-paragraph-number">4.3</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-cs.html#SP4_4" class="named-paragraph-link"><span class="named-paragraph">Issue problem message if subject starts with double-quoted literal text</span><span class="named-paragraph-number">4.4</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">VP_PN</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">VP_PN</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">) &amp;&amp; (</span><a href="9-tbath.html#SP3" class="function-link"><span class="function-syntax">Assertions::Copular::possessive</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">VP_PN</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">)))</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">VP_PN</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">VP_PN</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">Diagrams::is_possessive_RELATIONSHIP</span><span class="plain-syntax">(</span><span class="identifier-syntax">VP_PN</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">)))</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-cs.html#SP4_5" class="named-paragraph-link"><span class="named-paragraph">Diagram property callings</span><span class="named-paragraph-number">4.5</span></a></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">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"$T\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>

View file

@ -431,7 +431,7 @@ or an either/or property? If so we return the earliest known.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">Adjectives::Meanings::has_ENUMERATIVE_meaning</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Adjectives::Meanings::has_ENUMERATIVE_meaning</span></span>:<br/>Refine Parse Tree - <a href="9-rpt.html#SP6">&#167;6</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_13">&#167;3.3.13</a><br/>Terms - <a href="11-tr.html#SP8">&#167;8</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_1_5_1_2">&#167;11.9.1.1.5.1.2</a><br/>Condition Properties - <a href="15-cp.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">adjective</span><span class="plain-syntax"> *</span><span class="identifier-syntax">aph</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">Adjectives::Meanings::has_ENUMERATIVE_meaning</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Adjectives::Meanings::has_ENUMERATIVE_meaning</span></span>:<br/>Refine Parse Tree - <a href="9-rpt.html#SP6">&#167;6</a><br/>Make Assertions - <a href="9-ma.html#SP4_3_13">&#167;4.3.13</a><br/>Terms - <a href="11-tr.html#SP8">&#167;8</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_1_5_1_2">&#167;11.9.1.1.5.1.2</a><br/>Condition Properties - <a href="15-cp.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">adjective</span><span class="plain-syntax"> *</span><span class="identifier-syntax">aph</span><span class="plain-syntax">) {</span>
<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="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">am</span><span class="plain-syntax"> = </span><span class="identifier-syntax">aph</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">adjective_meanings</span><span class="plain-syntax">.</span><span class="element-syntax">possible_meanings</span><span class="plain-syntax">; </span><span class="identifier-syntax">am</span><span class="plain-syntax">; </span><span class="identifier-syntax">am</span><span class="plain-syntax"> = </span><span class="identifier-syntax">am</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next_meaning</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">am</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">adjective_form</span><span class="plain-syntax"> == </span><span class="constant-syntax">ENUMERATIVE_KADJ</span><span class="plain-syntax">)</span>

View file

@ -127,7 +127,7 @@ evidence turns up to suggest otherwise).
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">instance_usage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next</span><span class="plain-syntax">;</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">instance_usage</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure instance_usage is accessed in 3/cs, 3/dlr, 3/pr, 3/tr, 5/lp, 5/ut, 5/un, 6/rlt, 6/nv, 7/rs, 9/tfa, 9/tbath, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/ps, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>
<ul class="endnotetexts"><li>The structure instance_usage is accessed in 3/cs, 3/dlr, 3/pr, 3/tr, 5/lp, 5/ut, 5/un, 6/rlt, 6/nv, 7/rs, 9/tfa, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/ps, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP4"></a><b>&#167;4. </b>We record the one most recently made:
</p>
@ -370,7 +370,7 @@ turns up subsequently, e.g., in response to
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">enumeration_index</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="function-syntax">Instances::as_subject</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Instances::as_subject</span></span>:<br/><a href="5-ins.html#SP33">&#167;33</a><br/>Adjective Meanings - <a href="4-am.html#SP23">&#167;23</a><br/>Index Physical World - <a href="5-ipw.html#SP3_7">&#167;3.7</a>, <a href="5-ipw.html#SP3_9">&#167;3.9</a><br/>Relations - <a href="6-rlt.html#SP26">&#167;26</a><br/>Refine Parse Tree - <a href="9-rpt.html#SP9_5_1">&#167;9.5.1</a>, <a href="9-rpt.html#SP10_1">&#167;10.1</a><br/>The Creator - <a href="9-tc.html#SP5_4">&#167;5.4</a>, <a href="9-tc.html#SP5_4_1_1">&#167;5.4.1.1</a>, <a href="9-tc.html#SP8_4_1">&#167;8.4.1</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_41_5">&#167;3.3.41.5</a><br/>Tree Conversions - <a href="11-tc.html#SP2">&#167;2</a><br/>Assert Propositions - <a href="12-ap.html#SP9_5_2">&#167;9.5.2</a>, <a href="12-ap.html#SP12">&#167;12</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_1_5_1_3">&#167;11.9.1.1.5.1.3</a><br/>Properties - <a href="15-pr.html#SP27">&#167;27</a><br/>Properties of Values - <a href="15-pov.html#SP4">&#167;4</a><br/>Inference Subjects - <a href="16-is.html#SP6">&#167;6</a>, <a href="16-is.html#SP12">&#167;12</a>, <a href="16-is.html#SP17">&#167;17</a><br/>Inferences - <a href="16-in.html#SP19">&#167;19</a><br/>Instance Counting - <a href="16-ic.html#SP8">&#167;8</a>, <a href="16-ic.html#SP12_1">&#167;12.1</a>, <a href="16-ic.html#SP12_3_1">&#167;12.3.1</a>, <a href="16-ic.html#SP12_3_2">&#167;12.3.2</a>, <a href="16-ic.html#SP12_3_3">&#167;12.3.3</a></span></button><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="reserved-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="function-syntax">Instances::as_subject</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Instances::as_subject</span></span>:<br/><a href="5-ins.html#SP33">&#167;33</a><br/>Adjective Meanings - <a href="4-am.html#SP23">&#167;23</a><br/>Index Physical World - <a href="5-ipw.html#SP3_7">&#167;3.7</a>, <a href="5-ipw.html#SP3_9">&#167;3.9</a><br/>Relations - <a href="6-rlt.html#SP26">&#167;26</a><br/>Refine Parse Tree - <a href="9-rpt.html#SP10_5_1">&#167;10.5.1</a>, <a href="9-rpt.html#SP11_1">&#167;11.1</a><br/>The Creator - <a href="9-tc.html#SP5_4">&#167;5.4</a>, <a href="9-tc.html#SP5_4_1_1">&#167;5.4.1.1</a>, <a href="9-tc.html#SP8_4_1">&#167;8.4.1</a><br/>Make Assertions - <a href="9-ma.html#SP4_3_41_5">&#167;4.3.41.5</a><br/>Tree Conversions - <a href="11-tc.html#SP2">&#167;2</a><br/>Assert Propositions - <a href="12-ap.html#SP9_5_2">&#167;9.5.2</a>, <a href="12-ap.html#SP12">&#167;12</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_1_5_1_3">&#167;11.9.1.1.5.1.3</a><br/>Properties - <a href="15-pr.html#SP27">&#167;27</a><br/>Properties of Values - <a href="15-pov.html#SP4">&#167;4</a><br/>Inference Subjects - <a href="16-is.html#SP6">&#167;6</a>, <a href="16-is.html#SP12">&#167;12</a>, <a href="16-is.html#SP17">&#167;17</a><br/>Inferences - <a href="16-in.html#SP19">&#167;19</a><br/>Instance Counting - <a href="16-ic.html#SP8">&#167;8</a>, <a href="16-ic.html#SP12_1">&#167;12.1</a>, <a href="16-ic.html#SP12_3_1">&#167;12.3.1</a>, <a href="16-ic.html#SP12_3_2">&#167;12.3.2</a>, <a href="16-ic.html#SP12_3_3">&#167;12.3.3</a></span></button><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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_subject</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
@ -378,7 +378,7 @@ turns up subsequently, e.g., in response to
<p class="commentary firstcommentary"><a id="SP14"></a><b>&#167;14. As mere names. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="function-syntax">Instances::get_name</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">Instances::get_name</span></span>:<br/><a href="5-ins.html#SP15_1">&#167;15.1</a>, <a href="5-ins.html#SP15_2">&#167;15.2</a>, <a href="5-ins.html#SP27">&#167;27</a>, <a href="5-ins.html#SP37">&#167;37</a>, <a href="5-ins.html#SP38_2">&#167;38.2</a><br/>Supplementary Quotes - <a href="2-sq.html#SP2">&#167;2</a><br/>Index Physical World - <a href="5-ipw.html#SP2_2_1">&#167;2.2.1</a><br/>Extension Files - <a href="8-ef.html#SP9_2">&#167;9.2</a>, <a href="8-ef.html#SP9_4">&#167;9.4</a><br/>Refine Parse Tree - <a href="9-rpt.html#SP9_5_1">&#167;9.5.1</a><br/>The Creator - <a href="9-tc.html#SP5_4_1">&#167;5.4.1</a><br/>RValues - <a href="14-rv.html#SP3">&#167;3</a></span></button><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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">plural</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="function-syntax">Instances::get_name</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">Instances::get_name</span></span>:<br/><a href="5-ins.html#SP15_1">&#167;15.1</a>, <a href="5-ins.html#SP15_2">&#167;15.2</a>, <a href="5-ins.html#SP27">&#167;27</a>, <a href="5-ins.html#SP37">&#167;37</a>, <a href="5-ins.html#SP38_2">&#167;38.2</a><br/>Supplementary Quotes - <a href="2-sq.html#SP2">&#167;2</a><br/>Index Physical World - <a href="5-ipw.html#SP2_2_1">&#167;2.2.1</a><br/>Extension Files - <a href="8-ef.html#SP9_2">&#167;9.2</a>, <a href="8-ef.html#SP9_4">&#167;9.4</a><br/>Refine Parse Tree - <a href="9-rpt.html#SP10_5_1">&#167;10.5.1</a><br/>The Creator - <a href="9-tc.html#SP5_4_1">&#167;5.4.1</a><br/>RValues - <a href="14-rv.html#SP3">&#167;3</a></span></button><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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">plural</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">I</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">tag</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">EMPTY_WORDING</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">Nouns::nominative</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">tag</span><span class="plain-syntax">, </span><span class="identifier-syntax">plural</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
@ -536,7 +536,7 @@ specialised than which other ones, and by making a call, we can find out.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="function-syntax">Instances::to_kind</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">Instances::to_kind</span></span>:<br/><a href="5-ins.html#SP12">&#167;12</a>, <a href="5-ins.html#SP15_1">&#167;15.1</a>, <a href="5-ins.html#SP15_2">&#167;15.2</a>, <a href="5-ins.html#SP19">&#167;19</a>, <a href="5-ins.html#SP21">&#167;21</a>, <a href="5-ins.html#SP25">&#167;25</a>, <a href="5-ins.html#SP33">&#167;33</a>, <a href="5-ins.html#SP34">&#167;34</a>, <a href="5-ins.html#SP36">&#167;36</a>, <a href="5-ins.html#SP37">&#167;37</a>, <a href="5-ins.html#SP38_1">&#167;38.1</a><br/>Supplementary Quotes - <a href="2-sq.html#SP2">&#167;2</a>, <a href="2-sq.html#SP4">&#167;4</a><br/>Adjective Meanings - <a href="4-am.html#SP23">&#167;23</a><br/>Index Physical World - <a href="5-ipw.html#SP3_3_1">&#167;3.3.1</a>, <a href="5-ipw.html#SP3_3_1_1">&#167;3.3.1.1</a>, <a href="5-ipw.html#SP3_4">&#167;3.4</a>, <a href="5-ipw.html#SP3_8">&#167;3.8</a><br/>Extension Files - <a href="8-ef.html#SP9_2">&#167;9.2</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_40_1">&#167;3.3.40.1</a>, <a href="9-ma.html#SP3_3_41_5">&#167;3.3.41.5</a><br/>Propositions - <a href="11-pr.html#SP35_1">&#167;35.1</a><br/>Assert Propositions - <a href="12-ap.html#SP9_10">&#167;9.10</a><br/>RValues - <a href="14-rv.html#SP3">&#167;3</a>, <a href="14-rv.html#SP23_1">&#167;23.1</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_1_5_1_1">&#167;11.9.1.1.5.1.1</a>, <a href="14-ds2.html#SP11_9_1_1_5_1_2">&#167;11.9.1.1.5.1.2</a><br/>Condition Properties - <a href="15-cp.html#SP3">&#167;3</a><br/>Emit Property Values - <a href="15-epv.html#SP1_1">&#167;1.1</a>, <a href="15-epv.html#SP1_1_1">&#167;1.1.1</a><br/>Inference Subjects - <a href="16-is.html#SP19">&#167;19</a><br/>Instance Counting - <a href="16-ic.html#SP12_3">&#167;12.3</a>, <a href="16-ic.html#SP12_3_1">&#167;12.3.1</a><br/>Compile Phrases - <a href="25-cp.html#SP5_3_5">&#167;5.3.5</a></span></button><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="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="function-syntax">Instances::to_kind</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">Instances::to_kind</span></span>:<br/><a href="5-ins.html#SP12">&#167;12</a>, <a href="5-ins.html#SP15_1">&#167;15.1</a>, <a href="5-ins.html#SP15_2">&#167;15.2</a>, <a href="5-ins.html#SP19">&#167;19</a>, <a href="5-ins.html#SP21">&#167;21</a>, <a href="5-ins.html#SP25">&#167;25</a>, <a href="5-ins.html#SP33">&#167;33</a>, <a href="5-ins.html#SP34">&#167;34</a>, <a href="5-ins.html#SP36">&#167;36</a>, <a href="5-ins.html#SP37">&#167;37</a>, <a href="5-ins.html#SP38_1">&#167;38.1</a><br/>Supplementary Quotes - <a href="2-sq.html#SP2">&#167;2</a>, <a href="2-sq.html#SP4">&#167;4</a><br/>Adjective Meanings - <a href="4-am.html#SP23">&#167;23</a><br/>Index Physical World - <a href="5-ipw.html#SP3_3_1">&#167;3.3.1</a>, <a href="5-ipw.html#SP3_3_1_1">&#167;3.3.1.1</a>, <a href="5-ipw.html#SP3_4">&#167;3.4</a>, <a href="5-ipw.html#SP3_8">&#167;3.8</a><br/>Extension Files - <a href="8-ef.html#SP9_2">&#167;9.2</a><br/>Make Assertions - <a href="9-ma.html#SP4_3_40_1">&#167;4.3.40.1</a>, <a href="9-ma.html#SP4_3_41_5">&#167;4.3.41.5</a><br/>Propositions - <a href="11-pr.html#SP35_1">&#167;35.1</a><br/>Assert Propositions - <a href="12-ap.html#SP9_10">&#167;9.10</a><br/>RValues - <a href="14-rv.html#SP3">&#167;3</a>, <a href="14-rv.html#SP23_1">&#167;23.1</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_1_5_1_1">&#167;11.9.1.1.5.1.1</a>, <a href="14-ds2.html#SP11_9_1_1_5_1_2">&#167;11.9.1.1.5.1.2</a><br/>Condition Properties - <a href="15-cp.html#SP3">&#167;3</a><br/>Emit Property Values - <a href="15-epv.html#SP1_1">&#167;1.1</a>, <a href="15-epv.html#SP1_1_1">&#167;1.1.1</a><br/>Inference Subjects - <a href="16-is.html#SP19">&#167;19</a><br/>Instance Counting - <a href="16-ic.html#SP12_3">&#167;12.3</a>, <a href="16-ic.html#SP12_3_1">&#167;12.3.1</a><br/>Compile Phrases - <a href="25-cp.html#SP5_3_5">&#167;5.3.5</a></span></button><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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inherits_from</span><span class="plain-syntax"> = </span><a href="16-is.html#SP14" class="function-link"><span class="function-syntax">InferenceSubjects::narrowest_broader_subject</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_subject</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#SP19" class="function-link"><span class="function-syntax">InferenceSubjects::as_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inherits_from</span><span class="plain-syntax">);</span>

View file

@ -271,7 +271,7 @@ mass might also support "in kilograms" and "in grams", for instance.
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">literal_pattern_name</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure literal_pattern_name is accessed in 3/cs, 3/dlr, 3/pr, 3/tr, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/rs, 9/tfa, 9/tbath, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/ps, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>
<ul class="endnotetexts"><li>The structure literal_pattern_name is accessed in 3/cs, 3/dlr, 3/pr, 3/tr, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/rs, 9/tfa, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/ps, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP9"></a><b>&#167;9. Creating patterns, tokens and elements. </b></p>
<pre class="displayed-code all-displayed-code code-font">

View file

@ -267,7 +267,7 @@ parsing only picks up globals (see note on name registration above).
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="function-syntax">NonlocalVariables::parse</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">NonlocalVariables::parse</span></span>:<br/><a href="5-nv.html#SP10">&#167;10</a><br/>Refine Parse Tree - <a href="9-rpt.html#SP14">&#167;14</a><br/>Compile Invocations Inline - <a href="25-cii.html#SP8">&#167;8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="function-syntax">NonlocalVariables::parse</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">NonlocalVariables::parse</span></span>:<br/><a href="5-nv.html#SP10">&#167;10</a><br/>Refine Parse Tree - <a href="9-rpt.html#SP15">&#167;15</a><br/>Compile Invocations Inline - <a href="25-cii.html#SP8">&#167;8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Articles::remove_the</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="function-syntax">&lt;s-global-variable&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;rp&gt;&gt;</span><span class="plain-syntax">;</span>
@ -648,12 +648,12 @@ are reused for different purposes and are typeless.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">NonlocalVariables::set_kind</span><button class="popup" onclick="togglePopup('usagePopup31')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup31">Usage of <span class="code-font"><span class="function-syntax">NonlocalVariables::set_kind</span></span>:<br/><a href="5-nv.html#SP20">&#167;20</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_39_1">&#167;3.3.39.1</a><br/>Compile Invocations - <a href="25-ci.html#SP3_2_3_3_1_1">&#167;3.2.3.3.1.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">NonlocalVariables::set_kind</span><button class="popup" onclick="togglePopup('usagePopup31')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup31">Usage of <span class="code-font"><span class="function-syntax">NonlocalVariables::set_kind</span></span>:<br/><a href="5-nv.html#SP20">&#167;20</a><br/>Make Assertions - <a href="9-ma.html#SP4_3_39_1">&#167;4.3.39.1</a><br/>Compile Invocations - <a href="25-ci.html#SP3_2_3_3_1_1">&#167;3.2.3.3.1.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nlv</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">nlv</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"set kind for null variable"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">nlv_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="function-syntax">NonlocalVariables::kind</span><button class="popup" onclick="togglePopup('usagePopup32')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup32">Usage of <span class="code-font"><span class="function-syntax">NonlocalVariables::kind</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP3_3_39_1">&#167;3.3.39.1</a><br/>Property Knowledge - <a href="9-pk.html#SP2">&#167;2</a><br/>Lvalues - <a href="14-lv.html#SP12_2">&#167;12.2</a><br/>Stacked Variables - <a href="21-sv.html#SP3">&#167;3</a>, <a href="21-sv.html#SP3_1">&#167;3.1</a>, <a href="21-sv.html#SP3_2">&#167;3.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="function-syntax">NonlocalVariables::kind</span><button class="popup" onclick="togglePopup('usagePopup32')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup32">Usage of <span class="code-font"><span class="function-syntax">NonlocalVariables::kind</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP4_3_39_1">&#167;4.3.39.1</a><br/>Property Knowledge - <a href="9-pk.html#SP2">&#167;2</a><br/>Lvalues - <a href="14-lv.html#SP12_2">&#167;12.2</a><br/>Stacked Variables - <a href="21-sv.html#SP3">&#167;3</a>, <a href="21-sv.html#SP3_1">&#167;3.1</a>, <a href="21-sv.html#SP3_2">&#167;3.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">nlv</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">nlv_kind</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
@ -760,7 +760,7 @@ and leaving everything else alone.
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">substitution_session_id</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">NonlocalVariables::substitute_constants</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">NonlocalVariables::substitute_constants</span></span>:<br/><a href="5-nv.html#SP25">&#167;25</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_41_3">&#167;3.3.41.3</a><br/>Property Knowledge - <a href="9-pk.html#SP4">&#167;4</a><br/>Relation Knowledge - <a href="9-rk.html#SP2">&#167;2</a><br/>Compiling from Specifications - <a href="14-cfs.html#SP6">&#167;6</a><br/>List Constants - <a href="18-lc.html#SP8">&#167;8</a><br/>Tables - <a href="19-tb.html#SP26_2">&#167;26.2</a><br/>Compile Phrases - <a href="25-cp.html#SP5_3_5">&#167;5.3.5</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="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">NonlocalVariables::substitute_constants</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">NonlocalVariables::substitute_constants</span></span>:<br/><a href="5-nv.html#SP25">&#167;25</a><br/>Make Assertions - <a href="9-ma.html#SP4_3_41_3">&#167;4.3.41.3</a><br/>Property Knowledge - <a href="9-pk.html#SP4">&#167;4</a><br/>Relation Knowledge - <a href="9-rk.html#SP2">&#167;2</a><br/>Compiling from Specifications - <a href="14-cfs.html#SP6">&#167;6</a><br/>List Constants - <a href="18-lc.html#SP8">&#167;8</a><br/>Tables - <a href="19-tb.html#SP26_2">&#167;26.2</a><br/>Compile Phrases - <a href="25-cp.html#SP5_3_5">&#167;5.3.5</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">depth</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">substitution_session_id</span><span class="plain-syntax">++;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">) {</span>
@ -795,7 +795,7 @@ neither quite proper nor common; "the player" in Inform is an example.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="function-syntax">NonlocalVariables::get_alias</span><button class="popup" onclick="togglePopup('usagePopup39')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup39">Usage of <span class="code-font"><span class="function-syntax">NonlocalVariables::get_alias</span></span>:<br/>Refine Parse Tree - <a href="9-rpt.html#SP14">&#167;14</a><br/>Assert Propositions - <a href="12-ap.html#SP12">&#167;12</a><br/>Tables - <a href="19-tb.html#SP24_4">&#167;24.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="function-syntax">NonlocalVariables::get_alias</span><button class="popup" onclick="togglePopup('usagePopup39')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup39">Usage of <span class="code-font"><span class="function-syntax">NonlocalVariables::get_alias</span></span>:<br/>Refine Parse Tree - <a href="9-rpt.html#SP15">&#167;15</a><br/>Assert Propositions - <a href="12-ap.html#SP12">&#167;12</a><br/>Tables - <a href="19-tb.html#SP24_4">&#167;24.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax"> = </span><a href="5-nv.html#SP17" class="function-link"><span class="function-syntax">NonlocalVariables::get_initial_value</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">nlv</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">vals</span><span class="plain-syntax"> = </span><a href="16-is.html#SP17" class="function-link"><span class="function-syntax">InferenceSubjects::from_specification</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">);</span>

View file

@ -367,7 +367,7 @@ and "inside" the wrong way round.
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">binary_predicate</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure binary_predicate is accessed in 6/rlt, 6/nv, 9/tbath, 15/cr, 15/spr, 15/spr2, 19/lr and here.</li></ul>
<ul class="endnotetexts"><li>The structure binary_predicate is accessed in 6/rlt, 6/nv, 15/cr, 15/spr, 15/spr2, 19/lr and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP11"></a><b>&#167;11. </b>This seems a good point to lay out a classification of all of the BPs
existing within Inform. Broadly, they divide into two: the ones explicitly
created by the source text, in sentences like
@ -1007,7 +1007,7 @@ relation itself.)
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">BinaryPredicates::store_dynamically</span><button class="popup" onclick="togglePopup('usagePopup36')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup36">Usage of <span class="code-font"><span class="function-syntax">BinaryPredicates::store_dynamically</span></span>:<br/><a href="6-bp.html#SP33">&#167;33</a><br/>Explicit Relations - <a href="6-er.html#SP3">&#167;3</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="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">bp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">dynamic_memory</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">BinaryPredicates::relates_values_not_objects</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">BinaryPredicates::relates_values_not_objects</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP3_3_34_3">&#167;3.3.34.3</a><br/>Relation Knowledge - <a href="9-rk.html#SP3_2">&#167;3.2</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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">BinaryPredicates::relates_values_not_objects</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">BinaryPredicates::relates_values_not_objects</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP4_3_34_4">&#167;4.3.34.4</a><br/>Relation Knowledge - <a href="9-rk.html#SP3_2">&#167;3.2</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="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">bp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">relates_values_not_objects</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="function-syntax">BinaryPredicates::as_subject</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">BinaryPredicates::as_subject</span></span>:<br/><a href="6-bp.html#SP33">&#167;33</a><br/>Relations - <a href="6-rlt.html#SP20_5_1">&#167;20.5.1</a>, <a href="6-rlt.html#SP28">&#167;28</a><br/>Inferences - <a href="16-in.html#SP9">&#167;9</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>

View file

@ -557,7 +557,7 @@ surreptitiously check that it is correctly formed at the same time.
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
</pre>
<ul class="endnotetexts"><li>The structure contents_entry is accessed in 3/cs, 3/dlr, 3/pr, 3/tr, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/rs, 9/tfa, 9/tbath, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/ps, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>
<ul class="endnotetexts"><li>The structure contents_entry is accessed in 3/cs, 3/dlr, 3/pr, 3/tr, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/rs, 9/tfa, 9/rpt, 9/tc, 9/ma, 9/rk, 9/ass, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/ps, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP16_1"></a><b>&#167;16.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Index this entry in the contents</span><span class="named-paragraph-number">16.1</span></span><span class="comment-syntax"> =</span>
</p>

View file

@ -457,7 +457,7 @@ be such that their head nodes each pass this test:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">ParseTreeUsage::allow_in_assertions</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">ParseTreeUsage::allow_in_assertions</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">ParseTreeUsage::allow_in_assertions</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">ParseTreeUsage::allow_in_assertions</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</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">VerifyTree::verify_structure_from</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">NodeType::has_flag</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">), </span><span class="identifier-syntax">ASSERT_NFLAG</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>

View file

@ -124,7 +124,7 @@ generalisations which apply to it.
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">generalisation</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure generalisation is accessed in 3/cs, 3/dlr, 3/pr, 3/tr, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/rs, 9/tfa, 9/tbath, 9/rpt, 9/tc, 9/ma, 9/rk, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/ps, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>
<ul class="endnotetexts"><li>The structure generalisation is accessed in 3/cs, 3/dlr, 3/pr, 3/tr, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/rs, 9/tfa, 9/rpt, 9/tc, 9/ma, 9/rk, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/ps, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP4"></a><b>&#167;4. </b>For reasons to do with timing, each object needs to keep track of which
generalisations have and have not yet applied to it. In practice, this is
a list of pairs \((K, g)\) where \(K\) is a kind and \(g\) is the most recent one
@ -138,7 +138,7 @@ applied from \(K\)'s list.
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">application</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next</span><span class="plain-syntax">;</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">application</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure application is accessed in 3/cs, 3/dlr, 3/pr, 3/tr, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/rs, 9/tfa, 9/tbath, 9/rpt, 9/tc, 9/ma, 9/rk, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/ps, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>
<ul class="endnotetexts"><li>The structure application is accessed in 3/cs, 3/dlr, 3/pr, 3/tr, 5/lp, 5/ut, 5/un, 5/ins, 6/rlt, 6/nv, 7/rs, 9/tfa, 9/rpt, 9/tc, 9/ma, 9/rk, 9/imp, 9/pd, 10/teav, 10/cap, 11/ap, 11/pr, 11/bas, 11/tc, 11/sm, 12/dtd, 12/cdp, 14/rv, 14/lv, 14/cn, 14/ds, 14/ds2, 15/ps, 15/cp, 16/is, 16/in, 19/tb, 19/rsft, 19/tod, 20/eq, 21/rl, 21/rl2, 21/fao, 21/rps, 21/sv, 21/ac, 22/ph, 22/tp, 22/tp2, 23/ad, 24/lv, 24/sf, 25/in, 25/pi, 25/cii, 25/cp, 26/uo, 26/tti, 26/pc, 26/ts, 27/cm and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP5"></a><b>&#167;5. </b>These structures are combined in the following packet of data attached to
each inference subject:
</p>
@ -206,7 +206,7 @@ first it's a <span class="extract"><span class="extract-syntax">RELATIONSHIP_NT<
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Assemblies::make_generalisation</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">Assertions::Assemblies::make_generalisation</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP3_3_31">&#167;3.3.31</a>, <a href="9-ma.html#SP3_3_34_1">&#167;3.3.34.1</a>, <a href="9-ma.html#SP3_3_35">&#167;3.3.35</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">look_for</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">what_to_make</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Assemblies::make_generalisation</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">Assertions::Assemblies::make_generalisation</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP4_3_31">&#167;4.3.31</a>, <a href="9-ma.html#SP4_3_34_2">&#167;4.3.34.2</a>, <a href="9-ma.html#SP4_3_35">&#167;4.3.35</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">look_for</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">what_to_make</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">EVERY_node</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">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">look_for</span><span class="plain-syntax">) == </span><span class="constant-syntax">EVERY_NT</span><span class="plain-syntax">) </span><span class="identifier-syntax">EVERY_node</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="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">look_for</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">look_for</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">) == </span><span class="constant-syntax">EVERY_NT</span><span class="plain-syntax">))</span>
@ -280,7 +280,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">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_evaluation</span><span class="plain-syntax">(</span><span class="identifier-syntax">what_to_make</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">val</span><span class="plain-syntax">) &amp;&amp; (</span><a href="14-ds.html#SP7" class="function-link"><span class="function-syntax">Descriptions::is_adjectives_plus_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP10" class="function-link"><span class="function-syntax">Assertions::Refiner::refine_from_simple_description</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">what_to_make</span><span class="plain-syntax">, </span><span class="identifier-syntax">Node::duplicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP11" class="function-link"><span class="function-syntax">Assertions::Refiner::refine_from_simple_description</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">what_to_make</span><span class="plain-syntax">, </span><span class="identifier-syntax">Node::duplicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> }</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="9-ass.html#SP9">&#167;9</a>.</li></ul>

View file

@ -104,7 +104,7 @@ is to store them and sit on them.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Implications::new</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Assertions::Implications::new</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP3_3_2">&#167;3.3.2</a>, <a href="9-ma.html#SP3_3_22">&#167;3.3.22</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">px</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">py</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Implications::new</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Assertions::Implications::new</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP4_3_2">&#167;4.3.2</a>, <a href="9-ma.html#SP4_3_22">&#167;4.3.22</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">px</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">py</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</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="named-paragraph-container code-font"><a href="9-imp.html#SP4_1" class="named-paragraph-link"><span class="named-paragraph">Reject implications given with certainty</span><span class="named-paragraph-number">4.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">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">) == </span><span class="identifier-syntax">AND_NT</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="9-imp.html#SP4" class="function-link"><span class="function-syntax">Assertions::Implications::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">, </span><span class="identifier-syntax">py</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">);</span>

File diff suppressed because it is too large Load diff

View file

@ -195,7 +195,7 @@ good condition", not "you can come in on one condition").
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">CNW</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">the_list</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">) </span><span class="identifier-syntax">CNW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">the_list</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP8" class="function-link"><span class="function-syntax">Assertions::Refiner::refine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">the_owner</span><span class="plain-syntax">, </span><span class="constant-syntax">FORBID_CREATION</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP9" class="function-link"><span class="function-syntax">Assertions::Refiner::refine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">the_owner</span><span class="plain-syntax">, </span><span class="constant-syntax">FORBID_CREATION</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-pd.html#SP5_4" class="named-paragraph-link"><span class="named-paragraph">Possession must be time-independent</span><span class="named-paragraph-number">5.4</span></a></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">count</span><span class="plain-syntax"> = </span><a href="9-pd.html#SP5_1" class="function-link"><span class="function-syntax">Assertions::Property::list_length</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">the_list</span><span class="plain-syntax">);</span>
@ -674,7 +674,7 @@ a recursive traverse of the left-hand subtree.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">property</span><span class="plain-syntax"> *</span><span class="function-syntax">Assertions::Property::recursively_declare_properties</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Assertions::Property::recursively_declare_properties</span></span>:<br/><a href="9-pd.html#SP7_1">&#167;7.1</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_25">&#167;3.3.25</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner_ref</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">property</span><span class="plain-syntax"> *</span><span class="function-syntax">Assertions::Property::recursively_declare_properties</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Assertions::Property::recursively_declare_properties</span></span>:<br/><a href="9-pd.html#SP7_1">&#167;7.1</a><br/>Make Assertions - <a href="9-ma.html#SP4_3_25">&#167;4.3.25</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner_ref</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</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">switch</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_type</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">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">AND_NT:</span>
<span class="plain-syntax"> </span><a href="9-pd.html#SP6" class="function-link"><span class="function-syntax">Assertions::Property::recursively_declare_properties</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner_ref</span><span class="plain-syntax">, </span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">);</span>

View file

@ -73,7 +73,7 @@ and which therefore exists only once.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::PropertyKnowledge::initialise_global_variable</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Assertions::PropertyKnowledge::initialise_global_variable</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP3_3_41_3">&#167;3.3.41.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">q</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::PropertyKnowledge::initialise_global_variable</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Assertions::PropertyKnowledge::initialise_global_variable</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP4_3_41_3">&#167;4.3.41.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">q</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="9-pk.html#SP2" class="function-link"><span class="function-syntax">Assertions::PropertyKnowledge::igv_dash</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">q</span><span class="plain-syntax">, </span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
@ -178,14 +178,14 @@ either as an object, a value or a subtree &mdash; should have
</li><li>(c) a whole list of properties and their values.
</li></ul>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::PropertyKnowledge::assert_property_value_from_property_subtree_infs</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">Assertions::PropertyKnowledge::assert_property_value_from_property_subtree_infs</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP3_3_13">&#167;3.3.13</a>, <a href="9-ma.html#SP3_3_26">&#167;3.3.26</a>, <a href="9-ma.html#SP3_3_41">&#167;3.3.41</a>, <a href="9-ma.html#SP3_3_41_4">&#167;3.3.41.4</a>, <a href="9-ma.html#SP3_3_41_5">&#167;3.3.41.5</a><br/>Tables of Definitions - <a href="19-tod.html#SP6_4_3_1">&#167;6.4.3.1</a></span></button><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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::PropertyKnowledge::assert_property_value_from_property_subtree_infs</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">Assertions::PropertyKnowledge::assert_property_value_from_property_subtree_infs</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP4_3_13">&#167;4.3.13</a>, <a href="9-ma.html#SP4_3_26">&#167;4.3.26</a>, <a href="9-ma.html#SP4_3_41">&#167;4.3.41</a>, <a href="9-ma.html#SP4_3_41_4">&#167;4.3.41.4</a>, <a href="9-ma.html#SP4_3_41_5">&#167;4.3.41.5</a><br/>Tables of Definitions - <a href="19-tod.html#SP6_4_3_1">&#167;6.4.3.1</a></span></button><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">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val_subtree</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">prop</span><span class="plain-syntax"> = </span><a href="11-tc.html#SP6" class="function-link"><span class="function-syntax">Calculus::Propositions::Abstract::from_property_subtree</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">val_subtree</span><span 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">NULL</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="9-pk.html#SP3_3" class="named-paragraph-link"><span class="named-paragraph">Issue a problem for an unrecognised property owner</span><span class="named-paragraph-number">3.3</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="12-ap.html#SP5" class="function-link"><span class="function-syntax">Calculus::Propositions::Assert::assert_true_about</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prop</span><span class="plain-syntax">, </span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">prevailing_mood</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::PropertyKnowledge::assert_property_list</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Assertions::PropertyKnowledge::assert_property_list</span></span>:<br/>The Creator - <a href="9-tc.html#SP5_2_1">&#167;5.2.1</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_18">&#167;3.3.18</a>, <a href="9-ma.html#SP3_3_29">&#167;3.3.29</a>, <a href="9-ma.html#SP7">&#167;7</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner_subtree</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">list_subtree</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::PropertyKnowledge::assert_property_list</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Assertions::PropertyKnowledge::assert_property_list</span></span>:<br/>The Creator - <a href="9-tc.html#SP5_2_1">&#167;5.2.1</a><br/>Make Assertions - <a href="9-ma.html#SP4_3_18">&#167;4.3.18</a>, <a href="9-ma.html#SP4_3_29">&#167;4.3.29</a>, <a href="9-ma.html#SP8">&#167;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">owner_subtree</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">list_subtree</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-pk.html#SP3_2" class="named-paragraph-link"><span class="named-paragraph">Check that the owner subtree isn't dangerously elaborate</span><span class="named-paragraph-number">3.2</span></a></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">owner</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">owner_subtree</span><span 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">NULL</span><span class="plain-syntax">) {</span>

View file

@ -90,7 +90,7 @@ objects or values, but there are two exceptional cases to take care of.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Relational::assert_subtree_in_relationship</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Assertions::Relational::assert_subtree_in_relationship</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP3_3_34_3">&#167;3.3.34.3</a>, <a href="9-ma.html#SP3_3_36">&#167;3.3.36</a>, <a href="9-ma.html#SP3_3_37">&#167;3.3.37</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">value</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">relationship_subtree</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Relational::assert_subtree_in_relationship</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Assertions::Relational::assert_subtree_in_relationship</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP4_3_34_4">&#167;4.3.34.4</a>, <a href="9-ma.html#SP4_3_36">&#167;4.3.36</a>, <a href="9-ma.html#SP4_3_37">&#167;4.3.37</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">value</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">relationship_subtree</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">value</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">relationship_subtree</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">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"assert relation between null subtrees"</span><span 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::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">relationship_subtree</span><span class="plain-syntax">) != </span><span class="identifier-syntax">RELATIONSHIP_NT</span><span class="plain-syntax">)</span>
@ -249,8 +249,8 @@ that subtrees \(T_X\) and \(T_Y\), where \(T_X\) is a single value or object and
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="9-rpt.html#SP6" class="function-link"><span class="function-syntax">Assertions::Refiner::coerce_adjectival_usage_to_noun</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">); </span><a href="9-rpt.html#SP14" class="function-link"><span class="function-syntax">Assertions::Refiner::turn_player_to_yourself</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP6" class="function-link"><span class="function-syntax">Assertions::Refiner::coerce_adjectival_usage_to_noun</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">); </span><a href="9-rpt.html#SP14" class="function-link"><span class="function-syntax">Assertions::Refiner::turn_player_to_yourself</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP6" class="function-link"><span class="function-syntax">Assertions::Refiner::coerce_adjectival_usage_to_noun</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">); </span><a href="9-rpt.html#SP15" class="function-link"><span class="function-syntax">Assertions::Refiner::turn_player_to_yourself</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP6" class="function-link"><span class="function-syntax">Assertions::Refiner::coerce_adjectival_usage_to_noun</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">); </span><a href="9-rpt.html#SP15" class="function-link"><span class="function-syntax">Assertions::Refiner::turn_player_to_yourself</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span 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::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">) != </span><span class="identifier-syntax">PROPER_NOUN_NT</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">) != </span><span class="identifier-syntax">COMMON_NOUN_NT</span><span class="plain-syntax">)) ||</span>
<span class="plain-syntax"> ((</span><span class="identifier-syntax">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">) != </span><span class="identifier-syntax">PROPER_NOUN_NT</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">) != </span><span class="identifier-syntax">COMMON_NOUN_NT</span><span class="plain-syntax">))) {</span>

View file

@ -81,7 +81,7 @@ MathJax = {
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7 Modules</a></li><li><a href="index.html">core</a></li><li><a href="index.html#9">Chapter 9: The A-Parser</a></li><li><b>Refine Parse Tree</b></li></ul></div>
<p class="purpose">To determine which subjects are referred to by noun phrases such as "the table" and "a paper cup" found in assertion sentences being parsed.</p>
<ul class="toc"><li><a href="9-rpt.html#SP1">&#167;1. How individual nouns are represented after refinement</a></li><li><a href="9-rpt.html#SP5">&#167;5. Representation of single adjectives</a></li><li><a href="9-rpt.html#SP7">&#167;7. The refinery itself</a></li><li><a href="9-rpt.html#SP11">&#167;11. About surgeries</a></li><li><a href="9-rpt.html#SP12">&#167;12. And surgery</a></li><li><a href="9-rpt.html#SP13">&#167;13. With surgery</a></li><li><a href="9-rpt.html#SP14">&#167;14. The player is not yourself</a></li></ul><hr class="tocbar">
<ul class="toc"><li><a href="9-rpt.html#SP1">&#167;1. How individual nouns are represented after refinement</a></li><li><a href="9-rpt.html#SP5">&#167;5. Representation of single adjectives</a></li><li><a href="9-rpt.html#SP7">&#167;7. Refining equated phrases</a></li><li><a href="9-rpt.html#SP8">&#167;8. The refinery itself</a></li><li><a href="9-rpt.html#SP12">&#167;12. About surgeries</a></li><li><a href="9-rpt.html#SP13">&#167;13. And surgery</a></li><li><a href="9-rpt.html#SP14">&#167;14. With surgery</a></li><li><a href="9-rpt.html#SP15">&#167;15. The player is not yourself</a></li></ul><hr class="tocbar">
<p class="commentary firstcommentary"><a id="SP1"></a><b>&#167;1. How individual nouns are represented after refinement. </b>The parse tree identifies the primary verb in each sentence, but does only the
most basic work in parsing its noun phrases. It can spot the use of certain
@ -95,12 +95,12 @@ nodes, thus decomposing the NP into smaller clauses which are refined in turn.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Refiner::noun_from_infs</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Assertions::Refiner::noun_from_infs</span></span>:<br/><a href="9-rpt.html#SP9_5_1">&#167;9.5.1</a>, <a href="9-rpt.html#SP9_7">&#167;9.7</a>, <a href="9-rpt.html#SP10_1">&#167;10.1</a>, <a href="9-rpt.html#SP14">&#167;14</a><br/>The Creator - <a href="9-tc.html#SP5_4">&#167;5.4</a>, <a href="9-tc.html#SP8_4">&#167;8.4</a>, <a href="9-tc.html#SP8_4_1">&#167;8.4.1</a><br/>Assemblies - <a href="9-ass.html#SP14">&#167;14</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</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>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Refiner::noun_from_infs</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Assertions::Refiner::noun_from_infs</span></span>:<br/><a href="9-rpt.html#SP10_5_1">&#167;10.5.1</a>, <a href="9-rpt.html#SP10_7">&#167;10.7</a>, <a href="9-rpt.html#SP11_1">&#167;11.1</a>, <a href="9-rpt.html#SP15">&#167;15</a><br/>The Creator - <a href="9-tc.html#SP5_4">&#167;5.4</a>, <a href="9-tc.html#SP8_4">&#167;8.4</a>, <a href="9-tc.html#SP8_4_1">&#167;8.4.1</a><br/>Assemblies - <a href="9-ass.html#SP14">&#167;14</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</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>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP3" class="function-link"><span class="function-syntax">Assertions::Refiner::pn_make_COMMON_or_PROPER</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</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">Node::set_evaluation</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><a href="16-is.html#SP18" class="function-link"><span class="function-syntax">InferenceSubjects::as_constant</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">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Refiner::noun_from_value</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">Assertions::Refiner::noun_from_value</span></span>:<br/><a href="9-rpt.html#SP6">&#167;6</a>, <a href="9-rpt.html#SP9_8_2">&#167;9.8.2</a>, <a href="9-rpt.html#SP9_8_2_5">&#167;9.8.2.5</a><br/>The Creator - <a href="9-tc.html#SP5_4">&#167;5.4</a>, <a href="9-tc.html#SP5_4_1_1">&#167;5.4.1.1</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_11">&#167;3.3.11</a>, <a href="9-ma.html#SP5">&#167;5</a><br/>Relation Knowledge - <a href="9-rk.html#SP2">&#167;2</a><br/>Tables - <a href="19-tb.html#SP25_1">&#167;25.1</a><br/>Tables of Definitions - <a href="19-tod.html#SP6_3">&#167;6.3</a>, <a href="19-tod.html#SP6_4_3_1">&#167;6.4.3.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Refiner::noun_from_value</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">Assertions::Refiner::noun_from_value</span></span>:<br/><a href="9-rpt.html#SP6">&#167;6</a>, <a href="9-rpt.html#SP10_8_2">&#167;10.8.2</a>, <a href="9-rpt.html#SP10_8_2_5">&#167;10.8.2.5</a><br/>The Creator - <a href="9-tc.html#SP5_4">&#167;5.4</a>, <a href="9-tc.html#SP5_4_1_1">&#167;5.4.1.1</a><br/>Make Assertions - <a href="9-ma.html#SP4_3_11">&#167;4.3.11</a>, <a href="9-ma.html#SP6">&#167;6</a><br/>Relation Knowledge - <a href="9-rk.html#SP2">&#167;2</a><br/>Tables - <a href="19-tb.html#SP25_1">&#167;25.1</a><br/>Tables of Definitions - <a href="19-tod.html#SP6_3">&#167;6.3</a>, <a href="19-tod.html#SP6_4_3_1">&#167;6.4.3.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><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">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">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><a href="14-sp.html#SP3" class="function-link"><span class="function-syntax">Specifications::to_proposition</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">pcalc_prop</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop</span><span class="plain-syntax"> = </span><a href="14-sp.html#SP3" class="function-link"><span class="function-syntax">Specifications::to_proposition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">);</span>
@ -127,7 +127,7 @@ true &mdash; "an open door", say, or "a woman in London" &mdash; these are recor
in a <span class="extract"><span class="extract-syntax">creation_proposition</span></span> field.
</li></ul>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Refiner::pn_noun_details_from_spec</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">Assertions::Refiner::pn_noun_details_from_spec</span></span>:<br/><a href="9-rpt.html#SP1">&#167;1</a>, <a href="9-rpt.html#SP5">&#167;5</a>, <a href="9-rpt.html#SP10_1">&#167;10.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Refiner::pn_noun_details_from_spec</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">Assertions::Refiner::pn_noun_details_from_spec</span></span>:<br/><a href="9-rpt.html#SP1">&#167;1</a>, <a href="9-rpt.html#SP5">&#167;5</a>, <a href="9-rpt.html#SP11_1">&#167;11.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><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">pcalc_prop</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop</span><span class="plain-syntax"> = </span><a href="14-ds.html#SP9" class="function-link"><span class="function-syntax">Descriptions::get_quantified_prop</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::set_creation_proposition</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><a href="11-pr.html#SP14" class="function-link"><span class="function-syntax">Calculus::Propositions::copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prop</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax"> = </span><a href="14-ds.html#SP9" class="function-link"><span class="function-syntax">Descriptions::get_quantification_parameter</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">);</span>
@ -186,7 +186,7 @@ compare "clothing" and "clothes", which has no adequate singular.)
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Refiner::pn_make_adjective</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Assertions::Refiner::pn_make_adjective</span></span>:<br/><a href="9-rpt.html#SP10_3">&#167;10.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="reserved-syntax">unary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ale</span><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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Refiner::pn_make_adjective</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Assertions::Refiner::pn_make_adjective</span></span>:<br/><a href="9-rpt.html#SP11_3">&#167;11.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="reserved-syntax">unary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ale</span><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="identifier-syntax">adjective</span><span class="plain-syntax"> *</span><span class="identifier-syntax">aph</span><span class="plain-syntax"> = </span><a href="6-up.html#SP4" class="function-link"><span class="function-syntax">UnaryPredicates::get_adj</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ale</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::set_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="constant-syntax">ADJECTIVE_NT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::set_aph</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">aph</span><span class="plain-syntax">);</span>
@ -201,14 +201,28 @@ compare "clothing" and "clothes", which has no adequate singular.)
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Refiner::coerce_adjectival_usage_to_noun</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Assertions::Refiner::coerce_adjectival_usage_to_noun</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP3_3_22">&#167;3.3.22</a>, <a href="9-ma.html#SP3_3_26">&#167;3.3.26</a><br/>Property Knowledge - <a href="9-pk.html#SP4_3">&#167;4.3</a><br/>Relation Knowledge - <a href="9-rk.html#SP3_1">&#167;3.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Refiner::coerce_adjectival_usage_to_noun</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Assertions::Refiner::coerce_adjectival_usage_to_noun</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP4_3_22">&#167;4.3.22</a>, <a href="9-ma.html#SP4_3_26">&#167;4.3.26</a><br/>Property Knowledge - <a href="9-pk.html#SP4_3">&#167;4.3</a><br/>Relation Knowledge - <a href="9-rk.html#SP3_1">&#167;3.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">) == </span><span class="constant-syntax">ADJECTIVE_NT</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">q</span><span class="plain-syntax"> = </span><a href="4-am.html#SP13" class="function-link"><span class="function-syntax">Adjectives::Meanings::has_ENUMERATIVE_meaning</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_aph</span><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">q</span><span class="plain-syntax">) </span><a href="9-rpt.html#SP1" class="function-link"><span class="function-syntax">Assertions::Refiner::noun_from_value</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</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">q</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP7"></a><b>&#167;7. The refinery itself. </b>Time to get started, then. Each subtree can be refined only once.
<p class="commentary firstcommentary"><a id="SP7"></a><b>&#167;7. Refining equated phrases. </b>When an assertion couples <span class="extract"><span class="extract-syntax">px</span></span> and <span class="extract"><span class="extract-syntax">py</span></span>, the following is called first to
refine them.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Refiner::refine_coupling</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Assertions::Refiner::refine_coupling</span></span>:<br/>Traverse for Assertions - <a href="9-tfa.html#SP9_2">&#167;9.2</a><br/>Tables of Definitions - <a href="19-tod.html#SP6_3">&#167;6.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">px</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">py</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">pc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">problem_count</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP9" class="function-link"><span class="function-syntax">Assertions::Refiner::refine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">, </span><span class="constant-syntax">ALLOW_CREATION</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP9" class="function-link"><span class="function-syntax">Assertions::Refiner::refine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">, </span><span class="constant-syntax">ALLOW_CREATION</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">problem_count</span><span class="plain-syntax"> &gt; </span><span class="identifier-syntax">pc</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="9-tc.html#SP1" class="function-link"><span class="function-syntax">Assertions::Creator::consult_the_creator</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">, </span><span class="identifier-syntax">py</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP8"></a><b>&#167;8. The refinery itself. </b>Time to get started, then. Each subtree can be refined only once.
</p>
<p class="commentary">The <span class="extract"><span class="extract-syntax">creation_rule</span></span> can have three values:
@ -218,11 +232,11 @@ compare "clothing" and "clothes", which has no adequate singular.)
<span class="definition-keyword">define</span> <span class="constant-syntax">ALLOW_CREATION</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax"> </span><span class="comment-syntax"> create an object with this name if that looks sensible</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">MANDATE_CREATION</span><span class="plain-syntax"> </span><span class="constant-syntax">2</span><span class="plain-syntax"> </span><span class="comment-syntax"> always create an object with this name, except for "it"</span>
</pre>
<p class="commentary firstcommentary"><a id="SP8"></a><b>&#167;8. </b></p>
<p class="commentary firstcommentary"><a id="SP9"></a><b>&#167;9. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">forbid_nowhere</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Refiner::refine</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Assertions::Refiner::refine</span></span>:<br/><a href="9-rpt.html#SP9_1">&#167;9.1</a>, <a href="9-rpt.html#SP9_2">&#167;9.2</a>, <a href="9-rpt.html#SP9_3">&#167;9.3</a>, <a href="9-rpt.html#SP9_4">&#167;9.4</a>, <a href="9-rpt.html#SP9_5">&#167;9.5</a>, <a href="9-rpt.html#SP9_6">&#167;9.6</a><br/>To Be and To Have - <a href="9-tbath.html#SP3">&#167;3</a><br/>Property Declarations - <a href="9-pd.html#SP5">&#167;5</a><br/>Tree Conversions - <a href="11-tc.html#SP7_1">&#167;7.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">creation_rule</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Refiner::refine</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">Assertions::Refiner::refine</span></span>:<br/><a href="9-rpt.html#SP7">&#167;7</a>, <a href="9-rpt.html#SP10_1">&#167;10.1</a>, <a href="9-rpt.html#SP10_2">&#167;10.2</a>, <a href="9-rpt.html#SP10_3">&#167;10.3</a>, <a href="9-rpt.html#SP10_4">&#167;10.4</a>, <a href="9-rpt.html#SP10_5">&#167;10.5</a>, <a href="9-rpt.html#SP10_6">&#167;10.6</a><br/>Property Declarations - <a href="9-pd.html#SP5">&#167;5</a><br/>Tree Conversions - <a href="11-tc.html#SP7_1">&#167;7.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">creation_rule</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">p</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"Refine parse tree on null 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">Annotations::read_int</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="constant-syntax">refined_ANNOT</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::write_int</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="constant-syntax">refined_ANNOT</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">);</span>
@ -233,44 +247,44 @@ compare "clothing" and "clothes", which has no adequate singular.)
<span class="plain-syntax"> ((</span><span class="identifier-syntax">creation_rule</span><span class="plain-syntax"> == </span><span class="constant-syntax">ALLOW_CREATION</span><span class="plain-syntax">)?</span><span class="string-syntax">"allow"</span><span class="plain-syntax">:</span><span class="string-syntax">"mandate"</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">LOG_INDENT</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP9" class="function-link"><span class="function-syntax">Assertions::Refiner::refine_parse_tree_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">creation_rule</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP10" class="function-link"><span class="function-syntax">Assertions::Refiner::refine_parse_tree_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">creation_rule</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG_OUTDENT</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">NOUN_RESOLUTION</span><span class="plain-syntax">, </span><span class="string-syntax">"Refined subtree is:\n$T"</span><span class="plain-syntax">, </span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP9"></a><b>&#167;9. </b>What we do depends on the crude structure already found.
<p class="commentary firstcommentary"><a id="SP10"></a><b>&#167;10. </b>What we do depends on the crude structure already found.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Refiner::refine_parse_tree_inner</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">Assertions::Refiner::refine_parse_tree_inner</span></span>:<br/><a href="9-rpt.html#SP8">&#167;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">p</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">creation_rule</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Refiner::refine_parse_tree_inner</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Assertions::Refiner::refine_parse_tree_inner</span></span>:<br/><a href="9-rpt.html#SP9">&#167;9</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">creation_rule</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">Node::get_type</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">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">X_OF_Y_NT:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP9_1" class="named-paragraph-link"><span class="named-paragraph">Refine an X-of-Y subtree</span><span class="named-paragraph-number">9.1</span></a></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">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">WITH_NT:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP9_2" class="named-paragraph-link"><span class="named-paragraph">Refine an X-with-Y subtree</span><span class="named-paragraph-number">9.2</span></a></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">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">AND_NT:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP9_3" class="named-paragraph-link"><span class="named-paragraph">Refine an X-and-Y subtree</span><span class="named-paragraph-number">9.3</span></a></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">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">RELATIONSHIP_NT:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP9_5" class="named-paragraph-link"><span class="named-paragraph">Refine a relationship subtree</span><span class="named-paragraph-number">9.5</span></a></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">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">CALLED_NT:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP9_4" class="named-paragraph-link"><span class="named-paragraph">Refine a calling subtree</span><span class="named-paragraph-number">9.4</span></a></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">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">KIND_NT:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP9_6" class="named-paragraph-link"><span class="named-paragraph">Refine a kind subtree</span><span class="named-paragraph-number">9.6</span></a></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">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">PRONOUN_NT:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP9_7" class="named-paragraph-link"><span class="named-paragraph">Refine a pronoun</span><span class="named-paragraph-number">9.7</span></a></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">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">X_OF_Y_NT:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP10_1" class="named-paragraph-link"><span class="named-paragraph">Refine an X-of-Y subtree</span><span class="named-paragraph-number">10.1</span></a></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">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">WITH_NT:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP10_2" class="named-paragraph-link"><span class="named-paragraph">Refine an X-with-Y subtree</span><span class="named-paragraph-number">10.2</span></a></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">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">AND_NT:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP10_3" class="named-paragraph-link"><span class="named-paragraph">Refine an X-and-Y subtree</span><span class="named-paragraph-number">10.3</span></a></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">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">RELATIONSHIP_NT:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP10_5" class="named-paragraph-link"><span class="named-paragraph">Refine a relationship subtree</span><span class="named-paragraph-number">10.5</span></a></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">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">CALLED_NT:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP10_4" class="named-paragraph-link"><span class="named-paragraph">Refine a calling subtree</span><span class="named-paragraph-number">10.4</span></a></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">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">KIND_NT:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP10_6" class="named-paragraph-link"><span class="named-paragraph">Refine a kind subtree</span><span class="named-paragraph-number">10.6</span></a></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">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">PRONOUN_NT:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP10_7" class="named-paragraph-link"><span class="named-paragraph">Refine a pronoun</span><span class="named-paragraph-number">10.7</span></a></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">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">PROPER_NOUN_NT:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">UNPARSED_NOUN_NT:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP9_8" class="named-paragraph-link"><span class="named-paragraph">Refine what seems to be a noun phrase</span><span class="named-paragraph-number">9.8</span></a></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">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">UNPARSED_NOUN_NT:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP10_8" class="named-paragraph-link"><span class="named-paragraph">Refine what seems to be a noun phrase</span><span class="named-paragraph-number">10.8</span></a></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>
</pre>
<p class="commentary firstcommentary"><a id="SP9_1"></a><b>&#167;9.1. </b>Recall that an <span class="extract"><span class="extract-syntax">X_OF_Y_NT</span></span> subtree has the form owner followed by
<p class="commentary firstcommentary"><a id="SP10_1"></a><b>&#167;10.1. </b>Recall that an <span class="extract"><span class="extract-syntax">X_OF_Y_NT</span></span> subtree has the form owner followed by
property name, so we forbid creation of a new object from the property name
subtree.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Refine an X-of-Y subtree</span><span class="named-paragraph-number">9.1</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Refine an X-of-Y subtree</span><span class="named-paragraph-number">10.1</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="9-rpt.html#SP8" class="function-link"><span class="function-syntax">Assertions::Refiner::refine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">, </span><span class="identifier-syntax">creation_rule</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP8" class="function-link"><span class="function-syntax">Assertions::Refiner::refine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">, </span><span class="constant-syntax">FORBID_CREATION</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP9" class="function-link"><span class="function-syntax">Assertions::Refiner::refine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">, </span><span class="identifier-syntax">creation_rule</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP9" class="function-link"><span class="function-syntax">Assertions::Refiner::refine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">, </span><span class="constant-syntax">FORBID_CREATION</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP9">&#167;9</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP9_2"></a><b>&#167;9.2. </b><span class="extract"><span class="extract-syntax">WITH_NT</span></span> is used to create something with a list of properties. This
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP10">&#167;10</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP10_2"></a><b>&#167;10.2. </b><span class="extract"><span class="extract-syntax">WITH_NT</span></span> is used to create something with a list of properties. This
leads to some awkward cases &mdash; for instance, where a "with" in an action
pattern like "doing something with the bucket" has been misinterpreted.
We fix those cases by hand, by reconstructing the text before it was
@ -278,12 +292,12 @@ divided, to form the word range \((a_1, a_2)\); then parsing it as an action
pattern; if it works, that reading is allowed to stand.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Refine an X-with-Y subtree</span><span class="named-paragraph-number">9.2</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Refine an X-with-Y subtree</span><span class="named-paragraph-number">10.2</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="9-rpt.html#SP8" class="function-link"><span class="function-syntax">Assertions::Refiner::refine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">, </span><span class="identifier-syntax">creation_rule</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP13" class="function-link"><span class="function-syntax">Assertions::Refiner::perform_with_surgery</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP9" class="function-link"><span class="function-syntax">Assertions::Refiner::refine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">, </span><span class="identifier-syntax">creation_rule</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP14" class="function-link"><span class="function-syntax">Assertions::Refiner::perform_with_surgery</span></a><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">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">) == </span><span class="identifier-syntax">WITH_NT</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">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Wordings::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">)),</span>
@ -298,20 +312,20 @@ pattern; if it works, that reading is allowed to stand.
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
<span class="plain-syntax"> }</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP9">&#167;9</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP9_3"></a><b>&#167;9.3. </b><span class="extract"><span class="extract-syntax">AND_NT</span></span> is easy, except for "and surgery", of which more below.
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP10">&#167;10</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP10_3"></a><b>&#167;10.3. </b><span class="extract"><span class="extract-syntax">AND_NT</span></span> is easy, except for "and surgery", of which more below.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Refine an X-and-Y subtree</span><span class="named-paragraph-number">9.3</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Refine an X-and-Y subtree</span><span class="named-paragraph-number">10.3</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="9-rpt.html#SP8" class="function-link"><span class="function-syntax">Assertions::Refiner::refine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">, </span><span class="identifier-syntax">creation_rule</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP8" class="function-link"><span class="function-syntax">Assertions::Refiner::refine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">, </span><span class="identifier-syntax">creation_rule</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP12" class="function-link"><span class="function-syntax">Assertions::Refiner::perform_and_surgery</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP9" class="function-link"><span class="function-syntax">Assertions::Refiner::refine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">, </span><span class="identifier-syntax">creation_rule</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP9" class="function-link"><span class="function-syntax">Assertions::Refiner::refine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">, </span><span class="identifier-syntax">creation_rule</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP13" class="function-link"><span class="function-syntax">Assertions::Refiner::perform_and_surgery</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP9">&#167;9</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP9_4"></a><b>&#167;9.4. </b>A <span class="extract"><span class="extract-syntax">CALLED_NT</span></span> node has two children: in the phrase "an X called Y", they
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP10">&#167;10</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP10_4"></a><b>&#167;10.4. </b>A <span class="extract"><span class="extract-syntax">CALLED_NT</span></span> node has two children: in the phrase "an X called Y", they
will represent X and Y respectively. Y must be created afresh whatever its
name, since the whole point of "called" is that it enables the designer
to use names which would otherwise be interpreted as meaning something
@ -322,11 +336,11 @@ of Y and the kind of X. In this way, all <span class="extract"><span class="extr
from the tree.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Refine a calling subtree</span><span class="named-paragraph-number">9.4</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Refine a calling subtree</span><span class="named-paragraph-number">10.4</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="9-rpt.html#SP8" class="function-link"><span class="function-syntax">Assertions::Refiner::refine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">, </span><span class="constant-syntax">FORBID_CREATION</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP9" class="function-link"><span class="function-syntax">Assertions::Refiner::refine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">, </span><span class="constant-syntax">FORBID_CREATION</span><span 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">p</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">down</span><span class="plain-syntax">, </span><span class="constant-syntax">multiplicity_ANNOT</span><span class="plain-syntax">) &gt; </span><span class="constant-syntax">1</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#SP5" 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_MultipleCalled</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="string-syntax">"I can only make a single 'called' thing at a time"</span><span class="plain-syntax">,</span>
@ -340,37 +354,37 @@ from the tree.
<span class="plain-syntax"> </span><span class="identifier-syntax">StandardProblems::sentence_problem</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP5" 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">BelievedImpossible</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="string-syntax">"'called' can't be used in this context"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"and is best reserved for full sentences."</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="9-rpt.html#SP8" class="function-link"><span class="function-syntax">Assertions::Refiner::refine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">, </span><span class="constant-syntax">MANDATE_CREATION</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="9-rpt.html#SP9" class="function-link"><span class="function-syntax">Assertions::Refiner::refine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">, </span><span class="constant-syntax">MANDATE_CREATION</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">forbid_nowhere</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP9">&#167;9</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP9_5"></a><b>&#167;9.5. </b>A <span class="extract"><span class="extract-syntax">RELATIONSHIP_NT</span></span> node may have no children, representing "here"; or
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP10">&#167;10</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP10_5"></a><b>&#167;10.5. </b>A <span class="extract"><span class="extract-syntax">RELATIONSHIP_NT</span></span> node may have no children, representing "here"; or
it may have one child, a room or door which lies in some map direction. But
in general it has two children: for instance "a green marble in a blue box"
has the marble and the box as its children, the relationship being containment.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Refine a relationship subtree</span><span class="named-paragraph-number">9.5</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Refine a relationship subtree</span><span class="named-paragraph-number">10.5</span></span><span class="comment-syntax"> =</span>
</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">p</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">down</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP8" class="function-link"><span class="function-syntax">Assertions::Refiner::refine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">, </span><span class="identifier-syntax">creation_rule</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP9" class="function-link"><span class="function-syntax">Assertions::Refiner::refine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">, </span><span class="identifier-syntax">creation_rule</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">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dir</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PL::MapDirections::get_mapping_relationship</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">dir</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP9_5_1" class="named-paragraph-link"><span class="named-paragraph">Make the relation one which refers to a map direction</span><span class="named-paragraph-number">9.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">dir</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP10_5_1" class="named-paragraph-link"><span class="named-paragraph">Make the relation one which refers to a map direction</span><span class="named-paragraph-number">10.5.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">) </span><a href="9-rpt.html#SP8" class="function-link"><span class="function-syntax">Assertions::Refiner::refine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">, </span><span class="identifier-syntax">creation_rule</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">) </span><a href="9-rpt.html#SP9" class="function-link"><span class="function-syntax">Assertions::Refiner::refine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">, </span><span class="identifier-syntax">creation_rule</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP9">&#167;9</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP9_5_1"></a><b>&#167;9.5.1. </b>This handles the case of a one-child node representing a map direction,
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP10">&#167;10</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP10_5_1"></a><b>&#167;10.5.1. </b>This handles the case of a one-child node representing a map direction,
but fills in a second child as the direction object in question. Thus if
the relation is mapped-north-of, then the second child will become the
direction object for "north".
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Make the relation one which refers to a map direction</span><span class="named-paragraph-number">9.5.1</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Make the relation one which refers to a map direction</span><span class="named-paragraph-number">10.5.1</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -380,34 +394,34 @@ direction object for "north".
<span class="plain-syntax"> </span><a href="9-rpt.html#SP1" class="function-link"><span class="function-syntax">Assertions::Refiner::noun_from_infs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">, </span><a href="5-ins.html#SP13" class="function-link"><span class="function-syntax">Instances::as_subject</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dir</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::write_int</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">, </span><span class="constant-syntax">refined_ANNOT</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP9_5">&#167;9.5</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP9_6"></a><b>&#167;9.6. </b>A <span class="extract"><span class="extract-syntax">KIND_NT</span></span> node may have no children, and if so it represents the bare
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP10_5">&#167;10.5</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP10_6"></a><b>&#167;10.6. </b>A <span class="extract"><span class="extract-syntax">KIND_NT</span></span> node may have no children, and if so it represents the bare
word "kind": the reference must be to the kind "kind" itself.
Otherwise it has one child &mdash; the name of an existing kind of value or
object. After refinement, it will be annotated with a valid non-null
inference subject representing the domain to which any new kind would belong.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Refine a kind subtree</span><span class="named-paragraph-number">9.6</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Refine a kind subtree</span><span class="named-paragraph-number">10.6</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kind_of_what</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_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">p</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">down</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">what</span><span class="plain-syntax"> = </span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP8" class="function-link"><span class="function-syntax">Assertions::Refiner::refine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">what</span><span class="plain-syntax">, </span><span class="constant-syntax">FORBID_CREATION</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP9" class="function-link"><span class="function-syntax">Assertions::Refiner::refine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">what</span><span class="plain-syntax">, </span><span class="constant-syntax">FORBID_CREATION</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">kind_of_what</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">what</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">kind_of_what</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><a href="16-is.html#SP21" class="function-link"><span class="function-syntax">InferenceSubjects::domain</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kind_of_what</span><span class="plain-syntax">) == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP9_6_1" class="named-paragraph-link"><span class="named-paragraph">Issue a problem message for a kind of instance</span><span class="named-paragraph-number">9.6.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP10_6_1" class="named-paragraph-link"><span class="named-paragraph">Issue a problem message for a kind of instance</span><span class="named-paragraph-number">10.6.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><a href="16-is.html#SP19" class="function-link"><span class="function-syntax">InferenceSubjects::as_nonobject_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kind_of_what</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">kind_of_what</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_value</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">kind_of_what</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_object</span><span class="plain-syntax">)))</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP9_6_2" class="named-paragraph-link"><span class="named-paragraph">Issue a problem message for a disallowed subkind</span><span class="named-paragraph-number">9.6.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP10_6_2" class="named-paragraph-link"><span class="named-paragraph">Issue a problem message for a disallowed subkind</span><span class="named-paragraph-number">10.6.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::set_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind_of_what</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP9">&#167;9</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP9_6_1"></a><b>&#167;9.6.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue a problem message for a kind of instance</span><span class="named-paragraph-number">9.6.1</span></span><span class="comment-syntax"> =</span>
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP10">&#167;10</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP10_6_1"></a><b>&#167;10.6.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue a problem message for a kind of instance</span><span class="named-paragraph-number">10.6.1</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -427,8 +441,8 @@ inference subject representing the domain to which any new kind would belong.
<span class="plain-syntax"> </span><span class="identifier-syntax">kind_of_what</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_value</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP9_6">&#167;9.6</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP9_6_2"></a><b>&#167;9.6.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue a problem message for a disallowed subkind</span><span class="named-paragraph-number">9.6.2</span></span><span class="comment-syntax"> =</span>
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP10_6">&#167;10.6</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP10_6_2"></a><b>&#167;10.6.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue a problem message for a disallowed subkind</span><span class="named-paragraph-number">10.6.2</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -439,11 +453,11 @@ inference subject representing the domain to which any new kind would belong.
<span class="plain-syntax"> </span><span class="string-syntax">"a kind of number' is not."</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">kind_of_what</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_value</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP9_6">&#167;9.6</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP9_7"></a><b>&#167;9.7. </b>The following could clearly be improved.
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP10_6">&#167;10.6</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP10_7"></a><b>&#167;10.7. </b>The following could clearly be improved.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Refine a pronoun</span><span class="named-paragraph-number">9.7</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Refine a pronoun</span><span class="named-paragraph-number">10.7</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -483,8 +497,8 @@ inference subject representing the domain to which any new kind would belong.
<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">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"misconstrued pronoun"</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP9">&#167;9</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP9_8"></a><b>&#167;9.8. </b>The simple description of what happens to a <span class="extract"><span class="extract-syntax">PROPER_NOUN_NT</span></span> node is that
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP10">&#167;10</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP10_8"></a><b>&#167;10.8. </b>The simple description of what happens to a <span class="extract"><span class="extract-syntax">PROPER_NOUN_NT</span></span> node is that
if it's an existing object or value, then it should be annotated with a
reference to that object or value; and if not, then a new object should be
created with that name. (We don't actually create here, though: we just mark
@ -492,49 +506,49 @@ such a noun phrase by changing its node type to <span class="extract"><span clas
complicated description is as follows:
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Refine what seems to be a noun phrase</span><span class="named-paragraph-number">9.8</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Refine what seems to be a noun phrase</span><span class="named-paragraph-number">10.8</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::set_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">PROPER_NOUN_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">forbid_nowhere</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP9_8_1" class="named-paragraph-link"><span class="named-paragraph">Act on any special noun phrases significant to plugins</span><span class="named-paragraph-number">9.8.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">forbid_nowhere</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP10_8_1" class="named-paragraph-link"><span class="named-paragraph">Act on any special noun phrases significant to plugins</span><span class="named-paragraph-number">10.8.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">creation_rule</span><span class="plain-syntax"> != </span><span class="constant-syntax">MANDATE_CREATION</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP9_8_2" class="named-paragraph-link"><span class="named-paragraph">Interpret this as an existing noun if possible</span><span class="named-paragraph-number">9.8.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP10_8_2" class="named-paragraph-link"><span class="named-paragraph">Interpret this as an existing noun if possible</span><span class="named-paragraph-number">10.8.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">creation_rule</span><span class="plain-syntax"> != </span><span class="constant-syntax">FORBID_CREATION</span><span class="plain-syntax">) </span><span class="identifier-syntax">Node::set_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="constant-syntax">CREATED_NT</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">Node::set_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP9">&#167;9</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP9_8_1"></a><b>&#167;9.8.1. </b>For example, "above" and "below" become significant if the mapping plugin
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP10">&#167;10</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP10_8_1"></a><b>&#167;10.8.1. </b>For example, "above" and "below" become significant if the mapping plugin
is active, and "nowhere" if the spatial one is.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Act on any special noun phrases significant to plugins</span><span class="named-paragraph-number">9.8.1</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Act on any special noun phrases significant to plugins</span><span class="named-paragraph-number">10.8.1</span></span><span class="comment-syntax"> =</span>
</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><a href="26-pc.html#SP6" class="function-link"><span class="function-syntax">Plugins::Call::act_on_special_NPs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP9_8">&#167;9.8</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP9_8_2"></a><b>&#167;9.8.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Interpret this as an existing noun if possible</span><span class="named-paragraph-number">9.8.2</span></span><span class="comment-syntax"> =</span>
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP10_8">&#167;10.8</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP10_8_2"></a><b>&#167;10.8.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Interpret this as an existing noun if possible</span><span class="named-paragraph-number">10.8.2</span></span><span class="comment-syntax"> =</span>
</p>
<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">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP9_8_2_1" class="named-paragraph-link"><span class="named-paragraph">Parse the noun phrase as a value property name</span><span class="named-paragraph-number">9.8.2.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">spec</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP9_8_2_3" class="named-paragraph-link"><span class="named-paragraph">Parse the noun phrase as a value</span><span class="named-paragraph-number">9.8.2.3</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP10_8_2_1" class="named-paragraph-link"><span class="named-paragraph">Parse the noun phrase as a value property name</span><span class="named-paragraph-number">10.8.2.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">spec</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP10_8_2_3" class="named-paragraph-link"><span class="named-paragraph">Parse the noun phrase as a value</span><span class="named-paragraph-number">10.8.2.3</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Node::is</span><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">, </span><span class="constant-syntax">NONLOCAL_VARIABLE_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">spec</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTANT_NT</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP1" class="function-link"><span class="function-syntax">Assertions::Refiner::noun_from_value</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</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="plain-syntax"> }</span>
<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>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP9_8_2_5" class="named-paragraph-link"><span class="named-paragraph">Act on a description used as a noun phrase</span><span class="named-paragraph-number">9.8.2.5</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP9_8_2_4" class="named-paragraph-link"><span class="named-paragraph">Act on an action pattern used as a noun phrase</span><span class="named-paragraph-number">9.8.2.4</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP10_8_2_5" class="named-paragraph-link"><span class="named-paragraph">Act on a description used as a noun phrase</span><span class="named-paragraph-number">10.8.2.5</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP10_8_2_4" class="named-paragraph-link"><span class="named-paragraph">Act on an action pattern used as a noun phrase</span><span class="named-paragraph-number">10.8.2.4</span></a></span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP9_8">&#167;9.8</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP9_8_2_1"></a><b>&#167;9.8.2.1. </b>Perhaps it is the name of a valued property? If so, it is used as a noun,
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP10_8">&#167;10.8</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP10_8_2_1"></a><b>&#167;10.8.2.1. </b>Perhaps it is the name of a valued property? If so, it is used as a noun,
without obvious reference to any owner: we convert it to a noun node.
</p>
@ -542,14 +556,14 @@ without obvious reference to any owner: we convert it to a noun node.
property name meaning, not as the name of a kind of value.)
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Parse the noun phrase as a value property name</span><span class="named-paragraph-number">9.8.2.1</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Parse the noun phrase as a value property name</span><span class="named-paragraph-number">10.8.2.1</span></span><span class="comment-syntax"> =</span>
</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="function-syntax">&lt;value-property-name&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</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">spec</span><span class="plain-syntax"> = </span><a href="14-rv.html#SP1" class="function-link"><span class="function-syntax">Rvalues::from_property</span></a><span class="plain-syntax">(</span><span class="function-syntax">&lt;&lt;rp&gt;&gt;</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP9_8_2">&#167;9.8.2</a>.</li></ul>
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP10_8_2">&#167;10.8.2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP_1"></a><b>&#167;.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue PM_VagueVariable problem</span><span class="named-paragraph-number">.1</span></span><span class="comment-syntax"> =</span>
</p>
@ -561,8 +575,8 @@ property name meaning, not as the name of a kind of value.)
<span class="plain-syntax"> </span><span class="string-syntax">"need - would be much clearer."</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> ==&gt; { </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, - };</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP9_8_2_2">&#167;9.8.2.2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP9_8_2_2"></a><b>&#167;9.8.2.2. </b>When a noun phrase in an assertion represents a value, it's normally a
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP10_8_2_2">&#167;10.8.2.2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP10_8_2_2"></a><b>&#167;10.8.2.2. </b>When a noun phrase in an assertion represents a value, it's normally a
constant ("13") or else something like a description of values ("a number").
It wouldn't make sense to refer to a temporary value like a local variable,
but a global ("player" or "time of day") is possible.
@ -581,7 +595,7 @@ a noun instead of a condition testing the current action.
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;s-global-variable&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> { TRUE, RP[1] }</span>
</pre>
<ul class="endnotetexts"><li>This is <a href="../words-module/4-ap.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
<p class="commentary firstcommentary"><a id="SP9_8_2_3"></a><b>&#167;9.8.2.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Parse the noun phrase as a value</span><span class="named-paragraph-number">9.8.2.3</span></span><span class="Preform-comment-syntax"> =</span>
<p class="commentary firstcommentary"><a id="SP10_8_2_3"></a><b>&#167;10.8.2.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Parse the noun phrase as a value</span><span class="named-paragraph-number">10.8.2.3</span></span><span class="Preform-comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -592,10 +606,10 @@ a noun instead of a condition testing the current action.
<span class="plain-syntax"> </span><span class="identifier-syntax">spec</span><span class="plain-syntax"> = </span><a href="14-sp.html#SP8" class="function-link"><span class="function-syntax">Specifications::new_UNKNOWN</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</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><a href="14-ds.html#SP9" class="function-link"><span class="function-syntax">Descriptions::get_quantifier</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="named-paragraph-container code-font"><a href="9-rpt.html#SP9_8_2_3_1" class="named-paragraph-link"><span class="named-paragraph">Check that this noun phrase is allowed a quantifier</span><span class="named-paragraph-number">9.8.2.3.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP10_8_2_3_1" class="named-paragraph-link"><span class="named-paragraph">Check that this noun phrase is allowed a quantifier</span><span class="named-paragraph-number">10.8.2.3.1</span></a></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">NOUN_RESOLUTION</span><span class="plain-syntax">, </span><span class="string-syntax">"Noun phrase %W parsed as value: $P\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">), </span><span class="identifier-syntax">spec</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP9_8_2">&#167;9.8.2</a>.</li></ul>
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP10_8_2">&#167;10.8.2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP_1"></a><b>&#167;.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue a problem for a variable described without a kind</span><span class="named-paragraph-number">.1</span></span><span class="comment-syntax"> =</span>
</p>
@ -603,7 +617,7 @@ a noun instead of a condition testing the current action.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>This code is never used.</li></ul>
<p class="commentary firstcommentary"><a id="SP9_8_2_3_1"></a><b>&#167;9.8.2.3.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Check that this noun phrase is allowed a quantifier</span><span class="named-paragraph-number">9.8.2.3.1</span></span><span class="comment-syntax"> =</span>
<p class="commentary firstcommentary"><a id="SP10_8_2_3_1"></a><b>&#167;10.8.2.3.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Check that this noun phrase is allowed a quantifier</span><span class="named-paragraph-number">10.8.2.3.1</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -638,8 +652,8 @@ a noun instead of a condition testing the current action.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP9_8_2_3">&#167;9.8.2.3</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP9_8_2_4"></a><b>&#167;9.8.2.4. </b>If the noun phrase is a valid action pattern, such as "taking something",
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP10_8_2_3">&#167;10.8.2.3</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP10_8_2_4"></a><b>&#167;10.8.2.4. </b>If the noun phrase is a valid action pattern, such as "taking something",
we change it to a new node type to mark this. We don't keep the pattern:
it will be reparsed much later on.
</p>
@ -651,7 +665,7 @@ piece of wood. So we parse action patterns with a lower priority than values
here, given that we know we are looking for a noun.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Act on an action pattern used as a noun phrase</span><span class="named-paragraph-number">9.8.2.4</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Act on an action pattern used as a noun phrase</span><span class="named-paragraph-number">10.8.2.4</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -665,8 +679,8 @@ here, given that we know we are looking for a noun.
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP9_8_2">&#167;9.8.2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP9_8_2_5"></a><b>&#167;9.8.2.5. </b>This case has been left to last, since it's so much the most difficult.
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP10_8_2">&#167;10.8.2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP10_8_2_5"></a><b>&#167;10.8.2.5. </b>This case has been left to last, since it's so much the most difficult.
Descriptions have to be converted into a surprising range of different
subtrees &mdash; otherwise it will not be possible to issue a wide range of
to-the-point problem messages for badly constructed sentences.
@ -675,7 +689,7 @@ to-the-point problem messages for badly constructed sentences.
<p class="commentary">Oddly, it's not the complicated descriptions which give trouble...
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Act on a description used as a noun phrase</span><span class="named-paragraph-number">9.8.2.5</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Act on a description used as a noun phrase</span><span class="named-paragraph-number">10.8.2.5</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -684,10 +698,10 @@ to-the-point problem messages for badly constructed sentences.
<span class="plain-syntax"> </span><a href="9-rpt.html#SP1" class="function-link"><span class="function-syntax">Assertions::Refiner::noun_from_value</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</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="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP9_8_2_5_1" class="named-paragraph-link"><span class="named-paragraph">Act on a simple description</span><span class="named-paragraph-number">9.8.2.5.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP10_8_2_5_1" class="named-paragraph-link"><span class="named-paragraph">Act on a simple description</span><span class="named-paragraph-number">10.8.2.5.1</span></a></span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP9_8_2">&#167;9.8.2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP9_8_2_5_1"></a><b>&#167;9.8.2.5.1. </b>...it's the shorter phrases where, perversely, the risk of a
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP10_8_2">&#167;10.8.2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP10_8_2_5_1"></a><b>&#167;10.8.2.5.1. </b>...it's the shorter phrases where, perversely, the risk of a
misunderstanding is higher. For one thing, we deliberately ignore a valid
description in two cases:
</p>
@ -721,19 +735,19 @@ that this is not the same silver bar referred to in some previous
sentence.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Act on a simple description</span><span class="named-paragraph-number">9.8.2.5.1</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Act on a simple description</span><span class="named-paragraph-number">10.8.2.5.1</span></span><span class="comment-syntax"> =</span>
</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><a href="14-ds.html#SP5" class="function-link"><span class="function-syntax">Descriptions::to_instance</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> ((</span><a href="14-ds.html#SP8" class="function-link"><span class="function-syntax">Descriptions::number_of_adjectives_applied_to</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">) &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) ||</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Articles::may_be_definite</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_article</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">)) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)))) {</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP10" class="function-link"><span class="function-syntax">Assertions::Refiner::refine_from_simple_description</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">spec</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP11" class="function-link"><span class="function-syntax">Assertions::Refiner::refine_from_simple_description</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</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="plain-syntax"> }</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP9_8_2_5">&#167;9.8.2.5</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP10"></a><b>&#167;10. </b>The following turns the node <span class="extract"><span class="extract-syntax">p</span></span> into a subtree representing the content of
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP10_8_2_5">&#167;10.8.2.5</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP11"></a><b>&#167;11. </b>The following turns the node <span class="extract"><span class="extract-syntax">p</span></span> into a subtree representing the content of
a simple description in <span class="extract"><span class="extract-syntax">spec</span></span>. Besides being used above, it's also convenient
for assemblies.
</p>
@ -745,16 +759,16 @@ where the adjectives each become <span class="extract"><span class="extract-synt
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Refiner::refine_from_simple_description</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Assertions::Refiner::refine_from_simple_description</span></span>:<br/><a href="9-rpt.html#SP9_8_2_5_1">&#167;9.8.2.5.1</a><br/>Assemblies - <a href="9-ass.html#SP9_3">&#167;9.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Refiner::refine_from_simple_description</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">Assertions::Refiner::refine_from_simple_description</span></span>:<br/><a href="9-rpt.html#SP10_8_2_5_1">&#167;10.8.2.5.1</a><br/>Assemblies - <a href="9-ass.html#SP9_3">&#167;9.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><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">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">head</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP10_1" class="named-paragraph-link"><span class="named-paragraph">Set the attachment node to the headword, if there is one</span><span class="named-paragraph-number">10.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP11_1" class="named-paragraph-link"><span class="named-paragraph">Set the attachment node to the headword, if there is one</span><span class="named-paragraph-number">11.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><a href="14-ds.html#SP8" class="function-link"><span class="function-syntax">Descriptions::number_of_adjectives_applied_to</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">) &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">head</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP10_2" class="named-paragraph-link"><span class="named-paragraph">Insert a WITH node joining adjective tree to headword</span><span class="named-paragraph-number">10.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP10_3" class="named-paragraph-link"><span class="named-paragraph">Place a subtree of adjectives at the attachment node</span><span class="named-paragraph-number">10.3</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">head</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP11_2" class="named-paragraph-link"><span class="named-paragraph">Insert a WITH node joining adjective tree to headword</span><span class="named-paragraph-number">11.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rpt.html#SP11_3" class="named-paragraph-link"><span class="named-paragraph">Place a subtree of adjectives at the attachment node</span><span class="named-paragraph-number">11.3</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP10_1"></a><b>&#167;10.1. </b>Crucially, the headword node gets one extra annotation: its "full phrase
<p class="commentary firstcommentary"><a id="SP11_1"></a><b>&#167;11.1. </b>Crucially, the headword node gets one extra annotation: its "full phrase
evaluation", which retains the original description information &mdash; in
particular, quantification data such as that in "four doors", which
would be lost if we simply applied <span class="extract"><span class="extract-syntax">Assertions::Refiner::noun_from_infs</span></span> to the inference
@ -766,7 +780,7 @@ no headword node &mdash; this is why we don't bother to find any subject to
set for it.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Set the attachment node to the headword, if there is one</span><span class="named-paragraph-number">10.1</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Set the attachment node to the headword, if there is one</span><span class="named-paragraph-number">11.1</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -784,13 +798,13 @@ set for it.
<span class="plain-syntax"> </span><a href="9-rpt.html#SP2" class="function-link"><span class="function-syntax">Assertions::Refiner::pn_noun_details_from_spec</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">spec</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP10">&#167;10</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP10_2"></a><b>&#167;10.2. </b>We put a WITH node in the attachment position, displacing the headword
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP11">&#167;11</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP11_2"></a><b>&#167;11.2. </b>We put a WITH node in the attachment position, displacing the headword
content to its first child, and making its second child the new attachment
position &mdash; so that that is where the adjectives subtree will go.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Insert a WITH node joining adjective tree to headword</span><span class="named-paragraph-number">10.2</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Insert a WITH node joining adjective tree to headword</span><span class="named-paragraph-number">11.2</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -801,14 +815,14 @@ position &mdash; so that that is where the adjectives subtree will go.
<span class="plain-syntax"> </span><span class="identifier-syntax">lower_copy</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</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>
<span class="plain-syntax"> </span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">lower_copy</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP10">&#167;10</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP10_3"></a><b>&#167;10.3. </b>When there are two or more adjectives, they must occur as leaves of a
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP11">&#167;11</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP11_3"></a><b>&#167;11.3. </b>When there are two or more adjectives, they must occur as leaves of a
binary tree whose non-leaf nodes are <span class="extract"><span class="extract-syntax">AND_NT</span></span>. We do this pretty inefficiently,
making no effort to balance the tree, since it has negligible effect on speed
or memory.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Place a subtree of adjectives at the attachment node</span><span class="named-paragraph-number">10.3</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Place a subtree of adjectives at the attachment node</span><span class="named-paragraph-number">11.3</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -838,8 +852,8 @@ or memory.
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP10">&#167;10</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP11"></a><b>&#167;11. About surgeries. </b>The rest of this section is taken up with four local surgical operations
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP11">&#167;11</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP12"></a><b>&#167;12. About surgeries. </b>The rest of this section is taken up with four local surgical operations
performed on the tree in the light of what we can now see. In each case, the
problem is that two clausal constructions implied by the nodes inserted
earlier have been applied the wrong way round:
@ -851,7 +865,7 @@ in disguised form this is another clash with <span class="extract"><span class="
</li><li>(3) "Location surgery": <span class="extract"><span class="extract-syntax">AND_NT</span></span> and <span class="extract"><span class="extract-syntax">RELATIONSHIP_NT</span></span> the wrong way round.
</li><li>(4) "Called surgery": <span class="extract"><span class="extract-syntax">CALLED_NT</span></span> and <span class="extract"><span class="extract-syntax">RELATIONSHIP_NT</span></span> the wrong way round.
</li></ul>
<p class="commentary firstcommentary"><a id="SP12"></a><b>&#167;12. And surgery. </b>"And surgery" is a fiddly operation to correct the parse tree after
<p class="commentary firstcommentary"><a id="SP13"></a><b>&#167;13. And surgery. </b>"And surgery" is a fiddly operation to correct the parse tree after
resolution of all the nouns in a phrase which involves both "and" and
"with" in a particular way. There's no problem with either of these:
</p>
@ -894,7 +908,7 @@ on the back of an envelope. Change at your peril.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Refiner::perform_and_surgery</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">Assertions::Refiner::perform_and_surgery</span></span>:<br/><a href="9-rpt.html#SP9_3">&#167;9.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Refiner::perform_and_surgery</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Assertions::Refiner::perform_and_surgery</span></span>:<br/><a href="9-rpt.html#SP10_3">&#167;10.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</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">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">x</span><span class="plain-syntax">, *</span><span class="identifier-syntax">a_p</span><span class="plain-syntax">, *</span><span class="identifier-syntax">w_p</span><span class="plain-syntax">, *</span><span class="identifier-syntax">p1_p</span><span class="plain-syntax">, *</span><span class="identifier-syntax">p2_p</span><span class="plain-syntax">, *</span><span class="identifier-syntax">i_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">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">) == </span><span class="constant-syntax">ADJECTIVE_NT</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> &amp;&amp; (</span><span class="identifier-syntax">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">) == </span><span class="identifier-syntax">WITH_NT</span><span class="plain-syntax">)) {</span>
@ -914,7 +928,7 @@ on the back of an envelope. Change at your peril.
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP13"></a><b>&#167;13. With surgery. </b>This is a less traumatic operation, motivated by sentences like:
<p class="commentary firstcommentary"><a id="SP14"></a><b>&#167;14. With surgery. </b>This is a less traumatic operation, motivated by sentences like:
</p>
<blockquote>
@ -947,7 +961,7 @@ terms of the tree,
<span class="plain-syntax"> PROPERTY_LIST_NT "The box..."</span>
</pre>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Refiner::perform_with_surgery</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Assertions::Refiner::perform_with_surgery</span></span>:<br/><a href="9-rpt.html#SP9_2">&#167;9.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Refiner::perform_with_surgery</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Assertions::Refiner::perform_with_surgery</span></span>:<br/><a href="9-rpt.html#SP10_2">&#167;10.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</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">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inst</span><span class="plain-syntax">, *</span><span class="identifier-syntax">prop_1</span><span class="plain-syntax">, *</span><span class="identifier-syntax">prop_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">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">) == </span><span class="identifier-syntax">WITH_NT</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">) == </span><span class="identifier-syntax">WITH_NT</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inst</span><span class="plain-syntax"> = </span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">;</span>
@ -960,7 +974,7 @@ terms of the tree,
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP14"></a><b>&#167;14. The player is not yourself. </b>The following routine handles a feature added to Inform to handle just one
<p class="commentary firstcommentary"><a id="SP15"></a><b>&#167;15. The player is not yourself. </b>The following routine handles a feature added to Inform to handle just one
peculiarity of syntax: that the source text will often talk about "the
player" to mean the object which represents the player at the start of
play (properly called "yourself"), not the variable whose value is the
@ -972,7 +986,7 @@ can set up aliases of variable names to constants like this.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Refiner::turn_player_to_yourself</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Assertions::Refiner::turn_player_to_yourself</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP3_3_13">&#167;3.3.13</a>, <a href="9-ma.html#SP3_3_20">&#167;3.3.20</a>, <a href="9-ma.html#SP3_3_25">&#167;3.3.25</a>, <a href="9-ma.html#SP3_3_26">&#167;3.3.26</a>, <a href="9-ma.html#SP3_3_29">&#167;3.3.29</a>, <a href="9-ma.html#SP3_3_36">&#167;3.3.36</a>, <a href="9-ma.html#SP3_3_37">&#167;3.3.37</a><br/>Relation Knowledge - <a href="9-rk.html#SP3_1">&#167;3.1</a></span></button><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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Refiner::turn_player_to_yourself</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Assertions::Refiner::turn_player_to_yourself</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP4_3_13">&#167;4.3.13</a>, <a href="9-ma.html#SP4_3_20">&#167;4.3.20</a>, <a href="9-ma.html#SP4_3_25">&#167;4.3.25</a>, <a href="9-ma.html#SP4_3_26">&#167;4.3.26</a>, <a href="9-ma.html#SP4_3_29">&#167;4.3.29</a>, <a href="9-ma.html#SP4_3_36">&#167;4.3.36</a>, <a href="9-ma.html#SP4_3_37">&#167;4.3.37</a><br/>Relation Knowledge - <a href="9-rk.html#SP3_1">&#167;3.1</a></span></button><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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">))) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">) == </span><span class="identifier-syntax">PROPER_NOUN_NT</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Annotations::read_int</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">, </span><span class="constant-syntax">turned_already_ANNOT</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)) {</span>

View file

@ -12,14 +12,6 @@
<link href="../docs-assets/Navigation.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Fonts.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Base.css" rel="stylesheet" rev="stylesheet" type="text/css">
<script>
function togglePopup(material_id) {
var popup = document.getElementById(material_id);
popup.classList.toggle("show");
}
</script>
<link href="../docs-assets/Popups.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
</head>
@ -112,44 +104,6 @@ box" (not just a leaf, since it will be a tree showing the containment
relationship as well as the noun).
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Copular::refine</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Assertions::Copular::refine</span></span>:<br/>Tables of Definitions - <a href="19-tod.html#SP6_3">&#167;6.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">px</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">py</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">pc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">problem_count</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="9-tbath.html#SP3" class="function-link"><span class="function-syntax">Assertions::Copular::possessive</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="function-syntax">&lt;k-kind&gt;(Node::get_text(py-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">)))) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::set_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">, </span><span class="constant-syntax">ALLOWED_NT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::set_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">, </span><span class="identifier-syntax">UNPARSED_NOUN_NT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP8" class="function-link"><span class="function-syntax">Assertions::Refiner::refine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">, </span><span class="constant-syntax">ALLOW_CREATION</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP8" class="function-link"><span class="function-syntax">Assertions::Refiner::refine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">, </span><span class="constant-syntax">ALLOW_CREATION</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">problem_count</span><span class="plain-syntax"> &gt; </span><span class="identifier-syntax">pc</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="9-tc.html#SP1" class="function-link"><span class="function-syntax">Assertions::Creator::consult_the_creator</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">, </span><span class="identifier-syntax">py</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">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">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Copular::assertion</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">Assertions::Copular::assertion</span></span>:<br/>Traverse for Assertions - <a href="9-tfa.html#SP9_2">&#167;9.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pv</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">px</span><span class="plain-syntax"> = </span><span class="identifier-syntax">pv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><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">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">traverse</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><a href="9-tbath.html#SP3" class="function-link"><span class="function-syntax">Assertions::Copular::refine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">, </span><span class="identifier-syntax">py</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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="9-tbath.html#SP3" class="function-link"><span class="function-syntax">Assertions::Copular::possessive</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><a href="9-tbath.html#SP4" class="function-link"><span class="function-syntax">Assertions::Copular::make_assertion</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">, </span><span class="identifier-syntax">py</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
<span class="plain-syntax"> </span><a href="9-tbath.html#SP4" class="function-link"><span class="function-syntax">Assertions::Copular::make_assertion</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">, </span><span class="identifier-syntax">py</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">Assertions::Copular::possessive</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">Assertions::Copular::possessive</span></span>:<br/>Classifying Sentences - <a href="3-cs.html#SP4">&#167;4</a><br/>Property Sentences - <a href="15-ps.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">py</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">py</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">) == </span><span class="identifier-syntax">RELATIONSHIP_NT</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Node::get_relationship</span><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Node::get_relationship</span><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">reversal</span><span class="plain-syntax"> == </span><span class="constant-syntax">VERB_MEANING_POSSESSION</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="SP4"></a><b>&#167;4. </b>In either case, then, we end up going through <span class="extract"><span class="extract-syntax">Assertions::Copular::make_assertion</span></span> and then to the
following routine, which asserts that subtree <span class="extract"><span class="extract-syntax">px</span></span> "is" <span class="extract"><span class="extract-syntax">py</span></span>.
</p>
@ -169,88 +123,6 @@ the massive <span class="extract"><span class="extract-syntax">Assertions::Maker
<p class="commentary">In traverse 2, only (c) takes place; (a) and (b) are one-time events.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Copular::make_assertion</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">Assertions::Copular::make_assertion</span></span>:<br/><a href="9-tbath.html#SP3">&#167;3</a><br/>Tables of Definitions - <a href="19-tod.html#SP6_3">&#167;6.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">px</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">py</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">SyntaxTree::is_trace_set</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP5" class="function-link"><span class="function-syntax">Task::syntax_tree</span></a><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">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="function-syntax">&lt;np-existential&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">traverse</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><a href="9-tbath.html#SP6" class="function-link"><span class="function-syntax">Assertions::Copular::make_existential_assertion</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">px</span><span class="plain-syntax"> = </span><span class="identifier-syntax">py</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><a href="9-ma.html#SP3" class="function-link"><span class="function-syntax">Assertions::Maker::make_assertion_recursive</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">, </span><span class="identifier-syntax">py</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-tbath.html#SP4_1" class="named-paragraph-link"><span class="named-paragraph">Change the discussion topic for subsequent sentences</span><span class="named-paragraph-number">4.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP4_1"></a><b>&#167;4.1. </b>The slight asymmetry in what follows is partly pragmatic, partly the result
of subject-verb inversion ("in the bag is the ball" not "the ball is in the
bag"). We extract a subject from a relationship node on the left, but not on
the right, and we don't extract an object from one. Consider:
</p>
<blockquote>
<p>A billiards table is in the Gazebo. On it is a trophy cup.</p>
</blockquote>
<p class="commentary">What does "it" mean, and why? A human reader goes for the billiards table at
once, because it seems more likely as a supporter than the Gazebo, but that's
not how Inform gets the same answer. It all hangs on "billiards table" being
the object of the first sentence, not the Gazebo; if we descended the RHS,
which is <span class="extract"><span class="extract-syntax">RELATIONSHIP_NT -&gt; PROPER_NOUN_NT</span></span> pointing to the Gazebo, that's the
conclusion we would have reached.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Change the discussion topic for subsequent sentences</span><span class="named-paragraph-number">4.1</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">infsx</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, *</span><span class="identifier-syntax">infsy</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, *</span><span class="identifier-syntax">infsy_full</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">infsx</span><span class="plain-syntax"> = </span><a href="9-tbath.html#SP5" class="function-link"><span class="function-syntax">Assertions::Copular::discussed_at_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">infsy_full</span><span class="plain-syntax"> = </span><a href="9-tbath.html#SP5" class="function-link"><span class="function-syntax">Assertions::Copular::discussed_at_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span 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::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">) != </span><span class="identifier-syntax">KIND_NT</span><span class="plain-syntax">) </span><span class="identifier-syntax">infsy</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="9-tfa.html#SP12" class="function-link"><span class="function-syntax">Assertions::Traverse::change_discussion_topic</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">infsx</span><span class="plain-syntax">, </span><span class="identifier-syntax">infsy</span><span class="plain-syntax">, </span><span class="identifier-syntax">infsy_full</span><span 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::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">) == </span><span class="identifier-syntax">AND_NT</span><span class="plain-syntax">) </span><a href="9-tfa.html#SP13" class="function-link"><span class="function-syntax">Assertions::Traverse::subject_of_discussion_a_list</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Annotations::read_int</span><span class="plain-syntax">(</span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">, </span><span class="constant-syntax">clears_pronouns_ANNOT</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><a href="9-tfa.html#SP12" class="function-link"><span class="function-syntax">Assertions::Traverse::new_discussion</span></a><span class="plain-syntax">();</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="9-tbath.html#SP4">&#167;4</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP5"></a><b>&#167;5. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="function-syntax">Assertions::Copular::discussed_at_node</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Assertions::Copular::discussed_at_node</span></span>:<br/><a href="9-tbath.html#SP4_1">&#167;4.1</a></span></button><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="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="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">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">) != </span><span class="identifier-syntax">KIND_NT</span><span class="plain-syntax">) </span><span class="identifier-syntax">infs</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_subject</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">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">) == </span><span class="identifier-syntax">RELATIONSHIP_NT</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">pn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">) == </span><span class="identifier-syntax">PROPER_NOUN_NT</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">infs</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">-&gt;</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><span class="identifier-syntax">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">) == </span><span class="identifier-syntax">WITH_NT</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">pn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">) == </span><span class="identifier-syntax">PROPER_NOUN_NT</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">infs</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</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">infs</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP6"></a><b>&#167;6. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Copular::make_existential_assertion</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Assertions::Copular::make_existential_assertion</span></span>:<br/><a href="9-tbath.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">py</span><span 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::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">) == </span><span class="identifier-syntax">WITH_NT</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="9-tbath.html#SP6" class="function-link"><span class="function-syntax">Assertions::Copular::make_existential_assertion</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</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">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">) == </span><span class="identifier-syntax">AND_NT</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="9-tbath.html#SP6" class="function-link"><span class="function-syntax">Assertions::Copular::make_existential_assertion</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="9-tbath.html#SP6" class="function-link"><span class="function-syntax">Assertions::Copular::make_existential_assertion</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</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">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">) == </span><span class="identifier-syntax">COMMON_NOUN_NT</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-is.html#SP20" class="function-link"><span class="function-syntax">InferenceSubjects::is_a_kind_of_object</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">py</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_object</span><span class="plain-syntax">, </span><a href="16-is.html#SP19" class="function-link"><span class="function-syntax">InferenceSubjects::as_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">)))))</span>
<span class="plain-syntax"> </span><a href="9-tc.html#SP8" class="function-link"><span class="function-syntax">Assertions::Creator::convert_instance_to_nounphrase</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">py</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">else</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">StandardProblems::sentence_problem</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP5" 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_ThereIsVague</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="string-syntax">"'there is...' can only be used to create objects"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"and not instances of other kinds.'"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="9-tfa.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-up.html">2</a></li><li class="progresschapter"><a href="3-bv.html">3</a></li><li class="progresschapter"><a href="4-its.html">4</a></li><li class="progresschapter"><a href="5-lp.html">5</a></li><li class="progresschapter"><a href="6-up.html">6</a></li><li class="progresschapter"><a href="7-ptu.html">7</a></li><li class="progresschapter"><a href="8-ef.html">8</a></li><li class="progresscurrentchapter">9</li><li class="progresssection"><a href="9-ita.html">ita</a></li><li class="progresssection"><a href="9-tfa.html">tfa</a></li><li class="progresscurrent">tbath</li><li class="progresssection"><a href="9-rpt.html">rpt</a></li><li class="progresssection"><a href="9-tc.html">tc</a></li><li class="progresssection"><a href="9-ma.html">ma</a></li><li class="progresssection"><a href="9-pk.html">pk</a></li><li class="progresssection"><a href="9-rk.html">rk</a></li><li class="progresssection"><a href="9-ass.html">ass</a></li><li class="progresssection"><a href="9-imp.html">imp</a></li><li class="progresssection"><a href="9-pd.html">pd</a></li><li class="progresschapter"><a href="10-aots.html">10</a></li><li class="progresschapter"><a href="11-itpc.html">11</a></li><li class="progresschapter"><a href="12-ter.html">12</a></li><li class="progresschapter"><a href="13-kak.html">13</a></li><li class="progresschapter"><a href="14-sp.html">14</a></li><li class="progresschapter"><a href="15-pr.html">15</a></li><li class="progresschapter"><a href="16-is.html">16</a></li><li class="progresschapter"><a href="17-tl.html">17</a></li><li class="progresschapter"><a href="18-lc.html">18</a></li><li class="progresschapter"><a href="19-tc.html">19</a></li><li class="progresschapter"><a href="20-eq.html">20</a></li><li class="progresschapter"><a href="21-rl.html">21</a></li><li class="progresschapter"><a href="22-itp.html">22</a></li><li class="progresschapter"><a href="23-ad.html">23</a></li><li class="progresschapter"><a href="24-lv.html">24</a></li><li class="progresschapter"><a href="25-in.html">25</a></li><li class="progresschapter"><a href="26-fc.html">26</a></li><li class="progresschapter"><a href="27-hr.html">27</a></li><li class="progressnext"><a href="9-rpt.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->

View file

@ -107,7 +107,7 @@ message had to be issued during its work.
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">problem_count_when_creator_started</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Creator::consult_the_creator</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Assertions::Creator::consult_the_creator</span></span>:<br/>To Be and To Have - <a href="9-tbath.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">px</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">py</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Creator::consult_the_creator</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Assertions::Creator::consult_the_creator</span></span>:<br/>Refine Parse Tree - <a href="9-rpt.html#SP7">&#167;7</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">px</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">py</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">problem_count_when_creator_started</span><span class="plain-syntax"> = </span><span class="identifier-syntax">problem_count</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">&lt;np-existential&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">)))</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-tc.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Perform creation duties on a "There is..." sentence</span><span class="named-paragraph-number">1.1</span></a></span>
@ -1116,7 +1116,7 @@ object.
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">name_stubs_count</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Creator::convert_instance_to_nounphrase</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">Assertions::Creator::convert_instance_to_nounphrase</span></span>:<br/>To Be and To Have - <a href="9-tbath.html#SP6">&#167;6</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_34_2">&#167;3.3.34.2</a>, <a href="9-ma.html#SP3_3_34_4">&#167;3.3.34.4</a>, <a href="9-ma.html#SP3_3_35">&#167;3.3.35</a>, <a href="9-ma.html#SP7">&#167;7</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="reserved-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">hinge_relation</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Creator::convert_instance_to_nounphrase</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">Assertions::Creator::convert_instance_to_nounphrase</span></span>:<br/>Make Assertions - <a href="9-ma.html#SP1">&#167;1</a>, <a href="9-ma.html#SP4_3_34_3">&#167;4.3.34.3</a>, <a href="9-ma.html#SP4_3_34_5">&#167;4.3.34.5</a>, <a href="9-ma.html#SP4_3_35">&#167;4.3.35</a>, <a href="9-ma.html#SP8">&#167;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">p</span><span class="plain-syntax">, </span><span class="reserved-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">hinge_relation</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-tc.html#SP5_1" class="named-paragraph-link"><span class="named-paragraph">Check we are sure about this</span><span class="named-paragraph-number">5.1</span></a></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">confect_name_flag</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">hinge_relation</span><span class="plain-syntax">) &amp;&amp; (</span><a href="6-bp.html#SP39" class="function-link"><span class="function-syntax">BinaryPredicates::is_the_wrong_way_round</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">hinge_relation</span><span class="plain-syntax">)))</span>
@ -1258,7 +1258,7 @@ to a different vehicle object.
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP1" class="function-link"><span class="function-syntax">Assertions::Refiner::noun_from_infs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pz</span><span class="plain-syntax">, </span><span class="identifier-syntax">new_instance</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::write_int</span><span class="plain-syntax">(</span><span class="identifier-syntax">pz</span><span class="plain-syntax">, </span><span class="constant-syntax">creation_site_ANNOT</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="9-ma.html#SP3" class="function-link"><span class="function-syntax">Assertions::Maker::make_assertion_recursive</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pz</span><span class="plain-syntax">, </span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="9-ma.html#SP4" class="function-link"><span class="function-syntax">Assertions::Maker::make_assertion_recursive</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pz</span><span class="plain-syntax">, </span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="9-tc.html#SP8_4">&#167;8.4</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP8_4_1_1"></a><b>&#167;8.4.1.1. </b>The following is used only in assemblies, where the instance count is always

View file

@ -368,7 +368,7 @@ for the telemetry file.
<span class="reserved-syntax">sentence_handler</span><span class="plain-syntax"> </span><span class="identifier-syntax">SENTENCE_SH_handler</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> { </span><span class="identifier-syntax">SENTENCE_NT</span><span class="plain-syntax">, -1, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><a href="9-tfa.html#SP9" class="function-link"><span class="function-syntax">Assertions::Traverse::handle_sentence_with_primary_verb</span></a><span class="plain-syntax"> };</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Traverse::special</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">Assertions::Traverse::special</span></span>:<br/><a href="9-tfa.html#SP9_2">&#167;9.2</a>, <a href="9-tfa.html#SP14">&#167;14</a><br/>Property Sentences - <a href="15-ps.html#SP2">&#167;2</a><br/>Construction Sequence - <a href="22-cs.html#SP9">&#167;9</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Traverse::special</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">Assertions::Traverse::special</span></span>:<br/><a href="9-tfa.html#SP9_2">&#167;9.2</a>, <a href="9-tfa.html#SP16">&#167;16</a><br/>Property Sentences - <a href="15-ps.html#SP2">&#167;2</a><br/>Construction Sequence - <a href="22-cs.html#SP9">&#167;9</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</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">Node::get_special_meaning</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</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>
@ -413,8 +413,23 @@ nothing on either traverse, of course.
</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><a href="9-tfa.html#SP9" class="function-link"><span class="function-syntax">Assertions::Traverse::special</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">)) </span><a href="9-tfa.html#SP14" class="function-link"><span class="function-syntax">Assertions::Traverse::special_meaning</span></a><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">else</span><span class="plain-syntax"> </span><a href="9-tbath.html#SP3" class="function-link"><span class="function-syntax">Assertions::Copular::assertion</span></a><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><a href="9-tfa.html#SP9" class="function-link"><span class="function-syntax">Assertions::Traverse::special</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><a href="9-tfa.html#SP16" class="function-link"><span class="function-syntax">Assertions::Traverse::special_meaning</span></a><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">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">px</span><span class="plain-syntax"> = </span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><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">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">traverse</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><a href="9-rpt.html#SP7" class="function-link"><span class="function-syntax">Assertions::Refiner::refine_coupling</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">, </span><span class="identifier-syntax">py</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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">SyntaxTree::is_trace_set</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP5" class="function-link"><span class="function-syntax">Task::syntax_tree</span></a><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">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">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">) == </span><span class="identifier-syntax">DEFECTIVE_NOUN_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">traverse</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><a href="9-ma.html#SP1" class="function-link"><span class="function-syntax">Assertions::Maker::make_existential_assertion</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="9-tfa.html#SP13" class="function-link"><span class="function-syntax">Assertions::Traverse::change_discussion_from_coupling</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">, </span><span class="identifier-syntax">py</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><a href="9-ma.html#SP4" class="function-link"><span class="function-syntax">Assertions::Maker::make_assertion_recursive</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">, </span><span class="identifier-syntax">py</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="9-tfa.html#SP13" class="function-link"><span class="function-syntax">Assertions::Traverse::change_discussion_from_coupling</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">, </span><span class="identifier-syntax">py</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="9-tfa.html#SP9">&#167;9</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP10"></a><b>&#167;10. </b>The "appearance" is not a property as such. When a quoted piece of text
@ -514,15 +529,15 @@ not to tangible things and kinds.
<span class="reserved-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">object_of_sentences</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, *</span><span class="identifier-syntax">subject_of_sentences</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">subject_seems_to_be_plural</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="function-syntax">Assertions::Traverse::get_current_subject</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Assertions::Traverse::get_current_subject</span></span>:<br/><a href="9-tfa.html#SP10">&#167;10</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_41_1">&#167;3.3.41.1</a>, <a href="9-ma.html#SP3_3_41_4">&#167;3.3.41.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="function-syntax">Assertions::Traverse::get_current_subject</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Assertions::Traverse::get_current_subject</span></span>:<br/><a href="9-tfa.html#SP10">&#167;10</a><br/>Make Assertions - <a href="9-ma.html#SP4_3_41_1">&#167;4.3.41.1</a>, <a href="9-ma.html#SP4_3_41_4">&#167;4.3.41.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">subject_of_sentences</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="function-syntax">Assertions::Traverse::get_current_object</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Assertions::Traverse::get_current_object</span></span>:<br/>Refine Parse Tree - <a href="9-rpt.html#SP9_7">&#167;9.7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="function-syntax">Assertions::Traverse::get_current_object</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Assertions::Traverse::get_current_object</span></span>:<br/>Refine Parse Tree - <a href="9-rpt.html#SP10_7">&#167;10.7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">object_of_sentences</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">Assertions::Traverse::get_current_subject_plurality</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Assertions::Traverse::get_current_subject_plurality</span></span>:<br/>Refine Parse Tree - <a href="9-rpt.html#SP9_7">&#167;9.7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Traverse::get_current_subject_plurality</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Assertions::Traverse::get_current_subject_plurality</span></span>:<br/>Refine Parse Tree - <a href="9-rpt.html#SP10_7">&#167;10.7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">subject_seems_to_be_plural</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
@ -547,15 +562,45 @@ subject carried over from previous sentences.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Traverse::new_discussion</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">Assertions::Traverse::new_discussion</span></span>:<br/><a href="9-tfa.html#SP7">&#167;7</a><br/>Headings - <a href="7-hdn.html#SP13">&#167;13</a><br/>Extension Files - <a href="8-ef.html#SP11">&#167;11</a><br/>To Be and To Have - <a href="9-tbath.html#SP4_1">&#167;4.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Traverse::new_discussion</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">Assertions::Traverse::new_discussion</span></span>:<br/><a href="9-tfa.html#SP7">&#167;7</a>, <a href="9-tfa.html#SP13">&#167;13</a><br/>Headings - <a href="7-hdn.html#SP13">&#167;13</a><br/>Extension Files - <a href="8-ef.html#SP11">&#167;11</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">subject_of_sentences</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">PRONOUNS</span><span class="plain-syntax">, </span><span class="string-syntax">"[Forgotten subject of sentences: $j]\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">subject_of_sentences</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">subject_of_sentences</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">PRONOUNS</span><span class="plain-syntax">, </span><span class="string-syntax">"[Forgotten object of sentences: $j]\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">object_of_sentences</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">subject_of_sentences</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="identifier-syntax">object_of_sentences</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP13"></a><b>&#167;13. </b>The slight asymmetry in what follows is partly pragmatic, partly the result
of subject-verb inversion ("in the bag is the ball" not "the ball is in the
bag"). We extract a subject from a relationship node on the left, but not on
the right, and we don't extract an object from one. Consider:
</p>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Traverse::change_discussion_topic</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Assertions::Traverse::change_discussion_topic</span></span>:<br/>To Be and To Have - <a href="9-tbath.html#SP4_1">&#167;4.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">infsx</span><span class="plain-syntax">,</span>
<blockquote>
<p>A billiards table is in the Gazebo. On it is a trophy cup.</p>
</blockquote>
<p class="commentary">What does "it" mean, and why? A human reader goes for the billiards table at
once, because it seems more likely as a supporter than the Gazebo, but that's
not how Inform gets the same answer. It all hangs on "billiards table" being
the object of the first sentence, not the Gazebo; if we descended the RHS,
which is <span class="extract"><span class="extract-syntax">RELATIONSHIP_NT -&gt; PROPER_NOUN_NT</span></span> pointing to the Gazebo, that's the
conclusion we would have reached.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Traverse::change_discussion_from_coupling</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Assertions::Traverse::change_discussion_from_coupling</span></span>:<br/><a href="9-tfa.html#SP9_2">&#167;9.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">px</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">py</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">infsx</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, *</span><span class="identifier-syntax">infsy</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, *</span><span class="identifier-syntax">infsy_full</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">infsx</span><span class="plain-syntax"> = </span><a href="9-tfa.html#SP14" class="function-link"><span class="function-syntax">Assertions::Traverse::discussed_at_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">infsy_full</span><span class="plain-syntax"> = </span><a href="9-tfa.html#SP14" class="function-link"><span class="function-syntax">Assertions::Traverse::discussed_at_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span 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::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">) != </span><span class="identifier-syntax">KIND_NT</span><span class="plain-syntax">) </span><span class="identifier-syntax">infsy</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="9-tfa.html#SP13" class="function-link"><span class="function-syntax">Assertions::Traverse::change_discussion_topic</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">infsx</span><span class="plain-syntax">, </span><span class="identifier-syntax">infsy</span><span class="plain-syntax">, </span><span class="identifier-syntax">infsy_full</span><span 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::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">) == </span><span class="identifier-syntax">AND_NT</span><span class="plain-syntax">) </span><a href="9-tfa.html#SP15" class="function-link"><span class="function-syntax">Assertions::Traverse::subject_of_discussion_a_list</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Annotations::read_int</span><span class="plain-syntax">(</span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">, </span><span class="constant-syntax">clears_pronouns_ANNOT</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><a href="9-tfa.html#SP12" class="function-link"><span class="function-syntax">Assertions::Traverse::new_discussion</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Traverse::change_discussion_topic</span><span class="plain-syntax">(</span><span class="reserved-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">infsx</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">infsy</span><span class="plain-syntax">, </span><span class="reserved-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">infsy_full</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">old_sub</span><span class="plain-syntax"> = </span><span class="identifier-syntax">subject_of_sentences</span><span class="plain-syntax">, *</span><span class="identifier-syntax">old_obj</span><span class="plain-syntax"> = </span><span class="identifier-syntax">object_of_sentences</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">subject_seems_to_be_plural</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
@ -581,22 +626,37 @@ subject carried over from previous sentences.
<span class="plain-syntax"> </span><span class="identifier-syntax">object_of_sentences</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP13"></a><b>&#167;13. </b>Occasionally we need to force the issue, though:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Traverse::subject_of_discussion_a_list</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">Assertions::Traverse::subject_of_discussion_a_list</span></span>:<br/>To Be and To Have - <a href="9-tbath.html#SP4_1">&#167;4.1</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">subject_seems_to_be_plural</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP14"></a><b>&#167;14. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Traverse::special_meaning</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Assertions::Traverse::special_meaning</span></span>:<br/><a href="9-tfa.html#SP9_2">&#167;9.2</a></span></button><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="plain-syntax"> </span><a href="9-tfa.html#SP14" class="function-link"><span class="function-syntax">Assertions::Traverse::try_special_meaning</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">traverse</span><span class="plain-syntax">, </span><span class="identifier-syntax">pn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">);</span>
<span class="reserved-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="function-syntax">Assertions::Traverse::discussed_at_node</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">Assertions::Traverse::discussed_at_node</span></span>:<br/><a href="9-tfa.html#SP13">&#167;13</a></span></button><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="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="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">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">) != </span><span class="identifier-syntax">KIND_NT</span><span class="plain-syntax">) </span><span class="identifier-syntax">infs</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_subject</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">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">) == </span><span class="identifier-syntax">RELATIONSHIP_NT</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">pn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">) == </span><span class="identifier-syntax">PROPER_NOUN_NT</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">infs</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">-&gt;</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><span class="identifier-syntax">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">) == </span><span class="identifier-syntax">WITH_NT</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">pn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">) == </span><span class="identifier-syntax">PROPER_NOUN_NT</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">infs</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</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">infs</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP15"></a><b>&#167;15. </b>Occasionally we need to force the issue, though:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Traverse::subject_of_discussion_a_list</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Assertions::Traverse::subject_of_discussion_a_list</span></span>:<br/><a href="9-tfa.html#SP13">&#167;13</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">subject_seems_to_be_plural</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP16"></a><b>&#167;16. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Traverse::special_meaning</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Assertions::Traverse::special_meaning</span></span>:<br/><a href="9-tfa.html#SP9_2">&#167;9.2</a></span></button><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="plain-syntax"> </span><a href="9-tfa.html#SP16" class="function-link"><span class="function-syntax">Assertions::Traverse::try_special_meaning</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">traverse</span><span class="plain-syntax">, </span><span class="identifier-syntax">pn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Traverse::try_special_meaning</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Assertions::Traverse::try_special_meaning</span></span>:<br/>Construction Sequence - <a href="22-cs.html#SP9">&#167;9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">task</span><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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Traverse::try_special_meaning</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Assertions::Traverse::try_special_meaning</span></span>:<br/>Construction Sequence - <a href="22-cs.html#SP9">&#167;9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">task</span><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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="9-tfa.html#SP9" class="function-link"><span class="function-syntax">Assertions::Traverse::special</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">special_meaning_holder</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sm</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_special_meaning</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">sm</span><span class="plain-syntax">) </span><span class="identifier-syntax">SpecialMeanings::call</span><span class="plain-syntax">(</span><span class="identifier-syntax">sm</span><span class="plain-syntax">, </span><span class="identifier-syntax">task</span><span class="plain-syntax">, </span><span class="identifier-syntax">pn</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>

View file

@ -308,6 +308,14 @@ first place: a lesson there for all of us.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</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">int</span><span class="plain-syntax"> </span><span class="function-syntax">Diagrams::is_possessive_RELATIONSHIP</span><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">py</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">py</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">) == </span><span class="constant-syntax">RELATIONSHIP_NT</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Node::get_relationship</span><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="3-vm.html#SP2" class="function-link"><span class="function-syntax">VerbMeanings::reverse_VMT</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_relationship</span><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">)) == </span><span class="identifier-syntax">VERB_MEANING_POSSESSION</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>
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Diagrams::new_implied_RELATIONSHIP</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Diagrams::new_implied_RELATIONSHIP</span></span>:<br/>Noun Phrases - <a href="4-np.html#SP14_1">&#167;14.1</a>, <a href="4-np.html#SP14_2">&#167;14.2</a>, <a href="4-np.html#SP14_3">&#167;14.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="constant-syntax">VERB_MEANING_LINGUISTICS_TYPE</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">preform_lookahead_mode</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="1-dgr.html#SP7" class="function-link"><span class="function-syntax">Diagrams::new_RELATIONSHIP</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><a href="1-dgr.html#SP7" class="function-link"><span class="function-syntax">Diagrams::new_PRONOUN</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><a href="2-prn.html#SP5" class="function-link"><span class="function-syntax">Pronouns::get_implied</span></a><span class="plain-syntax">()));</span>

View file

@ -88,7 +88,7 @@ to ask for a reversal to be performed when needed.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="constant-syntax">VERB_MEANING_LINGUISTICS_TYPE</span><span class="plain-syntax"> *</span><span class="function-syntax">VerbMeanings::reverse_VMT</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">VerbMeanings::reverse_VMT</span></span>:<br/><a href="3-vm.html#SP10">&#167;10</a><br/>Verb Usages - <a href="3-vu.html#SP12">&#167;12</a><br/>Noun Phrases - <a href="4-np.html#SP15_1">&#167;15.1</a><br/>Verb Phrases - <a href="4-vp.html#SP7_1">&#167;7.1</a></span></button><span class="plain-syntax">(</span><span class="constant-syntax">VERB_MEANING_LINGUISTICS_TYPE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">recto</span><span class="plain-syntax">) {</span>
<span class="constant-syntax">VERB_MEANING_LINGUISTICS_TYPE</span><span class="plain-syntax"> *</span><span class="function-syntax">VerbMeanings::reverse_VMT</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">VerbMeanings::reverse_VMT</span></span>:<br/><a href="3-vm.html#SP10">&#167;10</a><br/>Diagrams - <a href="1-dgr.html#SP7">&#167;7</a><br/>Verb Usages - <a href="3-vu.html#SP12">&#167;12</a><br/>Noun Phrases - <a href="4-np.html#SP15_1">&#167;15.1</a><br/>Verb Phrases - <a href="4-vp.html#SP7_1">&#167;7.1</a></span></button><span class="plain-syntax">(</span><span class="constant-syntax">VERB_MEANING_LINGUISTICS_TYPE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">recto</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">VERB_MEANING_REVERSAL_LINGUISTICS_CALLBACK</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">VERB_MEANING_REVERSAL_LINGUISTICS_CALLBACK</span><span class="plain-syntax">(</span><span class="identifier-syntax">recto</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>

View file

@ -4736,12 +4736,12 @@
<adjective-name> internal hits 0/258 nti 17 constraint (none) extremes [1, infinity)
<optional-definite-article> hits 36061/72122 nti 13 constraint (none) extremes [1, infinity)
<optional-definite-article> hits 36075/72150 nti 13 constraint (none) extremes [1, infinity)
English:
<definite-article> {...}
(hits 7694/36061) (matched long text) constraint (none) extremes [2, infinity)
(hits 7694/36075) (matched long text) constraint (none) extremes [2, infinity)
{...}
(hits 28367/28367) (matched long text) constraint (none) extremes [1, infinity)
(hits 28381/28381) (matched long text) constraint (none) extremes [1, infinity)
<optional-indefinite-article> nti 14 constraint (none) extremes [1, infinity)
English:
@ -4750,21 +4750,21 @@
{...}
constraint (none) extremes [1, infinity)
<optional-article> hits 81344/162688 nti 15 constraint (none) extremes [1, infinity)
<optional-article> hits 81396/162792 nti 15 constraint (none) extremes [1, infinity)
English:
<article> {...}
(hits 15781/46516) (matched long text) constraint (none) extremes [2, infinity)
(hits 15781/46530) (matched long text) constraint (none) extremes [2, infinity)
{...}
(hits 65563/65563) (matched long text) constraint (none) extremes [1, infinity)
(hits 65615/65615) (matched long text) constraint (none) extremes [1, infinity)
<compulsory-article> nti 16 constraint (none) extremes [2, infinity)
English:
<article> {...}
constraint (none) extremes [2, infinity)
<article> internal hits 16205/96556 nti r2 constraint (none) extremes [1, 1]
<article> internal hits 16205/96584 nti r2 constraint (none) extremes [1, 1]
<definite-article> internal hits 21519/254266 nti r2 constraint (none) extremes [1, 1]
<definite-article> internal hits 21519/254308 nti r2 constraint (none) extremes [1, 1]
<indefinite-article> internal hits 2239/40852 nti r2 constraint (none) extremes [1, 1]
@ -5031,10 +5031,10 @@
<np-unparsed>
(hits 60/60) (matched: 'fixed in place') constraint (none) extremes [1, infinity)
<np-existential> hits 33/122748 nti 19 constraint CS = {19} extremes [1, 1]
<np-existential> hits 33/120886 nti 19 constraint CS = {19} extremes [1, 1]
English:
there
(hits 33/772) (matched: 'there') constraint CS = {19} extremes [1, 1]
(hits 33/752) (matched: 'there') constraint CS = {19} extremes [1, 1]
<np-articled> hits 2081/4162 nti 8 constraint (none) extremes [1, infinity)
English:
@ -5271,7 +5271,7 @@
grammatical case
(hits 1/1) (matched: 'grammatical case') constraint CS = {7} extremes [2, 2]
<if-parsing-phrase-tokens> internal hits 2474/40926 nti 26 constraint (none) extremes [0, 0]
<if-parsing-phrase-tokens> internal hits 2474/40954 nti 26 constraint (none) extremes [0, 0]
<k-kind-for-template> internal hits 164/328 nti 27 constraint (none) extremes [1, infinity)
@ -5297,20 +5297,20 @@
<k-kind>
(hits 5/5) (matched: 'value of kind k') constraint (none) extremes [1, infinity)
<k-kind> hits 5771/102278 nti r5 constraint (none) extremes [1, infinity)
<k-kind> hits 5771/102316 nti r5 constraint (none) extremes [1, infinity)
English:
( <k-kind> )
(hits 0/2032) constraint DS = {r5} & CW = {r2, r5} extremes [3, infinity)
^<if-parsing-phrase-tokens> <k-kind-variable>
(hits 1589/11026) (matched: 'k') constraint CW = {r2, r5} extremes [1, infinity)
(hits 1589/11033) (matched: 'k') constraint CW = {r2, r5} extremes [1, infinity)
<if-parsing-phrase-tokens> <k-variable-definition>
(hits 201/9437) (matched: 'sayable value of kind k') constraint CW = {r2, r5} extremes [1, infinity)
(hits 201/9444) (matched: 'sayable value of kind k') constraint CW = {r2, r5} extremes [1, infinity)
<k-base-kind>
(hits 3626/9236) (matched: 'an ice cream cone') constraint CW = {r2, r5} extremes [1, infinity)
(hits 3626/9243) (matched: 'an ice cream cone') constraint CW = {r2, r5} extremes [1, infinity)
<k-irregular-kind-construction>
(hits 2/15790) (matched: 'object-based rulebook') constraint DS = {r5} extremes [2, infinity)
<k-kind-construction>
(hits 353/5608) (matched long text) constraint CW = {r2, r5} extremes [1, infinity)
(hits 353/5615) (matched long text) constraint CW = {r2, r5} extremes [1, infinity)
<k-kind-articled> hits 40/338 nti 28 constraint (none) extremes [1, infinity)
English:
@ -5326,7 +5326,7 @@
<k-kind-of-kind> of kind <k-formal-kind-variable>
(hits 81/315) (matched: 'sayable value of kind k') constraint DS = {r5} & CW = {r2, r5} extremes [4, infinity)
<k-base-kind> internal hits 3626/18472 nti r5 constraint CW = {r2, r5} extremes [1, infinity)
<k-base-kind> internal hits 3626/18486 nti r5 constraint CW = {r2, r5} extremes [1, infinity)
<k-irregular-kind-construction> hits 2/31580 nti r5 constraint DS = {r5} extremes [2, infinity)
English:
@ -5357,7 +5357,7 @@
either-or property
(hits 0/974) constraint CS = {r5} extremes [2, 2]
<k-kind-construction> internal hits 353/11216 nti r5 constraint CW = {r2, r5} extremes [1, infinity)
<k-kind-construction> internal hits 353/11230 nti r5 constraint CW = {r2, r5} extremes [1, infinity)
<k-single-material> hits 150/300 nti r5 constraint (none) extremes [1, infinity)
English:
@ -5402,7 +5402,7 @@
<k-kind>
(hits 100/224) (matched: 'sayable value') constraint (none) extremes [1, infinity)
<k-kind-variable> internal hits 1589/19578 nti r5 constraint CW = {r2, r5} extremes [1, 1]
<k-kind-variable> internal hits 1589/19592 nti r5 constraint CW = {r2, r5} extremes [1, 1]
<k-formal-kind-variable> internal hits 220/1414 nti r5 constraint CW = {r2, r5} extremes [1, 1]
@ -6885,7 +6885,7 @@
<s-stacked-variable> internal hits 897/18620 nti 11 constraint (none) extremes [1, infinity)
<s-global-variable> internal hits 2296/19440 nti 12 constraint (none) extremes [1, infinity)
<s-global-variable> internal hits 2296/19516 nti 12 constraint (none) extremes [1, infinity)
<property-of-shape> hits 105/18348 nti 9 constraint DS = {9} extremes [3, infinity)
English:

View file

@ -1,12 +1,12 @@
100.0% in inform7 run
65.4% in compilation to Inter
24.5% in //Phrases::Manager::compile_first_block//
8.8% in //Phrases::Manager::compile_as_needed//
7.1% in //Strings::compile_responses//
6.1% in //World::Compile::compile//
3.2% in //Classifying::traverse//
3.0% in //Assertions::Traverse::traverse1//
2.3% in //Phrases::Manager::RulePrintingRule_routine//
66.0% in compilation to Inter
25.0% in //Phrases::Manager::compile_first_block//
8.5% in //Phrases::Manager::compile_as_needed//
6.9% in //Strings::compile_responses//
6.0% in //World::Compile::compile//
3.4% in //Classifying::traverse//
3.1% in //Assertions::Traverse::traverse1//
2.1% in //Phrases::Manager::RulePrintingRule_routine//
1.9% in //Phrases::Manager::rulebooks_array//
1.1% in //NewVerbs::ConjugateVerb//
0.7% in //Phrases::Manager::traverse//
@ -19,11 +19,11 @@
0.1% in //RuleSubtrees::register_recently_lexed_phrases//
0.1% in //Task::make_built_in_kind_constructors//
0.1% in //World::complete//
3.8% not specifically accounted for
32.0% in running Inter pipeline
10.5% in inter step 2/12: link
10.3% in step preparation
7.4% in inter step 12/12: generate inform6 -> auto.inf
4.3% not specifically accounted for
31.4% in running Inter pipeline
10.4% in step preparation
10.0% in inter step 2/12: link
7.3% 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
0.1% in inter step 11/12: eliminate-redundant-labels
@ -31,6 +31,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.1% not specifically accounted for
1.9% not specifically accounted for
2.1% in supervisor
0.4% not specifically accounted for

View file

@ -34,7 +34,7 @@ void PropertySentences::look_for_property_creation(parse_node *pn) {
&& (Assertions::Traverse::special(pn) == FALSE)
&& (pn->next)
&& (pn->next->next)
&& (Assertions::Copular::possessive(pn->next->next))
&& (Diagrams::is_possessive_RELATIONSHIP(pn->next->next))
&& (Node::get_type(pn->next->next->down) == CALLED_NT)
&& (pn->next->next->down->down)
&& (pn->next->next->down->down->next)) {

View file

@ -271,8 +271,8 @@ have occurred, but if it does then the creation has worked.
NounPhrases::annotate_by_articles(name_entry);
ProblemBuffer::redirect_problem_sentence(current_sentence, name_entry, pn->next);
LOG("Yah $T\nTeh $T\n", name_entry, pn->next);
if (Assertions::Copular::refine(name_entry, pn->next))
Assertions::Copular::make_assertion(name_entry, pn->next);
if (Assertions::Refiner::refine_coupling(name_entry, pn->next))
Assertions::Maker::make_assertion_recursive(name_entry, pn->next);
ProblemBuffer::redirect_problem_sentence(NULL, NULL, NULL);
Node::set_text(name_entry, NW);
evaluation = NULL;

View file

@ -91,7 +91,7 @@ void Classifying::sentence(parse_node *p) {
PropertySentences::look_for_property_creation(p);
@<Issue problem message if either subject or object contains mismatched brackets@>;
@<Issue problem message if subject starts with double-quoted literal text@>;
if ((VP_PN->next) && (VP_PN->next->next) && (Assertions::Copular::possessive(VP_PN->next->next)))
if ((VP_PN->next) && (VP_PN->next->next) && (Diagrams::is_possessive_RELATIONSHIP(VP_PN->next->next)))
@<Diagram property callings@>;
} else {
LOG("$T\n", p);

View file

@ -4,6 +4,33 @@ To read assertion sentences, sort them according to a detailed
grammatical classification and take the primary actions necessary either
to generate problem messages, or to infer information.
@h Existential assertions.
These are very much simpler than coupling assertions, and the tree |py|
can contain only a common noun together with requirements on it: for
example, the subtree for "an open door".
=
void Assertions::Maker::make_existential_assertion(parse_node *py) {
switch (Node::get_type(py)) {
case WITH_NT:
Assertions::Maker::make_existential_assertion(py->down);
break;
case AND_NT:
Assertions::Maker::make_existential_assertion(py->down);
Assertions::Maker::make_existential_assertion(py->down->next);
break;
case COMMON_NOUN_NT:
if ((InferenceSubjects::is_a_kind_of_object(Node::get_subject(py))) ||
(Kinds::Compare::eq(K_object, InferenceSubjects::as_kind(Node::get_subject(py)))))
Assertions::Creator::convert_instance_to_nounphrase(py, NULL);
else
StandardProblems::sentence_problem(Task::syntax_tree(), _p_(PM_ThereIsVague),
"'there is...' can only be used to create objects",
"and not instances of other kinds.'");
break;
}
}
@h The Matrix.
So assertion sentences such as:
@ -957,6 +984,16 @@ opera about a dog, "Collared Is Bowser".)
@h Case 31. "Every K is in L."
@<Case 31 - EVERY vs RELATIONSHIP@> =
if (Diagrams::is_possessive_RELATIONSHIP(py)) {
if (<k-kind>(Node::get_text(py->down))) {
Node::set_type(py, ALLOWED_NT);
Node::set_type(py->down, UNPARSED_NOUN_NT);
Assertions::Maker::make_assertion_recursive(px, py);
return;
}
Assertions::Maker::make_assertion_recursive(px, py->down);
return;
}
if (traverse == 1) Assertions::Assemblies::make_generalisation(px, py);
@h Case 32. A problem message issued purely on stylistic grounds.
@ -992,6 +1029,7 @@ this ought to be allowed...
>> An animal is in the desk.
@<Case 34 - COMMON NOUN vs RELATIONSHIP@> =
@<Possession of something is allowed@>;
@<Generalised relationships are allowed@>;
@<Multiple objects in a relationship are allowed@>;
@<Certain non-spatial relationships are allowed too@>;
@ -1030,6 +1068,20 @@ this ought to be allowed...
"an old book. If that's the trouble, you can use 'called': "
"for instance, 'In the prayer-box is a thing called the text.'");
@
@<Possession of something is allowed@> =
if (Diagrams::is_possessive_RELATIONSHIP(py)) {
if (<k-kind>(Node::get_text(py->down))) {
Node::set_type(py, ALLOWED_NT);
Node::set_type(py->down, UNPARSED_NOUN_NT);
Assertions::Maker::make_assertion_recursive(px, py);
return;
}
Assertions::Maker::make_assertion_recursive(px, py->down);
return;
}
@ For example,
>> An animal is in every desk.
@ -1099,6 +1151,16 @@ since "west of the Lawn" parses to a |RELATIONSHIP_NT| subtree.
if (Assertions::Refiner::turn_player_to_yourself(px)) {
Assertions::Maker::make_assertion_recursive(px, py); return;
}
if (Diagrams::is_possessive_RELATIONSHIP(py)) {
if (<k-kind>(Node::get_text(py->down))) {
Node::set_type(py, ALLOWED_NT);
Node::set_type(py->down, UNPARSED_NOUN_NT);
Assertions::Maker::make_assertion_recursive(px, py);
return;
}
Assertions::Maker::make_assertion_recursive(px, py->down);
return;
}
Assertions::Maker::instantiate_related_common_nouns(py);
if (traverse == 2) Assertions::Relational::assert_subtree_in_relationship(px, py);

View file

@ -120,6 +120,20 @@ void Assertions::Refiner::coerce_adjectival_usage_to_noun(parse_node *leaf) {
}
}
@h Refining equated phrases.
When an assertion couples |px| and |py|, the following is called first to
refine them.
=
int Assertions::Refiner::refine_coupling(parse_node *px, parse_node *py) {
int pc = problem_count;
Assertions::Refiner::refine(px, ALLOW_CREATION);
Assertions::Refiner::refine(py, ALLOW_CREATION);
if (problem_count > pc) return FALSE;
if (Assertions::Creator::consult_the_creator(px, py) == FALSE) return FALSE;
return TRUE;
}
@h The refinery itself.
Time to get started, then. Each subtree can be refined only once.

View file

@ -39,44 +39,6 @@ will result in |px| representing "white marble" and |py| "in the bamboo
box" (not just a leaf, since it will be a tree showing the containment
relationship as well as the noun).
=
int Assertions::Copular::refine(parse_node *px, parse_node *py) {
int pc = problem_count;
if ((Assertions::Copular::possessive(py)) &&
(<k-kind>(Node::get_text(py->down)))) {
Node::set_type(py, ALLOWED_NT);
Node::set_type(py->down, UNPARSED_NOUN_NT);
}
Assertions::Refiner::refine(px, ALLOW_CREATION);
Assertions::Refiner::refine(py, ALLOW_CREATION);
if (problem_count > pc) return FALSE;
if (Assertions::Creator::consult_the_creator(px, py) == FALSE) return FALSE;
return TRUE;
}
void Assertions::Copular::assertion(parse_node *pv) {
parse_node *px = pv->down->next;
parse_node *py = px->next;
if (traverse == 1) {
if (Assertions::Copular::refine(px, py) == FALSE) return;
}
if (Assertions::Copular::possessive(py))
Assertions::Copular::make_assertion(px, py->down);
else
Assertions::Copular::make_assertion(px, py);
}
int Assertions::Copular::possessive(parse_node *py) {
if ((py) && (Node::get_type(py) == RELATIONSHIP_NT) &&
(Node::get_relationship(py)) &&
(Node::get_relationship(py)->reversal == VERB_MEANING_POSSESSION))
return TRUE;
return FALSE;
}
@ In either case, then, we end up going through |Assertions::Copular::make_assertion| and then to the
following routine, which asserts that subtree |px| "is" |py|.
@ -94,73 +56,3 @@ we cause X to be created, but otherwise do nothing; otherwise, we call
the massive |Assertions::Maker::make_assertion_recursive| routine (see "Make Assertions").
In traverse 2, only (c) takes place; (a) and (b) are one-time events.
=
void Assertions::Copular::make_assertion(parse_node *px, parse_node *py) {
if (SyntaxTree::is_trace_set(Task::syntax_tree())) LOG("$T", current_sentence);
if (<np-existential>(Node::get_text(px))) {
if (traverse == 1) Assertions::Copular::make_existential_assertion(py);
px = py;
} else {
Assertions::Maker::make_assertion_recursive(px, py);
}
@<Change the discussion topic for subsequent sentences@>;
}
@ The slight asymmetry in what follows is partly pragmatic, partly the result
of subject-verb inversion ("in the bag is the ball" not "the ball is in the
bag"). We extract a subject from a relationship node on the left, but not on
the right, and we don't extract an object from one. Consider:
>> A billiards table is in the Gazebo. On it is a trophy cup.
What does "it" mean, and why? A human reader goes for the billiards table at
once, because it seems more likely as a supporter than the Gazebo, but that's
not how Inform gets the same answer. It all hangs on "billiards table" being
the object of the first sentence, not the Gazebo; if we descended the RHS,
which is |RELATIONSHIP_NT -> PROPER_NOUN_NT| pointing to the Gazebo, that's the
conclusion we would have reached.
@<Change the discussion topic for subsequent sentences@> =
inference_subject *infsx = NULL, *infsy = NULL, *infsy_full = NULL;
infsx = Assertions::Copular::discussed_at_node(px);
infsy_full = Assertions::Copular::discussed_at_node(py);
if (Node::get_type(py) != KIND_NT) infsy = Node::get_subject(py);
Assertions::Traverse::change_discussion_topic(infsx, infsy, infsy_full);
if (Node::get_type(px) == AND_NT) Assertions::Traverse::subject_of_discussion_a_list();
if (Annotations::read_int(current_sentence, clears_pronouns_ANNOT))
Assertions::Traverse::new_discussion();
@ =
inference_subject *Assertions::Copular::discussed_at_node(parse_node *pn) {
inference_subject *infs = NULL;
if (Node::get_type(pn) != KIND_NT) infs = Node::get_subject(pn);
if ((Node::get_type(pn) == RELATIONSHIP_NT) && (pn->down) &&
(Node::get_type(pn->down) == PROPER_NOUN_NT))
infs = Node::get_subject(pn->down);
if ((Node::get_type(pn) == WITH_NT) && (pn->down) &&
(Node::get_type(pn->down) == PROPER_NOUN_NT))
infs = Node::get_subject(pn->down);
return infs;
}
@ =
void Assertions::Copular::make_existential_assertion(parse_node *py) {
if (Node::get_type(py) == WITH_NT) {
Assertions::Copular::make_existential_assertion(py->down); return;
}
if (Node::get_type(py) == AND_NT) {
Assertions::Copular::make_existential_assertion(py->down);
Assertions::Copular::make_existential_assertion(py->down->next);
return;
}
if (Node::get_type(py) == COMMON_NOUN_NT) {
if ((InferenceSubjects::is_a_kind_of_object(Node::get_subject(py))) ||
(Kinds::Compare::eq(K_object, InferenceSubjects::as_kind(Node::get_subject(py)))))
Assertions::Creator::convert_instance_to_nounphrase(py, NULL);
else
StandardProblems::sentence_problem(Task::syntax_tree(), _p_(PM_ThereIsVague),
"'there is...' can only be used to create objects",
"and not instances of other kinds.'");
}
}

View file

@ -291,8 +291,23 @@ a valid verb number to have no handler: if so, we handle the verb by doing
nothing on either traverse, of course.
@<Act on the primary verb in the sentence@> =
if (Assertions::Traverse::special(p->down)) Assertions::Traverse::special_meaning(p);
else Assertions::Copular::assertion(p);
if (Assertions::Traverse::special(p->down)) {
Assertions::Traverse::special_meaning(p);
} else {
parse_node *px = p->down->next;
parse_node *py = px->next;
if (traverse == 1) {
if (Assertions::Refiner::refine_coupling(px, py) == FALSE) return;
}
if (SyntaxTree::is_trace_set(Task::syntax_tree())) LOG("$T", current_sentence);
if (Node::get_type(px) == DEFECTIVE_NOUN_NT) {
if (traverse == 1) Assertions::Maker::make_existential_assertion(py);
Assertions::Traverse::change_discussion_from_coupling(py, py);
} else {
Assertions::Maker::make_assertion_recursive(px, py);
Assertions::Traverse::change_discussion_from_coupling(px, py);
}
}
@ The "appearance" is not a property as such. When a quoted piece of text
is given as a whole sentence, it might be:
@ -408,6 +423,32 @@ void Assertions::Traverse::new_discussion(void) {
subject_of_sentences = NULL; object_of_sentences = NULL;
}
@ The slight asymmetry in what follows is partly pragmatic, partly the result
of subject-verb inversion ("in the bag is the ball" not "the ball is in the
bag"). We extract a subject from a relationship node on the left, but not on
the right, and we don't extract an object from one. Consider:
>> A billiards table is in the Gazebo. On it is a trophy cup.
What does "it" mean, and why? A human reader goes for the billiards table at
once, because it seems more likely as a supporter than the Gazebo, but that's
not how Inform gets the same answer. It all hangs on "billiards table" being
the object of the first sentence, not the Gazebo; if we descended the RHS,
which is |RELATIONSHIP_NT -> PROPER_NOUN_NT| pointing to the Gazebo, that's the
conclusion we would have reached.
=
void Assertions::Traverse::change_discussion_from_coupling(parse_node *px, parse_node *py) {
inference_subject *infsx = NULL, *infsy = NULL, *infsy_full = NULL;
infsx = Assertions::Traverse::discussed_at_node(px);
infsy_full = Assertions::Traverse::discussed_at_node(py);
if (Node::get_type(py) != KIND_NT) infsy = Node::get_subject(py);
Assertions::Traverse::change_discussion_topic(infsx, infsy, infsy_full);
if (Node::get_type(px) == AND_NT) Assertions::Traverse::subject_of_discussion_a_list();
if (Annotations::read_int(current_sentence, clears_pronouns_ANNOT))
Assertions::Traverse::new_discussion();
}
void Assertions::Traverse::change_discussion_topic(inference_subject *infsx,
inference_subject *infsy, inference_subject *infsy_full) {
inference_subject *old_sub = subject_of_sentences, *old_obj = object_of_sentences;
@ -434,6 +475,19 @@ void Assertions::Traverse::change_discussion_topic(inference_subject *infsx,
object_of_sentences);
}
@ =
inference_subject *Assertions::Traverse::discussed_at_node(parse_node *pn) {
inference_subject *infs = NULL;
if (Node::get_type(pn) != KIND_NT) infs = Node::get_subject(pn);
if ((Node::get_type(pn) == RELATIONSHIP_NT) && (pn->down) &&
(Node::get_type(pn->down) == PROPER_NOUN_NT))
infs = Node::get_subject(pn->down);
if ((Node::get_type(pn) == WITH_NT) && (pn->down) &&
(Node::get_type(pn->down) == PROPER_NOUN_NT))
infs = Node::get_subject(pn->down);
return infs;
}
@ Occasionally we need to force the issue, though:
=

View file

@ -5,11 +5,11 @@ Size of lexicon: 3102 excerpt meanings
29 words have a middle list: longest belongs to to (with 4 meanings)
108 words have a subset list: longest belongs to street (with 4 meanings)
Number of attempts to retrieve: 104693
of which unsuccessful: 87191
Number of attempts to retrieve: 104745
of which unsuccessful: 87243
of which successful: 17502
Total attempts to match against excerpt meanings: 249444
of which, total with incorrect hash codes: 227454
Total attempts to match against excerpt meanings: 249465
of which, total with incorrect hash codes: 227475
of which, total with correct hash codes: 21990
of which, total which matched: 19268

View file

@ -230,6 +230,14 @@ parse_node *Diagrams::new_RELATIONSHIP(wording W, VERB_MEANING_LINGUISTICS_TYPE
return P;
}
int Diagrams::is_possessive_RELATIONSHIP(parse_node *py) {
if ((py) && (Node::get_type(py) == RELATIONSHIP_NT) &&
(Node::get_relationship(py)) &&
(VerbMeanings::reverse_VMT(Node::get_relationship(py)) == VERB_MEANING_POSSESSION))
return TRUE;
return FALSE;
}
parse_node *Diagrams::new_implied_RELATIONSHIP(wording W, VERB_MEANING_LINGUISTICS_TYPE *R) {
if (preform_lookahead_mode) return NULL;
return Diagrams::new_RELATIONSHIP(W, R, Diagrams::new_PRONOUN(W, Pronouns::get_implied()));