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:
parent
470ef75b90
commit
c6766f6f95
|
@ -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"><s-phrase-to-decide></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> Conditions::negate(RP[1])</span>
|
||||
|
||||
<span class="Preform-function-syntax"><existential-verb-phrase></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><existential-np></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"><np-existential></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"><s-phrase-to-decide></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>
|
||||
|
|
|
@ -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"><s-sentence></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><existential-np></span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><s-existential-verb-tail></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </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"><np-existential></span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><s-existential-verb-tail></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </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"><s-noun-phrase></span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><s-general-verb-tail></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="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"><s-existential-verb-tail></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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">-></span><span class="identifier-syntax">node_type</span><span class="plain-syntax"> >= </span><span class="identifier-syntax">UNKNOWN_NT</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">pn</span><span class="plain-syntax">-></span><span class="identifier-syntax">node_type</span><span class="plain-syntax"> <= </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>
|
||||
|
|
|
@ -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">§3</a><br/>Tables of Definitions - <a href="19-tod.html#SP6_3">§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"><existential-np></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"><np-existential></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"> > </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"><existential-np></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"><np-existential></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>
|
||||
|
|
|
@ -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">§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"><existential-np></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"><np-existential></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>
|
||||
|
|
|
@ -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">§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">§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">§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">§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">§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">§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">§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">§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">§14.1</a><br/>Verb Phrases - <a href="4-vp.html#SP9_1">§9.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="constant-syntax">VERB_MEANING_LINGUISTICS_TYPE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax">,</span>
|
||||
<span class="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">§15.1</a><br/>Verb Phrases - <a href="4-vp.html#SP7_1">§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">§13.1</a>, <a href="4-np.html#SP13_2">§13.2</a>, <a href="4-np.html#SP13_3">§13.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="constant-syntax">VERB_MEANING_LINGUISTICS_TYPE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax">) {</span>
|
||||
<span class="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">§14.1</a>, <a href="4-np.html#SP14_2">§14.2</a>, <a href="4-np.html#SP14_3">§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">§7</a>, <a href="4-np.html#SP8">§8</a>, <a href="4-np.html#SP15">§15</a>, <a href="4-np.html#SP16">§16</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">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">§8</a>, <a href="4-np.html#SP9">§9</a>, <a href="4-np.html#SP16">§16</a>, <a href="4-np.html#SP17">§17</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">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">§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">§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">§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">§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>
|
||||
|
|
|
@ -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">-></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">§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">§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">-></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">§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">§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"><historical-reference-possible></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"><<to>></span><span class="plain-syntax"> = -1;</span>
|
||||
|
|
|
@ -88,7 +88,7 @@ to ask for a reversal to be performed when needed.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="constant-syntax">VERB_MEANING_LINGUISTICS_TYPE</span><span class="plain-syntax"> *</span><span class="function-syntax">VerbMeanings::reverse_VMT</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">VerbMeanings::reverse_VMT</span></span>:<br/><a href="3-vm.html#SP11">§11</a><br/>Verb Usages - <a href="3-vu.html#SP12">§12</a><br/>Noun Phrases - <a href="4-np.html#SP14_1">§14.1</a><br/>Verb Phrases - <a href="4-vp.html#SP9_1">§9.1</a></span></button><span class="plain-syntax">(</span><span class="constant-syntax">VERB_MEANING_LINGUISTICS_TYPE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">recto</span><span class="plain-syntax">) {</span>
|
||||
<span class="constant-syntax">VERB_MEANING_LINGUISTICS_TYPE</span><span class="plain-syntax"> *</span><span class="function-syntax">VerbMeanings::reverse_VMT</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">VerbMeanings::reverse_VMT</span></span>:<br/><a href="3-vm.html#SP11">§11</a><br/>Verb Usages - <a href="3-vu.html#SP12">§12</a><br/>Noun Phrases - <a href="4-np.html#SP15_1">§15.1</a><br/>Verb Phrases - <a href="4-vp.html#SP7_1">§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">§12</a>, <a href="3-vrb.html#SP12_2">§12.2</a><br/>Verb Usages - <a href="3-vu.html#SP15">§15</a><br/>Prepositions - <a href="3-prp.html#SP10">§10</a>, <a href="3-prp.html#SP11">§11</a><br/>Verb Phrases - <a href="4-vp.html#SP7_3_1">§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">§12</a>, <a href="3-vrb.html#SP12_2">§12.2</a><br/>Verb Usages - <a href="3-vu.html#SP15">§15</a><br/>Prepositions - <a href="3-prp.html#SP10">§10</a>, <a href="3-prp.html#SP11">§11</a><br/>Verb Phrases - <a href="4-vp.html#SP5_4_1_1_1">§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">-></span><span class="element-syntax">regular_meaning</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">vm</span><span class="plain-syntax">-></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">§13</a><br/>Verb Phrases - <a href="4-vp.html#SP9_1">§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">§13</a><br/>Verb Phrases - <a href="4-vp.html#SP6">§6</a>, <a href="4-vp.html#SP7_1">§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">-></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">§12</a><br/>Noun Phrases - <a href="4-np.html#SP14_1">§14.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">verb_form</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vf</span><span class="plain-syntax">) {</span>
|
||||
<span class="constant-syntax">VERB_MEANING_LINGUISTICS_TYPE</span><span class="plain-syntax"> *</span><span class="function-syntax">VerbMeanings::get_regular_meaning_of_form</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">VerbMeanings::get_regular_meaning_of_form</span></span>:<br/>Verb Usages - <a href="3-vu.html#SP12">§12</a><br/>Noun Phrases - <a href="4-np.html#SP15_1">§15.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">verb_form</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vf</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-vm.html#SP11" class="function-link"><span class="function-syntax">VerbMeanings::get_regular_meaning</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vm.html#SP9" class="function-link"><span class="function-syntax">VerbMeanings::first_unspecial_meaning_of_verb_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vf</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -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">§9</a><br/>Verb Phrases - <a href="4-vp.html#SP8">§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">§9</a><br/>Verb Phrases - <a href="4-vp.html#SP6">§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">-></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">§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">§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">-></span><span class="element-syntax">take_meaning_reversed</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
|
|
@ -301,7 +301,7 @@ of verb and two prepositions:
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">verb_form</span><span class="plain-syntax"> *</span><span class="function-syntax">Verbs::find_form</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Verbs::find_form</span></span>:<br/><a href="3-vrb.html#SP12_1">§12.1</a><br/>Verb Usages - <a href="3-vu.html#SP12">§12</a><br/>Noun Phrases - <a href="4-np.html#SP14_1">§14.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">verb</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="reserved-syntax">preposition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prep</span><span class="plain-syntax">, </span><span class="reserved-syntax">preposition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">second_prep</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">verb_form</span><span class="plain-syntax"> *</span><span class="function-syntax">Verbs::find_form</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Verbs::find_form</span></span>:<br/><a href="3-vrb.html#SP12_1">§12.1</a><br/>Verb Usages - <a href="3-vu.html#SP12">§12</a><br/>Noun Phrases - <a href="4-np.html#SP15_1">§15.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">verb</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="reserved-syntax">preposition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prep</span><span class="plain-syntax">, </span><span class="reserved-syntax">preposition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">second_prep</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">V</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">verb_form</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vf</span><span class="plain-syntax"> = </span><span class="identifier-syntax">V</span><span class="plain-syntax">-></span><span class="element-syntax">first_form</span><span class="plain-syntax">; </span><span class="identifier-syntax">vf</span><span class="plain-syntax">; </span><span class="identifier-syntax">vf</span><span class="plain-syntax"> = </span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="element-syntax">next_form</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="element-syntax">preposition</span><span class="plain-syntax"> == </span><span class="identifier-syntax">prep</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="element-syntax">second_clause_preposition</span><span class="plain-syntax"> == </span><span class="identifier-syntax">second_prep</span><span class="plain-syntax">))</span>
|
||||
|
|
|
@ -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">§2</a>, <a href="3-vu.html#SP11">§11</a>, <a href="3-vu.html#SP15">§15</a>, <a href="3-vu.html#SP16">§16</a>, <a href="3-vu.html#SP17">§17</a><br/>Verb Phrases - <a href="4-vp.html#SP7_3_1">§7.3.1</a>, <a href="4-vp.html#SP9">§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">§2</a>, <a href="3-vu.html#SP11">§11</a>, <a href="3-vu.html#SP15">§15</a>, <a href="3-vu.html#SP16">§16</a>, <a href="3-vu.html#SP17">§17</a><br/>Verb Phrases - <a href="4-vp.html#SP5_4_1_1_1">§5.4.1.1.1</a>, <a href="4-vp.html#SP7">§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">-></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">§15</a>, <a href="3-vu.html#SP16">§16</a>, <a href="3-vu.html#SP17">§17</a>, <a href="3-vu.html#SP18">§18</a>, <a href="3-vu.html#SP19">§19</a>, <a href="3-vu.html#SP20">§20</a><br/>Verb Phrases - <a href="4-vp.html#SP7_3_1">§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">§15</a>, <a href="3-vu.html#SP16">§16</a>, <a href="3-vu.html#SP17">§17</a>, <a href="3-vu.html#SP18">§18</a>, <a href="3-vu.html#SP19">§19</a>, <a href="3-vu.html#SP20">§20</a><br/>Verb Phrases - <a href="4-vp.html#SP5_4_1_1_1">§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">-></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">) &&</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">, &(</span><span class="identifier-syntax">vu</span><span class="plain-syntax">-></span><span class="element-syntax">vu_text</span><span class="plain-syntax">));</span>
|
||||
|
|
|
@ -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">§1. Hierarchy of noun phrases</a></li><li><a href="4-np.html#SP2">§2. Raw nounphrases (NP1)</a></li><li><a href="4-np.html#SP4">§4. Articled nounphrases (NP2)</a></li><li><a href="4-np.html#SP7">§7. List-divided nounphrases (NP3)</a></li><li><a href="4-np.html#SP9">§9. Full nounphrases (NP4)</a></li></ul><hr class="tocbar">
|
||||
<ul class="toc"><li><a href="4-np.html#SP1">§1. Hierarchy of noun phrases</a></li><li><a href="4-np.html#SP2">§2. Raw nounphrases (NP1)</a></li><li><a href="4-np.html#SP5">§5. Articled nounphrases (NP2)</a></li><li><a href="4-np.html#SP8">§8. List-divided nounphrases (NP3)</a></li><li><a href="4-np.html#SP10">§10. Full nounphrases (NP4)</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1"></a><b>§1. Hierarchy of noun phrases. </b>Noun phrase nodes are built at four levels of elaboration, which we take in
|
||||
turn:
|
||||
|
@ -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"><np-unparsed></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> 0; *XP = RP[1]</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is <a href="../words-module/4-ap.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP4"></a><b>§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>§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"><np-existential></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">==></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>§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"><np-articled></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> 0; *XP = RP[1]</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is <a href="../words-module/4-ap.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP5"></a><b>§5. </b></p>
|
||||
<p class="commentary firstcommentary"><a id="SP6"></a><b>§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">§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">§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>§6. </b>The following function is only occasionally useful (for example, Inform
|
||||
<p class="commentary firstcommentary"><a id="SP7"></a><b>§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 <np-articled> to it.
|
||||
</p>
|
||||
|
@ -162,7 +170,7 @@ and retrospectively applies <np-articled> 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>§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>§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"><np-articled-list></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> Wordings::first_wn(W); *XP = RP[1]</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is <a href="../words-module/4-ap.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP8"></a><b>§8. </b>"Alternative lists" divide up at "or" rather than "and", thus matching text
|
||||
<p class="commentary firstcommentary"><a id="SP9"></a><b>§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"><np-alternative-list></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> Wordings::first_wn(W); *XP= RP[1]</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is <a href="../words-module/4-ap.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP9"></a><b>§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>§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 —
|
||||
|
@ -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>§10. </b>Full nounphrase parsing varies slightly according to the position of the
|
||||
<p class="commentary firstcommentary"><a id="SP11"></a><b>§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 <np-as-subject>, Y by <np-as-object>.
|
||||
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"><np-as-subject></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><existential-np></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> 0; *XP = RP[1]</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><np-existential></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> 0; *XP = RP[1]</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><if-not-deliberately-capitalised></span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><np-relative-phrase-limited></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> 0; *XP = RP[2]</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><np-nonrelative></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> 0; *XP = RP[1]</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><np-nonrelative></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> 0; *XP = RP[1]</span>
|
||||
|
||||
<span class="Preform-function-syntax"><np-as-object></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><if-not-deliberately-capitalised></span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><np-relative-phrase-unlimited></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> 0; *XP = RP[2]</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><np-nonrelative></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> 0; *XP = RP[1]</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><np-nonrelative></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> 0; *XP = RP[1]</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is <a href="../words-module/4-ap.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP11"></a><b>§11. </b>To explain the limitation here: RPs only exist in the subject position due
|
||||
<p class="commentary firstcommentary"><a id="SP12"></a><b>§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"><np-relative-phrase-explicit></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> 0; *XP = RP[1]</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is <a href="../words-module/4-ap.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP12"></a><b>§12. </b>Inform guesses above that most English words ending in "-ing" are present
|
||||
<p class="commentary firstcommentary"><a id="SP13"></a><b>§13. </b>Inform guesses above that most English words ending in "-ing" are present
|
||||
participles — like guessing, bluffing, cheating, and so on. But there is
|
||||
a conspicuous exception to this; so any word found in <non-participles>
|
||||
is never treated as a participle.
|
||||
|
@ -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>§13. </b>An implicit RP is a word like "carried", or "worn", on its own — this
|
||||
<p class="commentary firstcommentary"><a id="SP14"></a><b>§14. </b>An implicit RP is a word like "carried", or "worn", on its own — 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"><np-relative-phrase-implicit></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">worn</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-np.html#SP13_1" class="named-paragraph-link"><span class="named-paragraph">Act on the implicit RP worn</span><span class="named-paragraph-number">13.1</span></a></span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">carried</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-np.html#SP13_2" class="named-paragraph-link"><span class="named-paragraph">Act on the implicit RP carried</span><span class="named-paragraph-number">13.2</span></a></span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">initially</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">carried</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-np.html#SP13_3" class="named-paragraph-link"><span class="named-paragraph">Act on the implicit RP initially carried</span><span class="named-paragraph-number">13.3</span></a></span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">worn</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-np.html#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">==></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">==></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>§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>§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">§13</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP13_2"></a><b>§13.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Act on the implicit RP carried</span><span class="named-paragraph-number">13.2</span></span><span class="comment-syntax"> =</span>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="4-np.html#SP14">§14</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP14_2"></a><b>§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">§13</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP13_3"></a><b>§13.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Act on the implicit RP initially carried</span><span class="named-paragraph-number">13.3</span></span><span class="comment-syntax"> =</span>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="4-np.html#SP14">§14</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP14_3"></a><b>§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">§13</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP14"></a><b>§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">§14</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP15"></a><b>§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"><np-relative-phrase-explicit></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><permitted-preposition></span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">_,/and</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> 0; return FAIL_NONTERMINAL;</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><permitted-preposition></span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">_,/and</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> 0; return FAIL_NONTERMINAL;</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><permitted-preposition></span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><np-nonrelative></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-np.html#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"><permitted-preposition></span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><np-nonrelative></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-np.html#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>§14.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Work out a meaning</span><span class="named-paragraph-number">14.1</span></span><span class="Preform-comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP15_1"></a><b>§15.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Work out a meaning</span><span class="named-paragraph-number">15.1</span></span><span class="Preform-comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -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">§14</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP15"></a><b>§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">§15</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP16"></a><b>§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 <np-nonrelative>.
|
|||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><np-nonrelative></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> 0; *XP = RP[1]</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is <a href="../words-module/4-ap.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP16"></a><b>§16. </b>The tail of with-or-having parses for instance "with carrying capacity 5"
|
||||
<p class="commentary firstcommentary"><a id="SP17"></a><b>§17. </b>The tail of with-or-having parses for instance "with carrying capacity 5"
|
||||
in the NP
|
||||
</p>
|
||||
|
||||
|
@ -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">==></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>§17. </b>The "and" tail is much easier:
|
||||
<p class="commentary firstcommentary"><a id="SP18"></a><b>§18. </b>The "and" tail is much easier:
|
||||
</p>
|
||||
|
||||
<pre class="Preform-displayed-code all-displayed-code code-font">
|
||||
|
@ -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"><np-operand></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> Wordings::first_wn(W); *XP= RP[1]</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is <a href="../words-module/4-ap.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP18"></a><b>§18. </b>Kind phrases are easier:
|
||||
<p class="commentary firstcommentary"><a id="SP19"></a><b>§19. </b>Kind phrases are easier:
|
||||
</p>
|
||||
|
||||
<blockquote>
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -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>§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",
|
||||
|
|
|
@ -161,7 +161,7 @@ decide which possible reading of the meaning of a noun makes the best sense in
|
|||
context — see <a href="2-nns.html#SP14" class="internal">Nouns::disambiguate</a>.
|
||||
</li><li>● <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>● <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>.
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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">§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">§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>
|
||||
|
|
|
@ -71,7 +71,7 @@ sentences — 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">§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">§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>
|
||||
|
|
|
@ -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">§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">§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>
|
||||
|
|
|
@ -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">, &</span><a href="1-pc.html#SP1" class="function-link"><span class="function-syntax">Main::respond</span></a><span class="plain-syntax">, &</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">, &</span><a href="1-pc.html#SP3" class="function-link"><span class="function-syntax">Main::respond</span></a><span class="plain-syntax">, &</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>§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>§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">§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">§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>
|
||||
|
|
|
@ -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>§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>
|
||||
|
|
|
@ -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"> > </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>§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">-></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">-></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">-></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">❮</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">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
|
|
@ -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
|
@ -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
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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> ::=
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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@>;
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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
47
services/linguistics-module/Figures/recursive-bad-trace.txt
Normal file
47
services/linguistics-module/Figures/recursive-bad-trace.txt
Normal 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}
|
29
services/linguistics-module/Figures/recursive-good-trace.txt
Normal file
29
services/linguistics-module/Figures/recursive-good-trace.txt
Normal 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}
|
30
services/linguistics-module/Figures/simple-trace.txt
Normal file
30
services/linguistics-module/Figures/simple-trace.txt
Normal 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'
|
|
@ -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] -- -- --
|
|
@ -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",
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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}
|
|
@ -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}
|
|
@ -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'
|
|
@ -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] -- -- --
|
|
@ -0,0 +1 @@
|
|||
There is a Ming vase on the table called the table of having.
|
|
@ -0,0 +1 @@
|
|||
There is a Ming vase which is on the table.
|
|
@ -0,0 +1,2 @@
|
|||
Beth is a sailor.
|
||||
A Ming vase is carried by Anna.
|
|
@ -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.
|
|
@ -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
|
||||
|
|
|
@ -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");
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue