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

Improved testing of assertion VP parsing

This commit is contained in:
Graham Nelson 2020-07-27 13:26:59 +01:00
parent 470ef75b90
commit c6766f6f95
52 changed files with 4203 additions and 3771 deletions

View file

@ -232,7 +232,7 @@ testing the existence of something.
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">not</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;s-phrase-to-decide&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> Conditions::negate(RP[1])</span>
<span class="Preform-function-syntax">&lt;existential-verb-phrase&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;existential-np&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">is/are</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;np-existential&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">is/are</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span>
<span class="Preform-function-syntax">&lt;s-phrase-to-decide&gt;</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">{</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">parse_node</span><span class="Preform-plain-syntax"> *</span><span class="Preform-identifier-syntax">p</span><span class="Preform-plain-syntax"> = </span><span class="Preform-identifier-syntax">Lexicon::retrieve</span><span class="Preform-plain-syntax">(</span><span class="Preform-constant-syntax">COND_PHRASE_MC</span><span class="Preform-plain-syntax">, </span><span class="Preform-identifier-syntax">W</span><span class="Preform-plain-syntax">);</span>

View file

@ -108,7 +108,7 @@ placeholder to stand for a missing noun phrase:
<pre class="Preform-displayed-code all-displayed-code code-font">
<span class="Preform-function-syntax">&lt;s-sentence&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;existential-np&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;s-existential-verb-tail&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="10-varc.html#SP4_2" class="named-paragraph-link"><span class="named-paragraph">Make SV provided object is descriptive</span><span class="named-paragraph-number">4.2</span></a></span><span class="Preform-constant-syntax">;</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;np-existential&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;s-existential-verb-tail&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="10-varc.html#SP4_2" class="named-paragraph-link"><span class="named-paragraph">Make SV provided object is descriptive</span><span class="named-paragraph-number">4.2</span></a></span><span class="Preform-constant-syntax">;</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;s-noun-phrase&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;s-general-verb-tail&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="10-varc.html#SP4_1" class="named-paragraph-link"><span class="named-paragraph">Make SV</span><span class="named-paragraph-number">4.1</span></a></span><span class="Preform-constant-syntax">;</span>
<span class="Preform-function-syntax">&lt;s-existential-verb-tail&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>

View file

@ -1442,7 +1442,7 @@ usages to the debugging log.
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">TRACING_LINGUISTICS_CALLBACK</span><span class="plain-syntax"> </span><a href="6-nv.html#SP27" class="function-link"><span class="function-syntax">NewVerbs::trace_parsing</span></a>
</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">NewVerbs::trace_parsing</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">NewVerbs::trace_parsing</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</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">SyntaxTree::is_trace_set</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP5" class="function-link"><span class="function-syntax">Task::syntax_tree</span></a><span class="plain-syntax">())) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>

View file

@ -489,6 +489,7 @@ be such that their head nodes each pass this test:
<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">text</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Diagrams::log_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</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">pn</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">node_type</span><span class="plain-syntax"> &gt;= </span><span class="identifier-syntax">UNKNOWN_NT</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">pn</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">node_type</span><span class="plain-syntax"> &lt;= </span><span class="constant-syntax">TEST_VALUE_NT</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-ptu.html#SP14_1" class="named-paragraph-link"><span class="named-paragraph">Log annotations of specification nodes</span><span class="named-paragraph-number">14.1</span></a></span>
@ -523,18 +524,14 @@ be such that their head nodes each pass this test:
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">HEADING_NT:</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" (level %d)"</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">heading_level_ANNOT</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">COMMON_NOUN_NT:</span><span class="plain-syntax"> </span><span class="identifier-syntax">show_refers</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</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">KIND_NT:</span><span class="plain-syntax"> </span><span class="identifier-syntax">show_refers</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</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">Diagrams::log_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</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="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">PROPER_NOUN_NT:</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Diagrams::log_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</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="constant-syntax">multiplicity_ANNOT</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">" (x%d)"</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">multiplicity_ANNOT</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">show_refers</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">VERB_NT:</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" ($V)"</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">verb_id_ANNOT</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Diagrams::log_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</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">TOKEN_NT:</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" [%d/%d]"</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">slash_class_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">pn</span><span class="plain-syntax">, </span><span class="constant-syntax">slash_dash_dash_ANNOT</span><span class="plain-syntax">)); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>

View file

@ -288,7 +288,7 @@ the massive <span class="extract"><span class="extract-syntax">Assertions::Maker
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Copular::make_assertion</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">Assertions::Copular::make_assertion</span></span>:<br/><a href="9-tbath.html#SP3">&#167;3</a><br/>Tables of Definitions - <a href="19-tod.html#SP6_3">&#167;6.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">px</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">py</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">traverse</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">pc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">problem_count</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (!(</span><span class="function-syntax">&lt;existential-np&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">))))</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (!(</span><span class="function-syntax">&lt;np-existential&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">))))</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP8" class="function-link"><span class="function-syntax">Assertions::Refiner::refine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">, </span><span class="constant-syntax">ALLOW_CREATION</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="9-rpt.html#SP8" class="function-link"><span class="function-syntax">Assertions::Refiner::refine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">, </span><span class="constant-syntax">ALLOW_CREATION</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">problem_count</span><span class="plain-syntax"> &gt; </span><span class="identifier-syntax">pc</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
@ -296,7 +296,7 @@ the massive <span class="extract"><span class="extract-syntax">Assertions::Maker
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">SyntaxTree::is_trace_set</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP5" class="function-link"><span class="function-syntax">Task::syntax_tree</span></a><span class="plain-syntax">())) </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"$T"</span><span class="plain-syntax">, </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;existential-np&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;np-existential&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">traverse</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><a href="9-tbath.html#SP7" class="function-link"><span class="function-syntax">Assertions::Copular::make_existential_assertion</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">px</span><span class="plain-syntax"> = </span><span class="identifier-syntax">py</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>

View file

@ -109,7 +109,7 @@ message had to be issued during its work.
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Creator::consult_the_creator</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Assertions::Creator::consult_the_creator</span></span>:<br/>To Be and To Have - <a href="9-tbath.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">px</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">py</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">problem_count_when_creator_started</span><span class="plain-syntax"> = </span><span class="identifier-syntax">problem_count</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;existential-np&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">)))</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;np-existential&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">)))</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-tc.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Perform creation duties on a "There is..." sentence</span><span class="named-paragraph-number">1.1</span></a></span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="9-tc.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Perform creation duties on a copular sentence</span><span class="named-paragraph-number">1.2</span></a></span><span class="plain-syntax">;</span>

View file

@ -271,7 +271,7 @@ first place: a lesson there for all of us.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="1-dgr.html#SP6" class="function-link"><span class="function-syntax">Diagrams::new_arity0</span></a><span class="plain-syntax">(</span><span class="constant-syntax">UNPARSED_NOUN_NT</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="function-syntax">Diagrams::new_DEFECTIVE</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">Diagrams::new_DEFECTIVE</span></span>:<br/>Verb Phrases - <a href="4-vp.html#SP2">&#167;2</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">Diagrams::new_DEFECTIVE</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">Diagrams::new_DEFECTIVE</span></span>:<br/>Noun Phrases - <a href="4-np.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">preform_lookahead_mode</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="1-dgr.html#SP6" class="function-link"><span class="function-syntax">Diagrams::new_arity0</span></a><span class="plain-syntax">(</span><span class="constant-syntax">DEFECTIVE_NOUN_NT</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
@ -281,25 +281,25 @@ first place: a lesson there for all of us.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="1-dgr.html#SP6" class="function-link"><span class="function-syntax">Diagrams::new_arity0</span></a><span class="plain-syntax">(</span><span class="constant-syntax">PROPER_NOUN_NT</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="function-syntax">Diagrams::new_PROPERTY_LIST</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Diagrams::new_PROPERTY_LIST</span></span>:<br/>Noun Phrases - <a href="4-np.html#SP16">&#167;16</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">Diagrams::new_PROPERTY_LIST</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Diagrams::new_PROPERTY_LIST</span></span>:<br/>Noun Phrases - <a href="4-np.html#SP17">&#167;17</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">preform_lookahead_mode</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="1-dgr.html#SP6" class="function-link"><span class="function-syntax">Diagrams::new_arity0</span></a><span class="plain-syntax">(</span><span class="constant-syntax">PROPERTY_LIST_NT</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="function-syntax">Diagrams::new_PRONOUN</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">Diagrams::new_PRONOUN</span></span>:<br/>Noun Phrases - <a href="4-np.html#SP15">&#167;15</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="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Diagrams::new_PRONOUN</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">Diagrams::new_PRONOUN</span></span>:<br/>Noun Phrases - <a href="4-np.html#SP16">&#167;16</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><a href="1-dgr.html#SP6" class="function-link"><span class="function-syntax">Diagrams::new_arity0</span></a><span class="plain-syntax">(</span><span class="constant-syntax">PRONOUN_NT</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>
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Diagrams::new_KIND</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">Diagrams::new_KIND</span></span>:<br/>Noun Phrases - <a href="4-np.html#SP18">&#167;18</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="identifier-syntax">O</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Diagrams::new_KIND</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">Diagrams::new_KIND</span></span>:<br/>Noun Phrases - <a href="4-np.html#SP19">&#167;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="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="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="1-dgr.html#SP6" class="function-link"><span class="function-syntax">Diagrams::new_arity0</span></a><span class="plain-syntax">(</span><span class="constant-syntax">KIND_NT</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="1-dgr.html#SP6" class="function-link"><span class="function-syntax">Diagrams::new_arity1</span></a><span class="plain-syntax">(</span><span class="constant-syntax">KIND_NT</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">O</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Diagrams::new_RELATIONSHIP</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">Diagrams::new_RELATIONSHIP</span></span>:<br/>Noun Phrases - <a href="4-np.html#SP14_1">&#167;14.1</a><br/>Verb Phrases - <a href="4-vp.html#SP9_1">&#167;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="function-syntax">Diagrams::new_RELATIONSHIP</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">Diagrams::new_RELATIONSHIP</span></span>:<br/>Noun Phrases - <a href="4-np.html#SP15_1">&#167;15.1</a><br/>Verb Phrases - <a href="4-vp.html#SP7_1">&#167;7.1</a></span></button><span class="plain-syntax">(</span><span class="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="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="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="1-dgr.html#SP6" class="function-link"><span class="function-syntax">Diagrams::new_arity1</span></a><span class="plain-syntax">(</span><span class="constant-syntax">RELATIONSHIP_NT</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">O</span><span class="plain-syntax">);</span>
@ -307,22 +307,22 @@ first place: a lesson there for all of us.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Diagrams::new_implied_RELATIONSHIP</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Diagrams::new_implied_RELATIONSHIP</span></span>:<br/>Noun Phrases - <a href="4-np.html#SP13_1">&#167;13.1</a>, <a href="4-np.html#SP13_2">&#167;13.2</a>, <a href="4-np.html#SP13_3">&#167;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="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Diagrams::new_implied_RELATIONSHIP</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Diagrams::new_implied_RELATIONSHIP</span></span>:<br/>Noun Phrases - <a href="4-np.html#SP14_1">&#167;14.1</a>, <a href="4-np.html#SP14_2">&#167;14.2</a>, <a href="4-np.html#SP14_3">&#167;14.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="constant-syntax">VERB_MEANING_LINGUISTICS_TYPE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">preform_lookahead_mode</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="1-dgr.html#SP7" class="function-link"><span class="function-syntax">Diagrams::new_RELATIONSHIP</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><a href="1-dgr.html#SP7" class="function-link"><span class="function-syntax">Diagrams::new_PRONOUN</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><a href="2-prn.html#SP5" class="function-link"><span class="function-syntax">Pronouns::get_implied</span></a><span class="plain-syntax">()));</span>
<span class="plain-syntax">}</span>
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Diagrams::new_AND</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">Diagrams::new_AND</span></span>:<br/>Noun Phrases - <a href="4-np.html#SP7">&#167;7</a>, <a href="4-np.html#SP8">&#167;8</a>, <a href="4-np.html#SP15">&#167;15</a>, <a href="4-np.html#SP16">&#167;16</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="identifier-syntax">X</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Y</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Diagrams::new_AND</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">Diagrams::new_AND</span></span>:<br/>Noun Phrases - <a href="4-np.html#SP8">&#167;8</a>, <a href="4-np.html#SP9">&#167;9</a>, <a href="4-np.html#SP16">&#167;16</a>, <a href="4-np.html#SP17">&#167;17</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="identifier-syntax">X</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Y</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">preform_lookahead_mode</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="1-dgr.html#SP6" class="function-link"><span class="function-syntax">Diagrams::new_arity2</span></a><span class="plain-syntax">(</span><span class="constant-syntax">AND_NT</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">X</span><span class="plain-syntax">, </span><span class="identifier-syntax">Y</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Diagrams::new_WITH</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">Diagrams::new_WITH</span></span>:<br/>Noun Phrases - <a href="4-np.html#SP15">&#167;15</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="identifier-syntax">X</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Y</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Diagrams::new_WITH</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">Diagrams::new_WITH</span></span>:<br/>Noun Phrases - <a href="4-np.html#SP16">&#167;16</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="identifier-syntax">X</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Y</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">preform_lookahead_mode</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="1-dgr.html#SP6" class="function-link"><span class="function-syntax">Diagrams::new_arity2</span></a><span class="plain-syntax">(</span><span class="constant-syntax">WITH_NT</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">X</span><span class="plain-syntax">, </span><span class="identifier-syntax">Y</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Diagrams::new_CALLED</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">Diagrams::new_CALLED</span></span>:<br/>Noun Phrases - <a href="4-np.html#SP15">&#167;15</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="identifier-syntax">X</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Y</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Diagrams::new_CALLED</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">Diagrams::new_CALLED</span></span>:<br/>Noun Phrases - <a href="4-np.html#SP16">&#167;16</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="identifier-syntax">X</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Y</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">preform_lookahead_mode</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="1-dgr.html#SP6" class="function-link"><span class="function-syntax">Diagrams::new_arity2</span></a><span class="plain-syntax">(</span><span class="constant-syntax">CALLED_NT</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">X</span><span class="plain-syntax">, </span><span class="identifier-syntax">Y</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>

View file

@ -163,7 +163,7 @@ its used wording "for the second time", and unused wording "X is 7".
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">tp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">used_wording</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="function-syntax">Occurrence::unused_wording</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">Occurrence::unused_wording</span></span>:<br/>Verb Phrases - <a href="4-vp.html#SP7_3_1_2_2">&#167;7.3.1.2.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">time_period</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tp</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="function-syntax">Occurrence::unused_wording</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">Occurrence::unused_wording</span></span>:<br/>Verb Phrases - <a href="4-vp.html#SP5_4_1_1_1_3_4">&#167;5.4.1.1.1.3.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">time_period</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tp</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">tp</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 time period"</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">tp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">unused_wording</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
@ -263,7 +263,7 @@ cannot contain any HR; this cuts down our parsing time considerably.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">time_period</span><span class="plain-syntax"> *</span><span class="function-syntax">Occurrence::parse</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">Occurrence::parse</span></span>:<br/>Verb Phrases - <a href="4-vp.html#SP7_3_1_2_2">&#167;7.3.1.2.2</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">time_period</span><span class="plain-syntax"> *</span><span class="function-syntax">Occurrence::parse</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">Occurrence::parse</span></span>:<br/>Verb Phrases - <a href="4-vp.html#SP5_4_1_1_1_3_4">&#167;5.4.1.1.1.3.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;historical-reference-possible&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_THROUGH_WORDING</span><span class="plain-syntax">(</span><span class="identifier-syntax">k</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="function-syntax">&lt;&lt;to&gt;&gt;</span><span class="plain-syntax"> = -1;</span>

View file

@ -88,7 +88,7 @@ to ask for a reversal to be performed when needed.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="constant-syntax">VERB_MEANING_LINGUISTICS_TYPE</span><span class="plain-syntax"> *</span><span class="function-syntax">VerbMeanings::reverse_VMT</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">VerbMeanings::reverse_VMT</span></span>:<br/><a href="3-vm.html#SP11">&#167;11</a><br/>Verb Usages - <a href="3-vu.html#SP12">&#167;12</a><br/>Noun Phrases - <a href="4-np.html#SP14_1">&#167;14.1</a><br/>Verb Phrases - <a href="4-vp.html#SP9_1">&#167;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">&#167;11</a><br/>Verb Usages - <a href="3-vu.html#SP12">&#167;12</a><br/>Noun Phrases - <a href="4-np.html#SP15_1">&#167;15.1</a><br/>Verb Phrases - <a href="4-vp.html#SP7_1">&#167;7.1</a></span></button><span class="plain-syntax">(</span><span class="constant-syntax">VERB_MEANING_LINGUISTICS_TYPE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">recto</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">VERB_MEANING_REVERSAL_LINGUISTICS_CALLBACK</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">VERB_MEANING_REVERSAL_LINGUISTICS_CALLBACK</span><span class="plain-syntax">(</span><span class="identifier-syntax">recto</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
@ -142,7 +142,7 @@ has been specified.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><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">int</span><span class="plain-syntax"> </span><span class="function-syntax">VerbMeanings::is_meaningless</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">VerbMeanings::is_meaningless</span></span>:<br/>Verbs - <a href="3-vrb.html#SP12">&#167;12</a>, <a href="3-vrb.html#SP12_2">&#167;12.2</a><br/>Verb Usages - <a href="3-vu.html#SP15">&#167;15</a><br/>Prepositions - <a href="3-prp.html#SP10">&#167;10</a>, <a href="3-prp.html#SP11">&#167;11</a><br/>Verb Phrases - <a href="4-vp.html#SP7_3_1">&#167;7.3.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">verb_meaning</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vm</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">VerbMeanings::is_meaningless</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">VerbMeanings::is_meaningless</span></span>:<br/>Verbs - <a href="3-vrb.html#SP12">&#167;12</a>, <a href="3-vrb.html#SP12_2">&#167;12.2</a><br/>Verb Usages - <a href="3-vu.html#SP15">&#167;15</a><br/>Prepositions - <a href="3-prp.html#SP10">&#167;10</a>, <a href="3-prp.html#SP11">&#167;11</a><br/>Verb Phrases - <a href="4-vp.html#SP5_4_1_1_1">&#167;5.4.1.1.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">verb_meaning</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vm</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">vm</span><span class="plain-syntax"> = </span><a href="3-vm.html#SP8" class="function-link"><span class="function-syntax">VerbMeanings::follow_indirection</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">vm</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">vm</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">regular_meaning</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">vm</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">special_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">TRUE</span><span class="plain-syntax">;</span>
@ -235,7 +235,7 @@ have to follow any indirection, and reverse if necessary.
</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::get_regular_meaning</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">VerbMeanings::get_regular_meaning</span></span>:<br/><a href="3-vm.html#SP13">&#167;13</a><br/>Verb Phrases - <a href="4-vp.html#SP9_1">&#167;9.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">verb_meaning</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vm</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</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">VerbMeanings::get_regular_meaning</span></span>:<br/><a href="3-vm.html#SP13">&#167;13</a><br/>Verb Phrases - <a href="4-vp.html#SP6">&#167;6</a>, <a href="4-vp.html#SP7_1">&#167;7.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">verb_meaning</span><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">vm</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rev</span><span class="plain-syntax"> = </span><span class="identifier-syntax">vm</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">take_meaning_reversed</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">vm</span><span class="plain-syntax"> = </span><a href="3-vm.html#SP8" class="function-link"><span class="function-syntax">VerbMeanings::follow_indirection</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vm</span><span class="plain-syntax">);</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">&#167;12</a><br/>Noun Phrases - <a href="4-np.html#SP14_1">&#167;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">&#167;12</a><br/>Noun Phrases - <a href="4-np.html#SP15_1">&#167;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>
@ -257,13 +257,13 @@ whether to reverse what that function does.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax"> *</span><span class="function-syntax">VerbMeanings::get_special_meaning_fn</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">VerbMeanings::get_special_meaning_fn</span></span>:<br/><a href="3-vm.html#SP9">&#167;9</a><br/>Verb Phrases - <a href="4-vp.html#SP8">&#167;8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">verb_meaning</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vm</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax"> *</span><span class="function-syntax">VerbMeanings::get_special_meaning_fn</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">VerbMeanings::get_special_meaning_fn</span></span>:<br/><a href="3-vm.html#SP9">&#167;9</a><br/>Verb Phrases - <a href="4-vp.html#SP6">&#167;6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">verb_meaning</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vm</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">vm</span><span class="plain-syntax"> = </span><a href="3-vm.html#SP8" class="function-link"><span class="function-syntax">VerbMeanings::follow_indirection</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">vm</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">vm</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">special_meaning</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">VerbMeanings::get_reversal_status_of_smf</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">VerbMeanings::get_reversal_status_of_smf</span></span>:<br/>Verb Phrases - <a href="4-vp.html#SP8">&#167;8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">verb_meaning</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vm</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">VerbMeanings::get_reversal_status_of_smf</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">VerbMeanings::get_reversal_status_of_smf</span></span>:<br/>Verb Phrases - <a href="4-vp.html#SP6">&#167;6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">verb_meaning</span><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">vm</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">vm</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">take_meaning_reversed</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>

View file

@ -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">&#167;12.1</a><br/>Verb Usages - <a href="3-vu.html#SP12">&#167;12</a><br/>Noun Phrases - <a href="4-np.html#SP14_1">&#167;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">&#167;12.1</a><br/>Verb Usages - <a href="3-vu.html#SP12">&#167;12</a><br/>Noun Phrases - <a href="4-np.html#SP15_1">&#167;15.1</a></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">-&gt;</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">-&gt;</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">-&gt;</span><span class="element-syntax">preposition</span><span class="plain-syntax"> == </span><span class="identifier-syntax">prep</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">vf</span><span class="plain-syntax">-&gt;</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>

View file

@ -529,7 +529,7 @@ list, with lower priority numbers before higher ones.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">root</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">verb</span><span class="plain-syntax"> *</span><span class="function-syntax">VerbUsages::get_verb</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">VerbUsages::get_verb</span></span>:<br/><a href="3-vu.html#SP2">&#167;2</a>, <a href="3-vu.html#SP11">&#167;11</a>, <a href="3-vu.html#SP15">&#167;15</a>, <a href="3-vu.html#SP16">&#167;16</a>, <a href="3-vu.html#SP17">&#167;17</a><br/>Verb Phrases - <a href="4-vp.html#SP7_3_1">&#167;7.3.1</a>, <a href="4-vp.html#SP9">&#167;9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">verb_usage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vu</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">verb</span><span class="plain-syntax"> *</span><span class="function-syntax">VerbUsages::get_verb</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">VerbUsages::get_verb</span></span>:<br/><a href="3-vu.html#SP2">&#167;2</a>, <a href="3-vu.html#SP11">&#167;11</a>, <a href="3-vu.html#SP15">&#167;15</a>, <a href="3-vu.html#SP16">&#167;16</a>, <a href="3-vu.html#SP17">&#167;17</a><br/>Verb Phrases - <a href="4-vp.html#SP5_4_1_1_1">&#167;5.4.1.1.1</a>, <a href="4-vp.html#SP7">&#167;7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">verb_usage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vu</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vu</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-vrb.html#SP2" class="function-link"><span class="function-syntax">Verbs::from_lcon</span></a><span class="plain-syntax">(</span><a href="1-sc.html#SP9" class="function-link"><span class="function-syntax">Stock::first_form_in_usage</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vu</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">usage</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>
@ -559,7 +559,7 @@ confine ourselves to words flagged in the vocabulary as being used in verbs.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">VerbUsages::parse_against_verb</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">VerbUsages::parse_against_verb</span></span>:<br/><a href="3-vu.html#SP15">&#167;15</a>, <a href="3-vu.html#SP16">&#167;16</a>, <a href="3-vu.html#SP17">&#167;17</a>, <a href="3-vu.html#SP18">&#167;18</a>, <a href="3-vu.html#SP19">&#167;19</a>, <a href="3-vu.html#SP20">&#167;20</a><br/>Verb Phrases - <a href="4-vp.html#SP7_3_1">&#167;7.3.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="reserved-syntax">verb_usage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vu</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">VerbUsages::parse_against_verb</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">VerbUsages::parse_against_verb</span></span>:<br/><a href="3-vu.html#SP15">&#167;15</a>, <a href="3-vu.html#SP16">&#167;16</a>, <a href="3-vu.html#SP17">&#167;17</a>, <a href="3-vu.html#SP18">&#167;18</a>, <a href="3-vu.html#SP19">&#167;19</a>, <a href="3-vu.html#SP20">&#167;20</a><br/>Verb Phrases - <a href="4-vp.html#SP5_4_1_1_1">&#167;5.4.1.1.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="reserved-syntax">verb_usage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vu</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">vu</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">vu_allow_unexpected_upper_case</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Word::unexpectedly_upper_case</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)))) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> -1;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">WordAssemblages::parse_as_strictly_initial_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, &amp;(</span><span class="identifier-syntax">vu</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">vu_text</span><span class="plain-syntax">));</span>

View file

@ -79,9 +79,9 @@ MathJax = {
<!--Weave of 'Noun Phrases' generated by Inweb-->
<div class="breadcrumbs">
<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>
<p class="purpose">To construct noun-phrase subtrees for assertion sentences.</p>
<ul class="toc"><li><a href="4-np.html#SP1">&#167;1. Hierarchy of noun phrases</a></li><li><a href="4-np.html#SP2">&#167;2. Raw nounphrases (NP1)</a></li><li><a href="4-np.html#SP4">&#167;4. Articled nounphrases (NP2)</a></li><li><a href="4-np.html#SP7">&#167;7. List-divided nounphrases (NP3)</a></li><li><a href="4-np.html#SP9">&#167;9. Full nounphrases (NP4)</a></li></ul><hr class="tocbar">
<ul class="toc"><li><a href="4-np.html#SP1">&#167;1. Hierarchy of noun phrases</a></li><li><a href="4-np.html#SP2">&#167;2. Raw nounphrases (NP1)</a></li><li><a href="4-np.html#SP5">&#167;5. Articled nounphrases (NP2)</a></li><li><a href="4-np.html#SP8">&#167;8. List-divided nounphrases (NP3)</a></li><li><a href="4-np.html#SP10">&#167;10. Full nounphrases (NP4)</a></li></ul><hr class="tocbar">
<p class="commentary firstcommentary"><a id="SP1"></a><b>&#167;1. Hierarchy of noun phrases. </b>Noun phrase nodes are built at four levels of elaboration, which we take in
turn:
@ -114,7 +114,15 @@ used in a balanced way: thus <span class="extract"><span class="Preform-extract-
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;np-unparsed&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</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="SP4"></a><b>&#167;4. Articled nounphrases (NP2). </b>Now an initial article becomes an annotation and is removed from the text.
<p class="commentary firstcommentary"><a id="SP4"></a><b>&#167;4. </b>The noun phrase of an existential sentence is recognised thus:
</p>
<pre class="Preform-displayed-code all-displayed-code code-font">
<span class="Preform-function-syntax">&lt;np-existential&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">there</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> 0; *XP = Diagrams::new_DEFECTIVE(W);</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="SP5"></a><b>&#167;5. Articled nounphrases (NP2). </b>Now an initial article becomes an annotation and is removed from the text.
Note that
</p>
@ -140,15 +148,15 @@ indefinite, the latter has precedence.
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;np-articled&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</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="SP5"></a><b>&#167;5. </b></p>
<p class="commentary firstcommentary"><a id="SP6"></a><b>&#167;6. </b></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::add_article</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::add_article</span></span>:<br/><a href="4-np.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="reserved-syntax">article_usage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">au</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">NounPhrases::add_article</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::add_article</span></span>:<br/><a href="4-np.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="reserved-syntax">article_usage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">au</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::set_article</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">au</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>
</pre>
<p class="commentary firstcommentary"><a id="SP6"></a><b>&#167;6. </b>The following function is only occasionally useful (for example, Inform
<p class="commentary firstcommentary"><a id="SP7"></a><b>&#167;7. </b>The following function is only occasionally useful (for example, Inform
uses it in <a href="../core-module/19-tod.html" class="internal">Tables of Definitions (in core)</a>); takes an existing raw node
and retrospectively applies &lt;np-articled&gt; to it.
</p>
@ -162,7 +170,7 @@ and retrospectively applies &lt;np-articled&gt; to it.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">RAW_NP</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP7"></a><b>&#167;7. List-divided nounphrases (NP3). </b>An "articled list" matches text like "the lion, a witch, and some wardrobes"
<p class="commentary firstcommentary"><a id="SP8"></a><b>&#167;8. List-divided nounphrases (NP3). </b>An "articled list" matches text like "the lion, a witch, and some wardrobes"
as a list of articled noun phrases.
</p>
@ -182,7 +190,7 @@ means that an and or a comma inside brackets can never be a divider. Thus
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">{_,/and}</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;np-articled-list&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</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="SP8"></a><b>&#167;8. </b>"Alternative lists" divide up at "or" rather than "and", thus matching text
<p class="commentary firstcommentary"><a id="SP9"></a><b>&#167;9. </b>"Alternative lists" divide up at "or" rather than "and", thus matching text
such as "voluminous, middling big or poky", and the individual entries are not
articled.
</p>
@ -198,7 +206,7 @@ articled.
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">{_,/or}</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;np-alternative-list&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</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="SP9"></a><b>&#167;9. Full nounphrases (NP4). </b>When fully parsing the structure of a nounphrase, we have five different
<p class="commentary firstcommentary"><a id="SP10"></a><b>&#167;10. Full nounphrases (NP4). </b>When fully parsing the structure of a nounphrase, we have five different
constructions in play, and need to work out their precedence over each other:
rather as <span class="extract"><span class="Preform-extract-syntax">*</span></span> takes precedence over <span class="extract"><span class="Preform-extract-syntax">+</span></span> in arithmetic expressions in C, so
here we have &mdash;
@ -225,7 +233,7 @@ the word "kind" alone, or "kind of N" for some atomic noun N.
<p class="commentary">See <a href="P-asd.html" class="internal">About Sentence Diagrams</a> for numerous examples.
</p>
<p class="commentary firstcommentary"><a id="SP10"></a><b>&#167;10. </b>Full nounphrase parsing varies slightly according to the position of the
<p class="commentary firstcommentary"><a id="SP11"></a><b>&#167;11. </b>Full nounphrase parsing varies slightly according to the position of the
phrase, i.e., whether it is in the subject or object position. Thus "X is Y"
or "X is in Y" would lead to X being parsed by &lt;np-as-subject&gt;, Y by &lt;np-as-object&gt;.
They are identical except that:
@ -238,16 +246,16 @@ looks like a participle.
</li></ul>
<pre class="Preform-displayed-code all-displayed-code code-font">
<span class="Preform-function-syntax">&lt;np-as-subject&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;existential-np&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> 0; *XP = RP[1]</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;np-existential&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> 0; *XP = RP[1]</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;if-not-deliberately-capitalised&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;np-relative-phrase-limited&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> 0; *XP = RP[2]</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;np-nonrelative&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> 0; *XP = RP[1]</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;np-nonrelative&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> 0; *XP = RP[1]</span>
<span class="Preform-function-syntax">&lt;np-as-object&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;if-not-deliberately-capitalised&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;np-relative-phrase-unlimited&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> 0; *XP = RP[2]</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;np-nonrelative&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> 0; *XP = RP[1]</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;np-nonrelative&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</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="SP11"></a><b>&#167;11. </b>To explain the limitation here: RPs only exist in the subject position due
<p class="commentary firstcommentary"><a id="SP12"></a><b>&#167;12. </b>To explain the limitation here: RPs only exist in the subject position due
to subject-verb inversion in English. Thus, "In the Garden is a tortoise" is a
legal inversion of "A tortoise is in the Garden". Following this logic we ought
to accept Yoda-like inversions such as "Holding the light sabre is the young Jedi",
@ -267,7 +275,7 @@ called "Area".
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;np-relative-phrase-explicit&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</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="SP12"></a><b>&#167;12. </b>Inform guesses above that most English words ending in "-ing" are present
<p class="commentary firstcommentary"><a id="SP13"></a><b>&#167;13. </b>Inform guesses above that most English words ending in "-ing" are present
participles &mdash; like guessing, bluffing, cheating, and so on. But there is
a conspicuous exception to this; so any word found in &lt;non-participles&gt;
is never treated as a participle.
@ -286,19 +294,19 @@ 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="SP13"></a><b>&#167;13. </b>An implicit RP is a word like "carried", or "worn", on its own &mdash; this
<p class="commentary firstcommentary"><a id="SP14"></a><b>&#167;14. </b>An implicit RP is a word like "carried", or "worn", on its own &mdash; this
implies a relation to some unspecified noun. We represent that in the tree
using the "implied noun" pronoun. For now, these are fixed.
</p>
<pre class="Preform-displayed-code all-displayed-code code-font">
<span class="Preform-function-syntax">&lt;np-relative-phrase-implicit&gt;</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">==&gt;</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-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">==&gt;</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-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">==&gt;</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-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">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-np.html#SP14_1" class="named-paragraph-link"><span class="named-paragraph">Act on the implicit RP worn</span><span class="named-paragraph-number">14.1</span></a></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">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-np.html#SP14_2" class="named-paragraph-link"><span class="named-paragraph">Act on the implicit RP carried</span><span class="named-paragraph-number">14.2</span></a></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">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-np.html#SP14_3" class="named-paragraph-link"><span class="named-paragraph">Act on the implicit RP initially carried</span><span class="named-paragraph-number">14.3</span></a></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>&#167;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 class="commentary firstcommentary"><a id="SP14_1"></a><b>&#167;14.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">14.1</span></span><span class="Preform-comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -309,8 +317,8 @@ using the "implied noun" pronoun. For now, these are fixed.
<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="1-dgr.html#SP7" class="function-link"><span class="function-syntax">Diagrams::new_implied_RELATIONSHIP</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">&#167;13</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP13_2"></a><b>&#167;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>
<ul class="endnotetexts"><li>This code is used in <a href="4-np.html#SP14">&#167;14</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP14_2"></a><b>&#167;14.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">14.2</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -321,8 +329,8 @@ using the "implied noun" pronoun. For now, these are fixed.
<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="1-dgr.html#SP7" class="function-link"><span class="function-syntax">Diagrams::new_implied_RELATIONSHIP</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">&#167;13</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP13_3"></a><b>&#167;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>
<ul class="endnotetexts"><li>This code is used in <a href="4-np.html#SP14">&#167;14</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP14_3"></a><b>&#167;14.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">14.3</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -333,8 +341,8 @@ using the "implied noun" pronoun. For now, these are fixed.
<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="1-dgr.html#SP7" class="function-link"><span class="function-syntax">Diagrams::new_implied_RELATIONSHIP</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">&#167;13</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP14"></a><b>&#167;14. </b>An explicit RP is one which uses a preposition and then a noun phrase: for
<ul class="endnotetexts"><li>This code is used in <a href="4-np.html#SP14">&#167;14</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP15"></a><b>&#167;15. </b>An explicit RP is one which uses a preposition and then a noun phrase: for
example, "on the table" is explicit.
</p>
@ -348,10 +356,10 @@ directions, in particular, a little better. But it means we do not recognise
<span class="Preform-function-syntax">&lt;np-relative-phrase-explicit&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;permitted-preposition&gt;</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">==&gt;</span><span class="Preform-plain-syntax"> 0; return FAIL_NONTERMINAL;</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;permitted-preposition&gt;</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">==&gt;</span><span class="Preform-plain-syntax"> 0; return FAIL_NONTERMINAL;</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;permitted-preposition&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;np-nonrelative&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> </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-plain-syntax"> </span><span class="Preform-function-syntax">&lt;permitted-preposition&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;np-nonrelative&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> </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>
</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>&#167;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>&#167;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">
@ -360,8 +368,8 @@ directions, in particular, a little better. But it means we do not recognise
<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="1-dgr.html#SP7" class="function-link"><span class="function-syntax">Diagrams::new_RELATIONSHIP</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><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">&#167;14</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP15"></a><b>&#167;15. </b>We have now disposed of <span class="extract"><span class="extract-syntax">RELATIONSHIP_NT</span></span> and are left with the constructs:
<ul class="endnotetexts"><li>This code is used in <a href="4-np.html#SP15">&#167;15</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP16"></a><b>&#167;16. </b>We have now disposed of <span class="extract"><span class="extract-syntax">RELATIONSHIP_NT</span></span> and are left with the constructs:
</p>
<pre class="Preform-displayed-code all-displayed-code code-font">
@ -397,7 +405,7 @@ text like "smile X-)" will in fact match &lt;np-nonrelative&gt;.
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;np-nonrelative&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</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>&#167;16. </b>The tail of with-or-having parses for instance "with carrying capacity 5"
<p class="commentary firstcommentary"><a id="SP17"></a><b>&#167;17. </b>The tail of with-or-having parses for instance "with carrying capacity 5"
in the NP
</p>
@ -434,7 +442,7 @@ bogus object called "locking it".)
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> 0; *XP = Diagrams::new_PROPERTY_LIST(W);</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>&#167;17. </b>The "and" tail is much easier:
<p class="commentary firstcommentary"><a id="SP18"></a><b>&#167;18. </b>The "and" tail is much easier:
</p>
<pre class="Preform-displayed-code all-displayed-code code-font">
@ -443,7 +451,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">&lt;np-operand&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</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>&#167;18. </b>Kind phrases are easier:
<p class="commentary firstcommentary"><a id="SP19"></a><b>&#167;19. </b>Kind phrases are easier:
</p>
<blockquote>

File diff suppressed because it is too large Load diff

View file

@ -433,6 +433,24 @@ to noun phrases, we can have serial lists:
comma is allowed but not required.
</p>
<p class="commentary"><span class="extract"><span class="extract-syntax">AND_NT</span></span> in conjunction with <span class="extract"><span class="extract-syntax">RELATIONSHIP_NT</span></span> can allow for zeugmas.
Zeugma is sometimes thought to be rare in English and to be basically a comedy
effect, as in the famous Flanders and Swann lyric:
</p>
<blockquote>
<p>She made no reply, up her mind, and a dash for the door.</p>
</blockquote>
<p class="commentary">in which three completely different senses of the same verb are used,
but in which the verb appears only once. It might seem reasonable just to
disallow this. Unfortunately, less extreme zeugmas occur all the time:
</p>
<blockquote>
<p>The red door is west of the Dining Room and east of the Ballroom.</p>
</blockquote>
<p class="commentary firstcommentary"><a id="SP12"></a><b>&#167;12. </b>Now we introduce pronouns to the mix. These are detected automatically
by <a href="index.html" class="internal">linguistics</a>, and exist in nominative and accusative cases in
English. Note the difference in annotations between "them" and "you",

View file

@ -161,7 +161,7 @@ decide which possible reading of the meaning of a noun makes the best sense in
context &mdash; see <a href="2-nns.html#SP14" class="internal">Nouns::disambiguate</a>.
</li><li>&#9679; <span class="extract"><span class="extract-syntax">TRACING_LINGUISTICS_CALLBACK</span></span>, if provided, can return <span class="extract"><span class="extract-syntax">TRUE</span></span> to allow
extensive details of verb parsing to be copied to the debugging log. See
<a href="4-vp.html#SP10" class="internal">VerbPhrases::tracing</a>.
<a href="4-vp.html#SP3" class="internal">VerbPhrases::tracing</a>.
</li><li>&#9679; <span class="extract"><span class="extract-syntax">VERB_MEANING_REVERSAL_LINGUISTICS_CALLBACK</span></span> reverses the meaning of a verb:
in the sense that the reversal of "A knows B" would be "A is known by B",
or in other words "B knows A". See <a href="3-vm.html#SP2" class="internal">VerbMeanings::reverse_VMT</a>.

View file

@ -177,12 +177,12 @@
<li>
<p class="sectionentry"><a href="4-np.html">
<spon class="sectiontitle">Noun Phrases</span></a> -
<span class="sectionpurpose">To construct noun-phrase subtrees for assertion sentences found in the parse tree.</span></p>
<span class="sectionpurpose">To construct noun-phrase subtrees for assertion sentences.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-vp.html">
<spon class="sectiontitle">Verb Phrases</span></a> -
<span class="sectionpurpose">To construct standard verb-phrase nodes in the parse tree.</span></p>
<span class="sectionpurpose">To construct verb-phrase subtrees for assertion sentences.</span></p>
</li>
</ul>
</li>

View file

@ -81,7 +81,7 @@ sentence.
</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">Banking::load_from_file</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">Banking::load_from_file</span></span>:<br/>Program Control - <a href="1-pc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">arg</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Banking::load_from_file</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">Banking::load_from_file</span></span>:<br/>Program Control - <a href="1-pc.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">arg</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><a href="../../../inweb/docs/foundation-module/3-fln.html#SP3" class="function-link"><span class="function-syntax">Filenames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="constant-syntax">feed_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">FD</span><span class="plain-syntax"> = </span><a href="../words-module/3-fds.html#SP2" class="function-link"><span class="function-syntax">Feeds::begin</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">source_file</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sf</span><span class="plain-syntax"> = </span><a href="../words-module/3-tff.html#SP3" class="function-link"><span class="function-syntax">TextFromFiles::feed_into_lexer</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="constant-syntax">NULL_GENERAL_POINTER</span><span class="plain-syntax">);</span>

View file

@ -71,7 +71,7 @@ sentences &mdash; the answer being, all of them. (Inform is more restrictive.)
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">parse_node_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">syntax_tree</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">parse_node_tree</span><span class="plain-syntax"> *</span><span class="function-syntax">Diagramming::test_diagrams</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">Diagramming::test_diagrams</span></span>:<br/>Program Control - <a href="1-pc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">arg</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">raw</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">parse_node_tree</span><span class="plain-syntax"> *</span><span class="function-syntax">Diagramming::test_diagrams</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">Diagramming::test_diagrams</span></span>:<br/>Program Control - <a href="1-pc.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">arg</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">raw</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">syntax_tree</span><span class="plain-syntax"> = </span><a href="../syntax-module/2-st.html#SP2" class="function-link"><span class="function-syntax">SyntaxTree::new</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-dgr2.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">Turn the file into a syntax tree</span><span class="named-paragraph-number">2.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-dgr2.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Use the linguistics module on each sentence</span><span class="named-paragraph-number">2.2</span></a></span><span class="plain-syntax">;</span>

View file

@ -56,7 +56,7 @@ tidy syntax tree to look at. Instead, we'll just print it out.
</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">Interpreting::go</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">Interpreting::go</span></span>:<br/>Program Control - <a href="1-pc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">parse_node_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">syntax_tree</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Interpreting::go</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">Interpreting::go</span></span>:<br/>Program Control - <a href="1-pc.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">parse_node_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">syntax_tree</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="../syntax-module/2-st.html#SP10" class="function-link"><span class="function-syntax">SyntaxTree::traverse</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">syntax_tree</span><span class="plain-syntax">, </span><a href="1-int.html#SP1" class="function-link"><span class="function-syntax">Interpreting::diagram</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
@ -64,13 +64,9 @@ tidy syntax tree to look at. Instead, we'll just print it out.
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Interpreting::diagram</span><span class="plain-syntax">(</span><span class="reserved-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../syntax-module/2-pn.html#SP5" class="function-link"><span class="function-syntax">Node::get_type</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">) == </span><span class="constant-syntax">SENTENCE_NT</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">save_DL</span><span class="plain-syntax"> = </span><span class="identifier-syntax">DL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">DL</span><span class="plain-syntax"> = </span><span class="constant-syntax">STDOUT</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/2-str.html#SP20" class="function-link"><span class="function-syntax">Streams::enable_debugging</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">DL</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">"(%d) %W\n\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">sentence_counter</span><span class="plain-syntax">++, </span><a href="../syntax-module/2-pn.html#SP4" class="function-link"><span class="function-syntax">Node::get_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="../syntax-module/2-pn.html#SP15" class="function-link"><span class="function-syntax">Node::log_subtree</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">DL</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">"\n"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">DL</span><span class="plain-syntax"> = </span><span class="identifier-syntax">save_DL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
</pre>

View file

@ -12,6 +12,14 @@
<link href="../docs-assets/Navigation.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Fonts.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Base.css" rel="stylesheet" rev="stylesheet" type="text/css">
<script>
function togglePopup(material_id) {
var popup = document.getElementById(material_id);
popup.classList.toggle("show");
}
</script>
<link href="../docs-assets/Popups.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
</head>
@ -50,6 +58,8 @@
<span class="definition-keyword">enum</span> <span class="constant-syntax">VOCABULARY_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TEST_DIAGRAMS_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RAW_DIAGRAMS_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TRACE_DIAGRAMS_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VIABILITY_DIAGRAMS_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TEST_ARTICLES_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TEST_PRONOUNS_CLSW</span>
</pre>
@ -75,6 +85,10 @@
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"test sentence diagrams from text in X"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">RAW_DIAGRAMS_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"raw"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"test raw sentence diagrams from text in X"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">TRACE_DIAGRAMS_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"trace"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"test raw sentence diagrams from text in X with tracing on"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VIABILITY_DIAGRAMS_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"viability"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"show viability map for sentences in X"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VOCABULARY_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"vocabulary"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"read vocabulary from file X for use in -diagram tests"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">TEST_ARTICLES_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"test-articles"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">,</span>
@ -82,7 +96,7 @@
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">TEST_PRONOUNS_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"test-pronouns"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"test pronoun stock (ignoring X)"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/3-cla.html#SP8" class="function-link"><span class="function-syntax">CommandLine::read</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">argc</span><span class="plain-syntax">, </span><span class="identifier-syntax">argv</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, &amp;</span><a href="1-pc.html#SP1" class="function-link"><span class="function-syntax">Main::respond</span></a><span class="plain-syntax">, &amp;</span><a href="1-pc.html#SP1" class="function-link"><span class="function-syntax">Main::ignore</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/3-cla.html#SP8" class="function-link"><span class="function-syntax">CommandLine::read</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">argc</span><span class="plain-syntax">, </span><span class="identifier-syntax">argv</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, &amp;</span><a href="1-pc.html#SP3" class="function-link"><span class="function-syntax">Main::respond</span></a><span class="plain-syntax">, &amp;</span><a href="1-pc.html#SP3" class="function-link"><span class="function-syntax">Main::ignore</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="../words-module/1-wm.html#SP3" class="function-link"><span class="function-syntax">WordsModule::end</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="../inflections-module/1-im.html#SP3" class="function-link"><span class="function-syntax">InflectionsModule::end</span></a><span class="plain-syntax">();</span>
@ -92,10 +106,37 @@
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/1-fm.html#SP9" class="function-link"><span class="function-syntax">Foundation::end</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP2"></a><b>&#167;2. </b></p>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Main::respond</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">arg</span><span class="plain-syntax">, </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">state</span><span class="plain-syntax">) {</span>
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">TRACING_LINGUISTICS_CALLBACK</span><span class="plain-syntax"> </span><a href="1-pc.html#SP2" class="function-link"><span class="function-syntax">Main::trace_parsing</span></a>
</pre>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">trace_diagrams_mode</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">viability_diagrams_mode</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Main::trace_parsing</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</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">trace_diagrams_mode</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">trace_diagrams_mode</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">A</span><span class="plain-syntax"> == </span><span class="constant-syntax">VIABILITY_VP_TRACE</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">viability_diagrams_mode</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP3"></a><b>&#167;3. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Main::respond</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">Main::respond</span></span>:<br/><a href="1-pc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">arg</span><span class="plain-syntax">, </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">state</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">save_DL</span><span class="plain-syntax"> = </span><span class="identifier-syntax">DL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">DL</span><span class="plain-syntax"> = </span><span class="constant-syntax">STDOUT</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/2-str.html#SP20" class="function-link"><span class="function-syntax">Streams::enable_debugging</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">DL</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">id</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">VOCABULARY_CLSW:</span><span class="plain-syntax"> </span><a href="1-bnk.html#SP2" class="function-link"><span class="function-syntax">Banking::load_from_file</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</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">TRACE_DIAGRAMS_CLSW:</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">trace_diagrams_mode</span><span class="plain-syntax"> = </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="1-dgr2.html#SP2" class="function-link"><span class="function-syntax">Diagramming::test_diagrams</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">, </span><span class="constant-syntax">TRUE</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">VIABILITY_DIAGRAMS_CLSW:</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">viability_diagrams_mode</span><span class="plain-syntax"> = </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="1-dgr2.html#SP2" class="function-link"><span class="function-syntax">Diagramming::test_diagrams</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">, </span><span class="constant-syntax">TRUE</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">RAW_DIAGRAMS_CLSW:</span>
<span class="plain-syntax"> </span><a href="1-int.html#SP1" class="function-link"><span class="function-syntax">Interpreting::go</span></a><span class="plain-syntax">(</span><a href="1-dgr2.html#SP2" class="function-link"><span class="function-syntax">Diagramming::test_diagrams</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">, </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
@ -111,9 +152,10 @@
<span class="plain-syntax"> </span><a href="../linguistics-module/2-prn.html#SP10" class="function-link"><span class="function-syntax">Pronouns::test</span></a><span class="plain-syntax">(</span><span class="constant-syntax">STDOUT</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><span class="identifier-syntax">DL</span><span class="plain-syntax"> = </span><span class="identifier-syntax">save_DL</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">Main::ignore</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">arg</span><span class="plain-syntax">, </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">state</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Main::ignore</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">Main::ignore</span></span>:<br/><a href="1-pc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">arg</span><span class="plain-syntax">, </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">state</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/3-em.html#SP2" class="function-link"><span class="function-syntax">Errors::fatal</span></a><span class="plain-syntax">(</span><span class="string-syntax">"only switches may be used at the command line"</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>

View file

@ -81,7 +81,7 @@ annotations in the following.
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">parse_node_annotation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next_annotation</span><span class="plain-syntax">;</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">parse_node_annotation</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure parse_node_annotation is accessed in 2/pn, 2/tv and here.</li></ul>
<ul class="endnotetexts"><li>The structure parse_node_annotation is accessed in 2/tv and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP2"></a><b>&#167;2. </b>A new annotation is like a blank luggage ticket, waiting to be filled out
and attached to some suitcase. All is has is its ID:
</p>

View file

@ -445,17 +445,6 @@ text in the debugging log.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">a</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"/%d"</span><span class="plain-syntax">, </span><span class="identifier-syntax">a</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP18"></a><b>&#167;18. </b>This is occasionally useful:
</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">Node::log_with_annotations</span><span class="plain-syntax">(</span><span class="reserved-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pn</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"Diagnosis $P"</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">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">parse_node_annotation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pna</span><span class="plain-syntax"> = </span><span class="identifier-syntax">pn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">annotations</span><span class="plain-syntax">; </span><span class="identifier-syntax">pna</span><span class="plain-syntax">; </span><span class="identifier-syntax">pna</span><span class="plain-syntax"> = </span><span class="identifier-syntax">pna</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next_annotation</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">"-%d"</span><span class="plain-syntax">, </span><span class="identifier-syntax">pna</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">annotation_id</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">"\n"</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="2-nt.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-sm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-st.html">st</a></li><li class="progresssection"><a href="2-nt.html">nt</a></li><li class="progresscurrent">pn</li><li class="progresssection"><a href="2-na.html">na</a></li><li class="progresssection"><a href="2-tv.html">tv</a></li><li class="progresschapter"><a href="3-snt.html">3</a></li><li class="progressnext"><a href="2-na.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->

View file

@ -2,12 +2,12 @@
<if-start-of-paragraph> internal hits 1177/6302 nti 18 constraint (none) extremes [0, 0]
<if-not-deliberately-capitalised> internal hits 4225/8686 nti 19 constraint (none) extremes [0, 0]
<if-not-deliberately-capitalised> internal hits 3865/7942 nti 19 constraint (none) extremes [0, 0]
<balanced-text> hits 954/1908 nti 20 constraint (none) extremes [1, infinity)
<balanced-text> hits 746/1492 nti 20 constraint (none) extremes [1, infinity)
English:
{......}
(hits 954/954) (matched long text) constraint (none) extremes [1, infinity)
(hits 746/746) (matched long text) constraint (none) extremes [1, infinity)
<list-comma-division> hits 6/28 nti 15 constraint DS = {15} extremes [3, infinity)
English:
@ -4764,9 +4764,9 @@
<article> internal hits 16202/96934 nti r2 constraint (none) extremes [1, 1]
<definite-article> internal hits 21568/254274 nti r2 constraint (none) extremes [1, 1]
<definite-article> internal hits 21557/254136 nti r2 constraint (none) extremes [1, 1]
<indefinite-article> internal hits 2137/41050 nti r2 constraint (none) extremes [1, 1]
<indefinite-article> internal hits 2137/40804 nti r2 constraint (none) extremes [1, 1]
<definite-article-table> nti r2 constraint CS = {r2} extremes [6, 6]
English:
@ -4846,7 +4846,7 @@
no one {***}
(hits 0/5948) constraint DS = {31} extremes [2, infinity)
<agent-pronoun> internal hits 92/1196 nti 16 constraint (none) extremes [1, 1]
<agent-pronoun> internal hits 92/1190 nti 16 constraint (none) extremes [1, 1]
<subject-pronoun> internal hits 7/56 nti 17 constraint (none) extremes [1, 1]
@ -4860,7 +4860,7 @@
<possessive-third-person> internal hits 0/172 nti 22 constraint (none) extremes [1, 1]
<here-pronoun> internal hits 0/696 nti 23 constraint (none) extremes [1, 1]
<here-pronoun> internal hits 0/690 nti 23 constraint (none) extremes [1, 1]
<first-person-pronoun-table> nti 6 constraint CS = {6} extremes [6, 6]
English:
@ -4937,7 +4937,7 @@
<copular-preposition> internal hits 635/18334 nti 13 constraint DS = {13} extremes [1, infinity)
<permitted-preposition> internal hits 254/10068 nti 14 constraint DS = {14} extremes [1, infinity)
<permitted-preposition> internal hits 254/8076 nti 14 constraint DS = {14} extremes [1, infinity)
<certainty> hits 67/4258 nti 13 constraint CS = {13} extremes [1, 1]
English:
@ -5019,10 +5019,10 @@
<cardinal-number>
constraint CS = {r0} extremes [1, 1]
<np-unparsed> hits 3218/6436 nti 31 constraint (none) extremes [1, infinity)
<np-unparsed> hits 3144/6288 nti 31 constraint (none) extremes [1, infinity)
English:
{...}
(hits 3218/3218) (matched long text) constraint (none) extremes [1, infinity)
(hits 3144/3144) (matched long text) constraint (none) extremes [1, infinity)
<np-balanced> hits 60/120 nti 6 constraint (none) extremes [0, infinity)
English:
@ -5031,16 +5031,21 @@
<np-unparsed>
(hits 60/60) (matched: 'fixed in place') constraint (none) extremes [1, infinity)
<np-articled> hits 2151/4302 nti 7 constraint (none) extremes [1, infinity)
<np-existential> hits 33/112846 nti 19 constraint CS = {19} extremes [1, 1]
English:
there
(hits 33/657) (matched: 'there') constraint CS = {19} extremes [1, 1]
<np-articled> hits 2077/4154 nti 7 constraint (none) extremes [1, infinity)
English:
{...}
(hits 99/2151) (matched: '"(considering the first sixteen objects only)[command clarification break]" ( a )') constraint (none) extremes [1, infinity)
(hits 99/2077) (matched: '"(considering the first sixteen objects only)[command clarification break]" ( a )') constraint (none) extremes [1, infinity)
<if-not-deliberately-capitalised> <indefinite-article> <np-unparsed>
(hits 322/1484) (matched long text) constraint (none) extremes [2, infinity)
(hits 322/1413) (matched long text) constraint (none) extremes [2, infinity)
<if-not-deliberately-capitalised> <definite-article> <np-unparsed>
(hits 672/1162) (matched long text) constraint (none) extremes [2, infinity)
(hits 661/1091) (matched long text) constraint (none) extremes [2, infinity)
<np-unparsed>
(hits 1058/1058) (matched long text) constraint (none) extremes [1, infinity)
(hits 995/995) (matched long text) constraint (none) extremes [1, infinity)
<np-articled-balanced> hits 255/510 nti 8 constraint (none) extremes [0, infinity)
English:
@ -5054,128 +5059,128 @@
{...}
(hits 99/279) (matched long text) constraint (none) extremes [1, infinity)
<np-articled-balanced> <np-articled-tail>
(hits 99/154) (matched long text) constraint DS = {19} extremes [2, infinity)
(hits 99/142) (matched long text) constraint DS = {20} extremes [2, infinity)
<np-articled>
(hits 81/81) (matched long text) constraint (none) extremes [1, infinity)
<np-articled-tail> hits 198/1298 nti 19 constraint DS = {19} extremes [2, infinity)
<np-articled-tail> hits 198/1224 nti 20 constraint DS = {20} extremes [2, infinity)
English:
, _{and} <np-articled-list>
(hits 0/540) constraint DS = {19} extremes [3, infinity)
(hits 0/530) constraint DS = {20} extremes [3, infinity)
_{,/and} <np-articled-list>
(hits 198/591) (matched long text) constraint DS = {19} extremes [2, infinity)
(hits 198/569) (matched long text) constraint DS = {20} extremes [2, infinity)
<np-alternative-list> hits 103/206 nti 10 constraint (none) extremes [1, infinity)
English:
{...}
(hits 30/103) (matched: 'unmarked for listing') constraint (none) extremes [1, infinity)
<np-balanced> <np-alternative-tail>
(hits 30/32) (matched: 'marked for listing or unmarked for listing') constraint DS = {20} extremes [2, infinity)
(hits 30/32) (matched: 'marked for listing or unmarked for listing') constraint DS = {21} extremes [2, infinity)
<np-unparsed>
(hits 43/43) (matched: 'pushable between rooms') constraint (none) extremes [1, infinity)
<np-alternative-tail> hits 60/142 nti 20 constraint DS = {20} extremes [2, infinity)
<np-alternative-tail> hits 60/142 nti 21 constraint DS = {21} extremes [2, infinity)
English:
, _{or} <np-alternative-list>
(hits 0/13) constraint DS = {20} extremes [3, infinity)
(hits 0/13) constraint DS = {21} extremes [3, infinity)
_{,/or} <np-alternative-list>
(hits 60/69) (matched: 'or unmarked for listing') constraint DS = {20} extremes [2, infinity)
(hits 60/69) (matched: 'or unmarked for listing') constraint DS = {21} extremes [2, infinity)
<np-as-subject> hits 471/942 nti 11 constraint (none) extremes [1, infinity)
<np-as-subject> hits 460/920 nti 11 constraint (none) extremes [1, infinity)
English:
<existential-np>
(hits 0/2) constraint CS = {21} extremes [1, 1]
<np-existential>
(hits 0/4) constraint CS = {19} extremes [1, 1]
<if-not-deliberately-capitalised> <np-relative-phrase-limited>
(hits 0/471) constraint (none) extremes [1, infinity)
(hits 0/460) constraint (none) extremes [1, infinity)
<np-nonrelative>
(hits 471/471) (matched long text) constraint (none) extremes [1, infinity)
(hits 460/460) (matched long text) constraint (none) extremes [1, infinity)
<np-as-object> hits 587/1174 nti 12 constraint (none) extremes [1, infinity)
<np-as-object> hits 576/1152 nti 12 constraint (none) extremes [1, infinity)
English:
<if-not-deliberately-capitalised> <np-relative-phrase-unlimited>
(hits 0/587) constraint (none) extremes [1, infinity)
(hits 0/576) constraint (none) extremes [1, infinity)
<np-nonrelative>
(hits 587/587) (matched long text) constraint (none) extremes [1, infinity)
(hits 576/576) (matched long text) constraint (none) extremes [1, infinity)
<np-relative-phrase-limited> hits 0/942 nti 13 constraint (none) extremes [1, infinity)
<np-relative-phrase-limited> hits 0/920 nti 13 constraint (none) extremes [1, infinity)
English:
<np-relative-phrase-implicit>
(hits 0/2) constraint CS = {22} extremes [1, 2]
constraint CS = {22} extremes [1, 2]
<probable-participle> {***}
(hits 0/464) constraint (none) extremes [1, infinity)
(hits 0/453) constraint (none) extremes [1, infinity)
<np-relative-phrase-explicit>
(hits 0/278) constraint DS = {14} extremes [2, infinity)
(hits 0/270) constraint DS = {14} extremes [2, infinity)
<np-relative-phrase-unlimited> hits 0/2384 nti 14 constraint (none) extremes [1, infinity)
<np-relative-phrase-unlimited> hits 0/1962 nti 14 constraint (none) extremes [1, infinity)
English:
<np-relative-phrase-implicit>
constraint CS = {22} extremes [1, 2]
<np-relative-phrase-explicit>
(hits 0/1192) constraint (none) extremes [1, infinity)
(hits 0/981) constraint (none) extremes [1, infinity)
<non-participles> hits 61/898 nti 29 constraint CS = {29} extremes [1, 1]
English:
thing/something
(hits 61/63) (matched: 'thing') constraint CS = {29} extremes [1, 1]
<probable-participle> internal hits 388/16728 nti 15 constraint (none) extremes [1, 1]
<probable-participle> internal hits 388/16706 nti 15 constraint (none) extremes [1, 1]
<np-relative-phrase-implicit> hits 0/4 nti 22 constraint CS = {22} extremes [1, 2]
<np-relative-phrase-implicit> nti 22 constraint CS = {22} extremes [1, 2]
English:
worn
(hits 0/2) constraint CS = {22} extremes [1, 1]
constraint CS = {22} extremes [1, 1]
carried
(hits 0/2) constraint CS = {22} extremes [1, 1]
constraint CS = {22} extremes [1, 1]
initially carried
constraint CS = {22} extremes [2, 2]
<np-relative-phrase-explicit> hits 0/2940 nti 28 constraint DS = {14} extremes [2, infinity)
<np-relative-phrase-explicit> hits 0/2502 nti 28 constraint DS = {14} extremes [2, infinity)
English:
<permitted-preposition> _,/and {...}
(hits 0/561) constraint DS = {14, 28} extremes [3, infinity)
(hits 0/402) constraint DS = {14, 28} extremes [3, infinity)
<permitted-preposition> _,/and
(hits 0/576) constraint DS = {14, 28} extremes [2, infinity)
(hits 0/415) constraint DS = {14, 28} extremes [2, infinity)
<permitted-preposition> <np-nonrelative>
(hits 0/917) constraint DS = {14} extremes [2, infinity)
(hits 0/739) constraint DS = {14} extremes [2, infinity)
<np-nonrelative> hits 1697/3394 nti 27 constraint (none) extremes [1, infinity)
<np-nonrelative> hits 1467/2934 nti 27 constraint (none) extremes [1, infinity)
English:
{...}
(hits 278/1697) (matched long text) constraint (none) extremes [1, infinity)
(hits 174/1467) (matched long text) constraint (none) extremes [1, infinity)
<np-operand> {called} <np-articled-balanced>
(hits 57/689) (matched long text) constraint DS = {27} extremes [1, infinity)
(hits 57/577) (matched long text) constraint DS = {27} extremes [1, infinity)
<np-operand> <np-with-or-having-tail>
(hits 0/809) constraint DS = {24} extremes [2, infinity)
(hits 0/697) constraint DS = {24} extremes [2, infinity)
<np-operand> <np-and-tail>
(hits 139/588) (matched long text) constraint DS = {25} extremes [1, infinity)
(hits 87/478) (matched long text) constraint DS = {25} extremes [1, infinity)
<np-kind-phrase>
(hits 30/471) (matched: 'a kind of supporter that is portable') constraint DS = {26} extremes [1, infinity)
(hits 30/415) (matched: 'a kind of supporter that is portable') constraint DS = {26} extremes [1, infinity)
<agent-pronoun>
(hits 4/352) (matched: 'it') constraint (none) extremes [1, 1]
(hits 4/349) (matched: 'it') constraint (none) extremes [1, 1]
<here-pronoun>
(hits 0/348) constraint (none) extremes [1, 1]
(hits 0/345) constraint (none) extremes [1, 1]
<np-articled>
(hits 1189/1189) (matched long text) constraint (none) extremes [1, infinity)
(hits 1115/1115) (matched long text) constraint (none) extremes [1, infinity)
<np-operand> hits 639/1278 nti 16 constraint (none) extremes [0, infinity)
<np-operand> hits 431/862 nti 16 constraint (none) extremes [0, infinity)
English:
<if-not-deliberately-capitalised> <np-relative-phrase-unlimited>
(hits 0/639) constraint (none) extremes [1, infinity)
(hits 0/431) constraint (none) extremes [1, infinity)
^<balanced-text>
(hits 0/639) constraint (none) extremes [0, infinity)
(hits 0/431) constraint (none) extremes [0, infinity)
<np-nonrelative>
(hits 639/639) (matched long text) constraint (none) extremes [1, infinity)
(hits 431/431) (matched long text) constraint (none) extremes [1, infinity)
<np-with-or-having-tail> hits 0/17556 nti 24 constraint DS = {24} extremes [2, infinity)
<np-with-or-having-tail> hits 0/10738 nti 24 constraint DS = {24} extremes [2, infinity)
English:
it with action {***}
(hits 0/6868) constraint DS = {24} extremes [3, infinity)
(hits 0/3840) constraint DS = {24} extremes [3, infinity)
{with/having} (/) {***}
(hits 0/7084) constraint DS = {24} extremes [2, infinity)
(hits 0/4030) constraint DS = {24} extremes [2, infinity)
{with/having} {...} ( <response-letter> )
(hits 0/6429) constraint DS = {24} extremes [5, infinity)
(hits 0/3488) constraint DS = {24} extremes [5, infinity)
{with/having} <np-new-property-list>
(hits 0/7084) constraint DS = {24} extremes [2, infinity)
(hits 0/4030) constraint DS = {24} extremes [2, infinity)
<np-new-property-list> nti 17 constraint (none) extremes [1, infinity)
English:
@ -5198,38 +5203,37 @@
{...}
constraint (none) extremes [1, infinity)
<np-and-tail> hits 278/4704 nti 25 constraint DS = {25} extremes [1, infinity)
<np-and-tail> hits 174/3464 nti 25 constraint DS = {25} extremes [1, infinity)
English:
, _{and} <np-operand>
(hits 12/1374) (matched: ', and didn't understand addressee's last name error') constraint DS = {25} extremes [2, infinity)
(hits 8/919) (matched: ', and didn't understand addressee's last name error') constraint DS = {25} extremes [2, infinity)
_{,/and} <np-operand>
(hits 266/1471) (matched long text) constraint DS = {25} extremes [1, infinity)
(hits 166/1012) (matched long text) constraint DS = {25} extremes [1, infinity)
<np-kind-phrase> hits 30/942 nti 19 constraint DS = {26} extremes [1, infinity)
<np-kind-phrase> hits 30/830 nti 19 constraint DS = {26} extremes [1, infinity)
English:
<indefinite-article> <np-kind-phrase-unarticled>
(hits 30/469) (matched: 'a kind of supporter that is portable') constraint DS = {26} extremes [2, infinity)
(hits 30/415) (matched: 'a kind of supporter that is portable') constraint DS = {26} extremes [2, infinity)
<np-kind-phrase-unarticled>
(hits 0/441) constraint DS = {26} extremes [1, infinity)
(hits 0/385) constraint DS = {26} extremes [1, infinity)
<np-kind-phrase-unarticled> hits 30/1078 nti 26 constraint DS = {26} extremes [1, infinity)
<np-kind-phrase-unarticled> hits 30/966 nti 26 constraint DS = {26} extremes [1, infinity)
English:
kind/kinds
(hits 4/8) (matched: 'kind') constraint CS = {26} extremes [1, 1]
(hits 4/6) (matched: 'kind') constraint CS = {26} extremes [1, 1]
kind/kinds of <np-operand>
(hits 26/480) (matched: 'kind of supporter that is portable') constraint DS = {26} extremes [2, infinity)
(hits 26/426) (matched: 'kind of supporter that is portable') constraint DS = {26} extremes [2, infinity)
<existential-np> hits 33/112358 nti 21 constraint CS = {21} extremes [1, 1]
English:
there
(hits 33/284) (matched: 'there') constraint CS = {21} extremes [1, 1]
<sentence> internal nti 20 constraint (none) extremes [1, infinity)
<pre-verb-certainty> hits 0/2756 nti 20 constraint DS = {13} extremes [2, infinity)
<sentence-without-occurrences> internal hits 1353/2734 nti 21 constraint (none) extremes [1, infinity)
<pre-verb-certainty> hits 0/2756 nti 22 constraint DS = {13} extremes [2, infinity)
English:
{...} <certainty>
(hits 0/972) constraint DS = {13} extremes [2, infinity)
<post-verb-certainty> hits 67/2756 nti 21 constraint DS = {13} extremes [2, infinity)
<post-verb-certainty> hits 67/2756 nti 23 constraint DS = {13} extremes [2, infinity)
English:
<certainty> {...}
(hits 67/1157) (matched: 'usually table of general chitchat') constraint DS = {13} extremes [2, infinity)
@ -5239,7 +5243,7 @@
which/who/that
(hits 771/5945) (matched: 'which') constraint CS = {30} extremes [1, 1]
<pre-verb-rc-marker> hits 2/2734 nti 22 constraint DS = {30} extremes [2, infinity)
<pre-verb-rc-marker> hits 2/2734 nti 24 constraint DS = {30} extremes [2, infinity)
English:
{...} <relative-clause-marker>
(hits 2/808) (matched: 'answering it that') constraint DS = {30} extremes [2, infinity)
@ -5249,10 +5253,6 @@
{...} called {...}
constraint DS = {31} extremes [3, infinity)
<sentence-without-occurrences> internal hits 1353/2734 nti 23 constraint (none) extremes [1, infinity)
<sentence> internal nti 24 constraint (none) extremes [1, infinity)
<notable-linguistic-kinds> hits 5/60 nti 6 constraint CS = {6} extremes [2, 2]
English:
natural language
@ -7018,8 +7018,8 @@
<s-sentence> hits 1074/2238 nti 23 constraint (none) extremes [3, infinity)
English:
<existential-np> <s-existential-verb-tail>
(hits 0/760) constraint DS = {21} extremes [3, infinity)
<np-existential> <s-existential-verb-tail>
(hits 0/928) constraint DS = {19} extremes [3, infinity)
<s-noun-phrase> <s-general-verb-tail>
(hits 1074/1108) (matched long text) constraint (none) extremes [3, infinity)
@ -7148,7 +7148,7 @@
<s-nonexistential-phrase-to-decide> hits 83/2912 nti 24 constraint (none) extremes [1, infinity)
English:
<existential-verb-phrase>
(hits 0/792) constraint DS = {21, 23} extremes [3, infinity)
(hits 0/957) constraint DS = {19, 23} extremes [3, infinity)
<s-phrase-to-decide>
(hits 83/1445) (matched long text) constraint (none) extremes [1, infinity)
not <s-phrase-to-decide>
@ -7163,10 +7163,10 @@
not <s-phrase-to-decide>
constraint DS = {29} extremes [2, infinity)
<existential-verb-phrase> hits 22/2148 nti 23 constraint DS = {21, 23} extremes [3, infinity)
<existential-verb-phrase> hits 22/2478 nti 23 constraint DS = {19, 23} extremes [3, infinity)
English:
<existential-np> is/are {...}
(hits 22/820) (matched long text) constraint DS = {21, 23} extremes [3, infinity)
<np-existential> is/are {...}
(hits 22/985) (matched long text) constraint DS = {19, 23} extremes [3, infinity)
<s-phrase-to-decide> internal hits 94/2912 nti 8 constraint (none) extremes [1, infinity)
@ -9592,28 +9592,28 @@
{...}
(hits 383/383) (matched: '"n"') constraint (none) extremes [1, infinity)
<understand-property-list> hits 52/518 nti 25 constraint (none) extremes [1, infinity)
<understand-property-list> hits 50/514 nti 25 constraint (none) extremes [1, infinity)
English:
{...}
(hits 51/259) (matched long text) constraint (none) extremes [1, infinity)
(hits 49/257) (matched long text) constraint (none) extremes [1, infinity)
<understand-property-entry> <understand-property-tail>
(hits 0/17) constraint DS = {20, 21} extremes [4, infinity)
(hits 0/25) constraint DS = {20, 21} extremes [4, infinity)
<understand-property-entry>
(hits 1/36) (matched: 'the infection color property') constraint DS = {20} extremes [2, infinity)
(hits 1/25) (matched: 'the infection color property') constraint DS = {20} extremes [2, infinity)
<understand-property-tail> hits 51/242 nti 21 constraint DS = {21} extremes [2, infinity)
<understand-property-tail> hits 49/298 nti 21 constraint DS = {21} extremes [2, infinity)
English:
, _and/or <understand-property-list>
(hits 0/86) constraint DS = {21} extremes [3, infinity)
(hits 0/98) constraint DS = {21} extremes [3, infinity)
_,/and/or <understand-property-list>
(hits 51/102) (matched long text) constraint DS = {21} extremes [2, infinity)
(hits 49/122) (matched long text) constraint DS = {21} extremes [2, infinity)
<understand-property-entry> hits 1/174 nti 20 constraint DS = {20} extremes [2, infinity)
<understand-property-entry> hits 1/148 nti 20 constraint DS = {20} extremes [2, infinity)
English:
<property-name> property
(hits 1/71) (matched: 'the infection color property') constraint DS = {20} extremes [2, infinity)
(hits 1/50) (matched: 'the infection color property') constraint DS = {20} extremes [2, infinity)
{...} property
(hits 0/70) constraint DS = {20} extremes [2, infinity)
(hits 0/49) constraint DS = {20} extremes [2, infinity)
<understand-sentence-object> hits 167/334 nti 26 constraint (none) extremes [1, infinity)
English:

File diff suppressed because it is too large Load diff

View file

@ -1,10 +1,10 @@
Total memory consumption was 257150K = 251 MB
62.5% was used for 1345052 objects, in 273582 frames in 201 x 800K = 160800K = 157 MB:
62.5% was used for 1344926 objects, in 273456 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
3.9% parse_node 130286 objects, 10422880 bytes
3.9% parse_node 130160 objects, 10412800 bytes
2.8% verb_conjugation 160 objects, 7425280 bytes
2.7% parse_node_annotation_array 459 x 500 = 229500 objects, 7358688 bytes
2.3% inter_symbol_array 70 x 1024 = 71680 objects, 6310080 bytes
@ -229,5 +229,5 @@ Total memory consumption was 257150K = 251 MB
---- emitter array storage 14368 bytes in 8 claims
---- code generation workspace for objects 9200 bytes in 9 claims
20.1% was overhead - 53136600 bytes = 51891K = 50 MB
20.1% was overhead - 53146680 bytes = 51901K = 50 MB

File diff suppressed because it is too large Load diff

View file

@ -1,15 +1,15 @@
100.0% in inform7 run
66.9% in compilation to Inter
25.4% in //Phrases::Manager::compile_first_block//
9.1% in //Phrases::Manager::compile_as_needed//
6.8% in //Strings::compile_responses//
5.8% in //World::Compile::compile//
3.6% in //Sentences::VPs::traverse//
3.4% in //Assertions::Traverse::traverse1//
2.0% in //Phrases::Manager::RulePrintingRule_routine//
1.8% in //Phrases::Manager::rulebooks_array//
1.1% in //NewVerbs::ConjugateVerb//
0.7% in //Phrases::Manager::traverse//
67.4% in compilation to Inter
25.5% in //Phrases::Manager::compile_first_block//
9.2% in //Phrases::Manager::compile_as_needed//
7.0% in //Strings::compile_responses//
6.1% in //World::Compile::compile//
3.5% in //Assertions::Traverse::traverse1//
3.3% in //Sentences::VPs::traverse//
2.1% in //Phrases::Manager::RulePrintingRule_routine//
1.9% in //Phrases::Manager::rulebooks_array//
1.0% in //NewVerbs::ConjugateVerb//
0.8% in //Phrases::Manager::traverse//
0.5% in //Phrases::Manager::parse_rule_parameters//
0.3% in //Phrases::Manager::compile_rulebooks//
0.3% in //Phrases::Manager::traverse_for_names//
@ -19,18 +19,19 @@
0.1% in //Sentences::RuleSubtrees::register_recently_lexed_phrases//
0.1% in //Task::load_types//
0.1% in //World::complete//
4.1% not specifically accounted for
30.5% in running Inter pipeline
10.0% in step preparation
9.8% in inter step 2/12: link
7.0% in inter step 12/12: generate inform6 -> auto.inf
4.2% not specifically accounted for
30.2% in running Inter pipeline
10.1% in step preparation
9.9% in inter step 2/12: link
6.6% 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
0.1% in inter step 4/12: parse-linked-matter
0.1% in inter step 5/12: resolve-conditional-compilation
0.1% in inter step 6/12: assimilate
0.1% in inter step 7/12: resolve-external-symbols
0.1% in inter step 8/12: inspect-plugs
2.1% not specifically accounted for
2.2% in supervisor
1.9% not specifically accounted for
2.1% in supervisor
0.2% not specifically accounted for

View file

@ -132,7 +132,7 @@ testing the existence of something.
not <s-phrase-to-decide> ==> Conditions::negate(RP[1])
<existential-verb-phrase> ::=
<existential-np> is/are ...
<np-existential> is/are ...
<s-phrase-to-decide> internal {
parse_node *p = Lexicon::retrieve(COND_PHRASE_MC, W);

View file

@ -33,7 +33,7 @@ placeholder to stand for a missing noun phrase:
=
<s-sentence> ::=
<existential-np> <s-existential-verb-tail> | ==> @<Make SV provided object is descriptive@>;
<np-existential> <s-existential-verb-tail> | ==> @<Make SV provided object is descriptive@>;
<s-noun-phrase> <s-general-verb-tail> ==> @<Make SV@>;
<s-existential-verb-tail> ::=

View file

@ -1238,7 +1238,7 @@ void NewVerbs::tabulate_meaning(OUTPUT_STREAM, index_lexicon_entry *lex) {
@d TRACING_LINGUISTICS_CALLBACK NewVerbs::trace_parsing
=
int NewVerbs::trace_parsing(void) {
int NewVerbs::trace_parsing(int A) {
if (SyntaxTree::is_trace_set(Task::syntax_tree())) return TRUE;
return FALSE;
}

View file

@ -422,6 +422,7 @@ void ParseTreeUsage::log_node(OUTPUT_STREAM, parse_node *pn) {
WRITE("'%S'", text);
DISCARD_TEXT(text)
}
Diagrams::log_node(OUT, pn);
if ((pn->node_type >= UNKNOWN_NT) && (pn->node_type <= TEST_VALUE_NT))
@<Log annotations of specification nodes@>
@ -448,18 +449,14 @@ void ParseTreeUsage::log_node(OUTPUT_STREAM, parse_node *pn) {
case HEADING_NT: WRITE(" (level %d)", Annotations::read_int(pn, heading_level_ANNOT)); break;
case COMMON_NOUN_NT: show_refers = TRUE; break;
case KIND_NT: show_refers = TRUE; break;
case RELATIONSHIP_NT:
Diagrams::log_node(OUT, pn);
break;
case RELATIONSHIP_NT: break;
case PROPER_NOUN_NT:
Diagrams::log_node(OUT, pn);
if (Annotations::read_int(pn, multiplicity_ANNOT))
WRITE(" (x%d)", Annotations::read_int(pn, multiplicity_ANNOT));
show_refers = TRUE;
break;
case VERB_NT:
WRITE(" ($V)", Annotations::read_int(pn, verb_id_ANNOT));
Diagrams::log_node(OUT, pn);
break;
case TOKEN_NT: WRITE(" [%d/%d]", Annotations::read_int(pn, slash_class_ANNOT),
Annotations::read_int(pn, slash_dash_dash_ANNOT)); break;

View file

@ -35,7 +35,7 @@ int problem_count_when_creator_started;
int Assertions::Creator::consult_the_creator(parse_node *px, parse_node *py) {
problem_count_when_creator_started = problem_count;
if (<existential-np>(Node::get_text(px)))
if (<np-existential>(Node::get_text(px)))
@<Perform creation duties on a "There is..." sentence@>
else
@<Perform creation duties on a copular sentence@>;

View file

@ -191,7 +191,7 @@ In traverse 2, only (c) takes place; (a) and (b) are one-time events.
void Assertions::Copular::make_assertion(parse_node *px, parse_node *py) {
if (traverse == 1) {
int pc = problem_count;
if (!(<existential-np>(Node::get_text(px))))
if (!(<np-existential>(Node::get_text(px))))
Assertions::Refiner::refine(px, ALLOW_CREATION);
Assertions::Refiner::refine(py, ALLOW_CREATION);
if (problem_count > pc) return;
@ -199,7 +199,7 @@ void Assertions::Copular::make_assertion(parse_node *px, parse_node *py) {
}
if (SyntaxTree::is_trace_set(Task::syntax_tree())) LOG("$T", current_sentence);
if (<existential-np>(Node::get_text(px))) {
if (<np-existential>(Node::get_text(px))) {
if (traverse == 1) Assertions::Copular::make_existential_assertion(py);
px = py;
} else {

View file

@ -1,7 +1,6 @@
[NounPhrases::] Noun Phrases.
To construct noun-phrase subtrees for assertion sentences found
in the parse tree.
To construct noun-phrase subtrees for assertion sentences.
@h Hierarchy of noun phrases.
Noun phrase nodes are built at four levels of elaboration, which we take in
@ -30,6 +29,12 @@ used in a balanced way: thus |frogs ( and toads )| would match, but
^<balanced-text> | ==> 0; return FAIL_NONTERMINAL;
<np-unparsed> ==> 0; *XP = RP[1]
@ The noun phrase of an existential sentence is recognised thus:
=
<np-existential> ::=
there ==> 0; *XP = Diagrams::new_DEFECTIVE(W);
@h Articled nounphrases (NP2).
Now an initial article becomes an annotation and is removed from the text.
Note that
@ -140,13 +145,13 @@ looks like a participle.
=
<np-as-subject> ::=
<existential-np> | ==> 0; *XP = RP[1]
<np-existential> | ==> 0; *XP = RP[1]
<if-not-deliberately-capitalised> <np-relative-phrase-limited> | ==> 0; *XP = RP[2]
<np-nonrelative> ==> 0; *XP = RP[1]
<np-nonrelative> ==> 0; *XP = RP[1]
<np-as-object> ::=
<if-not-deliberately-capitalised> <np-relative-phrase-unlimited> | ==> 0; *XP = RP[2]
<np-nonrelative> ==> 0; *XP = RP[1]
<np-nonrelative> ==> 0; *XP = RP[1]
@ To explain the limitation here: RPs only exist in the subject position due
to subject-verb inversion in English. Thus, "In the Garden is a tortoise" is a

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,47 @@
Seek verb in: there is a ming vase on the table called the table of having
viability map of 'there is a ming vase on the table called the table of having':
-- is[1] -- -- -- on[1] -- -- -- -- -- -- --
Found usage, pass 1 tier 2: (there) be(0) (a ming vase on the table called the table of having)
Seek verb in: a ming vase on the table | called the table of having
viability map of 'a ming vase on the table called the table of having':
-- -- -- -- -- -- -- -- -- -- --
Seek failed
be(0) + had by + ___ : failed for lack of 'had by'
Seek verb in: a ming vase on the table | called the table of having
viability map of 'a ming vase on the table called the table of having':
-- -- -- -- -- -- -- -- -- -- --
Seek failed
be(0) + carried by + ___ : failed for lack of 'carried by'
Seek verb in: a ming vase on the table | called the table of having
viability map of 'a ming vase on the table called the table of having':
-- -- -- -- -- -- -- -- -- -- --
Seek failed
be(0) + known by + ___ : failed for lack of 'known by'
Seek verb in: a ming vase on the table | called the table of having
viability map of 'a ming vase on the table called the table of having':
-- -- -- -- -- -- -- -- -- -- --
Seek failed
be(0) + having + ___ : failed for lack of 'having'
Seek verb in: a ming vase on the table | called the table of having
viability map of 'a ming vase on the table called the table of having':
-- -- -- -- -- -- -- -- -- -- --
Seek failed
be(0) + carrying + ___ : failed for lack of 'carrying'
Seek verb in: a ming vase on the table | called the table of having
viability map of 'a ming vase on the table called the table of having':
-- -- -- -- -- -- -- -- -- -- --
Seek failed
be(0) + knowing + ___ : failed for lack of 'knowing'
Seek verb in: a ming vase on the table | called the table of having
viability map of 'a ming vase on the table called the table of having':
-- -- -- -- -- -- -- -- -- -- --
Seek failed
Accepted as be(0) + on + ___
Seek succeeded
Sentence subtree:
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {existential}
UNPARSED_NOUN_NT'ming vase' {indefinite 'a' n/m/f nom/acc s}
RELATIONSHIP_NT'is' {meaning: carries}
CALLED_NT'called'
UNPARSED_NOUN_NT'table' {definite 'the' n/m/f s/p nom/acc}
UNPARSED_NOUN_NT'table of having' {definite 'the' n/m/f s/p nom/acc}

View file

@ -0,0 +1,29 @@
Seek verb in: there is a ming vase which is on the table
viability map of 'there is a ming vase which is on the table':
-- is[1] -- -- -- -- is[1] on[1] -- --
Found usage, pass 1 tier 2: (there) be(0) (a ming vase which is on the table)
Seek verb in: a ming vase which is on the table |
viability map of 'a ming vase which is on the table':
-- -- -- -- is[1] -- -- --
Found usage, pass 1 tier 2: (a ming vase which) be(0) (on the table)
Trimmed to: (a ming vase) be(0) (on the table)
be(0) + had by + ___ : failed for lack of 'had by'
Trimmed to: (a ming vase) be(0) (on the table)
be(0) + carried by + ___ : failed for lack of 'carried by'
Trimmed to: (a ming vase) be(0) (on the table)
be(0) + known by + ___ : failed for lack of 'known by'
Trimmed to: (a ming vase) be(0) (on the table)
be(0) + having + ___ : failed for lack of 'having'
Trimmed to: (a ming vase) be(0) (on the table)
be(0) + carrying + ___ : failed for lack of 'carrying'
Trimmed to: (a ming vase) be(0) (on the table)
be(0) + knowing + ___ : failed for lack of 'knowing'
Trimmed to: (a ming vase) be(0) (on the table)
Accepted as be(0) + on + ___
Seek succeeded
Seek succeeded
Sentence subtree:
VERB_NT'is on' {verb 'be' 3p s act IS_TENSE +ve}
UNPARSED_NOUN_NT'ming vase' {indefinite 'a' n/m/f nom/acc s}
RELATIONSHIP_NT'is on' {meaning: carries}
UNPARSED_NOUN_NT'table' {definite 'the' n/m/f s/p nom/acc}

View file

@ -0,0 +1,30 @@
Seek verb in: beth is a sailor
viability map of 'beth is a sailor':
-- is[1] -- --
Found usage, pass 1 tier 2: (beth) be(0) (a sailor)
be(0) + had by + ___ : failed for lack of 'had by'
be(0) + carried by + ___ : failed for lack of 'carried by'
be(0) + known by + ___ : failed for lack of 'known by'
be(0) + having + ___ : failed for lack of 'having'
be(0) + carrying + ___ : failed for lack of 'carrying'
be(0) + knowing + ___ : failed for lack of 'knowing'
be(0) + on + ___ : failed for lack of 'on'
be(0) + under + ___ : failed for lack of 'under'
Accepted as be(0) + ___ + ___
Seek succeeded
Sentence subtree:
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}
UNPARSED_NOUN_NT'beth'
UNPARSED_NOUN_NT'sailor' {indefinite 'a' n/m/f nom/acc s}
Seek verb in: a ming vase is carried by anna
viability map of 'a ming vase is carried by anna':
-- -- -- is[1] carried[1] -- --
Found usage, pass 1 tier 2: (a ming vase) be(0) (carried by anna)
be(0) + had by + ___ : failed for lack of 'had by'
Accepted as be(0) + carried by + ___
Seek succeeded
Sentence subtree:
VERB_NT'is carried by' {verb 'be' 3p s act IS_TENSE +ve}
UNPARSED_NOUN_NT'ming vase' {indefinite 'a' n/m/f nom/acc s}
RELATIONSHIP_NT'is carried by' {meaning: carries}
UNPARSED_NOUN_NT'anna'

View file

@ -0,0 +1,8 @@
viability map of 'anna is a know all':
-- is[1] -- know[1] --
viability map of 'the soldier knows that ( this is true ) they do not carry rifles':
-- -- knows[1] -- -- -- is[2] -- -- -- do[3] not[3] carry[3] --
viability map of 'the solomon islands does not have an air force ( this is true )':
-- -- -- does[3] not[3] have[3] -- -- -- -- -- is[2] -- --
viability map of 'velma is not a thinker':
-- is[1] -- -- --

View file

@ -139,6 +139,18 @@ to noun phrases, we can have serial lists:
Note that |AND_NT| nodes always have exactly two children, and that the serial
comma is allowed but not required.
|AND_NT| in conjunction with |RELATIONSHIP_NT| can allow for zeugmas.
Zeugma is sometimes thought to be rare in English and to be basically a comedy
effect, as in the famous Flanders and Swann lyric:
>> She made no reply, up her mind, and a dash for the door.
in which three completely different senses of the same verb are used,
but in which the verb appears only once. It might seem reasonable just to
disallow this. Unfortunately, less extreme zeugmas occur all the time:
>> The red door is west of the Dining Room and east of the Ballroom.
@ Now we introduce pronouns to the mix. These are detected automatically
by //linguistics//, and exist in nominative and accusative cases in
English. Note the difference in annotations between "them" and "you",

View file

@ -14,12 +14,8 @@ int sentence_counter = 1;
void Interpreting::diagram(parse_node *p) {
if (Node::get_type(p) == SENTENCE_NT) {
text_stream *save_DL = DL;
DL = STDOUT;
Streams::enable_debugging(DL);
LOG("(%d) %W\n\n", sentence_counter++, Node::get_text(p));
Node::log_subtree(DL, p);
LOG("\n");
DL = save_DL;
}
}

View file

@ -9,6 +9,8 @@ What shall we test?
@e VOCABULARY_CLSW
@e TEST_DIAGRAMS_CLSW
@e RAW_DIAGRAMS_CLSW
@e TRACE_DIAGRAMS_CLSW
@e VIABILITY_DIAGRAMS_CLSW
@e TEST_ARTICLES_CLSW
@e TEST_PRONOUNS_CLSW
@ -34,6 +36,10 @@ int main(int argc, char **argv) {
L"test sentence diagrams from text in X");
CommandLine::declare_switch(RAW_DIAGRAMS_CLSW, L"raw", 2,
L"test raw sentence diagrams from text in X");
CommandLine::declare_switch(TRACE_DIAGRAMS_CLSW, L"trace", 2,
L"test raw sentence diagrams from text in X with tracing on");
CommandLine::declare_switch(VIABILITY_DIAGRAMS_CLSW, L"viability", 2,
L"show viability map for sentences in X");
CommandLine::declare_switch(VOCABULARY_CLSW, L"vocabulary", 2,
L"read vocabulary from file X for use in -diagram tests");
CommandLine::declare_switch(TEST_ARTICLES_CLSW, L"test-articles", 2,
@ -52,9 +58,34 @@ int main(int argc, char **argv) {
return 0;
}
@
@d TRACING_LINGUISTICS_CALLBACK Main::trace_parsing
=
int trace_diagrams_mode = FALSE;
int viability_diagrams_mode = FALSE;
int Main::trace_parsing(int A) {
if (trace_diagrams_mode) return trace_diagrams_mode;
if (A == VIABILITY_VP_TRACE) return viability_diagrams_mode;
return FALSE;
}
@ =
void Main::respond(int id, int val, text_stream *arg, void *state) {
text_stream *save_DL = DL;
DL = STDOUT;
Streams::enable_debugging(DL);
switch (id) {
case VOCABULARY_CLSW: Banking::load_from_file(arg); break;
case TRACE_DIAGRAMS_CLSW:
trace_diagrams_mode = TRUE;
Diagramming::test_diagrams(arg, TRUE);
break;
case VIABILITY_DIAGRAMS_CLSW:
viability_diagrams_mode = TRUE;
Diagramming::test_diagrams(arg, TRUE);
break;
case RAW_DIAGRAMS_CLSW:
Interpreting::go(Diagramming::test_diagrams(arg, TRUE));
break;
@ -70,6 +101,7 @@ void Main::respond(int id, int val, text_stream *arg, void *state) {
Pronouns::test(STDOUT);
break;
}
DL = save_DL;
}
void Main::ignore(int id, text_stream *arg, void *state) {

View file

@ -0,0 +1,47 @@
Seek verb in: there is a ming vase on the table called the table of having
viability map of 'there is a ming vase on the table called the table of having':
-- is[1] -- -- -- on[1] -- -- -- -- -- -- --
Found usage, pass 1 tier 2: (there) be(0) (a ming vase on the table called the table of having)
Seek verb in: a ming vase on the table | called the table of having
viability map of 'a ming vase on the table called the table of having':
-- -- -- -- -- -- -- -- -- -- --
Seek failed
be(0) + had by + ___ : failed for lack of 'had by'
Seek verb in: a ming vase on the table | called the table of having
viability map of 'a ming vase on the table called the table of having':
-- -- -- -- -- -- -- -- -- -- --
Seek failed
be(0) + carried by + ___ : failed for lack of 'carried by'
Seek verb in: a ming vase on the table | called the table of having
viability map of 'a ming vase on the table called the table of having':
-- -- -- -- -- -- -- -- -- -- --
Seek failed
be(0) + known by + ___ : failed for lack of 'known by'
Seek verb in: a ming vase on the table | called the table of having
viability map of 'a ming vase on the table called the table of having':
-- -- -- -- -- -- -- -- -- -- --
Seek failed
be(0) + having + ___ : failed for lack of 'having'
Seek verb in: a ming vase on the table | called the table of having
viability map of 'a ming vase on the table called the table of having':
-- -- -- -- -- -- -- -- -- -- --
Seek failed
be(0) + carrying + ___ : failed for lack of 'carrying'
Seek verb in: a ming vase on the table | called the table of having
viability map of 'a ming vase on the table called the table of having':
-- -- -- -- -- -- -- -- -- -- --
Seek failed
be(0) + knowing + ___ : failed for lack of 'knowing'
Seek verb in: a ming vase on the table | called the table of having
viability map of 'a ming vase on the table called the table of having':
-- -- -- -- -- -- -- -- -- -- --
Seek failed
Accepted as be(0) + on + ___
Seek succeeded
Sentence subtree:
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {existential}
UNPARSED_NOUN_NT'ming vase' {indefinite 'a' n/m/f nom/acc s}
RELATIONSHIP_NT'is' {meaning: carries}
CALLED_NT'called'
UNPARSED_NOUN_NT'table' {definite 'the' n/m/f s/p nom/acc}
UNPARSED_NOUN_NT'table of having' {definite 'the' n/m/f s/p nom/acc}

View file

@ -0,0 +1,29 @@
Seek verb in: there is a ming vase which is on the table
viability map of 'there is a ming vase which is on the table':
-- is[1] -- -- -- -- is[1] on[1] -- --
Found usage, pass 1 tier 2: (there) be(0) (a ming vase which is on the table)
Seek verb in: a ming vase which is on the table |
viability map of 'a ming vase which is on the table':
-- -- -- -- is[1] -- -- --
Found usage, pass 1 tier 2: (a ming vase which) be(0) (on the table)
Trimmed to: (a ming vase) be(0) (on the table)
be(0) + had by + ___ : failed for lack of 'had by'
Trimmed to: (a ming vase) be(0) (on the table)
be(0) + carried by + ___ : failed for lack of 'carried by'
Trimmed to: (a ming vase) be(0) (on the table)
be(0) + known by + ___ : failed for lack of 'known by'
Trimmed to: (a ming vase) be(0) (on the table)
be(0) + having + ___ : failed for lack of 'having'
Trimmed to: (a ming vase) be(0) (on the table)
be(0) + carrying + ___ : failed for lack of 'carrying'
Trimmed to: (a ming vase) be(0) (on the table)
be(0) + knowing + ___ : failed for lack of 'knowing'
Trimmed to: (a ming vase) be(0) (on the table)
Accepted as be(0) + on + ___
Seek succeeded
Seek succeeded
Sentence subtree:
VERB_NT'is on' {verb 'be' 3p s act IS_TENSE +ve}
UNPARSED_NOUN_NT'ming vase' {indefinite 'a' n/m/f nom/acc s}
RELATIONSHIP_NT'is on' {meaning: carries}
UNPARSED_NOUN_NT'table' {definite 'the' n/m/f s/p nom/acc}

View file

@ -0,0 +1,30 @@
Seek verb in: beth is a sailor
viability map of 'beth is a sailor':
-- is[1] -- --
Found usage, pass 1 tier 2: (beth) be(0) (a sailor)
be(0) + had by + ___ : failed for lack of 'had by'
be(0) + carried by + ___ : failed for lack of 'carried by'
be(0) + known by + ___ : failed for lack of 'known by'
be(0) + having + ___ : failed for lack of 'having'
be(0) + carrying + ___ : failed for lack of 'carrying'
be(0) + knowing + ___ : failed for lack of 'knowing'
be(0) + on + ___ : failed for lack of 'on'
be(0) + under + ___ : failed for lack of 'under'
Accepted as be(0) + ___ + ___
Seek succeeded
Sentence subtree:
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}
UNPARSED_NOUN_NT'beth'
UNPARSED_NOUN_NT'sailor' {indefinite 'a' n/m/f nom/acc s}
Seek verb in: a ming vase is carried by anna
viability map of 'a ming vase is carried by anna':
-- -- -- is[1] carried[1] -- --
Found usage, pass 1 tier 2: (a ming vase) be(0) (carried by anna)
be(0) + had by + ___ : failed for lack of 'had by'
Accepted as be(0) + carried by + ___
Seek succeeded
Sentence subtree:
VERB_NT'is carried by' {verb 'be' 3p s act IS_TENSE +ve}
UNPARSED_NOUN_NT'ming vase' {indefinite 'a' n/m/f nom/acc s}
RELATIONSHIP_NT'is carried by' {meaning: carries}
UNPARSED_NOUN_NT'anna'

View file

@ -0,0 +1,8 @@
viability map of 'anna is a know all':
-- is[1] -- know[1] --
viability map of 'the soldier knows that ( this is true ) they do not carry rifles':
-- -- knows[1] -- -- -- is[2] -- -- -- do[3] not[3] carry[3] --
viability map of 'the solomon islands does not have an air force ( this is true )':
-- -- -- does[3] not[3] have[3] -- -- -- -- -- is[2] -- --
viability map of 'velma is not a thinker':
-- is[1] -- -- --

View file

@ -0,0 +1 @@
There is a Ming vase on the table called the table of having.

View file

@ -0,0 +1 @@
There is a Ming vase which is on the table.

View file

@ -0,0 +1,2 @@
Beth is a sailor.
A Ming vase is carried by Anna.

View file

@ -0,0 +1,4 @@
Anna is a know all.
The soldier knows that (this is true) they do not carry rifles.
The Solomon Islands does not have an air force (this is true).
Velma is not a thinker.

View file

@ -30,6 +30,12 @@
if: $CASE %c*-raw
set: $U = -raw
endif
if: $CASE %c*-trace
set: $U = -trace
endif
if: $CASE %c*-viability
set: $U = -viability
endif
mkdir: $PATH/_Results_Actual
step: services/linguistics-test/Tangled/linguistics-test -vocabulary $V $U $PATH/$CASE.txt >$A 2>&1

View file

@ -348,13 +348,3 @@ void Node::log_node(OUTPUT_STREAM, void *vpn) {
while ((pn->next_alternative) && (a<9)) a++, pn = pn->next_alternative;
if (a > 0) WRITE("/%d", a);
}
@ This is occasionally useful:
=
void Node::log_with_annotations(parse_node *pn) {
LOG("Diagnosis $P", pn);
for (parse_node_annotation *pna = pn->annotations; pna; pna = pna->next_annotation)
LOG("-%d", pna->annotation_id);
LOG("\n");
}