mirror of
https://github.com/ganelson/inform.git
synced 2024-07-01 06:24:58 +03:00
Added implied and location pronouns
This commit is contained in:
parent
8346b618bb
commit
e4be15c0f4
File diff suppressed because one or more lines are too long
|
@ -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">§5</a>, <a href="13-kak.html#SP6">§6</a><br/>Adjective Meanings - <a href="4-am.html#SP22">§22</a>, <a href="4-am.html#SP23">§23</a>, <a href="4-am.html#SP24">§24</a><br/>Instances - <a href="5-ins.html#SP6_2">§6.2</a>, <a href="5-ins.html#SP19">§19</a><br/>Index Physical World - <a href="5-ipw.html#SP3_7">§3.7</a><br/>Binary Predicates - <a href="6-bp.html#SP20">§20</a><br/>Relations - <a href="6-rlt.html#SP9_3_1">§9.3.1</a>, <a href="6-rlt.html#SP9_3_8">§9.3.8</a>, <a href="6-rlt.html#SP20_4">§20.4</a><br/>Refine Parse Tree - <a href="9-rpt.html#SP1">§1</a>, <a href="9-rpt.html#SP9_6">§9.6</a>, <a href="9-rpt.html#SP9_6_1">§9.6.1</a>, <a href="9-rpt.html#SP9_6_2">§9.6.2</a>, <a href="9-rpt.html#SP9_8_5_3_1">§9.8.5.3.1</a>, <a href="9-rpt.html#SP10_1">§10.1</a><br/>The Creator - <a href="9-tc.html#SP8_4_1_2">§8.4.1.2</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_25">§3.3.25</a>, <a href="9-ma.html#SP3_3_26">§3.3.26</a>, <a href="9-ma.html#SP3_3_34">§3.3.34</a>, <a href="9-ma.html#SP3_3_39">§3.3.39</a><br/>Property Knowledge - <a href="9-pk.html#SP3">§3</a><br/>Implications - <a href="9-imp.html#SP4_2_1">§4.2.1</a><br/>Property Declarations - <a href="9-pd.html#SP5_6">§5.6</a>, <a href="9-pd.html#SP6_1_1">§6.1.1</a><br/>Quasinumeric Relations - <a href="12-qr.html#SP3">§3</a><br/>Assert Propositions - <a href="12-ap.html#SP9_5_2">§9.5.2</a>, <a href="12-ap.html#SP12">§12</a><br/>Kinds Index - <a href="13-ki.html#SP1_11">§1.11</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_2_3">§11.9.1.2.3</a><br/>Indefinite Appearance - <a href="15-ia.html#SP1">§1</a><br/>The Provision Relation - <a href="15-tpr.html#SP7_2">§7.2</a><br/>Setting Property Relation - <a href="15-spr2.html#SP2">§2</a><br/>Inference Subjects - <a href="16-is.html#SP17">§17</a><br/>Instance Counting - <a href="16-ic.html#SP12_2">§12.2</a>, <a href="16-ic.html#SP12_3">§12.3</a>, <a href="16-ic.html#SP13">§13</a>, <a href="16-ic.html#SP14">§14</a>, <a href="16-ic.html#SP15">§15</a><br/>Tables of Definitions - <a href="19-tod.html#SP6_4">§6.4</a><br/>Listed-In Relations - <a href="19-lr.html#SP2">§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">§5</a>, <a href="13-kak.html#SP6">§6</a><br/>Adjective Meanings - <a href="4-am.html#SP22">§22</a>, <a href="4-am.html#SP23">§23</a>, <a href="4-am.html#SP24">§24</a><br/>Instances - <a href="5-ins.html#SP6_2">§6.2</a>, <a href="5-ins.html#SP19">§19</a><br/>Index Physical World - <a href="5-ipw.html#SP3_7">§3.7</a><br/>Binary Predicates - <a href="6-bp.html#SP20">§20</a><br/>Relations - <a href="6-rlt.html#SP9_3_1">§9.3.1</a>, <a href="6-rlt.html#SP9_3_8">§9.3.8</a>, <a href="6-rlt.html#SP20_4">§20.4</a><br/>Refine Parse Tree - <a href="9-rpt.html#SP1">§1</a>, <a href="9-rpt.html#SP9_6">§9.6</a>, <a href="9-rpt.html#SP9_6_1">§9.6.1</a>, <a href="9-rpt.html#SP9_6_2">§9.6.2</a>, <a href="9-rpt.html#SP9_8_4_3_1">§9.8.4.3.1</a>, <a href="9-rpt.html#SP10_1">§10.1</a><br/>The Creator - <a href="9-tc.html#SP8_4_1_2">§8.4.1.2</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_25">§3.3.25</a>, <a href="9-ma.html#SP3_3_26">§3.3.26</a>, <a href="9-ma.html#SP3_3_34">§3.3.34</a>, <a href="9-ma.html#SP3_3_39">§3.3.39</a><br/>Property Knowledge - <a href="9-pk.html#SP3">§3</a><br/>Implications - <a href="9-imp.html#SP4_2_1">§4.2.1</a><br/>Property Declarations - <a href="9-pd.html#SP5_6">§5.6</a>, <a href="9-pd.html#SP6_1_1">§6.1.1</a><br/>Quasinumeric Relations - <a href="12-qr.html#SP3">§3</a><br/>Assert Propositions - <a href="12-ap.html#SP9_5_2">§9.5.2</a>, <a href="12-ap.html#SP12">§12</a><br/>Kinds Index - <a href="13-ki.html#SP1_11">§1.11</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_2_3">§11.9.1.2.3</a><br/>Indefinite Appearance - <a href="15-ia.html#SP1">§1</a><br/>The Provision Relation - <a href="15-tpr.html#SP7_2">§7.2</a><br/>Setting Property Relation - <a href="15-spr2.html#SP2">§2</a><br/>Inference Subjects - <a href="16-is.html#SP17">§17</a><br/>Instance Counting - <a href="16-ic.html#SP12_2">§12.2</a>, <a href="16-ic.html#SP12_3">§12.3</a>, <a href="16-ic.html#SP13">§13</a>, <a href="16-ic.html#SP14">§14</a>, <a href="16-ic.html#SP15">§15</a><br/>Tables of Definitions - <a href="19-tod.html#SP6_4">§6.4</a><br/>Listed-In Relations - <a href="19-lr.html#SP2">§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">-></span><span class="element-syntax">construct</span><span class="plain-syntax">-></span><span class="identifier-syntax">dt_knowledge</span><span class="plain-syntax">;</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_5_3_1">§9.8.5.3.1</a>, <a href="9-rpt.html#SP9_8_5_5_1">§9.8.5.5.1</a>, <a href="9-rpt.html#SP10_1">§10.1</a><br/>Assert Propositions - <a href="12-ap.html#SP12">§12</a><br/>Deciding to Defer - <a href="12-dtd.html#SP18">§18</a><br/>Specifications - <a href="14-sp.html#SP4">§4</a><br/>Dash - <a href="14-ds2.html#SP27">§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#SP9_8_4_3_1">§9.8.4.3.1</a>, <a href="9-rpt.html#SP9_8_4_5_1">§9.8.4.5.1</a>, <a href="9-rpt.html#SP10_1">§10.1</a><br/>Assert Propositions - <a href="12-ap.html#SP12">§12</a><br/>Deciding to Defer - <a href="12-dtd.html#SP18">§18</a><br/>Specifications - <a href="14-sp.html#SP4">§4</a><br/>Dash - <a href="14-ds2.html#SP27">§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">§12.1</a><br/>Refine Parse Tree - <a href="9-rpt.html#SP9_8_5_5">§9.8.5.5</a><br/>Dash - <a href="14-ds2.html#SP19_4">§19.4</a>, <a href="14-ds2.html#SP19_6_2_1">§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">§12.1</a><br/>Refine Parse Tree - <a href="9-rpt.html#SP9_8_4_5">§9.8.4.5</a><br/>Dash - <a href="14-ds2.html#SP19_4">§19.4</a>, <a href="14-ds2.html#SP19_6_2_1">§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,7 +258,7 @@ 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">(&</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">§7</a>, <a href="14-ds.html#SP12_3">§12.3</a><br/>Refine Parse Tree - <a href="9-rpt.html#SP9_8_5_3_1">§9.8.5.3.1</a>, <a href="9-rpt.html#SP9_8_5_5_1">§9.8.5.5.1</a>, <a href="9-rpt.html#SP10">§10</a>, <a href="9-rpt.html#SP10_3">§10.3</a><br/>Property Knowledge - <a href="9-pk.html#SP3_2">§3.2</a><br/>Deciding to Defer - <a href="12-dtd.html#SP18">§18</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_1_5_1_2">§11.9.1.1.5.1.2</a><br/>Activities - <a href="21-ac.html#SP8">§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">§7</a>, <a href="14-ds.html#SP12_3">§12.3</a><br/>Refine Parse Tree - <a href="9-rpt.html#SP9_8_4_3_1">§9.8.4.3.1</a>, <a href="9-rpt.html#SP9_8_4_5_1">§9.8.4.5.1</a>, <a href="9-rpt.html#SP10">§10</a>, <a href="9-rpt.html#SP10_3">§10.3</a><br/>Property Knowledge - <a href="9-pk.html#SP3_2">§3.2</a><br/>Deciding to Defer - <a href="12-dtd.html#SP18">§18</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_1_5_1_2">§11.9.1.1.5.1.2</a><br/>Activities - <a href="21-ac.html#SP8">§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>
|
||||
|
@ -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">§8</a><br/>Refine Parse Tree - <a href="9-rpt.html#SP9_8_5_3">§9.8.5.3</a>, <a href="9-rpt.html#SP9_8_5_3_1">§9.8.5.3.1</a><br/>Deciding to Defer - <a href="12-dtd.html#SP13">§13</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_2_3_3">§11.9.1.2.3.3</a>, <a href="14-ds2.html#SP19_5_3">§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">§8</a><br/>Refine Parse Tree - <a href="9-rpt.html#SP9_8_4_3">§9.8.4.3</a>, <a href="9-rpt.html#SP9_8_4_3_1">§9.8.4.3.1</a><br/>Deciding to Defer - <a href="12-dtd.html#SP13">§13</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_2_3_3">§11.9.1.2.3.3</a>, <a href="14-ds2.html#SP19_5_3">§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>
|
||||
|
|
|
@ -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">§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">§12.1</a>, <a href="10-teav.html#SP12_3">§12.3</a><br/>Equations - <a href="20-eq.html#SP10_1_3">§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">§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_5_1">§9.8.5.1</a><br/>Terms - <a href="11-tr.html#SP8">§8</a><br/>Propositions - <a href="11-pr.html#SP27">§27</a><br/>Tree Conversions - <a href="11-tc.html#SP4">§4</a><br/>Properties - <a href="15-pr.html#SP5_8">§5.8</a><br/>Measurement Adjectives - <a href="15-ma.html#SP13">§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#SP9_8_4_1">§9.8.4.1</a><br/>Terms - <a href="11-tr.html#SP8">§8</a><br/>Propositions - <a href="11-pr.html#SP27">§27</a><br/>Tree Conversions - <a href="11-tc.html#SP4">§4</a><br/>Properties - <a href="15-pr.html#SP5_8">§5.8</a><br/>Measurement Adjectives - <a href="15-ma.html#SP13">§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">§5.1</a><br/>Rule Bookings - <a href="21-rb.html#SP24_1">§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">§5.4.2.4</a><br/>Rulebooks - <a href="21-rl2.html#SP10">§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">§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>
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -540,7 +540,7 @@ of the other:
|
|||
<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">§21</a>, <a href="15-pr.html#SP23">§23</a>, <a href="15-pr.html#SP25">§25</a>, <a href="15-pr.html#SP26">§26</a>, <a href="15-pr.html#SP27">§27</a><br/>Instances - <a href="5-ins.html#SP10">§10</a><br/>The Creator - <a href="9-tc.html#SP4_5">§4.5</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_41_7">§3.3.41.7</a><br/>Property Knowledge - <a href="9-pk.html#SP4">§4</a><br/>Implications - <a href="9-imp.html#SP6">§6</a><br/>Property Declarations - <a href="9-pd.html#SP5_8_1">§5.8.1</a>, <a href="9-pd.html#SP5_8_3">§5.8.3</a>, <a href="9-pd.html#SP5_11_2">§5.11.2</a><br/>Propositions - <a href="11-pr.html#SP35_2">§35.2</a><br/>Tree Conversions - <a href="11-tc.html#SP7_1">§7.1</a><br/>Sentence Conversions - <a href="11-sc.html#SP3_3">§3.3</a><br/>RValues - <a href="14-rv.html#SP24_3_1">§24.3.1</a><br/>Lvalues - <a href="14-lv.html#SP12_5">§12.5</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_2_3">§11.9.1.2.3</a>, <a href="14-ds2.html#SP13">§13</a><br/>Properties of Values - <a href="15-pov.html#SP4_1">§4.1</a><br/>Emit Property Values - <a href="15-epv.html#SP2">§2</a>, <a href="15-epv.html#SP2_1">§2.1</a>, <a href="15-epv.html#SP3">§3</a><br/>Property Permissions - <a href="16-pp.html#SP8">§8</a><br/>Inferences - <a href="16-in.html#SP14">§14</a>, <a href="16-in.html#SP16">§16</a>, <a href="16-in.html#SP17">§17</a>, <a href="16-in.html#SP19">§19</a><br/>Complete Model World - <a href="16-cmw.html#SP1_2_2">§1.2.2</a>, <a href="16-cmw.html#SP1_2_2_1_1">§1.2.2.1.1</a><br/>Compile Invocations Inline - <a href="25-cii.html#SP3_1_1_4_11">§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">-></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/>Refine Parse Tree - <a href="9-rpt.html#SP9_8_3">§9.8.3</a><br/>Dash - <a href="14-ds2.html#SP10_1_1_3_1_3">§10.1.1.3.1.3</a>, <a href="14-ds2.html#SP11_9_1_1_2_1">§11.9.1.1.2.1</a>, <a href="14-ds2.html#SP19_3_1">§19.3.1</a><br/>The Provision Relation - <a href="15-tpr.html#SP7_1">§7.1</a><br/>Same Property Relation - <a href="15-spr.html#SP2">§2</a><br/>Inferences - <a href="16-in.html#SP20_3_3">§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>
|
||||
<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/>Refine Parse Tree - <a href="9-rpt.html#SP9_8_2">§9.8.2</a><br/>Dash - <a href="14-ds2.html#SP10_1_1_3_1_3">§10.1.1.3.1.3</a>, <a href="14-ds2.html#SP11_9_1_1_2_1">§11.9.1.1.2.1</a>, <a href="14-ds2.html#SP19_3_1">§19.3.1</a><br/>The Provision Relation - <a href="15-tpr.html#SP7_1">§7.1</a><br/>Same Property Relation - <a href="15-spr.html#SP2">§2</a><br/>Inferences - <a href="16-in.html#SP20_3_3">§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>
|
||||
<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="element-syntax">either_or</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">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>
|
||||
|
|
|
@ -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/>Refine Parse Tree - <a href="9-rpt.html#SP9_8_3">§9.8.3</a><br/>The Creator - <a href="9-tc.html#SP4_5">§4.5</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_25">§3.3.25</a>, <a href="9-ma.html#SP3_3_41_7">§3.3.41.7</a><br/>Sentence Conversions - <a href="11-sc.html#SP3_3">§3.3</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_1_3_1_1">§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/>Refine Parse Tree - <a href="9-rpt.html#SP9_8_2">§9.8.2</a><br/>The Creator - <a href="9-tc.html#SP4_5">§4.5</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_25">§3.3.25</a>, <a href="9-ma.html#SP3_3_41_7">§3.3.41.7</a><br/>Sentence Conversions - <a href="11-sc.html#SP3_3">§3.3</a><br/>Dash - <a href="14-ds2.html#SP11_9_1_1_3_1_1">§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">-></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">-></span><span class="element-syntax">also_a_type</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
|
|
@ -220,12 +220,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_8_1">§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::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">§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="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_4">§9.8.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">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#SP9_8_3">§9.8.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">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>
|
||||
|
||||
|
|
|
@ -449,7 +449,7 @@ with the following.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">".\n"</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::Manage::plugged_in</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">Plugins::Manage::plugged_in</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_1">§2.1</a><br/>Index Physical World - <a href="5-ipw.html#SP2">§2</a><br/>Refine Parse Tree - <a href="9-rpt.html#SP9_5">§9.5</a><br/>Instance Counting - <a href="16-ic.html#SP15">§15</a><br/>Rules - <a href="21-rl.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">plugin</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::Manage::plugged_in</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">Plugins::Manage::plugged_in</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_1">§2.1</a><br/>Index Physical World - <a href="5-ipw.html#SP2">§2</a><br/>Instance Counting - <a href="16-ic.html#SP15">§15</a><br/>Rules - <a href="21-rl.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">plugin</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="element-syntax">now_plugged_in</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
|
|
@ -918,7 +918,7 @@ so the fact that it runs relatively slowly does not matter.
|
|||
<p class="commentary firstcommentary"><a id="SP36"></a><b>§36. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">BinaryPredicates::get_log_name</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">BinaryPredicates::get_log_name</span></span>:<br/>Relations - <a href="6-rlt.html#SP15_1_5">§15.1.5</a>, <a href="6-rlt.html#SP29">§29</a><br/>Refine Parse Tree - <a href="9-rpt.html#SP9_5_1">§9.5.1</a><br/>Atomic Propositions - <a href="11-ap.html#SP25_2">§25.2</a><br/>Inference Subjects - <a href="16-is.html#SP22">§22</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="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">BinaryPredicates::get_log_name</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">BinaryPredicates::get_log_name</span></span>:<br/>Relations - <a href="6-rlt.html#SP15_1_5">§15.1.5</a>, <a href="6-rlt.html#SP29">§29</a><br/>Atomic Propositions - <a href="11-ap.html#SP25_2">§25.2</a><br/>Inference Subjects - <a href="16-is.html#SP22">§22</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">-></span><span class="element-syntax">debugging_log_name</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
@ -970,7 +970,7 @@ so the fact that it runs relatively slowly does not matter.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="function-syntax">BinaryPredicates::get_reversal</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">BinaryPredicates::get_reversal</span></span>:<br/><a href="6-bp.html#SP17">§17</a><br/>New Verbs - <a href="6-nv.html#SP10">§10</a><br/>Refine Parse Tree - <a href="9-rpt.html#SP9_5">§9.5</a><br/>The Creator - <a href="9-tc.html#SP1_2_2">§1.2.2</a>, <a href="9-tc.html#SP8">§8</a><br/>Relation Knowledge - <a href="9-rk.html#SP1_1">§1.1</a>, <a href="9-rk.html#SP3">§3</a><br/>Sentence Conversions - <a href="11-sc.html#SP1_13_1">§1.13.1</a><br/>Simplifications - <a href="11-sm.html#SP11">§11</a><br/>Valued Properties - <a href="15-vp.html#SP4">§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="reserved-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="function-syntax">BinaryPredicates::get_reversal</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">BinaryPredicates::get_reversal</span></span>:<br/><a href="6-bp.html#SP17">§17</a><br/>New Verbs - <a href="6-nv.html#SP10">§10</a><br/>The Creator - <a href="9-tc.html#SP1_2_2">§1.2.2</a>, <a href="9-tc.html#SP8">§8</a><br/>Relation Knowledge - <a href="9-rk.html#SP1_1">§1.1</a>, <a href="9-rk.html#SP3">§3</a><br/>Sentence Conversions - <a href="11-sc.html#SP1_13_1">§1.13.1</a><br/>Simplifications - <a href="11-sm.html#SP11">§11</a><br/>Valued Properties - <a href="15-vp.html#SP4">§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"> == </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">"tried to find reversal of null relation"</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">-></span><span class="element-syntax">reversal</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
|
|
@ -684,64 +684,6 @@ Problem message than the one they will otherwise receive later on.
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP21"></a><b>§21. </b></p>
|
||||
|
||||
<pre class="Preform-displayed-code all-displayed-code code-font">
|
||||
<span class="Preform-function-syntax"><np-relative-phrase-implicit></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">worn</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-ns.html#SP21_1" class="named-paragraph-link"><span class="named-paragraph">Act on the implicit RP worn</span><span class="named-paragraph-number">21.1</span></a></span><span class="Preform-constant-syntax">;</span><span class="Preform-plain-syntax"> </span><span class="Preform-comment-syntax"> player\_plugin</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">carried</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-ns.html#SP21_2" class="named-paragraph-link"><span class="named-paragraph">Act on the implicit RP carried</span><span class="named-paragraph-number">21.2</span></a></span><span class="Preform-constant-syntax">;</span><span class="Preform-plain-syntax"> </span><span class="Preform-comment-syntax"> player\_plugin</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">initially</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">carried</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-ns.html#SP21_3" class="named-paragraph-link"><span class="named-paragraph">Act on the implicit RP initially carried</span><span class="named-paragraph-number">21.3</span></a></span><span class="Preform-constant-syntax">;</span><span class="Preform-plain-syntax"> </span><span class="Preform-comment-syntax"> player\_plugin</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">here</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-ns.html#SP21_4" class="named-paragraph-link"><span class="named-paragraph">Act on the implicit RP here</span><span class="named-paragraph-number">21.4</span></a></span><span class="Preform-constant-syntax">;</span><span class="Preform-plain-syntax"> </span><span class="Preform-comment-syntax"> spatial\_plugin</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="SP21_1"></a><b>§21.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Act on the implicit RP worn</span><span class="named-paragraph-number">21.1</span></span><span class="Preform-comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifndef</span><span class="plain-syntax"> </span><span class="identifier-syntax">IF_MODULE</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">endif</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">X</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">; *</span><span class="identifier-syntax">XP</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NounPhrases::PN_rel</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">R_wearing</span><span class="plain-syntax">, -1, </span><span class="identifier-syntax">NULL</span><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="7-ns.html#SP21">§21</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP21_2"></a><b>§21.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Act on the implicit RP carried</span><span class="named-paragraph-number">21.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">ifndef</span><span class="plain-syntax"> </span><span class="identifier-syntax">IF_MODULE</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">endif</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">X</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">; *</span><span class="identifier-syntax">XP</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NounPhrases::PN_rel</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">R_carrying</span><span class="plain-syntax">, -1, </span><span class="identifier-syntax">NULL</span><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="7-ns.html#SP21">§21</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP21_3"></a><b>§21.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Act on the implicit RP initially carried</span><span class="named-paragraph-number">21.3</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">ifndef</span><span class="plain-syntax"> </span><span class="identifier-syntax">IF_MODULE</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">endif</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">X</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">; *</span><span class="identifier-syntax">XP</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NounPhrases::PN_rel</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">R_carrying</span><span class="plain-syntax">, -1, </span><span class="identifier-syntax">NULL</span><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="7-ns.html#SP21">§21</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP21_4"></a><b>§21.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Act on the implicit RP here</span><span class="named-paragraph-number">21.4</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">ifndef</span><span class="plain-syntax"> </span><span class="identifier-syntax">IF_MODULE</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">endif</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">X</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">; *</span><span class="identifier-syntax">XP</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NounPhrases::PN_rel</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">PARENTAGE_HERE_RELN</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">endif</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="7-ns.html#SP21">§21</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="7-hdn.html">❮</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-nl.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="progresscurrentchapter">7</li><li class="progresssection"><a href="7-ptu.html">ptu</a></li><li class="progresssection"><a href="7-hdn.html">hdn</a></li><li class="progresscurrent">ns</li><li class="progresssection"><a href="7-oaf.html">oaf</a></li><li class="progresssection"><a href="7-rs.html">rs</a></li><li class="progresschapter"><a href="8-ef.html">8</a></li><li class="progresschapter"><a href="9-ita.html">9</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="7-oaf.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
|
|
@ -275,7 +275,6 @@ also makes it easier for us to manipulate the results.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow</span><span class="plain-syntax">(</span><span class="identifier-syntax">VERB_NT</span><span class="plain-syntax">, </span><span class="constant-syntax">listing_sense_ANNOT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow</span><span class="plain-syntax">(</span><span class="identifier-syntax">COMMON_NOUN_NT</span><span class="plain-syntax">, </span><span class="constant-syntax">action_meaning_ANNOT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow</span><span class="plain-syntax">(</span><span class="identifier-syntax">COMMON_NOUN_NT</span><span class="plain-syntax">, </span><span class="constant-syntax">creation_site_ANNOT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow</span><span class="plain-syntax">(</span><span class="identifier-syntax">COMMON_NOUN_NT</span><span class="plain-syntax">, </span><span class="identifier-syntax">implicitly_refers_to_ANNOT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow</span><span class="plain-syntax">(</span><span class="identifier-syntax">COMMON_NOUN_NT</span><span class="plain-syntax">, </span><span class="constant-syntax">multiplicity_ANNOT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow</span><span class="plain-syntax">(</span><span class="identifier-syntax">COMMON_NOUN_NT</span><span class="plain-syntax">, </span><span class="constant-syntax">quant_ANNOT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow</span><span class="plain-syntax">(</span><span class="identifier-syntax">COMMON_NOUN_NT</span><span class="plain-syntax">, </span><span class="constant-syntax">quantification_parameter_ANNOT</span><span class="plain-syntax">);</span>
|
||||
|
@ -556,7 +555,6 @@ be such that their head nodes each pass this test:
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">show_refers</span><span 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_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">)) { </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" refers:$j"</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_evaluation</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">)) { </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" eval:$P"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Node::get_evaluation</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">Annotations::read_int</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">, </span><span class="identifier-syntax">implicitly_refers_to_ANNOT</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" (implicit)"</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">show_eval</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">Node::get_evaluation</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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" eval:$P"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Node::get_evaluation</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">));</span>
|
||||
|
|
|
@ -154,6 +154,8 @@ of <span class="extract"><span class="extract-syntax">px</span></span> and <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">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">x</span><span class="plain-syntax">=-1, </span><span class="identifier-syntax">y</span><span class="plain-syntax">=-1;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">node_type_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">wx</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">wy</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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">wx</span><span class="plain-syntax"> == </span><span class="identifier-syntax">PRONOUN_NT</span><span class="plain-syntax">) </span><span class="identifier-syntax">wx</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">wy</span><span class="plain-syntax"> == </span><span class="identifier-syntax">PRONOUN_NT</span><span class="plain-syntax">) </span><span class="identifier-syntax">wy</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">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="constant-syntax">ASSERTION_MATRIX_DIM</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">assertion_matrix</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="element-syntax">row_node_type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">wx</span><span class="plain-syntax">) </span><span class="identifier-syntax">x</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">assertion_matrix</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="element-syntax">row_node_type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">wy</span><span class="plain-syntax">) </span><span class="identifier-syntax">y</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">;</span>
|
||||
|
@ -1253,18 +1255,17 @@ in this case.
|
|||
</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">Annotations::read_int</span><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">, </span><span class="identifier-syntax">relationship_node_type_ANNOT</span><span class="plain-syntax">) == </span><span class="identifier-syntax">DIRECTION_RELN</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">py</span><span class="plain-syntax">, </span><span class="identifier-syntax">relationship_node_type_ANNOT</span><span class="plain-syntax">) == </span><span class="identifier-syntax">DIRECTION_RELN</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">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">IF_MODULE</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">PL::MapDirections::get_mapping_relationship</span><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">PL::MapDirections::get_mapping_relationship</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">PL::Map::enter_one_way_mode</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</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="element-syntax">down</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="element-syntax">down</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">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">IF_MODULE</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PL::Map::exit_one_way_mode</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">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
|
||||
|
||||
<span class="plain-syntax"> </span><a href="2-up.html#SP5" class="function-link"><span class="function-syntax">Problems::Using::assertion_problem</span></a><span class="plain-syntax">(</span><a href="1-wtc.html#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_RelationsEquated</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"this says that two different relations are the same"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"like saying that 'in the box is on the table'. (Sometimes this "</span>
|
||||
|
|
|
@ -100,15 +100,15 @@ objects or values, but there are two exceptional cases to take care of.
|
|||
<span class="plain-syntax"> </span><a href="9-rk.html#SP1" class="function-link"><span class="function-syntax">Assertions::Relational::assert_subtree_in_relationship</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">value</span><span class="plain-syntax">-></span><span class="element-syntax">down</span><span class="plain-syntax">-></span><span class="element-syntax">next</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">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">IF_MODULE</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">PL::MapDirections::get_mapping_relationship</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="named-paragraph-container code-font"><a href="9-rk.html#SP1_3" class="named-paragraph-link"><span class="named-paragraph">Exceptional relationship nodes for map connections</span><span class="named-paragraph-number">1.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pronoun_usage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pro</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_pronoun</span><span class="plain-syntax">(</span><span class="identifier-syntax">relationship_subtree</span><span class="plain-syntax">-></span><span class="element-syntax">down</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">pro</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">pro</span><span class="plain-syntax">-></span><span class="identifier-syntax">pronoun_used</span><span class="plain-syntax"> == </span><span class="identifier-syntax">here_pronoun</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rk.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Exceptional relationship nodes for placing objects "here"</span><span class="named-paragraph-number">1.2</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">switch</span><span class="plain-syntax">(</span><span class="identifier-syntax">Annotations::read_int</span><span class="plain-syntax">(</span><span class="identifier-syntax">relationship_subtree</span><span class="plain-syntax">, </span><span class="identifier-syntax">relationship_node_type_ANNOT</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">STANDARD_RELN:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rk.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Standard relationship nodes (the vast majority)</span><span class="named-paragraph-number">1.1</span></a></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">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">PARENTAGE_HERE_RELN:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rk.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Exceptional relationship nodes for placing objects "here"</span><span class="named-paragraph-number">1.2</span></a></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">DIRECTION_RELN:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-rk.html#SP1_3" class="named-paragraph-link"><span class="named-paragraph">Exceptional relationship nodes for map connections</span><span class="named-paragraph-number">1.3</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="identifier-syntax">default:</span><span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"unknown RELATIONSHIP node type"</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-rk.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Standard relationship nodes (the vast majority)</span><span class="named-paragraph-number">1.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP1_1"></a><b>§1.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Standard relationship nodes (the vast majority)</span><span class="named-paragraph-number">1.1</span></span><span class="comment-syntax"> =</span>
|
||||
|
@ -119,7 +119,7 @@ objects or values, but there are two exceptional cases to take care of.
|
|||
<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"> == </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">"asserted bp-less relationship subtree"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="15-spr2.html#SP4" class="function-link"><span class="function-syntax">Properties::SettingRelations::fix_property_bp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">bp</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="9-rk.html#SP3" class="function-link"><span class="function-syntax">Assertions::Relational::assert_relation_between_subtrees</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">value</span><span class="plain-syntax">, </span><span class="identifier-syntax">bp</span><span class="plain-syntax">, </span><span class="identifier-syntax">relationship_subtree</span><span class="plain-syntax">-></span><span class="element-syntax">down</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</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-rk.html#SP1">§1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_2"></a><b>§1.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Exceptional relationship nodes for placing objects "here"</span><span class="named-paragraph-number">1.2</span></span><span class="comment-syntax"> =</span>
|
||||
|
@ -137,7 +137,7 @@ objects or values, but there are two exceptional cases to take care of.
|
|||
<span class="plain-syntax"> </span><a href="11-tc.html#SP5" class="function-link"><span class="function-syntax">Calculus::Propositions::Abstract::to_put_here</span></a><span class="plain-syntax">(),</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::get_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">value</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="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</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-rk.html#SP1">§1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_3"></a><b>§1.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Exceptional relationship nodes for map connections</span><span class="named-paragraph-number">1.3</span></span><span class="comment-syntax"> =</span>
|
||||
|
@ -161,7 +161,7 @@ objects or values, but there are two exceptional cases to take care of.
|
|||
<span class="plain-syntax"> </span><span class="string-syntax">"the source of a map connection has to be a room or door"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"so sentences like 'The pink door is south of 0.' are not "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"allowed."</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</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">iy</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">id</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">"malformed directional subtree"</span><span class="plain-syntax">);</span>
|
||||
|
@ -176,7 +176,7 @@ objects or values, but there are two exceptional cases to take care of.
|
|||
<span class="plain-syntax"> </span><span class="string-syntax">"a door or 'nowhere'"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"but here the destination doesn't even seem to be an object."</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</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-rk.html#SP1">§1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_3_1"></a><b>§1.3.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Make some paranoid checks that the map subtree is valid</span><span class="named-paragraph-number">1.3.1</span></span><span class="comment-syntax"> =</span>
|
||||
|
@ -191,13 +191,13 @@ objects or values, but there are two exceptional cases to take care of.
|
|||
<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">"this is not straightforward in saying which room (or door) leads away from"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"and should just name the source."</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</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">relationship_subtree</span><span class="plain-syntax">-></span><span class="element-syntax">down</span><span class="plain-syntax">-></span><span class="element-syntax">next</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">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">"this is not straightforward in saying which direction the room (or door) lies in"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"and should just name the direction."</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</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-rk.html#SP1_3">§1.3</a>.</li></ul>
|
||||
|
|
|
@ -100,7 +100,7 @@ nodes, thus decomposing the NP into smaller clauses which are refined in turn.
|
|||
<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">§6</a>, <a href="9-rpt.html#SP9_8_5">§9.8.5</a>, <a href="9-rpt.html#SP9_8_5_5">§9.8.5.5</a><br/>The Creator - <a href="9-tc.html#SP5_4">§5.4</a>, <a href="9-tc.html#SP5_4_1_1">§5.4.1.1</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_11">§3.3.11</a>, <a href="9-ma.html#SP5">§5</a><br/>Relation Knowledge - <a href="9-rk.html#SP2">§2</a><br/>Tables - <a href="19-tb.html#SP25_1">§25.1</a><br/>Tables of Definitions - <a href="19-tod.html#SP6_3">§6.3</a>, <a href="19-tod.html#SP6_4_3_1">§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">§6</a>, <a href="9-rpt.html#SP9_8_4">§9.8.4</a>, <a href="9-rpt.html#SP9_8_4_5">§9.8.4.5</a><br/>The Creator - <a href="9-tc.html#SP5_4">§5.4</a>, <a href="9-tc.html#SP5_4_1_1">§5.4.1.1</a><br/>Make Assertions - <a href="9-ma.html#SP3_3_11">§3.3.11</a>, <a href="9-ma.html#SP5">§5</a><br/>Relation Knowledge - <a href="9-rk.html#SP2">§2</a><br/>Tables - <a href="19-tb.html#SP25_1">§25.1</a><br/>Tables of Definitions - <a href="19-tod.html#SP6_3">§6.3</a>, <a href="19-tod.html#SP6_4_3_1">§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>
|
||||
|
@ -222,7 +222,7 @@ compare "clothing" and "clothes", which has no adequate singular.)
|
|||
|
||||
<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">§9.1</a>, <a href="9-rpt.html#SP9_2">§9.2</a>, <a href="9-rpt.html#SP9_2_1">§9.2.1</a>, <a href="9-rpt.html#SP9_3">§9.3</a>, <a href="9-rpt.html#SP9_4">§9.4</a>, <a href="9-rpt.html#SP9_5">§9.5</a>, <a href="9-rpt.html#SP9_6">§9.6</a>, <a href="9-rpt.html#SP9_8_3">§9.8.3</a><br/>To Be and To Have - <a href="9-tbath.html#SP5">§5</a><br/>Property Declarations - <a href="9-pd.html#SP5">§5</a><br/>Tree Conversions - <a href="11-tc.html#SP7_1">§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('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">§9.1</a>, <a href="9-rpt.html#SP9_2">§9.2</a>, <a href="9-rpt.html#SP9_2_1">§9.2.1</a>, <a href="9-rpt.html#SP9_3">§9.3</a>, <a href="9-rpt.html#SP9_4">§9.4</a>, <a href="9-rpt.html#SP9_5">§9.5</a>, <a href="9-rpt.html#SP9_6">§9.6</a>, <a href="9-rpt.html#SP9_8_2">§9.8.2</a><br/>To Be and To Have - <a href="9-tbath.html#SP5">§5</a><br/>Property Declarations - <a href="9-pd.html#SP5">§5</a><br/>Tree Conversions - <a href="11-tc.html#SP7_1">§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">resolved_ANNOT</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
|
@ -378,12 +378,8 @@ has the marble and the box as its children, the relationship being containment.
|
|||
<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">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">-></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">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bp</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_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">bp</span><span class="plain-syntax">) && (</span><a href="26-pl.html#SP14" class="function-link"><span class="function-syntax">Plugins::Manage::plugged_in</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">map_plugin</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">dir</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PL::MapDirections::get_mapping_direction</span><span class="plain-syntax">(</span><a href="6-bp.html#SP39" class="function-link"><span class="function-syntax">BinaryPredicates::get_reversal</span></a><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">dir</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</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_direction</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">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="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="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">-></span><span class="element-syntax">down</span><span class="plain-syntax">-></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">-></span><span class="element-syntax">down</span><span class="plain-syntax">-></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>
|
||||
|
@ -399,9 +395,7 @@ direction object for "north".
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<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">"Directional predicate with BP %S ($O)\n"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="6-bp.html#SP36" class="function-link"><span class="function-syntax">BinaryPredicates::get_log_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">bp</span><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">, </span><span class="identifier-syntax">relationship_node_type_ANNOT</span><span class="plain-syntax">, </span><span class="identifier-syntax">DIRECTION_RELN</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">"Directional predicate with BP from $O\n"</span><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">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">DW</span><span class="plain-syntax"> = </span><a href="5-ins.html#SP14" class="function-link"><span class="function-syntax">Instances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dir</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">p</span><span class="plain-syntax">-></span><span class="element-syntax">down</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NounPhrases::new_raw</span><span class="plain-syntax">(</span><span class="identifier-syntax">DW</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_infs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-></span><span class="element-syntax">down</span><span class="plain-syntax">-></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>
|
||||
|
@ -476,6 +470,15 @@ inference subject representing the domain to which any new kind would belong.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pronoun_usage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pro</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_pronoun</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">pro</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">pro</span><span class="plain-syntax">-></span><span class="identifier-syntax">pronoun_used</span><span class="plain-syntax"> == </span><span class="identifier-syntax">here_pronoun</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="identifier-syntax">RELATIONSHIP_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="element-syntax">down</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NounPhrases::new_pronoun</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">pro</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">pro</span><span class="plain-syntax">-></span><span class="identifier-syntax">pronoun_used</span><span class="plain-syntax"> == </span><span class="identifier-syntax">implied_pronoun</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="26-pc.html#SP6" class="function-link"><span class="function-syntax">Plugins::Call::refine_implicit_noun</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">return</span><span class="plain-syntax">;</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="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">Stock::usage_might_be_singular</span><span class="plain-syntax">(</span><span class="identifier-syntax">pro</span><span class="plain-syntax">-></span><span class="identifier-syntax">usage</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-tfa.html#SP12" class="function-link"><span class="function-syntax">Assertions::Traverse::get_current_subject_plurality</span></a><span class="plain-syntax">())) {</span>
|
||||
|
@ -515,42 +518,17 @@ complicated description is as follows:
|
|||
|
||||
<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="named-paragraph-container code-font"><a href="9-rpt.html#SP9_8_1" class="named-paragraph-link"><span class="named-paragraph">Act on the special no-words word range which implies the player</span><span class="named-paragraph-number">9.8.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#SP9_8_3" class="named-paragraph-link"><span class="named-paragraph">Act on a newly-discovered property of something</span><span class="named-paragraph-number">9.8.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">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_4" 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.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#SP9_8_2" class="named-paragraph-link"><span class="named-paragraph">Act on a newly-discovered property of something</span><span class="named-paragraph-number">9.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">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_3" 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.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">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_5" class="named-paragraph-link"><span class="named-paragraph">Interpret this as an existing noun if possible</span><span class="named-paragraph-number">9.8.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_4" class="named-paragraph-link"><span class="named-paragraph">Interpret this as an existing noun if possible</span><span class="named-paragraph-number">9.8.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">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">§9</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP9_8_1"></a><b>§9.8.1. </b>There's just one case where an empty word range can be used as a noun
|
||||
phrase — when it represents an implicit noun, as here, where the person
|
||||
doing the carrying is implicit:
|
||||
</p>
|
||||
|
||||
<blockquote>
|
||||
<p>The black box is carried.</p>
|
||||
</blockquote>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Act on the special no-words word range which implies the player</span><span class="named-paragraph-number">9.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><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="identifier-syntax">implicitly_refers_to_ANNOT</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><a href="26-pc.html#SP6" class="function-link"><span class="function-syntax">Plugins::Call::refine_implicit_noun</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">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">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">p</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"$T"</span><span class="plain-syntax">, </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"Tried to resolve malformed noun-phrase"</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">§9.8</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP9_8_2"></a><b>§9.8.2. </b>The following is needed to handle something like "colour of the box",
|
||||
<p class="commentary firstcommentary"><a id="SP9_8_1"></a><b>§9.8.1. </b>The following is needed to handle something like "colour of the box",
|
||||
where "colour" is a property name. We must be careful, though, to avoid
|
||||
confusion with variable declarations:
|
||||
</p>
|
||||
|
@ -571,7 +549,7 @@ property of something.
|
|||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">{<property-name-v>}</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">of</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> 0; *XP = 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_3"></a><b>§9.8.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Act on a newly-discovered property of something</span><span class="named-paragraph-number">9.8.3</span></span><span class="Preform-comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP9_8_2"></a><b>§9.8.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Act on a newly-discovered property of something</span><span class="named-paragraph-number">9.8.2</span></span><span class="Preform-comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -597,35 +575,35 @@ property of something.
|
|||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP9_8">§9.8</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP9_8_4"></a><b>§9.8.4. </b>For example, "above" and "below" become significant if the mapping plugin
|
||||
<p class="commentary firstcommentary"><a id="SP9_8_3"></a><b>§9.8.3. </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.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 any special noun phrases significant to plugins</span><span class="named-paragraph-number">9.8.3</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">§9.8</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP9_8_5"></a><b>§9.8.5. </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.5</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP9_8_4"></a><b>§9.8.4. </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.4</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_5_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.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">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_5_3" class="named-paragraph-link"><span class="named-paragraph">Parse the noun phrase as a value</span><span class="named-paragraph-number">9.8.5.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#SP9_8_4_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.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">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_4_3" class="named-paragraph-link"><span class="named-paragraph">Parse the noun phrase as a value</span><span class="named-paragraph-number">9.8.4.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_5_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.5.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_5_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.5.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#SP9_8_4_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.4.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_4_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.4.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">§9.8</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP9_8_5_1"></a><b>§9.8.5.1. </b>Perhaps it is the name of a valued property? If so, it is used as a noun,
|
||||
<p class="commentary firstcommentary"><a id="SP9_8_4_1"></a><b>§9.8.4.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>
|
||||
|
||||
|
@ -633,14 +611,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.5.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">9.8.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">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><value-property-name></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"><<rp>></span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP9_8_5">§9.8.5</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP9_8_4">§9.8.4</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP_1"></a><b>§.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>
|
||||
|
||||
|
@ -652,8 +630,8 @@ property name meaning, not as the name of a kind of value.)
|
|||
<span class="plain-syntax"> </span><span class="string-syntax">"'number variable' or 'a number that varies' - whatever kind of value you "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"need - would be much clearer."</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP9_8_5_2">§9.8.5.2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP9_8_5_2"></a><b>§9.8.5.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#SP9_8_4_2">§9.8.4.2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP9_8_4_2"></a><b>§9.8.4.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.
|
||||
|
@ -672,7 +650,7 @@ a noun instead of a condition testing the current action.
|
|||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><s-global-variable></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> TRUE; *XP = 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_5_3"></a><b>§9.8.5.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.5.3</span></span><span class="Preform-comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP9_8_4_3"></a><b>§9.8.4.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.4.3</span></span><span class="Preform-comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -683,10 +661,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_5_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.5.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#SP9_8_4_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.4.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_5">§9.8.5</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP9_8_4">§9.8.4</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP_1"></a><b>§.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>
|
||||
|
||||
|
@ -694,7 +672,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_5_3_1"></a><b>§9.8.5.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.5.3.1</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP9_8_4_3_1"></a><b>§9.8.4.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.4.3.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -729,8 +707,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_5_3">§9.8.5.3</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP9_8_5_4"></a><b>§9.8.5.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#SP9_8_4_3">§9.8.4.3</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP9_8_4_4"></a><b>§9.8.4.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>
|
||||
|
@ -742,7 +720,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.5.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">9.8.4.4</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -756,8 +734,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_5">§9.8.5</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP9_8_5_5"></a><b>§9.8.5.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#SP9_8_4">§9.8.4</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP9_8_4_5"></a><b>§9.8.4.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 — otherwise it will not be possible to issue a wide range of
|
||||
to-the-point problem messages for badly constructed sentences.
|
||||
|
@ -766,7 +744,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.5.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">9.8.4.5</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -775,10 +753,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_5_5_1" class="named-paragraph-link"><span class="named-paragraph">Act on a simple description</span><span class="named-paragraph-number">9.8.5.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#SP9_8_4_5_1" class="named-paragraph-link"><span class="named-paragraph">Act on a simple description</span><span class="named-paragraph-number">9.8.4.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_5">§9.8.5</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP9_8_5_5_1"></a><b>§9.8.5.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#SP9_8_4">§9.8.4</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP9_8_4_5_1"></a><b>§9.8.4.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>
|
||||
|
@ -812,7 +790,7 @@ 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.5.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">9.8.4.5.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -823,7 +801,7 @@ sentence.
|
|||
<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_5_5">§9.8.5.5</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="9-rpt.html#SP9_8_4_5">§9.8.4.5</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP10"></a><b>§10. </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.
|
||||
|
@ -836,7 +814,7 @@ 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_5_5_1">§9.8.5.5.1</a><br/>Assemblies - <a href="9-ass.html#SP9_3">§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('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_4_5_1">§9.8.4.5.1</a><br/>Assemblies - <a href="9-ass.html#SP9_3">§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="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">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
|
@ -1123,8 +1101,6 @@ the two clauses are the wrong way around, so we perform surgery to turn:
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">x_pn</span><span class="plain-syntax"> = </span><span class="identifier-syntax">p</span><span class="plain-syntax">-></span><span class="element-syntax">down</span><span class="plain-syntax">-></span><span class="element-syntax">down</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax">; </span><span class="comment-syntax"> "north" in the example</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name_pn</span><span class="plain-syntax"> = </span><span class="identifier-syntax">p</span><span class="plain-syntax">-></span><span class="element-syntax">down</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax">; </span><span class="comment-syntax"> "hot and cold room" in the example</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="identifier-syntax">RELATIONSHIP_NT</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="identifier-syntax">relationship_node_type_ANNOT</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">-></span><span class="identifier-syntax">down</span><span class="plain-syntax">, </span><span class="identifier-syntax">relationship_node_type_ANNOT</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="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"> </span><span class="identifier-syntax">p</span><span class="plain-syntax">-></span><span class="element-syntax">down</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax"> = </span><span class="identifier-syntax">x_pn</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">p</span><span class="plain-syntax">-></span><span class="element-syntax">down</span><span class="plain-syntax">-></span><span class="element-syntax">down</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax"> = </span><span class="identifier-syntax">name_pn</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -360,6 +360,17 @@ such.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">;</span>
|
||||
<span class="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">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">PL::MapDirections::get_mapping_relationship</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="identifier-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bp</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_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">bp</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">Plugins::Manage::plugged_in</span><span class="plain-syntax">(</span><span class="identifier-syntax">map_plugin</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dir</span><span class="plain-syntax"> = </span><a href="3-mcr.html#SP13" class="function-link"><span class="function-syntax">PL::MapDirections::get_mapping_direction</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BinaryPredicates::get_reversal</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">dir</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">dir</span><span class="plain-syntax"> = </span><a href="3-mcr.html#SP13" class="function-link"><span class="function-syntax">PL::MapDirections::get_mapping_direction</span></a><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">dir</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-tm.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-ifi.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-tnt.html">tnt</a></li><li class="progresssection"><a href="3-sm.html">sm</a></li><li class="progresssection"><a href="3-sr.html">sr</a></li><li class="progresssection"><a href="3-prs.html">prs</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-dvc.html">dvc</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresscurrent">mcr</li><li class="progresssection"><a href="3-sg.html">sg</a></li><li class="progresssection"><a href="3-sm2.html">sm2</a></li><li class="progresssection"><a href="3-hm.html">hm</a></li><li class="progresssection"><a href="3-em.html">em</a></li><li class="progresssection"><a href="3-sc.html">sc</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-tm2.html">tm2</a></li><li class="progresssection"><a href="3-ts.html">ts</a></li><li class="progresschapter"><a href="4-act.html">4</a></li><li class="progresschapter"><a href="5-itg.html">5</a></li><li class="progressnext"><a href="3-sg.html">❯</a></li></ul></div>
|
||||
|
|
|
@ -93,8 +93,6 @@ some new node types:
|
|||
<span class="definition-keyword">enum</span> <span class="constant-syntax">occurrence_ANNOT</span><span class="plain-syntax"> </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">time_period</span></span><span class="comment-syntax">: any stipulation on occurrence</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">explicit_gender_marker_ANNOT</span><span class="plain-syntax"> </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">int</span></span><span class="comment-syntax">: used by PROPER NOUN nodes for evident genders</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">relationship_ANNOT</span><span class="plain-syntax"> </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">binary_predicate</span></span><span class="comment-syntax">: for RELATIONSHIP nodes</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">relationship_node_type_ANNOT</span><span class="plain-syntax"> </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">int</span></span><span class="comment-syntax">: what kind of inference this assertion makes</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">implicitly_refers_to_ANNOT</span><span class="plain-syntax"> </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">int</span></span><span class="comment-syntax">: this will implicitly refer to something</span>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="reserved-syntax">verb</span><span class="plain-syntax">, </span><span class="reserved-syntax">verb_usage</span><span class="plain-syntax">)</span>
|
||||
|
@ -158,12 +156,9 @@ nodes and annotations correctly:
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow</span><span class="plain-syntax">(</span><span class="constant-syntax">COMMON_NOUN_NT</span><span class="plain-syntax">, </span><span class="constant-syntax">noun_ANNOT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow</span><span class="plain-syntax">(</span><span class="constant-syntax">RELATIONSHIP_NT</span><span class="plain-syntax">, </span><span class="constant-syntax">preposition_ANNOT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow</span><span class="plain-syntax">(</span><span class="constant-syntax">RELATIONSHIP_NT</span><span class="plain-syntax">, </span><span class="constant-syntax">relationship_ANNOT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow</span><span class="plain-syntax">(</span><span class="constant-syntax">RELATIONSHIP_NT</span><span class="plain-syntax">, </span><span class="constant-syntax">relationship_node_type_ANNOT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow_for_category</span><span class="plain-syntax">(</span><span class="identifier-syntax">L3_NCAT</span><span class="plain-syntax">, </span><span class="constant-syntax">linguistic_error_here_ANNOT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow_for_category</span><span class="plain-syntax">(</span><span class="identifier-syntax">L3_NCAT</span><span class="plain-syntax">, </span><span class="constant-syntax">explicit_gender_marker_ANNOT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow_for_category</span><span class="plain-syntax">(</span><span class="identifier-syntax">L3_NCAT</span><span class="plain-syntax">, </span><span class="constant-syntax">article_ANNOT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow</span><span class="plain-syntax">(</span><span class="constant-syntax">UNPARSED_NOUN_NT</span><span class="plain-syntax">, </span><span class="constant-syntax">implicitly_refers_to_ANNOT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow</span><span class="plain-syntax">(</span><span class="constant-syntax">PROPER_NOUN_NT</span><span class="plain-syntax">, </span><span class="constant-syntax">implicitly_refers_to_ANNOT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP5"></a><b>§5. </b>And the following conveniently prints out a sentence in diagram form; this
|
||||
|
@ -208,16 +203,8 @@ is used by <a href="../linguistics-test/index.html" class="internal">linguistics
|
|||
<span class="plain-syntax"> </span><a href="2-art.html#SP3" class="function-link"><span class="function-syntax">Articles::write_usage</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Node::get_article</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">break</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="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" {meaning: "</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">Annotations::read_int</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">, </span><span class="constant-syntax">relationship_node_type_ANNOT</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">STANDARD_RELN:</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Node::get_relationship</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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Node::get_relationship</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">)-></span><span class="identifier-syntax">debugging_log_name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</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">PARENTAGE_HERE_RELN:</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"(here)"</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</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">DIRECTION_RELN:</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"(direction)"</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"}"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Node::get_relationship</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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" {meaning: %S}"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Node::get_relationship</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">)-></span><span class="identifier-syntax">debugging_log_name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
|
|
@ -251,7 +251,7 @@ or accusative case".
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">grammatical_usage</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="reserved-syntax">grammatical_usage</span><span class="plain-syntax"> *</span><span class="function-syntax">Stock::new_usage</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">Stock::new_usage</span></span>:<br/>Articles - <a href="2-art.html#SP11">§11</a><br/>Nouns - <a href="2-nns.html#SP11_1">§11.1</a><br/>Pronouns - <a href="2-prn.html#SP7">§7</a><br/>Verb Usages - <a href="3-vu.html#SP7_1_3">§7.1.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">linguistic_stock_item</span><span class="plain-syntax"> *</span><span class="identifier-syntax">item</span><span class="plain-syntax">, </span><span class="identifier-syntax">NATURAL_LANGUAGE_WORDS_TYPE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">grammatical_usage</span><span class="plain-syntax"> *</span><span class="function-syntax">Stock::new_usage</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">Stock::new_usage</span></span>:<br/>Articles - <a href="2-art.html#SP11">§11</a><br/>Nouns - <a href="2-nns.html#SP11_1">§11.1</a><br/>Pronouns - <a href="2-prn.html#SP6">§6</a>, <a href="2-prn.html#SP7">§7</a><br/>Verb Usages - <a href="3-vu.html#SP7_1_3">§7.1.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">linguistic_stock_item</span><span class="plain-syntax"> *</span><span class="identifier-syntax">item</span><span class="plain-syntax">, </span><span class="identifier-syntax">NATURAL_LANGUAGE_WORDS_TYPE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">grammatical_usage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gu</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">grammatical_usage</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">gu</span><span class="plain-syntax">-></span><span class="element-syntax">used</span><span class="plain-syntax"> = </span><span class="identifier-syntax">item</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">gu</span><span class="plain-syntax">-></span><span class="element-syntax">language</span><span class="plain-syntax"> = </span><span class="identifier-syntax">L</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -109,10 +109,12 @@ matched against some form of a pronoun.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"}"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP4"></a><b>§4. </b>The stock of pronouns is fixed at six. We are going to regard the three
|
||||
<p class="commentary firstcommentary"><a id="SP4"></a><b>§4. </b>The stock of pronouns is fixed, as follows. We are going to regard the three
|
||||
persons as being different pronouns, since they make different references,
|
||||
though not every grammarian would agree. So we have three "agent pronouns" —
|
||||
those standing for subject or object — and then three possessives.
|
||||
those standing for subject or object — and then three possessives, and "here",
|
||||
which stands in the place of a noun referring to a location, and is thus also
|
||||
a pronoun.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -123,6 +125,8 @@ those standing for subject or object — and then three possessives.
|
|||
<span class="reserved-syntax">pronoun</span><span class="plain-syntax"> *</span><span class="identifier-syntax">first_person_possessive_pronoun</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">pronoun</span><span class="plain-syntax"> *</span><span class="identifier-syntax">second_person_possessive_pronoun</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">pronoun</span><span class="plain-syntax"> *</span><span class="identifier-syntax">third_person_possessive_pronoun</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">pronoun</span><span class="plain-syntax"> *</span><span class="identifier-syntax">here_pronoun</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">pronoun</span><span class="plain-syntax"> *</span><span class="identifier-syntax">implied_pronoun</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">Pronouns::create_category</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">Pronouns::create_category</span></span>:<br/>Stock Control - <a href="1-sc.html#SP2">§2</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">pronouns_category</span><span class="plain-syntax"> = </span><a href="1-sc.html#SP3" class="function-link"><span class="function-syntax">Stock::new_category</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"pronoun"</span><span class="plain-syntax">);</span>
|
||||
|
@ -133,6 +137,8 @@ those standing for subject or object — and then three possessives.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">first_person_possessive_pronoun</span><span class="plain-syntax"> = </span><a href="2-prn.html#SP4" class="function-link"><span class="function-syntax">Pronouns::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"first person possessive pronoun"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">second_person_possessive_pronoun</span><span class="plain-syntax"> = </span><a href="2-prn.html#SP4" class="function-link"><span class="function-syntax">Pronouns::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"second person possessive pronoun"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">third_person_possessive_pronoun</span><span class="plain-syntax"> = </span><a href="2-prn.html#SP4" class="function-link"><span class="function-syntax">Pronouns::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"third person possessive pronoun"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">here_pronoun</span><span class="plain-syntax"> = </span><a href="2-prn.html#SP4" class="function-link"><span class="function-syntax">Pronouns::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"location pronoun"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">implied_pronoun</span><span class="plain-syntax"> = </span><a href="2-prn.html#SP4" class="function-link"><span class="function-syntax">Pronouns::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"implied pronoun"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">pronoun</span><span class="plain-syntax"> *</span><span class="function-syntax">Pronouns::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">) {</span>
|
||||
|
@ -166,6 +172,10 @@ would be easy to form other subsets of the pronouns.
|
|||
<span class="plain-syntax"> *</span><span class="identifier-syntax">first_person_possessive_pronouns_sws</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">second_person_possessive_pronouns_sws</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">third_person_possessive_pronouns_sws</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="reserved-syntax">small_word_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">here_pronouns_sws</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="reserved-syntax">pronoun_usage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">implied_pronoun_usage</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP6"></a><b>§6. </b>And now we have to make them. The following capacity would be enough even if
|
||||
we were simultaneously dealing with four languages in which every inflection
|
||||
|
@ -219,6 +229,14 @@ produced a different word. So it really is not going to run out.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">third_person_possessive_pronouns_sws</span><span class="plain-syntax"> = </span><a href="1-sc.html#SP11" class="function-link"><span class="function-syntax">Stock::new_sws</span></a><span class="plain-syntax">(</span><span class="constant-syntax">PRONOUN_SWS_CAPACITY</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-prn.html#SP7" class="function-link"><span class="function-syntax">Pronouns::add</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">third_person_possessive_pronouns_sws</span><span class="plain-syntax">, </span><span class="function-syntax"><third-person-possessive-pronoun-table></span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> -1, </span><span class="identifier-syntax">THIRD_PERSON</span><span class="plain-syntax">, </span><span class="identifier-syntax">third_person_possessive_pronoun</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">here_pronouns_sws</span><span class="plain-syntax"> = </span><a href="1-sc.html#SP11" class="function-link"><span class="function-syntax">Stock::new_sws</span></a><span class="plain-syntax">(</span><span class="constant-syntax">PRONOUN_SWS_CAPACITY</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-prn.html#SP7" class="function-link"><span class="function-syntax">Pronouns::add</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">here_pronouns_sws</span><span class="plain-syntax">, </span><span class="function-syntax"><here-pronoun-table></span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> -1, </span><span class="identifier-syntax">THIRD_PERSON</span><span class="plain-syntax">, </span><span class="identifier-syntax">here_pronoun</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">implied_pronoun_usage</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">pronoun_usage</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">implied_pronoun_usage</span><span class="plain-syntax">-></span><span class="element-syntax">pronoun_used</span><span class="plain-syntax"> = </span><span class="identifier-syntax">implied_pronoun</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">implied_pronoun_usage</span><span class="plain-syntax">-></span><span class="element-syntax">usage</span><span class="plain-syntax"> = </span><a href="1-sc.html#SP9" class="function-link"><span class="function-syntax">Stock::new_usage</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">implied_pronoun</span><span class="plain-syntax">-></span><span class="element-syntax">in_stock</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="SP7"></a><b>§7. </b>All of which use the following, which extracts inflected forms from the
|
||||
|
@ -327,6 +345,14 @@ parsed lies in the relevant small word set.
|
|||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">if</span><span class="Preform-plain-syntax"> (*</span><span class="Preform-identifier-syntax">XP</span><span class="Preform-plain-syntax">) </span><span class="Preform-reserved-syntax">return</span><span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">TRUE</span><span class="Preform-plain-syntax">;</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">return</span><span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">FALSE</span><span class="Preform-plain-syntax">;</span>
|
||||
<span class="Preform-plain-syntax">}</span>
|
||||
|
||||
<span class="Preform-function-syntax"><here-pronoun></span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">internal</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">1</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">{</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">if</span><span class="Preform-plain-syntax"> (</span><span class="Preform-identifier-syntax">pronouns_sws</span><span class="Preform-plain-syntax"> == </span><span class="Preform-identifier-syntax">NULL</span><span class="Preform-plain-syntax">) </span><a href="2-prn.html#SP6" class="function-link"><span class="Preform-function-syntax">Pronouns::create_small_word_sets</span></a><span class="Preform-plain-syntax">();</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">vocabulary_entry</span><span class="Preform-plain-syntax"> *</span><span class="Preform-identifier-syntax">ve</span><span class="Preform-plain-syntax"> = </span><span class="Preform-identifier-syntax">Lexer::word</span><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">Wordings::first_wn</span><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">W</span><span class="Preform-plain-syntax">));</span>
|
||||
<span class="Preform-plain-syntax"> *</span><span class="Preform-identifier-syntax">XP</span><span class="Preform-plain-syntax"> = (</span><span class="Preform-reserved-syntax">pronoun_usage</span><span class="Preform-plain-syntax"> *) </span><a href="1-sc.html#SP12" class="function-link"><span class="Preform-function-syntax">Stock::find_in_sws</span></a><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">here_pronouns_sws</span><span class="Preform-plain-syntax">, </span><span class="Preform-identifier-syntax">ve</span><span class="Preform-plain-syntax">);</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">if</span><span class="Preform-plain-syntax"> (*</span><span class="Preform-identifier-syntax">XP</span><span class="Preform-plain-syntax">) </span><span class="Preform-reserved-syntax">return</span><span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">TRUE</span><span class="Preform-plain-syntax">;</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">return</span><span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">FALSE</span><span class="Preform-plain-syntax">;</span>
|
||||
<span class="Preform-plain-syntax">}</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"></a><b>§9. English pronouns. </b>So, then, these nonterminals are not parsed by Preform but are instead used
|
||||
|
@ -363,6 +389,10 @@ feminine singular, feminine plural.
|
|||
<span class="Preform-function-syntax"><third-person-possessive-pronoun-table></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">its</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">their</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">his</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">their</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">her</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">their</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">its</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">their</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">his</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">their</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">her</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">their</span>
|
||||
|
||||
<span class="Preform-function-syntax"><here-pronoun-table></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">here</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">here</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">here</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">here</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">here</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">here</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">here</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">here</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">here</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">here</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">here</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">here</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="SP10"></a><b>§10. Unit testing. </b>The <a href="../linguistics-test/index.html" class="internal">linguistics-test</a> test case <span class="extract"><span class="Preform-extract-syntax">pronouns</span></span> calls this.
|
||||
|
|
|
@ -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#SP11">§11</a><br/>Verb Usages - <a href="3-vu.html#SP12">§12</a><br/>Noun Phrases - <a href="4-np.html#SP14_1">§14.1</a><br/>Verb Phrases - <a href="4-vp.html#SP9_1">§9.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#SP11">§11</a><br/>Verb Usages - <a href="3-vu.html#SP12">§12</a><br/>Noun Phrases - <a href="4-np.html#SP15_1">§15.1</a><br/>Verb Phrases - <a href="4-vp.html#SP9_1">§9.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>
|
||||
|
@ -245,7 +245,7 @@ have to follow any indirection, and reverse if necessary.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">rel</span><span class="plain-syntax">;</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::get_regular_meaning_of_form</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">VerbMeanings::get_regular_meaning_of_form</span></span>:<br/>Verb Usages - <a href="3-vu.html#SP12">§12</a><br/>Noun Phrases - <a href="4-np.html#SP14_1">§14.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">verb_form</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vf</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::get_regular_meaning_of_form</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">VerbMeanings::get_regular_meaning_of_form</span></span>:<br/>Verb Usages - <a href="3-vu.html#SP12">§12</a><br/>Noun Phrases - <a href="4-np.html#SP15_1">§15.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">verb_form</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vf</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-vm.html#SP11" class="function-link"><span class="function-syntax">VerbMeanings::get_regular_meaning</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vm.html#SP9" class="function-link"><span class="function-syntax">VerbMeanings::first_unspecial_meaning_of_verb_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vf</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
|
|
@ -301,7 +301,7 @@ of verb and two prepositions:
|
|||
<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">verb_form</span><span class="plain-syntax"> *</span><span class="function-syntax">Verbs::find_form</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">Verbs::find_form</span></span>:<br/><a href="3-vrb.html#SP12_1">§12.1</a><br/>Verb Usages - <a href="3-vu.html#SP12">§12</a><br/>Noun Phrases - <a href="4-np.html#SP14_1">§14.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">verb</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="reserved-syntax">preposition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prep</span><span class="plain-syntax">, </span><span class="reserved-syntax">preposition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">second_prep</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">verb_form</span><span class="plain-syntax"> *</span><span class="function-syntax">Verbs::find_form</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">Verbs::find_form</span></span>:<br/><a href="3-vrb.html#SP12_1">§12.1</a><br/>Verb Usages - <a href="3-vu.html#SP12">§12</a><br/>Noun Phrases - <a href="4-np.html#SP15_1">§15.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">verb</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="reserved-syntax">preposition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prep</span><span class="plain-syntax">, </span><span class="reserved-syntax">preposition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">second_prep</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">V</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">verb_form</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vf</span><span class="plain-syntax"> = </span><span class="identifier-syntax">V</span><span class="plain-syntax">-></span><span class="element-syntax">first_form</span><span class="plain-syntax">; </span><span class="identifier-syntax">vf</span><span class="plain-syntax">; </span><span class="identifier-syntax">vf</span><span class="plain-syntax"> = </span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="element-syntax">next_form</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="element-syntax">preposition</span><span class="plain-syntax"> == </span><span class="identifier-syntax">prep</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="element-syntax">second_clause_preposition</span><span class="plain-syntax"> == </span><span class="identifier-syntax">second_prep</span><span class="plain-syntax">))</span>
|
||||
|
|
|
@ -81,7 +81,7 @@ MathJax = {
|
|||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Services</a></li><li><a href="index.html">linguistics</a></li><li><a href="index.html#4">Chapter 4: Diagramming Sentences</a></li><li><b>Noun Phrases</b></li></ul></div>
|
||||
<p class="purpose">To construct noun-phrase subtrees for assertion sentences found in the parse tree.</p>
|
||||
|
||||
<ul class="toc"><li><a href="4-np.html#SP1">§1. Hierarchy of noun phrases</a></li><li><a href="4-np.html#SP2">§2. Creation</a></li><li><a href="4-np.html#SP4">§4. Raw nounphrases (NP1)</a></li><li><a href="4-np.html#SP5">§5. Articled nounphrases (NP2)</a></li><li><a href="4-np.html#SP7">§7. Balanced variants</a></li><li><a href="4-np.html#SP8">§8. List-divided nounphrases (NP3)</a></li><li><a href="4-np.html#SP11">§11. Worldly nounphrases (NP4)</a></li><li><a href="4-np.html#SP19">§19. Relationship nodes</a></li></ul><hr class="tocbar">
|
||||
<ul class="toc"><li><a href="4-np.html#SP1">§1. Hierarchy of noun phrases</a></li><li><a href="4-np.html#SP2">§2. Creation</a></li><li><a href="4-np.html#SP4">§4. Raw nounphrases (NP1)</a></li><li><a href="4-np.html#SP5">§5. Articled nounphrases (NP2)</a></li><li><a href="4-np.html#SP7">§7. Balanced variants</a></li><li><a href="4-np.html#SP8">§8. List-divided nounphrases (NP3)</a></li><li><a href="4-np.html#SP11">§11. Worldly nounphrases (NP4)</a></li><li><a href="4-np.html#SP20">§20. Relationship nodes</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1"></a><b>§1. Hierarchy of noun phrases. </b>Noun phrase nodes are built at four levels of elaboration, which we take in
|
||||
turn:
|
||||
|
@ -95,10 +95,10 @@ relationships and properties (and other grammar meaningful only for references
|
|||
to physical objects and kinds) are parsed.
|
||||
</li></ul>
|
||||
</li></ul>
|
||||
<p class="commentary">At levels (NP1) and (NP2), a NP produces a single <span class="extract"><span class="extract-syntax">PROPER_NOUN_NT</span></span> node; at
|
||||
level (NP3), the result is a subtree contining <span class="extract"><span class="extract-syntax">PROPER_NOUN_NT</span></span> and <span class="extract"><span class="extract-syntax">AND_NT</span></span>
|
||||
<p class="commentary">At levels (NP1) and (NP2), a NP produces a single <span class="extract"><span class="extract-syntax">UNPARSED_NOUN_NT</span></span> node; at
|
||||
level (NP3), the result is a subtree contining <span class="extract"><span class="extract-syntax">UNPARSED_NOUN_NT</span></span> and <span class="extract"><span class="extract-syntax">AND_NT</span></span>
|
||||
nodes; but at level (NP4) this subtree may include any of <span class="extract"><span class="extract-syntax">RELATIONSHIP_NT</span></span>,
|
||||
<span class="extract"><span class="extract-syntax">CALLED_NT</span></span>, <span class="extract"><span class="extract-syntax">WITH_NT</span></span>, <span class="extract"><span class="extract-syntax">AND_NT</span></span>, <span class="extract"><span class="extract-syntax">KIND_NT</span></span> or <span class="extract"><span class="extract-syntax">PROPER_NOUN_NT</span></span>.
|
||||
<span class="extract"><span class="extract-syntax">CALLED_NT</span></span>, <span class="extract"><span class="extract-syntax">WITH_NT</span></span>, <span class="extract"><span class="extract-syntax">AND_NT</span></span>, <span class="extract"><span class="extract-syntax">KIND_NT</span></span> or <span class="extract"><span class="extract-syntax">UNPARSED_NOUN_NT</span></span>.
|
||||
</p>
|
||||
|
||||
<p class="commentary">Because a small proportion of noun phrase subtrees is thrown away, due to
|
||||
|
@ -115,7 +115,7 @@ about that: the proportion thrown away really is small).
|
|||
<span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">; *</span><span class="identifier-syntax">XP</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">preform_lookahead_mode</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)?(</span><a href="4-np.html#SP2" class="function-link"><span class="function-syntax">NounPhrases::new_raw</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)):</span><span class="identifier-syntax">NULL</span>
|
||||
</pre>
|
||||
<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">NounPhrases::new_raw</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">NounPhrases::new_raw</span></span>:<br/><a href="4-np.html#SP19">§19</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="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">NounPhrases::new_raw</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">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">PN</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::new</span><span class="plain-syntax">(</span><span class="constant-syntax">UNPARSED_NOUN_NT</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">PN</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><span class="identifier-syntax">PN</span><span class="plain-syntax">;</span>
|
||||
|
@ -126,20 +126,28 @@ about that: the proportion thrown away really is small).
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::set_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">PN</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><span class="identifier-syntax">PN</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">NounPhrases::new_pronoun</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">NounPhrases::new_pronoun</span></span>:<br/><a href="4-np.html#SP16">§16</a>, <a href="4-np.html#SP20">§20</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">pronoun_usage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pro</span><span 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="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">PN</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::new</span><span class="plain-syntax">(</span><span class="constant-syntax">PRONOUN_NT</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">PN</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">Node::set_pronoun</span><span class="plain-syntax">(</span><span class="identifier-syntax">PN</span><span class="plain-syntax">, </span><span class="identifier-syntax">pro</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">PN</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP3"></a><b>§3. </b>Other node types are generated as follows. Note that these make nothing in
|
||||
lookahead mode; this prevents needless memory allocation.
|
||||
</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">NounPhrases::PN_void</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">NounPhrases::PN_void</span></span>:<br/><a href="4-np.html#SP16">§16</a>, <a href="4-np.html#SP18">§18</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">node_type_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</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">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">NounPhrases::PN_void</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">NounPhrases::PN_void</span></span>:<br/><a href="4-np.html#SP17">§17</a>, <a href="4-np.html#SP19">§19</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">node_type_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</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">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="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">Node::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::set_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">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="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">NounPhrases::PN_single</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">NounPhrases::PN_single</span></span>:<br/><a href="4-np.html#SP18">§18</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">node_type_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</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">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">A</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">NounPhrases::PN_single</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">NounPhrases::PN_single</span></span>:<br/><a href="4-np.html#SP19">§19</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">node_type_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</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">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">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">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="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">Node::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::set_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
|
@ -147,7 +155,7 @@ lookahead mode; this prevents needless memory allocation.
|
|||
<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="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">NounPhrases::PN_pair</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">NounPhrases::PN_pair</span></span>:<br/><a href="4-np.html#SP8">§8</a>, <a href="4-np.html#SP10">§10</a>, <a href="4-np.html#SP15">§15</a>, <a href="4-np.html#SP16">§16</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">node_type_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</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">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">A</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">B</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">NounPhrases::PN_pair</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">NounPhrases::PN_pair</span></span>:<br/><a href="4-np.html#SP8">§8</a>, <a href="4-np.html#SP10">§10</a>, <a href="4-np.html#SP16">§16</a>, <a href="4-np.html#SP17">§17</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">node_type_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</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">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">A</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">B</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">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="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">Node::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::set_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
|
@ -384,7 +392,52 @@ in the case of a participle like "holding".
|
|||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><np-relative-phrase-explicit></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> 0; *XP = 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="SP13"></a><b>§13. </b>Inform guesses above that most English words ending in "-ing" are present
|
||||
<p class="commentary firstcommentary"><a id="SP13"></a><b>§13. </b></p>
|
||||
|
||||
<pre class="Preform-displayed-code all-displayed-code code-font">
|
||||
<span class="Preform-function-syntax"><np-relative-phrase-implicit></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">worn</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-np.html#SP13_1" class="named-paragraph-link"><span class="named-paragraph">Act on the implicit RP worn</span><span class="named-paragraph-number">13.1</span></a></span><span class="Preform-constant-syntax">;</span><span class="Preform-plain-syntax"> </span><span class="Preform-comment-syntax"> player\_plugin</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">carried</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-np.html#SP13_2" class="named-paragraph-link"><span class="named-paragraph">Act on the implicit RP carried</span><span class="named-paragraph-number">13.2</span></a></span><span class="Preform-constant-syntax">;</span><span class="Preform-plain-syntax"> </span><span class="Preform-comment-syntax"> player\_plugin</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">initially</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">carried</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-np.html#SP13_3" class="named-paragraph-link"><span class="named-paragraph">Act on the implicit RP initially carried</span><span class="named-paragraph-number">13.3</span></a></span><span class="Preform-constant-syntax">;</span><span class="Preform-plain-syntax"> </span><span class="Preform-comment-syntax"> player\_plugin</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="SP13_1"></a><b>§13.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Act on the implicit RP worn</span><span class="named-paragraph-number">13.1</span></span><span class="Preform-comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifndef</span><span class="plain-syntax"> </span><span class="identifier-syntax">IF_MODULE</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">endif</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">X</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">; *</span><span class="identifier-syntax">XP</span><span class="plain-syntax"> = </span><a href="4-np.html#SP20" class="function-link"><span class="function-syntax">NounPhrases::PN_implied_rel</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">R_wearing</span><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="4-np.html#SP13">§13</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP13_2"></a><b>§13.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Act on the implicit RP carried</span><span class="named-paragraph-number">13.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">ifndef</span><span class="plain-syntax"> </span><span class="identifier-syntax">IF_MODULE</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">endif</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">X</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">; *</span><span class="identifier-syntax">XP</span><span class="plain-syntax"> = </span><a href="4-np.html#SP20" class="function-link"><span class="function-syntax">NounPhrases::PN_implied_rel</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">R_carrying</span><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="4-np.html#SP13">§13</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP13_3"></a><b>§13.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Act on the implicit RP initially carried</span><span class="named-paragraph-number">13.3</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">ifndef</span><span class="plain-syntax"> </span><span class="identifier-syntax">IF_MODULE</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">endif</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">X</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">; *</span><span class="identifier-syntax">XP</span><span class="plain-syntax"> = </span><a href="4-np.html#SP20" class="function-link"><span class="function-syntax">NounPhrases::PN_implied_rel</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">R_carrying</span><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="4-np.html#SP13">§13</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP14"></a><b>§14. </b>Inform guesses above that most English words ending in "-ing" are present
|
||||
participles — like guessing, bluffing, cheating, and so on. But there is
|
||||
a conspicuous exception to this; so any word found in <non-participles>
|
||||
is never treated as a participle.
|
||||
|
@ -403,7 +456,7 @@ is never treated as a participle.
|
|||
<span class="Preform-plain-syntax">}</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="SP14"></a><b>§14. </b>Finally, we define what we mean by implicit and explicit relative phrases.
|
||||
<p class="commentary firstcommentary"><a id="SP15"></a><b>§15. </b>Finally, we define what we mean by implicit and explicit relative phrases.
|
||||
As examples, the right-hand sides of:
|
||||
</p>
|
||||
|
||||
|
@ -430,20 +483,20 @@ directions, in particular, a little better.
|
|||
<span class="Preform-function-syntax"><np-relative-phrase-explicit></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><permitted-preposition></span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">_,/and</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> 0; return FAIL_NONTERMINAL;</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><permitted-preposition></span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">_,/and</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> 0; return FAIL_NONTERMINAL;</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><permitted-preposition></span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><np-inner-without-rp></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> 0; </span><span class="named-paragraph-container code-font"><a href="4-np.html#SP14_1" class="named-paragraph-link"><span class="named-paragraph">Work out a meaning</span><span class="named-paragraph-number">14.1</span></a></span><span class="Preform-constant-syntax">;</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><permitted-preposition></span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><np-inner-without-rp></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> 0; </span><span class="named-paragraph-container code-font"><a href="4-np.html#SP15_1" class="named-paragraph-link"><span class="named-paragraph">Work out a meaning</span><span class="named-paragraph-number">15.1</span></a></span><span class="Preform-constant-syntax">;</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="SP14_1"></a><b>§14.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Work out a meaning</span><span class="named-paragraph-number">14.1</span></span><span class="Preform-comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP15_1"></a><b>§15.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Work out a meaning</span><span class="named-paragraph-number">15.1</span></span><span class="Preform-comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<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><a href="3-vm.html#SP11" class="function-link"><span class="function-syntax">VerbMeanings::get_regular_meaning_of_form</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vrb.html#SP11" class="function-link"><span class="function-syntax">Verbs::find_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">permitted_verb</span><span class="plain-syntax">, </span><span class="identifier-syntax">RP</span><span class="plain-syntax">[1], </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">R</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> *</span><span class="identifier-syntax">XP</span><span class="plain-syntax"> = </span><a href="4-np.html#SP19" class="function-link"><span class="function-syntax">NounPhrases::PN_rel</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</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">R</span><span class="plain-syntax">), -1, </span><span class="identifier-syntax">RP</span><span class="plain-syntax">[2]);</span>
|
||||
<span class="plain-syntax"> *</span><span class="identifier-syntax">XP</span><span class="plain-syntax"> = </span><a href="4-np.html#SP20" class="function-link"><span class="function-syntax">NounPhrases::PN_rel</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</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">R</span><span class="plain-syntax">), </span><span class="identifier-syntax">RP</span><span class="plain-syntax">[2]);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="4-np.html#SP14">§14</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP15"></a><b>§15. </b>Now the heart of it. There are basically seven constructions which can make
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="4-np.html#SP15">§15</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP16"></a><b>§16. </b>Now the heart of it. There are basically seven constructions which can make
|
||||
complex NPs from simple ones: we've already seen one of these, the relative
|
||||
phrase. The sequence of checking these is very important, because it decides
|
||||
which clauses are represented higher in the parse tree when multiple structures
|
||||
|
@ -460,8 +513,8 @@ are present within the NP. For instance, we want to turn
|
|||
<pre class="Preform-displayed-code all-displayed-code code-font">
|
||||
<span class="Preform-plain-syntax"> RELATIONSHIP_NT "in" = containment</span>
|
||||
<span class="Preform-plain-syntax"> CALLED_NT "called"</span>
|
||||
<span class="Preform-plain-syntax"> PROPER_NOUN_NT "container" article:indefinite</span>
|
||||
<span class="Preform-plain-syntax"> PROPER_NOUN_NT "flask and cap with flange" article:definite</span>
|
||||
<span class="Preform-plain-syntax"> UNPARSED_NOUN_NT "container" article:indefinite</span>
|
||||
<span class="Preform-plain-syntax"> UNPARSED_NOUN_NT "flask and cap with flange" article:definite</span>
|
||||
</pre>
|
||||
<p class="commentary">but we also want:
|
||||
</p>
|
||||
|
@ -473,7 +526,7 @@ are present within the NP. For instance, we want to turn
|
|||
<pre class="Preform-displayed-code all-displayed-code code-font">
|
||||
<span class="Preform-plain-syntax"> RELATIONSHIP_NT "in" = containment</span>
|
||||
<span class="Preform-plain-syntax"> WITH_NT "with"</span>
|
||||
<span class="Preform-plain-syntax"> PROPER_NOUN_NT "container" article:indefinite</span>
|
||||
<span class="Preform-plain-syntax"> UNPARSED_NOUN_NT "container" article:indefinite</span>
|
||||
<span class="Preform-plain-syntax"> AND_NT "and"</span>
|
||||
<span class="Preform-plain-syntax"> PROPERTY_LIST_NT "carrying capacity 10"</span>
|
||||
<span class="Preform-plain-syntax"> PROPERTY_LIST_NT "diameter 12"</span>
|
||||
|
@ -537,11 +590,12 @@ speed optimisation, and doesn't affect the language's definition.
|
|||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><np-inner></span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><np-with-or-having-tail></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> 0; *XP = NounPhrases::PN_pair(WITH_NT, Wordings::one_word(R[2]), RP[1], RP[2])</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><np-inner></span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><np-and-tail></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> 0; *XP = NounPhrases::PN_pair(AND_NT, Wordings::one_word(R[2]), RP[1], RP[2])</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><np-kind-phrase></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> 0; *XP = RP[1]</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><agent-pronoun></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> GENERATE_RAW_NP; Node::set_type(*XP, PRONOUN_NT); Node::set_pronoun(*XP, RP[1]);</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><agent-pronoun></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> 0; *XP = NounPhrases::new_pronoun(W, RP[1])</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><here-pronoun></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> 0; *XP = NounPhrases::new_pronoun(W, RP[1])</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><np-articled-balanced></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> 0; *XP = 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="SP16"></a><b>§16. </b>The tail of with-or-having parses for instance "with carrying capacity 5"
|
||||
<p class="commentary firstcommentary"><a id="SP17"></a><b>§17. </b>The tail of with-or-having parses for instance "with carrying capacity 5"
|
||||
in the NP
|
||||
</p>
|
||||
|
||||
|
@ -578,7 +632,7 @@ bogus object called "locking it".)
|
|||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">{_,/and}</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><np-new-property-list></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> Wordings::first_wn(W); *XP= 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="SP17"></a><b>§17. </b>The "and" tail is much easier:
|
||||
<p class="commentary firstcommentary"><a id="SP18"></a><b>§18. </b>The "and" tail is much easier:
|
||||
</p>
|
||||
|
||||
<pre class="Preform-displayed-code all-displayed-code code-font">
|
||||
|
@ -587,7 +641,7 @@ bogus object called "locking it".)
|
|||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">{_,/and}</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><np-inner></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> Wordings::first_wn(W); *XP= 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="SP18"></a><b>§18. </b>Kind phrases are easier:
|
||||
<p class="commentary firstcommentary"><a id="SP19"></a><b>§19. </b>Kind phrases are easier:
|
||||
</p>
|
||||
|
||||
<blockquote>
|
||||
|
@ -608,29 +662,24 @@ but definite articles are not.
|
|||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">kind/kinds</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">of</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><np-inner></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> 0; *XP = NounPhrases::PN_single(KIND_NT, W, 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="SP19"></a><b>§19. Relationship nodes. </b>A modest utility routine to construct and annotate RELATIONSHIP nodes.
|
||||
<p class="commentary firstcommentary"><a id="SP20"></a><b>§20. Relationship nodes. </b>A modest utility routine to construct and annotate RELATIONSHIP nodes.
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="Preform-constant-syntax">STANDARD_RELN</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">0</span><span class="Preform-plain-syntax"> </span><span class="Preform-comment-syntax"> the default annotation value: never explicitly set</span>
|
||||
<span class="definition-keyword">define</span> <span class="Preform-constant-syntax">PARENTAGE_HERE_RELN</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">1</span><span class="Preform-plain-syntax"> </span><span class="Preform-comment-syntax"> only ever set by the Spatial plugin</span>
|
||||
<span class="definition-keyword">define</span> <span class="Preform-constant-syntax">DIRECTION_RELN</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">2</span>
|
||||
</pre>
|
||||
<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">NounPhrases::PN_rel</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">NounPhrases::PN_rel</span></span>:<br/><a href="4-np.html#SP14_1">§14.1</a><br/>Verb Phrases - <a href="4-vp.html#SP9_1">§9.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="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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">reln_type</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">referent</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">NounPhrases::PN_rel</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">NounPhrases::PN_rel</span></span>:<br/><a href="4-np.html#SP15_1">§15.1</a><br/>Verb Phrases - <a href="4-vp.html#SP9_1">§9.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="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="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">O</span><span 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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">O</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">"no object for relationship"</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">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::new</span><span class="plain-syntax">(</span><span class="constant-syntax">RELATIONSHIP_NT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::set_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">R</span><span class="plain-syntax">) </span><span class="identifier-syntax">Node::set_relationship</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</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">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">reln_type</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">Annotations::write_int</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">relationship_node_type_ANNOT</span><span class="plain-syntax">, </span><span class="identifier-syntax">reln_type</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">"undefined relationship node"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">referent</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">referent</span><span class="plain-syntax"> = </span><a href="4-np.html#SP2" class="function-link"><span class="function-syntax">NounPhrases::new_raw</span></a><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">Annotations::write_int</span><span class="plain-syntax">(</span><span class="identifier-syntax">referent</span><span class="plain-syntax">, </span><span class="constant-syntax">implicitly_refers_to_ANNOT</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="identifier-syntax">down</span><span class="plain-syntax"> = </span><span class="identifier-syntax">referent</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::set_relationship</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</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">down</span><span class="plain-syntax"> = </span><span class="identifier-syntax">O</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">P</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">NounPhrases::PN_implied_rel</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">NounPhrases::PN_implied_rel</span></span>:<br/><a href="4-np.html#SP13_1">§13.1</a>, <a href="4-np.html#SP13_2">§13.2</a>, <a href="4-np.html#SP13_3">§13.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="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">O</span><span class="plain-syntax"> = </span><a href="4-np.html#SP2" class="function-link"><span class="function-syntax">NounPhrases::new_pronoun</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">implied_pronoun_usage</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-np.html#SP20" class="function-link"><span class="function-syntax">NounPhrases::PN_rel</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><span class="identifier-syntax">O</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="3-apoo.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-lm.html">1</a></li><li class="progresschapter"><a href="2-adj.html">2</a></li><li class="progresschapter"><a href="3-vrb.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresscurrent">np</li><li class="progresssection"><a href="4-vp.html">vp</a></li><li class="progressnext"><a href="4-vp.html">❯</a></li></ul></div>
|
||||
|
|
|
@ -748,8 +748,8 @@ the exactly equivalent idea of the hat being worn by Darcy.
|
|||
<span class="plain-syntax"> </span><span class="constant-syntax">VERB_MEANING_LINGUISTICS_TYPE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">meaning</span><span class="plain-syntax"> = </span><a href="3-vm.html#SP11" class="function-link"><span class="function-syntax">VerbMeanings::get_regular_meaning</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vm</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">meaning</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">meaning</span><span class="plain-syntax"> != </span><span class="identifier-syntax">VERB_MEANING_EQUALITY</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">-></span><span class="identifier-syntax">next</span><span class="plain-syntax">-></span><span class="identifier-syntax">next</span><span class="plain-syntax"> = </span><a href="4-np.html#SP19" class="function-link"><span class="function-syntax">NounPhrases::PN_rel</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">V</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">meaning</span><span class="plain-syntax">), </span><span class="constant-syntax">STANDARD_RELN</span><span class="plain-syntax">, </span><span class="identifier-syntax">O_PN</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">-></span><span class="identifier-syntax">next</span><span class="plain-syntax">-></span><span class="identifier-syntax">next</span><span class="plain-syntax"> = </span><a href="4-np.html#SP20" class="function-link"><span class="function-syntax">NounPhrases::PN_rel</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">V</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">meaning</span><span class="plain-syntax">), </span><span class="identifier-syntax">O_PN</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="4-vp.html#SP9">§9</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP10"></a><b>§10. </b></p>
|
||||
|
|
|
@ -479,6 +479,13 @@ for example.
|
|||
<span class="plain-syntax"> PRONOUN_NT'you' {second person pronoun n/m/f s/p nom/acc 2p}</span>
|
||||
<span class="plain-syntax"> RELATIONSHIP_NT'know' {meaning: knows-reversed}</span>
|
||||
<span class="plain-syntax"> PRONOUN_NT'us' {first person pronoun n/m/f 1p p acc}</span>
|
||||
|
||||
<span class="plain-syntax">(6) anna is here</span>
|
||||
|
||||
<span class="plain-syntax">SENTENCE_NT'anna is here'</span>
|
||||
<span class="plain-syntax"> VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}</span>
|
||||
<span class="plain-syntax"> PROPER_NOUN_NT'anna' {proper nom/acc f s}</span>
|
||||
<span class="plain-syntax"> PRONOUN_NT'here' {location pronoun n/m/f s/p nom/acc 3p}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP13"></a><b>§13. </b>"Callings" use the special syntax "X called Y", which has to be handled
|
||||
here in the <a href="index.html" class="internal">linguistics</a> module so that Y can safely wording which would
|
||||
|
|
|
@ -301,12 +301,12 @@ Within each categpry, items are listed in order of creation.
|
|||
<span class="plain-syntax">adjective: 137 items</span>
|
||||
<span class="plain-syntax">article: 2 items</span>
|
||||
<span class="plain-syntax">noun: 2381 items</span>
|
||||
<span class="plain-syntax">pronoun: 6 items</span>
|
||||
<span class="plain-syntax">pronoun: 8 items</span>
|
||||
<span class="plain-syntax">preposition: 273 items</span>
|
||||
<span class="plain-syntax">determiner: 22 items</span>
|
||||
<span class="plain-syntax">verb: 108 items</span>
|
||||
<span class="plain-syntax">verb_form: 386 items</span>
|
||||
<span class="plain-syntax">total in all categories: 3315</span>
|
||||
<span class="plain-syntax">total in all categories: 3317</span>
|
||||
|
||||
<span class="plain-syntax">adjective: A0'even'</span>
|
||||
<span class="plain-syntax">adjective: A1'odd'</span>
|
||||
|
@ -2837,6 +2837,8 @@ Within each categpry, items are listed in order of creation.
|
|||
<span class="plain-syntax">pronoun: first person possessive pronoun</span>
|
||||
<span class="plain-syntax">pronoun: second person possessive pronoun</span>
|
||||
<span class="plain-syntax">pronoun: third person possessive pronoun</span>
|
||||
<span class="plain-syntax">pronoun: location pronoun</span>
|
||||
<span class="plain-syntax">pronoun: implied pronoun</span>
|
||||
|
||||
<span class="plain-syntax">preposition: meant by</span>
|
||||
<span class="plain-syntax">preposition: meaning</span>
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,6 +1,6 @@
|
|||
Total memory consumption was 257140K = 251 MB
|
||||
Total memory consumption was 257150K = 251 MB
|
||||
|
||||
62.5% was used for 1344520 objects, in 273549 frames in 201 x 800K = 160800K = 157 MB:
|
||||
62.5% was used for 1344546 objects, in 273575 frames in 201 x 800K = 160800K = 157 MB:
|
||||
|
||||
9.8% inter_tree_node_array 36 x 8192 = 294912 objects, 25953408 bytes
|
||||
5.4% text_stream_array 2570 x 100 = 257000 objects, 14474240 bytes
|
||||
|
@ -20,9 +20,9 @@ Total memory consumption was 257140K = 251 MB
|
|||
0.3% excerpt_meaning 3102 objects, 967824 bytes
|
||||
0.3% inter_name_array 20 x 1000 = 20000 objects, 960640 bytes
|
||||
0.3% inter_package 13201 objects, 950472 bytes
|
||||
0.3% production 3897 objects, 904104 bytes
|
||||
0.3% ptoken 8400 objects, 873600 bytes
|
||||
0.3% grammatical_usage 3612 objects, 866880 bytes
|
||||
0.3% production 3899 objects, 904568 bytes
|
||||
0.3% ptoken 8412 objects, 874848 bytes
|
||||
0.3% grammatical_usage 3614 objects, 867360 bytes
|
||||
0.3% individual_form 2564 objects, 861504 bytes
|
||||
0.3% inter_symbols_table 13201 objects, 844864 bytes
|
||||
0.3% inter_schema_node 8692 objects, 834432 bytes
|
||||
|
@ -43,10 +43,10 @@ Total memory consumption was 257140K = 251 MB
|
|||
---- inter_annotation_array 1 x 8192 objects, 196640 bytes
|
||||
---- inference 1703 objects, 177112 bytes
|
||||
---- linked_list_item_array 10 x 1000 = 10000 objects, 160320 bytes
|
||||
---- linguistic_stock_item 3315 objects, 159120 bytes
|
||||
---- linguistic_stock_item 3317 objects, 159216 bytes
|
||||
---- stacked_variable_owner_list_array 38 x 100 = 3800 objects, 153216 bytes
|
||||
---- index_lexicon_entry 395 objects, 142200 bytes
|
||||
---- nonterminal 754 objects, 138736 bytes
|
||||
---- nonterminal 756 objects, 139104 bytes
|
||||
---- action_pattern_array 6 x 100 = 600 objects, 129792 bytes
|
||||
---- documentation_ref 1275 objects, 112200 bytes
|
||||
---- hierarchy_location 731 objects, 105264 bytes
|
||||
|
@ -72,7 +72,7 @@ Total memory consumption was 257140K = 251 MB
|
|||
---- inter_node_list 750 objects, 42000 bytes
|
||||
---- activity_list_array 1 x 1000 objects, 40032 bytes
|
||||
---- response_message 407 objects, 35816 bytes
|
||||
---- production_list 618 objects, 34608 bytes
|
||||
---- production_list 619 objects, 34664 bytes
|
||||
---- unary_predicate_array 8 x 1000 = 8000 objects, 32192 bytes
|
||||
---- HTML_tag_array 1 x 1000 objects, 32032 bytes
|
||||
---- regions_data 660 objects, 31680 bytes
|
||||
|
@ -130,11 +130,11 @@ Total memory consumption was 257140K = 251 MB
|
|||
---- equation_symbol 30 objects, 2400 bytes
|
||||
---- semver_range 22 objects, 2288 bytes
|
||||
---- method_set 56 objects, 1792 bytes
|
||||
---- table_contribution_array 1 x 100 objects, 1632 bytes
|
||||
---- activity_crossref_array 1 x 100 objects, 1632 bytes
|
||||
---- pronoun_usage 42 objects, 1680 bytes
|
||||
---- plugin_call_array 1 x 100 objects, 1632 bytes
|
||||
---- activity_crossref_array 1 x 100 objects, 1632 bytes
|
||||
---- table_contribution_array 1 x 100 objects, 1632 bytes
|
||||
---- use_option 29 objects, 1624 bytes
|
||||
---- pronoun_usage 40 objects, 1600 bytes
|
||||
---- kind_interaction 39 objects, 1560 bytes
|
||||
---- inter_annotation_form 37 objects, 1480 bytes
|
||||
---- pipeline_step 12 objects, 1440 bytes
|
||||
|
@ -162,27 +162,27 @@ Total memory consumption was 257140K = 251 MB
|
|||
---- rulebook_outcome 17 objects, 680 bytes
|
||||
---- inform_language 6 objects, 672 bytes
|
||||
---- inter_warehouse_room 10 objects, 640 bytes
|
||||
---- relation_guard 5 objects, 640 bytes
|
||||
---- I6T_intervention 8 objects, 640 bytes
|
||||
---- relation_guard 5 objects, 640 bytes
|
||||
---- nascent_array 7 objects, 616 bytes
|
||||
---- named_rulebook_outcome 15 objects, 600 bytes
|
||||
---- inbuild_search_result 15 objects, 600 bytes
|
||||
---- label_namespace 10 objects, 560 bytes
|
||||
---- small_word_set 11 objects, 528 bytes
|
||||
---- inform_kit 5 objects, 520 bytes
|
||||
---- small_word_set 10 objects, 480 bytes
|
||||
---- i6_memory_setting 13 objects, 416 bytes
|
||||
---- equation 4 objects, 416 bytes
|
||||
---- i6_memory_setting 13 objects, 416 bytes
|
||||
---- dval_written 10 objects, 400 bytes
|
||||
---- module_package 10 objects, 400 bytes
|
||||
---- article_usage 8 objects, 384 bytes
|
||||
---- source_file 5 objects, 360 bytes
|
||||
---- inbuild_genre 7 objects, 336 bytes
|
||||
---- grammatical_category 8 objects, 320 bytes
|
||||
---- pronoun 8 objects, 320 bytes
|
||||
---- door_dir_notice 5 objects, 320 bytes
|
||||
---- build_step 4 objects, 288 bytes
|
||||
---- door_to_notice 5 objects, 280 bytes
|
||||
---- inform_pipeline 4 objects, 256 bytes
|
||||
---- pronoun 6 objects, 240 bytes
|
||||
---- verb_usage_tier 5 objects, 240 bytes
|
||||
---- test_scenario 1 object, 208 bytes
|
||||
---- build_skill 5 objects, 200 bytes
|
||||
|
@ -190,13 +190,13 @@ Total memory consumption was 257140K = 251 MB
|
|||
---- plural_dictionary_entry 4 objects, 192 bytes
|
||||
---- kit_dependency 4 objects, 192 bytes
|
||||
---- inform_project 1 object, 176 bytes
|
||||
---- inter_architecture 4 objects, 160 bytes
|
||||
---- code_generation_target 4 objects, 160 bytes
|
||||
---- link_instruction 4 objects, 160 bytes
|
||||
---- pointer_allocation 2 objects, 160 bytes
|
||||
---- code_generation_target 4 objects, 160 bytes
|
||||
---- inter_architecture 4 objects, 160 bytes
|
||||
---- kind_template_obligation 4 objects, 160 bytes
|
||||
---- element_activation 4 objects, 128 bytes
|
||||
---- codegen_pipeline 1 object, 128 bytes
|
||||
---- element_activation 4 objects, 128 bytes
|
||||
---- inbuild_nest 3 objects, 120 bytes
|
||||
---- inform_kit_ittt 2 objects, 96 bytes
|
||||
---- compile_task_data 1 object, 80 bytes
|
||||
|
@ -212,13 +212,13 @@ Total memory consumption was 257140K = 251 MB
|
|||
|
||||
37.4% was used for memory not allocated for objects:
|
||||
|
||||
15.8% text stream storage 41852724 bytes in 263306 claims
|
||||
15.8% text stream storage 41853780 bytes in 263312 claims
|
||||
3.5% dictionary storage 9265152 bytes in 16345 claims
|
||||
---- sorting 1112 bytes in 3 claims
|
||||
2.7% source text 7200000 bytes in 3 claims
|
||||
4.1% source text details 10800000 bytes in 2 claims
|
||||
---- linguistic stock array 81920 bytes in 2 claims
|
||||
---- small word set array 96000 bytes in 20 claims
|
||||
---- small word set array 105600 bytes in 22 claims
|
||||
0.8% inter symbols storage 2276992 bytes in 13911 claims
|
||||
6.3% inter bytecode storage 16802820 bytes in 14 claims
|
||||
3.3% inter links storage 8750208 bytes in 246 claims
|
||||
|
@ -229,5 +229,5 @@ Total memory consumption was 257140K = 251 MB
|
|||
---- emitter array storage 14368 bytes in 8 claims
|
||||
---- code generation workspace for objects 9200 bytes in 9 claims
|
||||
|
||||
20.1% was overhead - 53156144 bytes = 51910K = 50 MB
|
||||
20.1% was overhead - 53153224 bytes = 51907K = 50 MB
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
<s-literal> hits 2097/23834 nti 24 constraint (none) extremes [1, infinity)
|
||||
<s-literal> hits 2097/23834 nti 25 constraint (none) extremes [1, infinity)
|
||||
English:
|
||||
(@1)<cardinal-number>=1
|
||||
(hits 171/171) (matched: '100') constraint CS = {r0} extremes [1, 1]
|
||||
(@1)minus (@2)<cardinal-number>=1
|
||||
(hits 0/1493) constraint DS = {24} extremes [2, 2]
|
||||
(hits 0/1291) constraint DS = {25} extremes [2, 2]
|
||||
(@1)<quoted-text>=1 (@2)( (@3)<response-letter>=2 (@4))
|
||||
(hits 273/834) (matched: '"[current item from the multiple object list]: [run paragraph on]" ( a )') constraint DS = {24} extremes [4, 4]
|
||||
(hits 273/802) (matched: '"[current item from the multiple object list]: [run paragraph on]" ( a )') constraint DS = {25} extremes [4, 4]
|
||||
(@1)<quoted-text>=1
|
||||
(hits 1564/5548) (matched: 'Represents geographical locations, both indoor
|
||||
and outdoor, which are not necessarily areas in a building. A player in one
|
||||
|
@ -14,12 +14,12 @@
|
|||
<s-literal-real-number>=1
|
||||
(hits 11/9909) (matched: 'plus infinity') constraint (none) extremes [1, infinity)
|
||||
(@1)<s-literal-truth-state>=1
|
||||
(hits 78/709) (matched: 'false') constraint CS = {18} extremes [1, 1]
|
||||
(hits 78/228) (matched: 'false') constraint CS = {19} extremes [1, 1]
|
||||
<s-literal-list>=1
|
||||
(hits 0/3249) constraint DS = {20} extremes [2, infinity)
|
||||
(hits 0/3243) constraint DS = {21} extremes [2, infinity)
|
||||
(@1)unicode <s-unicode-character>=1
|
||||
(hits 0/3500) constraint DS = {24} extremes [2, infinity)
|
||||
(hits 0/3111) constraint DS = {25} extremes [2, infinity)
|
||||
<s-literal-time>=1
|
||||
(hits 0/3459) constraint DW = {21, 22, 23} extremes [2, 5]
|
||||
(hits 0/3463) constraint DW = {22, 23, 24} extremes [2, 5]
|
||||
<s-literal-unit-notation>=1
|
||||
(hits 0/9820) constraint (none) extremes [1, infinity)
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
100.0% in inform7 run
|
||||
65.7% in compilation to Inter
|
||||
25.2% in //Phrases::Manager::compile_first_block//
|
||||
8.4% in //Phrases::Manager::compile_as_needed//
|
||||
7.1% in //Strings::compile_responses//
|
||||
66.1% in compilation to Inter
|
||||
25.1% in //Phrases::Manager::compile_first_block//
|
||||
9.0% in //Phrases::Manager::compile_as_needed//
|
||||
6.8% in //Strings::compile_responses//
|
||||
5.9% in //World::Compile::compile//
|
||||
3.3% in //Assertions::Traverse::traverse1//
|
||||
3.1% in //Sentences::VPs::traverse//
|
||||
2.0% in //Phrases::Manager::RulePrintingRule_routine//
|
||||
3.4% in //Assertions::Traverse::traverse1//
|
||||
3.2% in //Sentences::VPs::traverse//
|
||||
1.9% in //Phrases::Manager::RulePrintingRule_routine//
|
||||
1.8% in //Phrases::Manager::rulebooks_array//
|
||||
1.1% in //NewVerbs::ConjugateVerb//
|
||||
1.0% in //NewVerbs::ConjugateVerb//
|
||||
0.7% in //Phrases::Manager::traverse//
|
||||
0.5% in //Phrases::Manager::parse_rule_parameters//
|
||||
0.3% in //Phrases::Manager::compile_rulebooks//
|
||||
|
@ -19,11 +19,11 @@
|
|||
0.1% in //Sentences::RuleSubtrees::register_recently_lexed_phrases//
|
||||
0.1% in //Task::load_types//
|
||||
0.1% in //World::complete//
|
||||
4.0% not specifically accounted for
|
||||
31.8% in running Inter pipeline
|
||||
10.6% in step preparation
|
||||
10.1% in inter step 2/12: link
|
||||
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.3% in inter step 2/12: link
|
||||
7.0% 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
|
||||
|
@ -32,6 +32,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
|
||||
1.9% not specifically accounted for
|
||||
2.0% in supervisor
|
||||
0.4% not specifically accounted for
|
||||
2.0% not specifically accounted for
|
||||
2.1% in supervisor
|
||||
0.2% not specifically accounted for
|
||||
|
|
|
@ -543,42 +543,3 @@ void Sentences::VPs::log(int verb_number) {
|
|||
default: LOG("(number %d)", verb_number); break;
|
||||
}
|
||||
}
|
||||
|
||||
@ =
|
||||
<np-relative-phrase-implicit> ::=
|
||||
worn | ==> @<Act on the implicit RP worn@>; /* player\_plugin */
|
||||
carried | ==> @<Act on the implicit RP carried@>; /* player\_plugin */
|
||||
initially carried | ==> @<Act on the implicit RP initially carried@>; /* player\_plugin */
|
||||
here ==> @<Act on the implicit RP here@>; /* spatial\_plugin */
|
||||
|
||||
@<Act on the implicit RP worn@> =
|
||||
#ifndef IF_MODULE
|
||||
return FALSE;
|
||||
#endif
|
||||
#ifdef IF_MODULE
|
||||
*X = 0; *XP = NounPhrases::PN_rel(W, R_wearing, -1, NULL);
|
||||
#endif
|
||||
|
||||
@<Act on the implicit RP carried@> =
|
||||
#ifndef IF_MODULE
|
||||
return FALSE;
|
||||
#endif
|
||||
#ifdef IF_MODULE
|
||||
*X = 0; *XP = NounPhrases::PN_rel(W, R_carrying, -1, NULL);
|
||||
#endif
|
||||
|
||||
@<Act on the implicit RP initially carried@> =
|
||||
#ifndef IF_MODULE
|
||||
return FALSE;
|
||||
#endif
|
||||
#ifdef IF_MODULE
|
||||
*X = 0; *XP = NounPhrases::PN_rel(W, R_carrying, -1, NULL);
|
||||
#endif
|
||||
|
||||
@<Act on the implicit RP here@> =
|
||||
#ifndef IF_MODULE
|
||||
return FALSE;
|
||||
#endif
|
||||
#ifdef IF_MODULE
|
||||
*X = 0; *XP = NounPhrases::PN_rel(W, NULL, PARENTAGE_HERE_RELN, NULL);
|
||||
#endif
|
||||
|
|
|
@ -209,7 +209,6 @@ void ParseTreeUsage::write_permissions(void) {
|
|||
Annotations::allow(VERB_NT, listing_sense_ANNOT);
|
||||
Annotations::allow(COMMON_NOUN_NT, action_meaning_ANNOT);
|
||||
Annotations::allow(COMMON_NOUN_NT, creation_site_ANNOT);
|
||||
Annotations::allow(COMMON_NOUN_NT, implicitly_refers_to_ANNOT);
|
||||
Annotations::allow(COMMON_NOUN_NT, multiplicity_ANNOT);
|
||||
Annotations::allow(COMMON_NOUN_NT, quant_ANNOT);
|
||||
Annotations::allow(COMMON_NOUN_NT, quantification_parameter_ANNOT);
|
||||
|
@ -481,7 +480,6 @@ void ParseTreeUsage::log_node(OUTPUT_STREAM, parse_node *pn) {
|
|||
if (show_refers) {
|
||||
if (Node::get_subject(pn)) { WRITE(" refers:$j", Node::get_subject(pn)); }
|
||||
if (Node::get_evaluation(pn)) { WRITE(" eval:$P", Node::get_evaluation(pn)); }
|
||||
if (Annotations::read_int(pn, implicitly_refers_to_ANNOT)) WRITE(" (implicit)");
|
||||
}
|
||||
if ((show_eval) && (Node::get_evaluation(pn))) {
|
||||
WRITE(" eval:$P", Node::get_evaluation(pn));
|
||||
|
|
|
@ -68,6 +68,8 @@ int Assertions::Maker::which_assertion_case(parse_node *px, parse_node *py) {
|
|||
}
|
||||
int i, x=-1, y=-1;
|
||||
node_type_t wx = Node::get_type(px), wy = Node::get_type(py);
|
||||
if (wx == PRONOUN_NT) wx = PROPER_NOUN_NT;
|
||||
if (wy == PRONOUN_NT) wy = PROPER_NOUN_NT;
|
||||
for (i=0; i<ASSERTION_MATRIX_DIM; i++) {
|
||||
if (assertion_matrix[i].row_node_type == wx) x=i;
|
||||
if (assertion_matrix[i].row_node_type == wy) y=i;
|
||||
|
@ -909,18 +911,17 @@ in this case.
|
|||
>> (1) In the box is on the desk. (2) East of the Pitch is north of the Pavilion.
|
||||
|
||||
@<Case 28 - RELATIONSHIP on both sides@> =
|
||||
if ((Annotations::read_int(px, relationship_node_type_ANNOT) == DIRECTION_RELN) &&
|
||||
(Annotations::read_int(py, relationship_node_type_ANNOT) == DIRECTION_RELN)) {
|
||||
#ifdef IF_MODULE
|
||||
#ifdef IF_MODULE
|
||||
if ((PL::MapDirections::get_mapping_relationship(px)) &&
|
||||
(PL::MapDirections::get_mapping_relationship(py))) {
|
||||
PL::Map::enter_one_way_mode();
|
||||
#endif
|
||||
Assertions::Maker::make_assertion_recursive(px, py->down);
|
||||
Assertions::Maker::make_assertion_recursive(px->down, py);
|
||||
#ifdef IF_MODULE
|
||||
PL::Map::exit_one_way_mode();
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
Problems::Using::assertion_problem(Task::syntax_tree(), _p_(PM_RelationsEquated),
|
||||
"this says that two different relations are the same",
|
||||
"like saying that 'in the box is on the table'. (Sometimes this "
|
||||
|
|
|
@ -257,12 +257,8 @@ has the marble and the box as its children, the relationship being containment.
|
|||
if (p->down) {
|
||||
Assertions::Refiner::refine(p->down, creation_rule);
|
||||
#ifdef IF_MODULE
|
||||
binary_predicate *bp = Node::get_relationship(p);
|
||||
if ((bp) && (Plugins::Manage::plugged_in(map_plugin))) {
|
||||
instance *dir = PL::MapDirections::get_mapping_direction(BinaryPredicates::get_reversal(bp));
|
||||
if (dir == NULL) dir = PL::MapDirections::get_mapping_direction(bp);
|
||||
if (dir) @<Make the relation one which refers to a map direction@>;
|
||||
}
|
||||
instance *dir = PL::MapDirections::get_mapping_relationship(p);
|
||||
if (dir) @<Make the relation one which refers to a map direction@>;
|
||||
#endif
|
||||
if (p->down->next) Assertions::Refiner::refine(p->down->next, creation_rule);
|
||||
}
|
||||
|
@ -273,9 +269,7 @@ the relation is mapped-north-of, then the second child will become the
|
|||
direction object for "north".
|
||||
|
||||
@<Make the relation one which refers to a map direction@> =
|
||||
LOGIF(NOUN_RESOLUTION, "Directional predicate with BP %S ($O)\n",
|
||||
BinaryPredicates::get_log_name(bp), dir);
|
||||
Annotations::write_int(p, relationship_node_type_ANNOT, DIRECTION_RELN);
|
||||
LOGIF(NOUN_RESOLUTION, "Directional predicate with BP from $O\n", dir);
|
||||
wording DW = Instances::get_name(dir, FALSE);
|
||||
p->down->next = NounPhrases::new_raw(DW);
|
||||
Assertions::Refiner::noun_from_infs(p->down->next, Instances::as_subject(dir));
|
||||
|
@ -332,6 +326,15 @@ inference subject representing the domain to which any new kind would belong.
|
|||
@<Refine a pronoun@> =
|
||||
pronoun_usage *pro = Node::get_pronoun(p);
|
||||
if (pro) {
|
||||
if (pro->pronoun_used == here_pronoun) {
|
||||
Node::set_type(p, RELATIONSHIP_NT);
|
||||
p->down = NounPhrases::new_pronoun(Node::get_text(p), pro);
|
||||
return;
|
||||
}
|
||||
if (pro->pronoun_used == implied_pronoun) {
|
||||
Plugins::Call::refine_implicit_noun(p);
|
||||
return;
|
||||
}
|
||||
Node::set_type(p, PROPER_NOUN_NT);
|
||||
if ((Stock::usage_might_be_singular(pro->usage) == FALSE) &&
|
||||
(Assertions::Traverse::get_current_subject_plurality())) {
|
||||
|
@ -366,7 +369,6 @@ complicated description is as follows:
|
|||
|
||||
@<Refine what seems to be a noun phrase@> =
|
||||
Node::set_type(p, PROPER_NOUN_NT);
|
||||
@<Act on the special no-words word range which implies the player@>;
|
||||
@<Act on a newly-discovered property of something@>;
|
||||
if (forbid_nowhere == FALSE) @<Act on any special noun phrases significant to plugins@>;
|
||||
|
||||
|
@ -376,23 +378,6 @@ complicated description is as follows:
|
|||
if (creation_rule != FORBID_CREATION) Node::set_type(p, CREATED_NT);
|
||||
else Node::set_subject(p, NULL);
|
||||
|
||||
@ There's just one case where an empty word range can be used as a noun
|
||||
phrase -- when it represents an implicit noun, as here, where the person
|
||||
doing the carrying is implicit:
|
||||
|
||||
>> The black box is carried.
|
||||
|
||||
@<Act on the special no-words word range which implies the player@> =
|
||||
if (Annotations::read_int(p, implicitly_refers_to_ANNOT)) {
|
||||
Plugins::Call::refine_implicit_noun(p);
|
||||
return;
|
||||
}
|
||||
|
||||
if (Wordings::empty(Node::get_text(p))) {
|
||||
LOG("$T", current_sentence);
|
||||
internal_error("Tried to resolve malformed noun-phrase");
|
||||
}
|
||||
|
||||
@ The following is needed to handle something like "colour of the box",
|
||||
where "colour" is a property name. We must be careful, though, to avoid
|
||||
confusion with variable declarations:
|
||||
|
@ -865,8 +850,6 @@ void Assertions::Refiner::perform_called_surgery(parse_node *p) {
|
|||
parse_node *x_pn = p->down->down->next; /* "north" in the example */
|
||||
parse_node *name_pn = p->down->next; /* "hot and cold room" in the example */
|
||||
Node::set_type(p, RELATIONSHIP_NT);
|
||||
Annotations::write_int(p, relationship_node_type_ANNOT,
|
||||
Annotations::read_int(p->down, relationship_node_type_ANNOT));
|
||||
Node::set_type(p->down, CALLED_NT);
|
||||
p->down->next = x_pn;
|
||||
p->down->down->next = name_pn;
|
||||
|
|
|
@ -21,15 +21,15 @@ void Assertions::Relational::assert_subtree_in_relationship(parse_node *value, p
|
|||
Assertions::Relational::assert_subtree_in_relationship(value->down->next, relationship_subtree);
|
||||
return;
|
||||
}
|
||||
#ifdef IF_MODULE
|
||||
if (PL::MapDirections::get_mapping_relationship(relationship_subtree))
|
||||
@<Exceptional relationship nodes for map connections@>;
|
||||
pronoun_usage *pro = Node::get_pronoun(relationship_subtree->down);
|
||||
if ((pro) && (pro->pronoun_used == here_pronoun))
|
||||
@<Exceptional relationship nodes for placing objects "here"@>;
|
||||
#endif
|
||||
|
||||
switch(Annotations::read_int(relationship_subtree, relationship_node_type_ANNOT)) {
|
||||
case STANDARD_RELN: @<Standard relationship nodes (the vast majority)@>;
|
||||
#ifdef IF_MODULE
|
||||
case PARENTAGE_HERE_RELN: @<Exceptional relationship nodes for placing objects "here"@>;
|
||||
case DIRECTION_RELN: @<Exceptional relationship nodes for map connections@>;
|
||||
#endif
|
||||
default: internal_error("unknown RELATIONSHIP node type");
|
||||
}
|
||||
@<Standard relationship nodes (the vast majority)@>;
|
||||
}
|
||||
|
||||
@<Standard relationship nodes (the vast majority)@> =
|
||||
|
@ -37,7 +37,7 @@ void Assertions::Relational::assert_subtree_in_relationship(parse_node *value, p
|
|||
if (bp == NULL) internal_error("asserted bp-less relationship subtree");
|
||||
Properties::SettingRelations::fix_property_bp(bp);
|
||||
Assertions::Relational::assert_relation_between_subtrees(value, bp, relationship_subtree->down);
|
||||
break;
|
||||
return;
|
||||
|
||||
@<Exceptional relationship nodes for placing objects "here"@> =
|
||||
if (Node::get_subject(value) == NULL) {
|
||||
|
@ -51,7 +51,7 @@ void Assertions::Relational::assert_subtree_in_relationship(parse_node *value, p
|
|||
Calculus::Propositions::Abstract::to_put_here(),
|
||||
Node::get_subject(value), prevailing_mood);
|
||||
}
|
||||
break;
|
||||
return;
|
||||
|
||||
@<Exceptional relationship nodes for map connections@> =
|
||||
@<Make some paranoid checks that the map subtree is valid@>;
|
||||
|
@ -71,7 +71,7 @@ void Assertions::Relational::assert_subtree_in_relationship(parse_node *value, p
|
|||
"the source of a map connection has to be a room or door",
|
||||
"so sentences like 'The pink door is south of 0.' are not "
|
||||
"allowed.");
|
||||
break;
|
||||
return;
|
||||
}
|
||||
if ((iy == NULL) || (id == NULL))
|
||||
internal_error("malformed directional subtree");
|
||||
|
@ -86,7 +86,7 @@ void Assertions::Relational::assert_subtree_in_relationship(parse_node *value, p
|
|||
"a door or 'nowhere'",
|
||||
"but here the destination doesn't even seem to be an object.");
|
||||
}
|
||||
break;
|
||||
return;
|
||||
|
||||
@<Make some paranoid checks that the map subtree is valid@> =
|
||||
if ((relationship_subtree->down == NULL) ||
|
||||
|
@ -97,13 +97,13 @@ void Assertions::Relational::assert_subtree_in_relationship(parse_node *value, p
|
|||
StandardProblems::sentence_problem(Task::syntax_tree(), _p_(BelievedImpossible),
|
||||
"this is not straightforward in saying which room (or door) leads away from",
|
||||
"and should just name the source.");
|
||||
break;
|
||||
return;
|
||||
}
|
||||
if (Node::get_type(relationship_subtree->down->next) != PROPER_NOUN_NT) {
|
||||
StandardProblems::sentence_problem(Task::syntax_tree(), _p_(BelievedImpossible),
|
||||
"this is not straightforward in saying which direction the room (or door) lies in",
|
||||
"and should just name the direction.");
|
||||
break;
|
||||
return;
|
||||
}
|
||||
|
||||
@ =
|
||||
|
|
|
@ -271,3 +271,13 @@ instance *PL::MapDirections::get_mapping_direction(binary_predicate *bp) {
|
|||
return NULL;
|
||||
}
|
||||
|
||||
instance *PL::MapDirections::get_mapping_relationship(parse_node *p) {
|
||||
binary_predicate *bp = Node::get_relationship(p);
|
||||
if ((bp) && (Plugins::Manage::plugged_in(map_plugin))) {
|
||||
instance *dir = PL::MapDirections::get_mapping_direction(
|
||||
BinaryPredicates::get_reversal(bp));
|
||||
if (dir == NULL) dir = PL::MapDirections::get_mapping_direction(bp);
|
||||
return dir;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
Size of lexicon: 3102 excerpt meanings
|
||||
Stored among 841 words out of total vocabulary of 10553
|
||||
Stored among 841 words out of total vocabulary of 10555
|
||||
711 words have a start list: longest belongs to report (with 293 meanings)
|
||||
15 words have an end list: longest belongs to case (with 6 meanings)
|
||||
29 words have a middle list: longest belongs to to (with 4 meanings)
|
||||
|
|
|
@ -35,8 +35,6 @@ some new node types:
|
|||
@e occurrence_ANNOT /* |time_period|: any stipulation on occurrence */
|
||||
@e explicit_gender_marker_ANNOT /* |int|: used by PROPER NOUN nodes for evident genders */
|
||||
@e relationship_ANNOT /* |binary_predicate|: for RELATIONSHIP nodes */
|
||||
@e relationship_node_type_ANNOT /* |int|: what kind of inference this assertion makes */
|
||||
@e implicitly_refers_to_ANNOT /* |int|: this will implicitly refer to something */
|
||||
|
||||
=
|
||||
DECLARE_ANNOTATION_FUNCTIONS(verb, verb_usage)
|
||||
|
@ -98,12 +96,9 @@ void Diagrams::permissions(void) {
|
|||
Annotations::allow(COMMON_NOUN_NT, noun_ANNOT);
|
||||
Annotations::allow(RELATIONSHIP_NT, preposition_ANNOT);
|
||||
Annotations::allow(RELATIONSHIP_NT, relationship_ANNOT);
|
||||
Annotations::allow(RELATIONSHIP_NT, relationship_node_type_ANNOT);
|
||||
Annotations::allow_for_category(L3_NCAT, linguistic_error_here_ANNOT);
|
||||
Annotations::allow_for_category(L3_NCAT, explicit_gender_marker_ANNOT);
|
||||
Annotations::allow_for_category(L3_NCAT, article_ANNOT);
|
||||
Annotations::allow(UNPARSED_NOUN_NT, implicitly_refers_to_ANNOT);
|
||||
Annotations::allow(PROPER_NOUN_NT, implicitly_refers_to_ANNOT);
|
||||
}
|
||||
|
||||
@ And the following conveniently prints out a sentence in diagram form; this
|
||||
|
@ -147,16 +142,8 @@ void Diagrams::log_node(OUTPUT_STREAM, parse_node *pn) {
|
|||
Articles::write_usage(OUT, Node::get_article(pn));
|
||||
break;
|
||||
case RELATIONSHIP_NT:
|
||||
WRITE(" {meaning: ");
|
||||
switch (Annotations::read_int(pn, relationship_node_type_ANNOT)) {
|
||||
case STANDARD_RELN:
|
||||
if (Node::get_relationship(pn))
|
||||
WRITE("%S", Node::get_relationship(pn)->debugging_log_name);
|
||||
break;
|
||||
case PARENTAGE_HERE_RELN: WRITE("(here)"); break;
|
||||
case DIRECTION_RELN: WRITE("(direction)"); break;
|
||||
}
|
||||
WRITE("}");
|
||||
if (Node::get_relationship(pn))
|
||||
WRITE(" {meaning: %S}", Node::get_relationship(pn)->debugging_log_name);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -36,10 +36,12 @@ void Pronouns::write_usage(OUTPUT_STREAM, pronoun_usage *pu) {
|
|||
WRITE("}");
|
||||
}
|
||||
|
||||
@ The stock of pronouns is fixed at six. We are going to regard the three
|
||||
@ The stock of pronouns is fixed, as follows. We are going to regard the three
|
||||
persons as being different pronouns, since they make different references,
|
||||
though not every grammarian would agree. So we have three "agent pronouns" --
|
||||
those standing for subject or object -- and then three possessives.
|
||||
those standing for subject or object -- and then three possessives, and "here",
|
||||
which stands in the place of a noun referring to a location, and is thus also
|
||||
a pronoun.
|
||||
|
||||
=
|
||||
grammatical_category *pronouns_category = NULL;
|
||||
|
@ -49,6 +51,8 @@ pronoun *third_person_pronoun = NULL;
|
|||
pronoun *first_person_possessive_pronoun = NULL;
|
||||
pronoun *second_person_possessive_pronoun = NULL;
|
||||
pronoun *third_person_possessive_pronoun = NULL;
|
||||
pronoun *here_pronoun = NULL;
|
||||
pronoun *implied_pronoun = NULL;
|
||||
|
||||
void Pronouns::create_category(void) {
|
||||
pronouns_category = Stock::new_category(I"pronoun");
|
||||
|
@ -59,6 +63,8 @@ void Pronouns::create_category(void) {
|
|||
first_person_possessive_pronoun = Pronouns::new(I"first person possessive pronoun");
|
||||
second_person_possessive_pronoun = Pronouns::new(I"second person possessive pronoun");
|
||||
third_person_possessive_pronoun = Pronouns::new(I"third person possessive pronoun");
|
||||
here_pronoun = Pronouns::new(I"location pronoun");
|
||||
implied_pronoun = Pronouns::new(I"implied pronoun");
|
||||
}
|
||||
|
||||
pronoun *Pronouns::new(text_stream *name) {
|
||||
|
@ -92,6 +98,10 @@ small_word_set *possessive_pronouns_sws = NULL, /* all possessive pronouns of an
|
|||
*second_person_possessive_pronouns_sws = NULL,
|
||||
*third_person_possessive_pronouns_sws = NULL;
|
||||
|
||||
small_word_set *here_pronouns_sws = NULL;
|
||||
|
||||
pronoun_usage *implied_pronoun_usage = NULL;
|
||||
|
||||
@ And now we have to make them. The following capacity would be enough even if
|
||||
we were simultaneously dealing with four languages in which every inflection
|
||||
produced a different word. So it really is not going to run out.
|
||||
|
@ -143,6 +153,14 @@ void Pronouns::create_small_word_sets(void) {
|
|||
third_person_possessive_pronouns_sws = Stock::new_sws(PRONOUN_SWS_CAPACITY);
|
||||
Pronouns::add(third_person_possessive_pronouns_sws, <third-person-possessive-pronoun-table>,
|
||||
-1, THIRD_PERSON, third_person_possessive_pronoun);
|
||||
|
||||
here_pronouns_sws = Stock::new_sws(PRONOUN_SWS_CAPACITY);
|
||||
Pronouns::add(here_pronouns_sws, <here-pronoun-table>,
|
||||
-1, THIRD_PERSON, here_pronoun);
|
||||
|
||||
implied_pronoun_usage = CREATE(pronoun_usage);
|
||||
implied_pronoun_usage->pronoun_used = implied_pronoun;
|
||||
implied_pronoun_usage->usage = Stock::new_usage(implied_pronoun->in_stock, NULL);
|
||||
}
|
||||
|
||||
@ All of which use the following, which extracts inflected forms from the
|
||||
|
@ -250,6 +268,14 @@ parsed lies in the relevant small word set.
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
<here-pronoun> internal 1 {
|
||||
if (pronouns_sws == NULL) Pronouns::create_small_word_sets();
|
||||
vocabulary_entry *ve = Lexer::word(Wordings::first_wn(W));
|
||||
*XP = (pronoun_usage *) Stock::find_in_sws(here_pronouns_sws, ve);
|
||||
if (*XP) return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@h English pronouns.
|
||||
So, then, these nonterminals are not parsed by Preform but are instead used
|
||||
to stock small word sets above.
|
||||
|
@ -284,6 +310,10 @@ feminine singular, feminine plural.
|
|||
its their his their her their |
|
||||
its their his their her their
|
||||
|
||||
<here-pronoun-table> ::=
|
||||
here here here here here here |
|
||||
here here here here here here
|
||||
|
||||
@h Unit testing.
|
||||
The //linguistics-test// test case |pronouns| calls this.
|
||||
|
||||
|
|
|
@ -14,10 +14,10 @@ turn:
|
|||
relationships and properties (and other grammar meaningful only for references
|
||||
to physical objects and kinds) are parsed.
|
||||
|
||||
At levels (NP1) and (NP2), a NP produces a single |PROPER_NOUN_NT| node; at
|
||||
level (NP3), the result is a subtree contining |PROPER_NOUN_NT| and |AND_NT|
|
||||
At levels (NP1) and (NP2), a NP produces a single |UNPARSED_NOUN_NT| node; at
|
||||
level (NP3), the result is a subtree contining |UNPARSED_NOUN_NT| and |AND_NT|
|
||||
nodes; but at level (NP4) this subtree may include any of |RELATIONSHIP_NT|,
|
||||
|CALLED_NT|, |WITH_NT|, |AND_NT|, |KIND_NT| or |PROPER_NOUN_NT|.
|
||||
|CALLED_NT|, |WITH_NT|, |AND_NT|, |KIND_NT| or |UNPARSED_NOUN_NT|.
|
||||
|
||||
Because a small proportion of noun phrase subtrees is thrown away, due to
|
||||
backtracking on mistaken guesses at parsing of sentences, it is important
|
||||
|
@ -44,6 +44,14 @@ parse_node *NounPhrases::new_proper_noun(wording W) {
|
|||
return PN;
|
||||
}
|
||||
|
||||
parse_node *NounPhrases::new_pronoun(wording W, pronoun_usage *pro) {
|
||||
if (preform_lookahead_mode) return NULL;
|
||||
parse_node *PN = Node::new(PRONOUN_NT);
|
||||
Node::set_text(PN, W);
|
||||
Node::set_pronoun(PN, pro);
|
||||
return PN;
|
||||
}
|
||||
|
||||
@ Other node types are generated as follows. Note that these make nothing in
|
||||
lookahead mode; this prevents needless memory allocation.
|
||||
|
||||
|
@ -256,6 +264,36 @@ in the case of a participle like "holding".
|
|||
<np-relative-phrase-implicit> | ==> 0; *XP = RP[1]
|
||||
<np-relative-phrase-explicit> ==> 0; *XP = RP[1]
|
||||
|
||||
@ =
|
||||
<np-relative-phrase-implicit> ::=
|
||||
worn | ==> @<Act on the implicit RP worn@>; /* player\_plugin */
|
||||
carried | ==> @<Act on the implicit RP carried@>; /* player\_plugin */
|
||||
initially carried ==> @<Act on the implicit RP initially carried@>; /* player\_plugin */
|
||||
|
||||
@<Act on the implicit RP worn@> =
|
||||
#ifndef IF_MODULE
|
||||
return FALSE;
|
||||
#endif
|
||||
#ifdef IF_MODULE
|
||||
*X = 0; *XP = NounPhrases::PN_implied_rel(W, R_wearing);
|
||||
#endif
|
||||
|
||||
@<Act on the implicit RP carried@> =
|
||||
#ifndef IF_MODULE
|
||||
return FALSE;
|
||||
#endif
|
||||
#ifdef IF_MODULE
|
||||
*X = 0; *XP = NounPhrases::PN_implied_rel(W, R_carrying);
|
||||
#endif
|
||||
|
||||
@<Act on the implicit RP initially carried@> =
|
||||
#ifndef IF_MODULE
|
||||
return FALSE;
|
||||
#endif
|
||||
#ifdef IF_MODULE
|
||||
*X = 0; *XP = NounPhrases::PN_implied_rel(W, R_carrying);
|
||||
#endif
|
||||
|
||||
@ Inform guesses above that most English words ending in "-ing" are present
|
||||
participles -- like guessing, bluffing, cheating, and so on. But there is
|
||||
a conspicuous exception to this; so any word found in <non-participles>
|
||||
|
@ -298,7 +336,7 @@ directions, in particular, a little better.
|
|||
VERB_MEANING_LINGUISTICS_TYPE *R = VerbMeanings::get_regular_meaning_of_form(
|
||||
Verbs::find_form(permitted_verb, RP[1], NULL));
|
||||
if (R == NULL) return FALSE;
|
||||
*XP = NounPhrases::PN_rel(W, VerbMeanings::reverse_VMT(R), -1, RP[2]);
|
||||
*XP = NounPhrases::PN_rel(W, VerbMeanings::reverse_VMT(R), RP[2]);
|
||||
|
||||
@ Now the heart of it. There are basically seven constructions which can make
|
||||
complex NPs from simple ones: we've already seen one of these, the relative
|
||||
|
@ -312,8 +350,8 @@ into the subtree:
|
|||
= (text)
|
||||
RELATIONSHIP_NT "in" = containment
|
||||
CALLED_NT "called"
|
||||
PROPER_NOUN_NT "container" article:indefinite
|
||||
PROPER_NOUN_NT "flask and cap with flange" article:definite
|
||||
UNPARSED_NOUN_NT "container" article:indefinite
|
||||
UNPARSED_NOUN_NT "flask and cap with flange" article:definite
|
||||
=
|
||||
but we also want:
|
||||
|
||||
|
@ -321,7 +359,7 @@ but we also want:
|
|||
= (text)
|
||||
RELATIONSHIP_NT "in" = containment
|
||||
WITH_NT "with"
|
||||
PROPER_NOUN_NT "container" article:indefinite
|
||||
UNPARSED_NOUN_NT "container" article:indefinite
|
||||
AND_NT "and"
|
||||
PROPERTY_LIST_NT "carrying capacity 10"
|
||||
PROPERTY_LIST_NT "diameter 12"
|
||||
|
@ -377,7 +415,8 @@ speed optimisation, and doesn't affect the language's definition.
|
|||
<np-inner> <np-with-or-having-tail> | ==> 0; *XP = NounPhrases::PN_pair(WITH_NT, Wordings::one_word(R[2]), RP[1], RP[2])
|
||||
<np-inner> <np-and-tail> | ==> 0; *XP = NounPhrases::PN_pair(AND_NT, Wordings::one_word(R[2]), RP[1], RP[2])
|
||||
<np-kind-phrase> | ==> 0; *XP = RP[1]
|
||||
<agent-pronoun> | ==> GENERATE_RAW_NP; Node::set_type(*XP, PRONOUN_NT); Node::set_pronoun(*XP, RP[1]);
|
||||
<agent-pronoun> | ==> 0; *XP = NounPhrases::new_pronoun(W, RP[1])
|
||||
<here-pronoun> | ==> 0; *XP = NounPhrases::new_pronoun(W, RP[1])
|
||||
<np-articled-balanced> ==> 0; *XP = RP[1]
|
||||
|
||||
@ The tail of with-or-having parses for instance "with carrying capacity 5"
|
||||
|
@ -438,23 +477,18 @@ but definite articles are not.
|
|||
@h Relationship nodes.
|
||||
A modest utility routine to construct and annotate RELATIONSHIP nodes.
|
||||
|
||||
@d STANDARD_RELN 0 /* the default annotation value: never explicitly set */
|
||||
@d PARENTAGE_HERE_RELN 1 /* only ever set by the Spatial plugin */
|
||||
@d DIRECTION_RELN 2
|
||||
|
||||
=
|
||||
parse_node *NounPhrases::PN_rel(wording W, VERB_MEANING_LINGUISTICS_TYPE *R, int reln_type, parse_node *referent) {
|
||||
parse_node *NounPhrases::PN_rel(wording W, VERB_MEANING_LINGUISTICS_TYPE *R, parse_node *O) {
|
||||
if (preform_lookahead_mode) return NULL;
|
||||
if (O == NULL) internal_error("no object for relationship");
|
||||
parse_node *P = Node::new(RELATIONSHIP_NT);
|
||||
Node::set_text(P, W);
|
||||
if (R) Node::set_relationship(P, R);
|
||||
else if (reln_type >= 0)
|
||||
Annotations::write_int(P, relationship_node_type_ANNOT, reln_type);
|
||||
else internal_error("undefined relationship node");
|
||||
if (referent == NULL) {
|
||||
referent = NounPhrases::new_raw(W);
|
||||
Annotations::write_int(referent, implicitly_refers_to_ANNOT, TRUE);
|
||||
}
|
||||
P->down = referent;
|
||||
Node::set_relationship(P, R);
|
||||
P->down = O;
|
||||
return P;
|
||||
}
|
||||
parse_node *NounPhrases::PN_implied_rel(wording W, VERB_MEANING_LINGUISTICS_TYPE *R) {
|
||||
if (preform_lookahead_mode) return NULL;
|
||||
parse_node *O = NounPhrases::new_pronoun(W, implied_pronoun_usage);
|
||||
return NounPhrases::PN_rel(W, R, O);
|
||||
}
|
||||
|
|
|
@ -569,7 +569,7 @@ the exactly equivalent idea of the hat being worn by Darcy.
|
|||
if (meaning == NULL) return FALSE;
|
||||
if (meaning != VERB_MEANING_EQUALITY)
|
||||
V->next->next = NounPhrases::PN_rel(
|
||||
Node::get_text(V), VerbMeanings::reverse_VMT(meaning), STANDARD_RELN, O_PN);
|
||||
Node::get_text(V), VerbMeanings::reverse_VMT(meaning), O_PN);
|
||||
|
||||
@
|
||||
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
adjective: 137 items
|
||||
article: 2 items
|
||||
noun: 2381 items
|
||||
pronoun: 6 items
|
||||
pronoun: 8 items
|
||||
preposition: 273 items
|
||||
determiner: 22 items
|
||||
verb: 108 items
|
||||
verb_form: 386 items
|
||||
total in all categories: 3315
|
||||
total in all categories: 3317
|
||||
|
||||
adjective: A0'even'
|
||||
adjective: A1'odd'
|
||||
|
@ -2537,6 +2537,8 @@ pronoun: third person pronoun
|
|||
pronoun: first person possessive pronoun
|
||||
pronoun: second person possessive pronoun
|
||||
pronoun: third person possessive pronoun
|
||||
pronoun: location pronoun
|
||||
pronoun: implied pronoun
|
||||
|
||||
preposition: meant by
|
||||
preposition: meaning
|
||||
|
|
|
@ -38,3 +38,10 @@ SENTENCE_NT'you know us'
|
|||
RELATIONSHIP_NT'know' {meaning: knows-reversed}
|
||||
PRONOUN_NT'us' {first person pronoun n/m/f 1p p acc}
|
||||
|
||||
(6) anna is here
|
||||
|
||||
SENTENCE_NT'anna is here'
|
||||
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}
|
||||
PROPER_NOUN_NT'anna' {proper nom/acc f s}
|
||||
PRONOUN_NT'here' {location pronoun n/m/f s/p nom/acc 3p}
|
||||
|
||||
|
|
|
@ -38,3 +38,10 @@ SENTENCE_NT'you know us'
|
|||
RELATIONSHIP_NT'know' {meaning: knows-reversed}
|
||||
PRONOUN_NT'us' {first person pronoun n/m/f 1p p acc}
|
||||
|
||||
(6) anna is here
|
||||
|
||||
SENTENCE_NT'anna is here'
|
||||
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}
|
||||
PROPER_NOUN_NT'anna' {proper nom/acc f s}
|
||||
PRONOUN_NT'here' {location pronoun n/m/f s/p nom/acc 3p}
|
||||
|
||||
|
|
|
@ -7,3 +7,5 @@ I carry the Ming Vase.
|
|||
The sailors know them.
|
||||
|
||||
You know us.
|
||||
|
||||
Anna is here.
|
||||
|
|
Loading…
Reference in a new issue