1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-07-05 16:44:21 +03:00

Improved testing of prepositions

This commit is contained in:
Graham Nelson 2020-07-18 23:24:04 +01:00
parent 15a20798a8
commit 3e284b25ce
6 changed files with 64 additions and 49 deletions

View file

@ -106,9 +106,9 @@ possible values these are.)
<span class="plain-syntax"> </span><span class="identifier-syntax">PW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">option</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">PW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">option</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">down</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span> <span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">option</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">PW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">option</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;adjective-name&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">PW</span><span class="plain-syntax">)) {</span> <span class="plain-syntax"> </span><span class="identifier-syntax">adjective</span><span class="plain-syntax"> *</span><span class="identifier-syntax">adj</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Adjectives::parse</span><span class="plain-syntax">(</span><span class="identifier-syntax">PW</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">adjective</span><span class="plain-syntax"> *</span><span class="identifier-syntax">aph</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;rp&gt;&gt;</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">adj</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="4-am.html#SP13" class="function-link"><span class="function-syntax">Adjectives::Meanings::has_ENUMERATIVE_meaning</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">aph</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="4-am.html#SP13" class="function-link"><span class="function-syntax">Adjectives::Meanings::has_ENUMERATIVE_meaning</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">adj</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">I</span><span class="plain-syntax">)?</span><a href="5-ins.html#SP18" class="function-link"><span class="function-syntax">Instances::to_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">):</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">I</span><span class="plain-syntax">)?</span><a href="5-ins.html#SP18" class="function-link"><span class="function-syntax">Instances::to_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</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">common_kind</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">common_kind</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">common_kind</span><span class="plain-syntax"> = </span><span class="identifier-syntax">K</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">common_kind</span><span class="plain-syntax"> = </span><span class="identifier-syntax">K</span><span class="plain-syntax">;</span>

View file

@ -115,17 +115,20 @@ any text but then fail.
<pre class="Preform-displayed-code all-displayed-code code-font"> <pre class="Preform-displayed-code all-displayed-code code-font">
<span class="Preform-function-syntax">&lt;verb-stock&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span> <span class="Preform-function-syntax">&lt;verb-stock&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">=</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">verb</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;cardinal-number&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> R[1]; *XP = Conjugation::conjugate(WordAssemblages::from_wording(FW[1]), DefaultLanguage::get(NULL));</span> <span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">=</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">verb</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;cardinal-number&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> R[1]; *XP = Conjugation::conjugate(WordAssemblages::from_wording(FW[1]), DefaultLanguage::get(NULL));</span>
<span class="Preform-function-syntax">&lt;preposition-stock&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">=</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">preposition</span>
<span class="Preform-function-syntax">&lt;common-noun-stock&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span> <span class="Preform-function-syntax">&lt;common-noun-stock&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">=</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">neuter</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">common</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">noun</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> NEUTER_GENDER</span> <span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">=</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">neuter</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">common</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">noun</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> NEUTER_GENDER</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">=</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">masculine</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">common</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">noun</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> MASCULINE_GENDER</span> <span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">=</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">masculine</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">common</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">noun</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> MASCULINE_GENDER</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">=</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">feminine</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">common</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">noun</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> FEMININE_GENDER</span> <span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">=</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">feminine</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">common</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">noun</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> FEMININE_GENDER</span>
<span class="Preform-function-syntax">&lt;proper-noun-stock&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span> <span class="Preform-function-syntax">&lt;proper-noun-stock&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">=</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">neuter</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">proper</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">noun</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> NEUTER_GENDER</span> <span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">=</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">neuter</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">proper</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">noun</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> NEUTER_GENDER</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">=</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">masculine</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">proper</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">noun</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> MASCULINE_GENDER</span> <span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">=</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">masculine</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">proper</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">noun</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> MASCULINE_GENDER</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">=</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">feminine</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">proper</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">noun</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> FEMININE_GENDER</span> <span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">=</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">feminine</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">proper</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">noun</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> FEMININE_GENDER</span>
</pre> </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> <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="SP6"></a><b>&#167;6. Syntax tree. </b></p> <p class="commentary firstcommentary"><a id="SP6"></a><b>&#167;6. Syntax tree. </b></p>
@ -168,6 +171,11 @@ any text but then fail.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vc_be</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">vc_be</span><span class="plain-syntax"> = </span><span class="identifier-syntax">vc</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vc_be</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">vc_be</span><span class="plain-syntax"> = </span><span class="identifier-syntax">vc</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vc_have</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">vc_have</span><span class="plain-syntax"> = </span><span class="identifier-syntax">vc</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vc_have</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">vc_have</span><span class="plain-syntax"> = </span><span class="identifier-syntax">vc</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="../linguistics-module/3-vrb.html#SP12" class="function-link"><span class="function-syntax">Verbs::add_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vi</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><a href="../linguistics-module/3-vm.html#SP6" class="function-link"><span class="function-syntax">VerbMeanings::regular</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">), </span><span class="constant-syntax">SVO_FS_BIT</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="../linguistics-module/3-vrb.html#SP12" class="function-link"><span class="function-syntax">Verbs::add_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vi</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><a href="../linguistics-module/3-vm.html#SP6" class="function-link"><span class="function-syntax">VerbMeanings::regular</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">), </span><span class="constant-syntax">SVO_FS_BIT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;preposition-stock&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">word_assemblage</span><span class="plain-syntax"> </span><span class="identifier-syntax">wa</span><span class="plain-syntax"> = </span><a href="../words-module/2-wa.html#SP4" class="function-link"><span class="function-syntax">WordAssemblages::from_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax">&lt;preposition-stock&gt;</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">preposition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prep</span><span class="plain-syntax"> = </span><a href="../linguistics-module/3-prp.html#SP6" class="function-link"><span class="function-syntax">Prepositions::make</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wa</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</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">vc_be</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="../linguistics-module/3-vrb.html#SP12" class="function-link"><span class="function-syntax">Verbs::add_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc_be</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">vc_conjugates</span><span class="plain-syntax">, </span><span class="identifier-syntax">prep</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><a href="../linguistics-module/3-vm.html#SP6" class="function-link"><span class="function-syntax">VerbMeanings::regular</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc_be</span><span class="plain-syntax">), </span><span class="constant-syntax">SVO_FS_BIT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;common-noun-stock&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) {</span> <span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;common-noun-stock&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax">&lt;common-noun-stock&gt;</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">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax">&lt;common-noun-stock&gt;</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="../linguistics-module/2-nns.html#SP7" class="function-link"><span class="function-syntax">Nouns::new_common_noun</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="function-syntax">&lt;&lt;r&gt;&gt;</span><span class="plain-syntax">, </span><span class="constant-syntax">ADD_TO_LEXICON_NTOPT</span><span class="plain-syntax"> + </span><span class="constant-syntax">WITH_PLURAL_FORMS_NTOPT</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><a href="../linguistics-module/2-nns.html#SP7" class="function-link"><span class="function-syntax">Nouns::new_common_noun</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="function-syntax">&lt;&lt;r&gt;&gt;</span><span class="plain-syntax">, </span><span class="constant-syntax">ADD_TO_LEXICON_NTOPT</span><span class="plain-syntax"> + </span><span class="constant-syntax">WITH_PLURAL_FORMS_NTOPT</span><span class="plain-syntax">,</span>

View file

@ -1,43 +1,36 @@
100.0% in inform7 run 100.0% in inform7 run
66.2% in compilation to Inter 65.9% in compilation to Inter
24.9% in //Phrases::Manager::compile_first_block// 25.7% in //Phrases::Manager::compile_first_block//
8.2% in //Phrases::Manager::compile_as_needed// 8.6% in //Phrases::Manager::compile_as_needed//
7.3% in //Strings::compile_responses// 6.9% in //Strings::compile_responses//
6.7% in //World::Compile::compile// 5.8% in //World::Compile::compile//
3.3% in //Assertions::Traverse::traverse1// 3.4% in //Assertions::Traverse::traverse1//
3.0% in //Sentences::VPs::traverse// 3.0% in //Sentences::VPs::traverse//
2.2% in //Phrases::Manager::RulePrintingRule_routine// 2.0% in //Phrases::Manager::RulePrintingRule_routine//
2.1% in //Phrases::Manager::rulebooks_array// 1.8% in //Phrases::Manager::rulebooks_array//
1.0% in //NewVerbs::ConjugateVerb// 0.9% in //NewVerbs::ConjugateVerb//
0.8% in //Phrases::Manager::traverse// 0.7% in //Phrases::Manager::traverse//
0.5% in //Phrases::Manager::parse_rule_parameters// 0.5% in //Phrases::Manager::parse_rule_parameters//
0.4% in //Phrases::Manager::compile_rulebooks// 0.3% in //Phrases::Manager::compile_rulebooks//
0.3% in //Phrases::Manager::traverse_for_names// 0.3% in //Phrases::Manager::traverse_for_names//
0.3% in //Relations::compile_defined_relations// 0.3% in //Relations::compile_defined_relations//
0.2% in //Assertions::Traverse::traverse2// 0.1% in //Assertions::Traverse::traverse2//
0.2% in //PL::Parsing::Verbs::compile_all// 0.1% in //PL::Parsing::Verbs::compile_all//
0.2% in //Task::load_types//
0.2% in //World::complete//
0.1% in //Emit::begin//
0.1% in //Index::DocReferences::read_xrefs//
0.1% in //Kinds::Knowledge::include_templates_for_kinds//
0.1% in //Phrases::Manager::add_rules_to_rulebooks//
0.1% in //Sentences::Rearrangement::tidy_up_ofs_and_froms//
0.1% in //Sentences::RuleSubtrees::register_recently_lexed_phrases// 0.1% in //Sentences::RuleSubtrees::register_recently_lexed_phrases//
0.1% in //World::complete_additions// 0.1% in //Task::load_types//
2.9% not specifically accounted for 0.1% in //World::complete//
31.3% in running Inter pipeline 3.9% not specifically accounted for
10.7% in step preparation 31.7% in running Inter pipeline
10.4% in inter step 2/12: link 10.3% in step preparation
10.2% in inter step 2/12: link
7.3% in inter step 12/12: generate inform6 -> auto.inf 7.3% in inter step 12/12: generate inform6 -> auto.inf
0.3% in inter step 10/12: reconcile-verbs
0.3% in inter step 9/12: make-identifiers-unique 0.3% in inter step 9/12: make-identifiers-unique
0.2% in inter step 11/12: eliminate-redundant-labels 0.1% in inter step 10/12: reconcile-verbs
0.2% in inter step 6/12: assimilate 0.1% in inter step 11/12: eliminate-redundant-labels
0.2% in inter step 7/12: resolve-external-symbols
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 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 0.1% in inter step 8/12: inspect-plugs
1.1% not specifically accounted for 2.3% not specifically accounted for
2.1% in supervisor 2.0% in supervisor
0.3% not specifically accounted for 0.2% not specifically accounted for

View file

@ -33,9 +33,9 @@ property *Properties::Conditions::new(inference_subject *infs, wording NW, parse
PW = Node::get_text(option->down); PW = Node::get_text(option->down);
else else
PW = Node::get_text(option); PW = Node::get_text(option);
if (<adjective-name>(PW)) { adjective *adj = Adjectives::parse(PW);
adjective *aph = <<rp>>; if (adj) {
instance *I = Adjectives::Meanings::has_ENUMERATIVE_meaning(aph); instance *I = Adjectives::Meanings::has_ENUMERATIVE_meaning(adj);
kind *K = (I)?Instances::to_kind(I):NULL; kind *K = (I)?Instances::to_kind(I):NULL;
if (common_kind == NULL) { if (common_kind == NULL) {
common_kind = K; common_kind = K;

View file

@ -55,17 +55,20 @@ any text but then fail.
@ = @ =
<verb-stock> ::= <verb-stock> ::=
... = verb <cardinal-number> ==> R[1]; *XP = Conjugation::conjugate(WordAssemblages::from_wording(FW[1]), DefaultLanguage::get(NULL)); ... = verb <cardinal-number> ==> R[1]; *XP = Conjugation::conjugate(WordAssemblages::from_wording(FW[1]), DefaultLanguage::get(NULL));
<preposition-stock> ::=
... = preposition
<common-noun-stock> ::= <common-noun-stock> ::=
... = neuter common noun | ==> NEUTER_GENDER ... = neuter common noun | ==> NEUTER_GENDER
... = masculine common noun | ==> MASCULINE_GENDER ... = masculine common noun | ==> MASCULINE_GENDER
... = feminine common noun ==> FEMININE_GENDER ... = feminine common noun ==> FEMININE_GENDER
<proper-noun-stock> ::= <proper-noun-stock> ::=
... = neuter proper noun | ==> NEUTER_GENDER ... = neuter proper noun | ==> NEUTER_GENDER
... = masculine proper noun | ==> MASCULINE_GENDER ... = masculine proper noun | ==> MASCULINE_GENDER
... = feminine proper noun ==> FEMININE_GENDER ... = feminine proper noun ==> FEMININE_GENDER
@h Syntax tree. @h Syntax tree.
@ -107,6 +110,11 @@ void Unit::diagram(parse_node *p) {
if (vc_be == NULL) vc_be = vc; if (vc_be == NULL) vc_be = vc;
else if (vc_have == NULL) vc_have = vc; else if (vc_have == NULL) vc_have = vc;
Verbs::add_form(vi, NULL, NULL, VerbMeanings::regular(vc), SVO_FS_BIT); Verbs::add_form(vi, NULL, NULL, VerbMeanings::regular(vc), SVO_FS_BIT);
} else if (<preposition-stock>(W)) {
word_assemblage wa = WordAssemblages::from_wording(GET_RW(<preposition-stock>, 1));
preposition *prep = Prepositions::make(wa, FALSE, NULL);
if (vc_be)
Verbs::add_form(vc_be->vc_conjugates, prep, NULL, VerbMeanings::regular(vc_be), SVO_FS_BIT);
} else if (<common-noun-stock>(W)) { } else if (<common-noun-stock>(W)) {
wording W = GET_RW(<common-noun-stock>, 1); wording W = GET_RW(<common-noun-stock>, 1);
Nouns::new_common_noun(W, <<r>>, ADD_TO_LEXICON_NTOPT + WITH_PLURAL_FORMS_NTOPT, Nouns::new_common_noun(W, <<r>>, ADD_TO_LEXICON_NTOPT + WITH_PLURAL_FORMS_NTOPT,

View file

@ -10,6 +10,8 @@ mean = verb 3
see = verb 3 see = verb 3
on = preposition
Peter = neuter proper noun Peter = neuter proper noun
Jane = neuter proper noun Jane = neuter proper noun
@ -47,3 +49,7 @@ Some people are here.
Peter always carries the torch. Peter always carries the torch.
Peter carries the torch for the third time. Peter carries the torch for the third time.
On the table is a ball.
A ball is on the table.