1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-06-17 07:40:47 +03:00

Added operator verb declarations to Basic Inform

This commit is contained in:
Graham Nelson 2020-07-31 11:24:59 +01:00
parent 05d4924293
commit cf23bc5b18
22 changed files with 2236 additions and 2155 deletions

View file

@ -42,7 +42,7 @@
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../extensions.html">Extensions</a></li><li><a href="index.html">basicinform</a></li><li><b>Preamble</b></li></ul></div>
<p class="purpose">Basic Inform is like a boot program for a computer that is starting up: it sets up the compiler to implement the familiar language, beginning with basic verbs and use options.</p>
<ul class="toc"><li><a href="S-prm.html#SP1">&#167;1. Title</a></li><li><a href="S-prm.html#SP2">&#167;2. Verbs</a></li><li><a href="S-prm.html#SP7">&#167;7. Use Options</a></li></ul><hr class="tocbar">
<ul class="toc"><li><a href="S-prm.html#SP1">&#167;1. Title</a></li><li><a href="S-prm.html#SP2">&#167;2. Verbs</a></li><li><a href="S-prm.html#SP8">&#167;8. Use Options</a></li></ul><hr class="tocbar">
<p class="commentary firstcommentary"><a id="SP1"></a><b>&#167;1. Title. </b>Every Inform 7 extension begins with a standard titling line and a
rubric text, and this are no exception:
@ -127,10 +127,7 @@ useful for built-in meanings.
<span class="identifier-syntax">The</span><span class="plain-syntax"> </span><span class="identifier-syntax">verb</span><span class="plain-syntax"> </span><span class="identifier-syntax">to</span><span class="plain-syntax"> </span><span class="identifier-syntax">omit</span><span class="plain-syntax"> + </span><span class="identifier-syntax">from</span><span class="plain-syntax"> </span><span class="identifier-syntax">in</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">imperative</span><span class="plain-syntax"> </span><span class="identifier-syntax">means</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">built</span><span class="plain-syntax">-</span><span class="identifier-syntax">in</span><span class="plain-syntax"> </span><span class="identifier-syntax">omit</span><span class="plain-syntax">-</span><span class="identifier-syntax">from</span><span class="plain-syntax"> </span><span class="identifier-syntax">meaning</span><span class="plain-syntax">.</span>
</pre>
<p class="commentary firstcommentary"><a id="SP6"></a><b>&#167;6. </b>We might as well declare these numerical comparisons now, too, though
they're not needed for any of the world-building work. (The verbal usages <span class="extract"><span class="extract-syntax">&lt;</span></span>,
<span class="extract"><span class="extract-syntax">&gt;</span></span>, <span class="extract"><span class="extract-syntax">&lt;=</span></span> and <span class="extract"><span class="extract-syntax">&gt;=</span></span> are built into Inform; those would be the same in any
language, and are unlike other verbs since they have no inflected forms for
non-present tenses.)
they're not needed for any of the world-building work.
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -139,14 +136,25 @@ non-present tenses.)
<span class="identifier-syntax">The</span><span class="plain-syntax"> </span><span class="identifier-syntax">verb</span><span class="plain-syntax"> </span><span class="identifier-syntax">to</span><span class="plain-syntax"> </span><span class="identifier-syntax">be</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">least</span><span class="plain-syntax"> </span><span class="identifier-syntax">means</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">numerically</span><span class="plain-syntax">-</span><span class="identifier-syntax">greater</span><span class="plain-syntax">-</span><span class="identifier-syntax">than</span><span class="plain-syntax">-</span><span class="identifier-syntax">or</span><span class="plain-syntax">-</span><span class="identifier-syntax">equal</span><span class="plain-syntax">-</span><span class="identifier-syntax">to</span><span class="plain-syntax"> </span><span class="identifier-syntax">relation</span><span class="plain-syntax">.</span>
<span class="identifier-syntax">The</span><span class="plain-syntax"> </span><span class="identifier-syntax">verb</span><span class="plain-syntax"> </span><span class="identifier-syntax">to</span><span class="plain-syntax"> </span><span class="identifier-syntax">be</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">most</span><span class="plain-syntax"> </span><span class="identifier-syntax">means</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">numerically</span><span class="plain-syntax">-</span><span class="identifier-syntax">less</span><span class="plain-syntax">-</span><span class="identifier-syntax">than</span><span class="plain-syntax">-</span><span class="identifier-syntax">or</span><span class="plain-syntax">-</span><span class="identifier-syntax">equal</span><span class="plain-syntax">-</span><span class="identifier-syntax">to</span><span class="plain-syntax"> </span><span class="identifier-syntax">relation</span><span class="plain-syntax">.</span>
</pre>
<p class="commentary firstcommentary"><a id="SP7"></a><b>&#167;7. Use Options. </b>The following has no effect, and exists only to be a default non-value for
<p class="commentary firstcommentary"><a id="SP7"></a><b>&#167;7. </b>And these have symbolic equivalents as operators, declared using the
following syntax. Operators are unlike other verbs in that they have no
inflected forms and exist only in the present tense.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">The</span><span class="plain-syntax"> </span><span class="identifier-syntax">operator</span><span class="plain-syntax"> &gt; </span><span class="identifier-syntax">means</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">numerically</span><span class="plain-syntax">-</span><span class="identifier-syntax">greater</span><span class="plain-syntax">-</span><span class="identifier-syntax">than</span><span class="plain-syntax"> </span><span class="identifier-syntax">relation</span><span class="plain-syntax">.</span>
<span class="identifier-syntax">The</span><span class="plain-syntax"> </span><span class="identifier-syntax">operator</span><span class="plain-syntax"> &lt; </span><span class="identifier-syntax">means</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">numerically</span><span class="plain-syntax">-</span><span class="identifier-syntax">less</span><span class="plain-syntax">-</span><span class="identifier-syntax">than</span><span class="plain-syntax"> </span><span class="identifier-syntax">relation</span><span class="plain-syntax">.</span>
<span class="identifier-syntax">The</span><span class="plain-syntax"> </span><span class="identifier-syntax">operator</span><span class="plain-syntax"> &gt;= </span><span class="identifier-syntax">means</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">numerically</span><span class="plain-syntax">-</span><span class="identifier-syntax">greater</span><span class="plain-syntax">-</span><span class="identifier-syntax">than</span><span class="plain-syntax">-</span><span class="identifier-syntax">or</span><span class="plain-syntax">-</span><span class="identifier-syntax">equal</span><span class="plain-syntax">-</span><span class="identifier-syntax">to</span><span class="plain-syntax"> </span><span class="identifier-syntax">relation</span><span class="plain-syntax">.</span>
<span class="identifier-syntax">The</span><span class="plain-syntax"> </span><span class="identifier-syntax">operator</span><span class="plain-syntax"> &lt;= </span><span class="identifier-syntax">means</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">numerically</span><span class="plain-syntax">-</span><span class="identifier-syntax">less</span><span class="plain-syntax">-</span><span class="identifier-syntax">than</span><span class="plain-syntax">-</span><span class="identifier-syntax">or</span><span class="plain-syntax">-</span><span class="identifier-syntax">equal</span><span class="plain-syntax">-</span><span class="identifier-syntax">to</span><span class="plain-syntax"> </span><span class="identifier-syntax">relation</span><span class="plain-syntax">.</span>
</pre>
<p class="commentary firstcommentary"><a id="SP8"></a><b>&#167;8. Use Options. </b>The following has no effect, and exists only to be a default non-value for
"use option" variables, should anyone ever create them:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">Use</span><span class="plain-syntax"> </span><span class="identifier-syntax">ineffectual</span><span class="plain-syntax"> </span><span class="identifier-syntax">translates</span><span class="plain-syntax"> </span><span class="identifier-syntax">as</span><span class="plain-syntax"> (- ! </span><span class="identifier-syntax">Use</span><span class="plain-syntax"> </span><span class="identifier-syntax">ineffectual</span><span class="plain-syntax"> </span><span class="identifier-syntax">does</span><span class="plain-syntax"> </span><span class="identifier-syntax">nothing</span><span class="plain-syntax">. -).</span>
</pre>
<p class="commentary firstcommentary"><a id="SP8"></a><b>&#167;8. </b>We can now make definitions of miscellaneous options: none are used by default,
<p class="commentary firstcommentary"><a id="SP9"></a><b>&#167;9. </b>We can now make definitions of miscellaneous options: none are used by default,
but all translate into I6 constant definitions if used. (These are constants
whose values are used in the I6 library or in the template layer, which is
how they have effect.)
@ -167,7 +175,7 @@ how they have effect.)
<span class="identifier-syntax">Use</span><span class="plain-syntax"> </span><span class="identifier-syntax">gn</span><span class="plain-syntax"> </span><span class="identifier-syntax">testing</span><span class="plain-syntax"> </span><span class="identifier-syntax">version</span><span class="plain-syntax"> </span><span class="identifier-syntax">translates</span><span class="plain-syntax"> </span><span class="identifier-syntax">as</span><span class="plain-syntax"> (- </span><span class="identifier-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">GN_TESTING_VERSION</span><span class="plain-syntax">; -).</span>
<span class="identifier-syntax">Use</span><span class="plain-syntax"> </span><span class="identifier-syntax">authorial</span><span class="plain-syntax"> </span><span class="identifier-syntax">modesty</span><span class="plain-syntax"> </span><span class="identifier-syntax">translates</span><span class="plain-syntax"> </span><span class="identifier-syntax">as</span><span class="plain-syntax"> (- </span><span class="identifier-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">AUTHORIAL_MODESTY</span><span class="plain-syntax">; -).</span>
</pre>
<p class="commentary firstcommentary"><a id="SP9"></a><b>&#167;9. </b>These, on the other hand, are settings used by the dynamic memory management
<p class="commentary firstcommentary"><a id="SP10"></a><b>&#167;10. </b>These, on the other hand, are settings used by the dynamic memory management
code, which runs in I6 as part of the template layer. Each setting translates
to an I6 constant declaration, with the value chosen being substituted for
<span class="extract"><span class="extract-syntax">{N}</span></span>.
@ -191,7 +199,7 @@ want to avoid it whenever possible.)
<span class="identifier-syntax">Use</span><span class="plain-syntax"> </span><span class="identifier-syntax">dynamic</span><span class="plain-syntax"> </span><span class="identifier-syntax">memory</span><span class="plain-syntax"> </span><span class="identifier-syntax">allocation</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">least</span><span class="plain-syntax"> </span><span class="constant-syntax">8192</span><span class="plain-syntax">.</span>
</pre>
<p class="commentary firstcommentary"><a id="SP10"></a><b>&#167;10. </b>Some Inform 7 projects are rather heavy-duty by the expectations of the
<p class="commentary firstcommentary"><a id="SP11"></a><b>&#167;11. </b>Some Inform 7 projects are rather heavy-duty by the expectations of the
Inform 6 compiler (which it uses as a code-generator): I6 was written fifteen
years earlier, when computers were unimaginably smaller and slower. So many
of its default memory settings need to be raised to higher maxima.

View file

@ -202,7 +202,6 @@ most of these worker functions are in the <span class="extract"><span class="ext
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP8" class="function-link"><span class="function-syntax">Task::load_types</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="6-bp.html#SP45" class="function-link"><span class="function-syntax">BinaryPredicates::make_built_in</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="13-kak.html#SP6" class="function-link"><span class="function-syntax">Kinds::Knowledge::include_templates_for_kinds</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="6-nv.html#SP5" class="function-link"><span class="function-syntax">NewVerbs::add_inequalities</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="1-wtc.html#SP4" class="function-link"><span class="function-syntax">Task::advance_stage_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SEMANTIC_I_CSEQ</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Semantic analysis Ib"</span><span class="plain-syntax">, -1);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="3-bv.html#SP1" class="function-link"><span class="function-syntax">BootVerbs::bootstrap</span></a><span class="plain-syntax">)</span>

View file

@ -416,8 +416,12 @@ either specify two parameters, both of them terms...
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">give_kind_id</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">pt</span><span class="plain-syntax">) </span><a href="13-rsfk.html#SP9" class="function-link"><span class="function-syntax">Kinds::RunTime::emit_weak_id_as_val</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pt</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">term_checked_as_kind</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">give_comparison_routine</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cr</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">pt</span><span class="plain-syntax">)?(</span><span class="identifier-syntax">Kinds::Behaviour::get_comparison_routine_as_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">pt</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">term_checked_as_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">cr</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">cr</span><span class="plain-syntax"> = </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SIGNEDCOMPARE_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cr</span><span class="plain-syntax"> = </span><a href="27-hr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SIGNEDCOMPARE_HL</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">pt</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">pt</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">term_checked_as_kind</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">specialised_cr</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Kinds::Behaviour::get_comparison_routine_as_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">pt</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">term_checked_as_kind</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">specialised_cr</span><span class="plain-syntax">) </span><span class="identifier-syntax">cr</span><span class="plain-syntax"> = </span><span class="identifier-syntax">specialised_cr</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_iname</span><span class="plain-syntax">(</span><a href="27-em.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">cr</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">by_reference</span><span class="plain-syntax">) {</span>

View file

@ -138,46 +138,31 @@ notation rather than words. (This is why the variable <span class="extract"><spa
cleared.)
</p>
<pre class="Preform-displayed-code all-displayed-code code-font">
<span class="Preform-function-syntax">&lt;inequality-conjugations&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">&lt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-comment-syntax"> implies the numerically-less-than relation</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-comment-syntax"> implies the numerically-greater-than relation</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">&lt;=</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-comment-syntax"> implies the numerically-less-than-or-equal-to relation</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">&gt;=</span><span class="Preform-plain-syntax"> </span><span class="Preform-comment-syntax"> implies the numerically-greater-than-or-equal-to relation</span>
<span class="Preform-reserved-syntax">void</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">NewVerbs::add_inequalities</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="Preform-comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="Preform-function-syntax">NewVerbs::add_inequalities</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_3">&#167;2.3</a></span></button><span class="Preform-plain-syntax">(</span><span class="Preform-reserved-syntax">void</span><span class="Preform-plain-syntax">) {</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">current_main_verb</span><span class="Preform-plain-syntax"> = </span><span class="Preform-identifier-syntax">NULL</span><span class="Preform-plain-syntax">;</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">for</span><span class="Preform-plain-syntax"> (</span><span class="Preform-reserved-syntax">int</span><span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">i</span><span class="Preform-plain-syntax">=0; </span><span class="Preform-identifier-syntax">i</span><span class="Preform-plain-syntax">&lt;=3; </span><span class="Preform-identifier-syntax">i</span><span class="Preform-plain-syntax">++) {</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">verb</span><span class="Preform-plain-syntax"> *</span><span class="Preform-identifier-syntax">v</span><span class="Preform-plain-syntax"> = </span><span class="Preform-identifier-syntax">NULL</span><span class="Preform-plain-syntax">;</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">switch</span><span class="Preform-plain-syntax"> (</span><span class="Preform-identifier-syntax">i</span><span class="Preform-plain-syntax">) {</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">case</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">0</span><span class="Preform-plain-syntax">: </span><span class="Preform-identifier-syntax">v</span><span class="Preform-plain-syntax"> = </span><span class="Preform-identifier-syntax">Verbs::new_operator_verb</span><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">VerbMeanings::regular</span><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">R_numerically_less_than</span><span class="Preform-plain-syntax">)); </span><span class="Preform-reserved-syntax">break</span><span class="Preform-plain-syntax">;</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">case</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">1</span><span class="Preform-plain-syntax">: </span><span class="Preform-identifier-syntax">v</span><span class="Preform-plain-syntax"> = </span><span class="Preform-identifier-syntax">Verbs::new_operator_verb</span><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">VerbMeanings::regular</span><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">R_numerically_greater_than</span><span class="Preform-plain-syntax">)); </span><span class="Preform-reserved-syntax">break</span><span class="Preform-plain-syntax">;</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">case</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">2</span><span class="Preform-plain-syntax">: </span><span class="Preform-identifier-syntax">v</span><span class="Preform-plain-syntax"> = </span><span class="Preform-identifier-syntax">Verbs::new_operator_verb</span><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">VerbMeanings::regular</span><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">R_numerically_less_than_or_equal_to</span><span class="Preform-plain-syntax">)); </span><span class="Preform-reserved-syntax">break</span><span class="Preform-plain-syntax">;</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">case</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">3</span><span class="Preform-plain-syntax">: </span><span class="Preform-identifier-syntax">v</span><span class="Preform-plain-syntax"> = </span><span class="Preform-identifier-syntax">Verbs::new_operator_verb</span><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">VerbMeanings::regular</span><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">R_numerically_greater_than_or_equal_to</span><span class="Preform-plain-syntax">)); </span><span class="Preform-reserved-syntax">break</span><span class="Preform-plain-syntax">;</span>
<span class="Preform-plain-syntax"> }</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">grammatical_usage</span><span class="Preform-plain-syntax"> *</span><span class="Preform-identifier-syntax">gu</span><span class="Preform-plain-syntax"> = </span><span class="Preform-identifier-syntax">Stock::new_usage</span><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">v</span><span class="Preform-plain-syntax">-&gt;</span><span class="Preform-identifier-syntax">in_stock</span><span class="Preform-plain-syntax">, </span><a href="1-wtc.html#SP5" class="function-link"><span class="Preform-function-syntax">Task::language_of_syntax</span></a><span class="Preform-plain-syntax">());</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">lcon_ti</span><span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">l</span><span class="Preform-plain-syntax"> = </span><span class="Preform-identifier-syntax">Verbs::to_lcon</span><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">v</span><span class="Preform-plain-syntax">);</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">l</span><span class="Preform-plain-syntax"> = </span><span class="Preform-identifier-syntax">Lcon::set_voice</span><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">l</span><span class="Preform-plain-syntax">, </span><span class="Preform-identifier-syntax">ACTIVE_VOICE</span><span class="Preform-plain-syntax">);</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">l</span><span class="Preform-plain-syntax"> = </span><span class="Preform-identifier-syntax">Lcon::set_tense</span><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">l</span><span class="Preform-plain-syntax">, </span><span class="Preform-identifier-syntax">IS_TENSE</span><span class="Preform-plain-syntax">);</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">l</span><span class="Preform-plain-syntax"> = </span><span class="Preform-identifier-syntax">Lcon::set_sense</span><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">l</span><span class="Preform-plain-syntax">, </span><span class="Preform-identifier-syntax">POSITIVE_SENSE</span><span class="Preform-plain-syntax">);</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">l</span><span class="Preform-plain-syntax"> = </span><span class="Preform-identifier-syntax">Lcon::set_person</span><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">l</span><span class="Preform-plain-syntax">, </span><span class="Preform-identifier-syntax">THIRD_PERSON</span><span class="Preform-plain-syntax">);</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">l</span><span class="Preform-plain-syntax"> = </span><span class="Preform-identifier-syntax">Lcon::set_number</span><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">l</span><span class="Preform-plain-syntax">, </span><span class="Preform-identifier-syntax">SINGULAR_NUMBER</span><span class="Preform-plain-syntax">);</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">Stock::add_form_to_usage</span><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">gu</span><span class="Preform-plain-syntax">, </span><span class="Preform-identifier-syntax">l</span><span class="Preform-plain-syntax">);</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">VerbUsages::new</span><span class="Preform-plain-syntax">(</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">PreformUtilities::wording</span><span class="Preform-plain-syntax">(</span><span class="Preform-function-syntax">&lt;inequality-conjugations&gt;</span><span class="Preform-plain-syntax">, </span><span class="Preform-identifier-syntax">i</span><span class="Preform-plain-syntax">), </span><span class="Preform-identifier-syntax">FALSE</span><span class="Preform-plain-syntax">, </span><span class="Preform-identifier-syntax">gu</span><span class="Preform-plain-syntax">, </span><span class="Preform-identifier-syntax">NULL</span><span class="Preform-plain-syntax">);</span>
<span class="Preform-plain-syntax"> }</span>
<span class="Preform-plain-syntax">}</span>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">NewVerbs::add_operator</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">NewVerbs::add_operator</span></span>:<br/><a href="6-nv.html#SP15">&#167;15</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">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">current_main_verb</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">verb</span><span class="plain-syntax"> *</span><span class="identifier-syntax">v</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Verbs::new_operator_verb</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">grammatical_usage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gu</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Stock::new_usage</span><span class="plain-syntax">(</span><span class="identifier-syntax">v</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">in_stock</span><span class="plain-syntax">, </span><a href="1-wtc.html#SP5" class="function-link"><span class="function-syntax">Task::language_of_syntax</span></a><span class="plain-syntax">());</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">lcon_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">l</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Verbs::to_lcon</span><span class="plain-syntax">(</span><span class="identifier-syntax">v</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">l</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Lcon::set_voice</span><span class="plain-syntax">(</span><span class="identifier-syntax">l</span><span class="plain-syntax">, </span><span class="identifier-syntax">ACTIVE_VOICE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">l</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Lcon::set_tense</span><span class="plain-syntax">(</span><span class="identifier-syntax">l</span><span class="plain-syntax">, </span><span class="identifier-syntax">IS_TENSE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">l</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Lcon::set_sense</span><span class="plain-syntax">(</span><span class="identifier-syntax">l</span><span class="plain-syntax">, </span><span class="identifier-syntax">POSITIVE_SENSE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">l</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Lcon::set_person</span><span class="plain-syntax">(</span><span class="identifier-syntax">l</span><span class="plain-syntax">, </span><span class="identifier-syntax">THIRD_PERSON</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">l</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Lcon::set_number</span><span class="plain-syntax">(</span><span class="identifier-syntax">l</span><span class="plain-syntax">, </span><span class="identifier-syntax">SINGULAR_NUMBER</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Stock::add_form_to_usage</span><span class="plain-syntax">(</span><span class="identifier-syntax">gu</span><span class="plain-syntax">, </span><span class="identifier-syntax">l</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">"So W is %W\n"</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">VerbUsages::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">WordAssemblages::from_wording</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">), </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">gu</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<ul class="endnotetexts"><li>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. Parsing new verb declarations. </b>In addition to the built-in stock, new verbs can be declared from the
source text. This is where such text is parsed and acted upon.
</p>
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="Preform-constant-syntax">PROP_VERBM</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">1</span>
<span class="definition-keyword">define</span> <span class="Preform-constant-syntax">REL_VERBM</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">2</span>
<span class="definition-keyword">define</span> <span class="Preform-constant-syntax">VM_VERBM</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">3</span>
<span class="definition-keyword">define</span> <span class="Preform-constant-syntax">BUILTIN_VERBM</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">4</span>
<span class="definition-keyword">define</span> <span class="Preform-constant-syntax">NONE_VERBM</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">5</span>
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">PROP_VERBM</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">REL_VERBM</span><span class="plain-syntax"> </span><span class="constant-syntax">2</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">VM_VERBM</span><span class="plain-syntax"> </span><span class="constant-syntax">3</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">BUILTIN_VERBM</span><span class="plain-syntax"> </span><span class="constant-syntax">4</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">NONE_VERBM</span><span class="plain-syntax"> </span><span class="constant-syntax">5</span>
</pre>
<p class="commentary firstcommentary"><a id="SP7"></a><b>&#167;7. </b>This is the grammar for parsing new verb declarations:
</p>
@ -197,8 +182,8 @@ as the object.
<pre class="Preform-displayed-code all-displayed-code code-font">
<span class="Preform-function-syntax">&lt;verb-implies-sentence-subject&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">in</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;natural-language&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;infinitive-declaration&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> { R[2], -, &lt;&lt;inform_language:nl&gt;&gt; = RP[1] }</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;infinitive-declaration&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> { R[1], -, &lt;&lt;inform_language:nl&gt;&gt; = DefaultLanguage::get(NULL) }</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">in</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;natural-language&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;infinitive-declaration&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> { R[2], RP[1] }</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;infinitive-declaration&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> { R[1], DefaultLanguage::get(NULL) }</span>
<span class="Preform-function-syntax">&lt;infinitive-declaration&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">to</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;infinitive-usage&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-reserved-syntax">)</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> { R[1], -, &lt;&lt;giving-parts&gt;&gt; = TRUE }</span>
@ -343,7 +328,7 @@ now absolutely any non-empty word range is accepted as the property name.
<span class="plain-syntax"> </span><span class="function-syntax">&lt;np-unparsed&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">SW</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</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="identifier-syntax">V</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax"> = </span><span class="identifier-syntax">O</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="6-nv.html#SP15" class="function-link"><span class="function-syntax">NewVerbs::parse_new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="6-nv.html#SP15" class="function-link"><span class="function-syntax">NewVerbs::parse_new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
@ -362,7 +347,8 @@ now absolutely any non-empty word range is accepted as the property name.
<span class="Preform-function-syntax">&lt;verb-means-sentence-subject-unarticled&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">verb</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">to</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"> { fail }</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;np-unparsed&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">in</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">the</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">imperative</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"> { TRUE, RP[1] }</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;np-unparsed&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> { FALSE, RP[1] }</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;np-unparsed&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> { FALSE, RP[1] }</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">operator</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;np-unparsed&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> { NOT_APPLICABLE, 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="SP14"></a><b>&#167;14. </b></p>
@ -374,11 +360,13 @@ now absolutely any non-empty word range is accepted as the property name.
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">task</span><span class="plain-syntax">) { </span><span class="comment-syntax"> "The verb to grow means the growing relation."</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">ACCEPT_SMFT:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;verb-means-sentence-subject&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">SW</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">imperative_flag</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;r&gt;&gt;</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">imperative_flag</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">operator_flag</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;&lt;r&gt;&gt;</span><span class="plain-syntax"> == </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">) </span><span class="identifier-syntax">imperative_flag</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="function-syntax">&lt;&lt;r&gt;&gt;</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NOT_APPLICABLE</span><span class="plain-syntax">) </span><span class="identifier-syntax">operator_flag</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</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="function-syntax">&lt;np-articled&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">OW</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;rp&gt;&gt;</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="6-nv.html#SP15" class="function-link"><span class="function-syntax">NewVerbs::parse_new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="identifier-syntax">imperative_flag</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="6-nv.html#SP15" class="function-link"><span class="function-syntax">NewVerbs::parse_new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="identifier-syntax">imperative_flag</span><span class="plain-syntax">, </span><span class="identifier-syntax">operator_flag</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
@ -389,8 +377,7 @@ now absolutely any non-empty word range is accepted as the property name.
<p class="commentary firstcommentary"><a id="SP15"></a><b>&#167;15. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">new_verb_sequence_count</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">NewVerbs::parse_new</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">NewVerbs::parse_new</span></span>:<br/><a href="6-nv.html#SP12">&#167;12</a>, <a href="6-nv.html#SP14">&#167;14</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">PN</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">imperative</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">NewVerbs::parse_new</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">NewVerbs::parse_new</span></span>:<br/><a href="6-nv.html#SP12">&#167;12</a>, <a href="6-nv.html#SP14">&#167;14</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">PN</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">imperative</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">operator</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">PW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">; </span><span class="comment-syntax"> wording of the parts of speech</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">verb_meaning</span><span class="plain-syntax"> </span><span class="identifier-syntax">vm</span><span class="plain-syntax"> = </span><span class="identifier-syntax">VerbMeanings::meaninglessness</span><span class="plain-syntax">(); </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">meaning_given</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">priority</span><span class="plain-syntax"> = -1;</span>
@ -398,8 +385,13 @@ now absolutely any non-empty word range is accepted as the property name.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">PN</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-nv.html#SP15_1" class="named-paragraph-link"><span class="named-paragraph">Find the underlying relation of the new verb or preposition</span><span class="named-paragraph-number">15.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">operator</span><span class="plain-syntax">) &amp;&amp; (</span><span class="function-syntax">&lt;verb-means-sentence-subject&gt;(Node::get_text(PN-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">)))) {</span>
<span class="plain-syntax"> </span><a href="6-nv.html#SP5" class="function-link"><span class="function-syntax">NewVerbs::add_operator</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="function-syntax">&lt;&lt;rp&gt;&gt;</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">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;verb-implies-sentence-subject&gt;(Node::get_text(PN-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inform_language</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nl</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;inform_language:nl&gt;&gt;</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inform_language</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nl</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">r</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;r&gt;&gt;</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax">&lt;infinitive-usage&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">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;&lt;giving-parts&gt;&gt;</span><span class="plain-syntax">) </span><span class="identifier-syntax">PW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax">&lt;infinitive-declaration&gt;</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
@ -751,7 +743,6 @@ foreign verbs (4).
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">bp</span><span class="plain-syntax"> == </span><span class="identifier-syntax">a_has_b_predicate</span><span class="plain-syntax">) </span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">bp</span><span class="plain-syntax"> == </span><span class="identifier-syntax">R_equality</span><span class="plain-syntax">) </span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="constant-syntax">2</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">nl</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">nl</span><span class="plain-syntax"> != </span><span class="identifier-syntax">DefaultLanguage::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">))) </span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="constant-syntax">5</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> ++</span><span class="identifier-syntax">new_verb_sequence_count</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">vi</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Verbs::new_verb</span><span class="plain-syntax">(</span><span class="identifier-syntax">vc</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">vc</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">vc_conjugates</span><span class="plain-syntax"> = </span><span class="identifier-syntax">vi</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">priority</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">priority</span><span class="plain-syntax">;</span>

View file

@ -475,10 +475,10 @@ representation of objects.)
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">set</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax">/-- </span><span class="identifier-syntax">locale</span><span class="plain-syntax"> </span><span class="identifier-syntax">priority</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> (</span><span class="identifier-syntax">O</span><span class="plain-syntax"> - </span><span class="identifier-syntax">an</span><span class="plain-syntax"> </span><span class="identifier-syntax">object</span><span class="plain-syntax">) </span><span class="identifier-syntax">to</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax"> - </span><span class="identifier-syntax">a</span><span class="plain-syntax"> </span><span class="identifier-syntax">number</span><span class="plain-syntax">):</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">if</span><span class="plain-syntax"> </span><span class="identifier-syntax">O</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">a</span><span class="plain-syntax"> </span><span class="identifier-syntax">thing</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">if</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax"> &lt;= </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">now</span><span class="plain-syntax"> </span><span class="identifier-syntax">O</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">mentioned</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">if</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">most</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">now</span><span class="plain-syntax"> </span><span class="identifier-syntax">O</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">mentioned</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">if</span><span class="plain-syntax"> </span><span class="identifier-syntax">there</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">a</span><span class="plain-syntax"> </span><span class="identifier-syntax">notable</span><span class="plain-syntax">-</span><span class="identifier-syntax">object</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">O</span><span class="plain-syntax"> </span><span class="identifier-syntax">in</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">Table</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">Locale</span><span class="plain-syntax"> </span><span class="identifier-syntax">Priorities</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">choose</span><span class="plain-syntax"> </span><span class="identifier-syntax">row</span><span class="plain-syntax"> </span><span class="identifier-syntax">with</span><span class="plain-syntax"> </span><span class="identifier-syntax">a</span><span class="plain-syntax"> </span><span class="identifier-syntax">notable</span><span class="plain-syntax">-</span><span class="identifier-syntax">object</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">O</span><span class="plain-syntax"> </span><span class="identifier-syntax">in</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">Table</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">Locale</span><span class="plain-syntax"> </span><span class="identifier-syntax">Priorities</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">if</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax"> &lt;= </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">blank</span><span class="plain-syntax"> </span><span class="identifier-syntax">out</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">whole</span><span class="plain-syntax"> </span><span class="identifier-syntax">row</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">if</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">most</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">blank</span><span class="plain-syntax"> </span><span class="identifier-syntax">out</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">whole</span><span class="plain-syntax"> </span><span class="identifier-syntax">row</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">otherwise</span><span class="plain-syntax"> </span><span class="identifier-syntax">now</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">locale</span><span class="plain-syntax"> </span><span class="identifier-syntax">description</span><span class="plain-syntax"> </span><span class="identifier-syntax">priority</span><span class="plain-syntax"> </span><span class="identifier-syntax">entry</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">otherwise</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">if</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">greater</span><span class="plain-syntax"> </span><span class="identifier-syntax">than</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">:</span>

View file

@ -344,7 +344,6 @@ days when overlong records were truncated.
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><a href="4-em.html#SP5" class="function-link"><span class="function-syntax">ExtensionManager::claim_file_as_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</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">C</span><span class="plain-syntax">) </span><a href="7-dct.html#SP4" class="function-link"><span class="function-syntax">ExtensionDictionary::new_ede</span></a><span class="plain-syntax">(</span><a href="4-em.html#SP4" class="function-link"><span class="function-syntax">ExtensionManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">category</span><span class="plain-syntax">, </span><span class="identifier-syntax">author</span><span class="plain-syntax">, </span><span class="identifier-syntax">title</span><span class="plain-syntax">, </span><span class="identifier-syntax">headword</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">PRINT</span><span class="plain-syntax">(</span><span class="string-syntax">"Hapless! on %S\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">line_entry</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
</pre>

View file

@ -243,7 +243,6 @@ void ExtensionDictionary::load_helper(text_stream *line_entry,
inbuild_copy *C = ExtensionManager::claim_file_as_copy(F);
if (C) ExtensionDictionary::new_ede(ExtensionManager::from_copy(C),
category, author, title, headword);
else PRINT("Hapless! on %S\n", line_entry);
}
}

File diff suppressed because it is too large Load diff

View file

@ -157,6 +157,22 @@ ROOT_NT
VERB_NT'means' {verb 'mean' 3p s act IS_TENSE +ve} {special meaning: verb-means}
UNPARSED_NOUN_NT'to be at most'
UNPARSED_NOUN_NT'numerically-less-than-or-equal-to relation' {definite 'the' n/m/f s/p nom/acc}
SENTENCE_NT'the operator > means the numerically-greater-than relation'
VERB_NT'means' {verb 'mean' 3p s act IS_TENSE +ve} {special meaning: verb-means}
UNPARSED_NOUN_NT'>'
UNPARSED_NOUN_NT'numerically-greater-than relation' {definite 'the' n/m/f s/p nom/acc}
SENTENCE_NT'the operator < means the numerically-less-than relation'
VERB_NT'means' {verb 'mean' 3p s act IS_TENSE +ve} {special meaning: verb-means}
UNPARSED_NOUN_NT'<'
UNPARSED_NOUN_NT'numerically-less-than relation' {definite 'the' n/m/f s/p nom/acc}
SENTENCE_NT'the operator >= means the numerically-greater-than-or-equal-'
VERB_NT'means' {verb 'mean' 3p s act IS_TENSE +ve} {special meaning: verb-means}
UNPARSED_NOUN_NT'>='
UNPARSED_NOUN_NT'numerically-greater-than-or-equal-to relation' {definite 'the' n/m/f s/p nom/acc}
SENTENCE_NT'the operator <= means the numerically-less-than-or-equal-to '
VERB_NT'means' {verb 'mean' 3p s act IS_TENSE +ve} {special meaning: verb-means}
UNPARSED_NOUN_NT'<='
UNPARSED_NOUN_NT'numerically-less-than-or-equal-to relation' {definite 'the' n/m/f s/p nom/acc}
SENTENCE_NT'use ineffectual translates as (- ! Use ineffectual does not'
VERB_NT'translates as' {verb 'translate' 3p s act IS_TENSE +ve} {special meaning: use-translates}
UNPARSED_NOUN_NT'ineffectual'
@ -6984,10 +7000,10 @@ ROOT_NT
TEST_PROPOSITION_NT'o is a thing'(test: [ kind=thing('o') ])
CODE_BLOCK_NT
CODE_BLOCK_NT
INVOCATION_LIST_NT'if n <= 0'
INVOCATION_NT'if n <= 0'
CONDITION_CONTEXT_NT'n <= 0'
TEST_PROPOSITION_NT'n <= 0'(test: [ at-most('n', '0') ])
INVOCATION_LIST_NT'if n is at most 0'
INVOCATION_NT'if n is at most 0'
CONDITION_CONTEXT_NT'n is at most 0'
TEST_PROPOSITION_NT'n is at most 0'(test: [ at-most('n', '0') ])
CODE_BLOCK_NT
INVOCATION_LIST_NT'now o is mentioned'
CONDITION_CONTEXT_NT'o is mentioned'
@ -7015,10 +7031,10 @@ ROOT_NT
RVALUE_CONTEXT_NT'table of locale priorities'
{table of locale priorities = TABLE_MC}'table of locale priorities'-table name
CODE_BLOCK_NT
INVOCATION_LIST_NT'if n <= 0'
INVOCATION_NT'if n <= 0'
CONDITION_CONTEXT_NT'n <= 0'
TEST_PROPOSITION_NT'n <= 0'(test: [ at-most('n', '0') ])
INVOCATION_LIST_NT'if n is at most 0'
INVOCATION_NT'if n is at most 0'
CONDITION_CONTEXT_NT'n is at most 0'
TEST_PROPOSITION_NT'n is at most 0'(test: [ at-most('n', '0') ])
CODE_BLOCK_NT
INVOCATION_LIST_NT'blank out the whole row'
INVOCATION_NT'blank out the whole row'

View file

@ -1,40 +1,40 @@
Total memory consumption was 257150K = 251 MB
Total memory consumption was 257267K = 251 MB
62.5% was used for 1337728 objects, in 273244 frames in 201 x 800K = 160800K = 157 MB:
62.5% was used for 1339945 objects, in 273670 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 129968 objects, 10397440 bytes
2.8% verb_conjugation 160 objects, 7425280 bytes
5.5% text_stream_array 2579 x 100 = 257900 objects, 14524928 bytes
3.9% parse_node 130008 objects, 10400640 bytes
2.8% verb_conjugation 164 objects, 7610912 bytes
2.7% parse_node_annotation_array 445 x 500 = 222500 objects, 7134240 bytes
2.3% inter_symbol_array 70 x 1024 = 71680 objects, 6310080 bytes
1.8% linked_list 8915 objects, 4992400 bytes
1.8% linked_list 8930 objects, 5000800 bytes
1.3% pcalc_prop_array 24 x 1000 = 24000 objects, 3648768 bytes
1.1% map_data 660 objects, 3131040 bytes
0.9% kind_array 65 x 1000 = 65000 objects, 2602080 bytes
0.7% inter_schema_token 13492 objects, 1942848 bytes
0.7% inter_schema_token 13536 objects, 1949184 bytes
0.6% vocabulary_entry_array 161 x 100 = 16100 objects, 1808352 bytes
0.5% match_trie_array 10 x 1000 = 10000 objects, 1360320 bytes
0.4% phrase 940 objects, 1210720 bytes
0.3% inter_name_array 21 x 1000 = 21000 objects, 1008672 bytes
0.3% adjective_meaning 202 objects, 1001920 bytes
0.3% excerpt_meaning 3102 objects, 967824 bytes
0.3% inter_name_array 20 x 1000 = 20000 objects, 960640 bytes
0.3% inter_package 13201 objects, 950472 bytes
0.3% production 3899 objects, 904568 bytes
0.3% ptoken 8418 objects, 875472 bytes
0.3% grammatical_usage 3614 objects, 867360 bytes
0.3% inter_package 13237 objects, 953064 bytes
0.3% production 3896 objects, 903872 bytes
0.3% grammatical_usage 3658 objects, 877920 bytes
0.3% ptoken 8416 objects, 875264 bytes
0.3% individual_form 2564 objects, 861504 bytes
0.3% inter_symbols_table 13201 objects, 844864 bytes
0.3% inter_schema_node 8692 objects, 834432 bytes
0.2% dictionary 16345 objects, 784560 bytes
0.2% dict_entry_array 236 x 100 = 23600 objects, 762752 bytes
0.2% package_request 7928 objects, 697664 bytes
0.3% inter_symbols_table 13237 objects, 847168 bytes
0.3% inter_schema_node 8716 objects, 836736 bytes
0.2% dictionary 16401 objects, 787248 bytes
0.2% dict_entry_array 234 x 100 = 23400 objects, 756288 bytes
0.2% package_request 7952 objects, 699776 bytes
0.2% inter_name_generator_array 16 x 1000 = 16000 objects, 640512 bytes
0.1% local_variable_array 45 x 100 = 4500 objects, 505440 bytes
0.1% local_variable_array 46 x 100 = 4600 objects, 516672 bytes
0.1% inference_subject 663 objects, 434928 bytes
0.1% verb_usage 1128 objects, 388032 bytes
0.1% verb_usage 1172 objects, 403168 bytes
0.1% rule 469 objects, 363944 bytes
0.1% verb_form 386 objects, 342768 bytes
0.1% verb_form 394 objects, 349872 bytes
0.1% i6_schema_array 5 x 100 = 500 objects, 300160 bytes
0.1% scan_directory 70 objects, 288960 bytes
0.1% noun 2381 objects, 285720 bytes
@ -43,20 +43,20 @@ Total memory consumption was 257150K = 251 MB
---- inter_annotation_array 1 x 8192 objects, 196640 bytes
---- inference 1703 objects, 177112 bytes
---- linked_list_item_array 10 x 1000 = 10000 objects, 160320 bytes
---- linguistic_stock_item 3317 objects, 159216 bytes
---- linguistic_stock_item 3333 objects, 159984 bytes
---- stacked_variable_owner_list_array 38 x 100 = 3800 objects, 153216 bytes
---- index_lexicon_entry 395 objects, 142200 bytes
---- nonterminal 753 objects, 138552 bytes
---- index_lexicon_entry 407 objects, 146520 bytes
---- nonterminal 752 objects, 138368 bytes
---- action_pattern_array 6 x 100 = 600 objects, 129792 bytes
---- documentation_ref 1275 objects, 112200 bytes
---- hierarchy_location 731 objects, 105264 bytes
---- noun_usage 2405 objects, 96200 bytes
---- preposition 273 objects, 87360 bytes
---- preposition 281 objects, 89920 bytes
---- lexical_cluster 2518 objects, 80576 bytes
---- pcalc_term_array 2 x 1000 = 2000 objects, 80064 bytes
---- kind_variable_declaration 1652 objects, 79296 bytes
---- inter_tree 6 objects, 78672 bytes
---- inter_schema 1509 objects, 72432 bytes
---- inter_schema 1513 objects, 72624 bytes
---- rulebook 407 objects, 71632 bytes
---- kind_macro_definition 10 objects, 64400 bytes
---- spatial_data 664 objects, 63744 bytes
@ -72,12 +72,12 @@ Total memory consumption was 257150K = 251 MB
---- inter_node_list 750 objects, 42000 bytes
---- activity_list_array 1 x 1000 objects, 40032 bytes
---- response_message 407 objects, 35816 bytes
---- production_list 616 objects, 34496 bytes
---- production_list 615 objects, 34440 bytes
---- unary_predicate_array 8 x 1000 = 8000 objects, 32192 bytes
---- HTML_tag_array 1 x 1000 objects, 32032 bytes
---- regions_data 660 objects, 31680 bytes
---- property 146 objects, 31536 bytes
---- verb_sense 403 objects, 29016 bytes
---- verb_sense 411 objects, 29592 bytes
---- stacked_variable_owner_array 6 x 100 = 600 objects, 28992 bytes
---- heading 198 objects, 28512 bytes
---- counting_data 664 objects, 26560 bytes
@ -93,7 +93,7 @@ Total memory consumption was 257150K = 251 MB
---- adjective_iname_holder 320 objects, 15360 bytes
---- plugin 23 objects, 13432 bytes
---- literal_text 147 objects, 12936 bytes
---- stopwatch_timer 156 objects, 12480 bytes
---- stopwatch_timer 155 objects, 12400 bytes
---- understanding_reference_array 2 x 100 = 200 objects, 11264 bytes
---- pathname 265 objects, 10600 bytes
---- adjective 137 objects, 9864 bytes
@ -103,7 +103,7 @@ Total memory consumption was 257150K = 251 MB
---- understanding_item_array 3 x 100 = 300 objects, 7296 bytes
---- determiner 22 objects, 7216 bytes
---- stacked_variable_array 1 x 100 objects, 6432 bytes
---- uniqueness_count 260 objects, 6240 bytes
---- uniqueness_count 261 objects, 6264 bytes
---- verb 108 objects, 6048 bytes
---- text_literal_holder 145 objects, 5800 bytes
---- inbuild_work 78 objects, 4992 bytes
@ -112,14 +112,14 @@ Total memory consumption was 257150K = 251 MB
---- parsing_pp_data 96 objects, 4608 bytes
---- build_vertex 40 objects, 4480 bytes
---- hierarchy_attachment_point 48 objects, 4224 bytes
---- stacked_variable_list_array 1 x 100 objects, 4032 bytes
---- placement_affecting_array 1 x 100 objects, 4032 bytes
---- stacked_variable_list_array 1 x 100 objects, 4032 bytes
---- activity 35 objects, 3920 bytes
---- inbuild_edition 54 objects, 3888 bytes
---- inbuild_copy 35 objects, 3640 bytes
---- command_line_switch 42 objects, 3360 bytes
---- kind_constructor_comparison_schema_array 1 x 100 objects, 3232 bytes
---- instance_usage_array 1 x 200 objects, 3232 bytes
---- kind_constructor_comparison_schema_array 1 x 100 objects, 3232 bytes
---- compatibility_specification 66 objects, 3168 bytes
---- definition 44 objects, 3168 bytes
---- inform_extension 19 objects, 3040 bytes
@ -131,8 +131,8 @@ Total memory consumption was 257150K = 251 MB
---- semver_range 22 objects, 2288 bytes
---- method_set 56 objects, 1792 bytes
---- pronoun_usage 42 objects, 1680 bytes
---- plugin_call_array 1 x 100 objects, 1632 bytes
---- activity_crossref_array 1 x 100 objects, 1632 bytes
---- plugin_call_array 1 x 100 objects, 1632 bytes
---- table_contribution_array 1 x 100 objects, 1632 bytes
---- use_option 29 objects, 1624 bytes
---- kind_interaction 39 objects, 1560 bytes
@ -141,17 +141,17 @@ Total memory consumption was 257150K = 251 MB
---- noun_filter_token 22 objects, 1408 bytes
---- scene 1 object, 1344 bytes
---- special_meaning_holder 33 objects, 1320 bytes
---- constant_phrase 20 objects, 1280 bytes
---- build_script 40 objects, 1280 bytes
---- constant_phrase 20 objects, 1280 bytes
---- invocation_options_array 1 x 100 objects, 1224 bytes
---- hierarchy_metadatum 15 objects, 1200 bytes
---- quantifier 16 objects, 1024 bytes
---- table_column 16 objects, 896 bytes
---- runtime_kind_structure 14 objects, 896 bytes
---- inbuild_requirement 22 objects, 880 bytes
---- control_structure_phrase 12 objects, 864 bytes
---- code_generation 1 object, 864 bytes
---- control_structure_phrase 12 objects, 864 bytes
---- cached_understanding 21 objects, 840 bytes
---- runtime_kind_structure 13 objects, 832 bytes
---- phrase_option_array 1 x 100 objects, 824 bytes
---- target_vm 6 objects, 816 bytes
---- pipeline_stage 17 objects, 816 bytes
@ -161,25 +161,25 @@ Total memory consumption was 257150K = 251 MB
---- implication 13 objects, 728 bytes
---- rulebook_outcome 17 objects, 680 bytes
---- inform_language 6 objects, 672 bytes
---- relation_guard 5 objects, 640 bytes
---- inter_warehouse_room 10 objects, 640 bytes
---- I6T_intervention 8 objects, 640 bytes
---- relation_guard 5 objects, 640 bytes
---- nascent_array 7 objects, 616 bytes
---- named_rulebook_outcome 15 objects, 600 bytes
---- inbuild_search_result 15 objects, 600 bytes
---- named_rulebook_outcome 15 objects, 600 bytes
---- label_namespace 10 objects, 560 bytes
---- small_word_set 11 objects, 528 bytes
---- inform_kit 5 objects, 520 bytes
---- equation 4 objects, 416 bytes
---- i6_memory_setting 13 objects, 416 bytes
---- equation 4 objects, 416 bytes
---- dval_written 10 objects, 400 bytes
---- module_package 10 objects, 400 bytes
---- article_usage 8 objects, 384 bytes
---- source_file 5 objects, 360 bytes
---- inbuild_genre 7 objects, 336 bytes
---- grammatical_category 8 objects, 320 bytes
---- pronoun 8 objects, 320 bytes
---- door_dir_notice 5 objects, 320 bytes
---- pronoun 8 objects, 320 bytes
---- build_step 4 objects, 288 bytes
---- door_to_notice 5 objects, 280 bytes
---- inform_pipeline 4 objects, 256 bytes
@ -187,39 +187,39 @@ Total memory consumption was 257150K = 251 MB
---- test_scenario 1 object, 208 bytes
---- build_skill 5 objects, 200 bytes
---- compilation_module 5 objects, 200 bytes
---- plural_dictionary_entry 4 objects, 192 bytes
---- kit_dependency 4 objects, 192 bytes
---- plural_dictionary_entry 4 objects, 192 bytes
---- inform_project 1 object, 176 bytes
---- link_instruction 4 objects, 160 bytes
---- pointer_allocation 2 objects, 160 bytes
---- kind_template_obligation 4 objects, 160 bytes
---- code_generation_target 4 objects, 160 bytes
---- inter_architecture 4 objects, 160 bytes
---- kind_template_obligation 4 objects, 160 bytes
---- link_instruction 4 objects, 160 bytes
---- codegen_pipeline 1 object, 128 bytes
---- element_activation 4 objects, 128 bytes
---- inbuild_nest 3 objects, 120 bytes
---- inform_kit_ittt 2 objects, 96 bytes
---- compile_task_data 1 object, 80 bytes
---- list_together_routine 2 objects, 80 bytes
---- article 2 objects, 80 bytes
---- build_methodology 1 object, 56 bytes
---- list_together_routine 2 objects, 80 bytes
---- compile_task_data 1 object, 80 bytes
---- inter_warehouse 1 object, 56 bytes
---- build_methodology 1 object, 56 bytes
---- blorb_figure 1 object, 48 bytes
---- HTML_file_state 1 object, 48 bytes
---- parse_name_notice 1 object, 40 bytes
---- loop_over_scope 1 object, 40 bytes
---- kind_template_definition 1 object, 40 bytes
---- loop_over_scope 1 object, 40 bytes
---- parse_name_notice 1 object, 40 bytes
37.4% was used for memory not allocated for objects:
15.8% text stream storage 41853516 bytes in 263312 claims
3.5% dictionary storage 9265152 bytes in 16345 claims
---- sorting 1112 bytes in 3 claims
15.9% text stream storage 41937664 bytes in 264288 claims
3.5% dictionary storage 9293824 bytes in 16401 claims
---- sorting 1104 bytes in 3 claims
2.7% source text 7200000 bytes in 3 claims
4.1% source text details 10800000 bytes in 2 claims
4.0% source text details 10800000 bytes in 2 claims
---- linguistic stock array 81920 bytes in 2 claims
---- small word set array 105600 bytes in 22 claims
0.8% inter symbols storage 2276992 bytes in 13911 claims
0.8% inter symbols storage 2283584 bytes in 13951 claims
6.3% inter bytecode storage 16802820 bytes in 14 claims
3.3% inter links storage 8750208 bytes in 246 claims
0.5% instance-of-kind counting 1464100 bytes in 1 claim
@ -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.2% was overhead - 53387176 bytes = 52135K = 50 MB
20.1% was overhead - 53028040 bytes = 51785K = 50 MB

View file

@ -3,9 +3,9 @@
(@1)<cardinal-number>=1
(hits 171/171) (matched: '100') constraint CS = {r0} extremes [1, 1]
(@1)minus (@2)<cardinal-number>=1
(hits 0/672) constraint DS = {6} extremes [2, 2]
(hits 0/479) constraint DS = {6} extremes [2, 2]
(@1)<quoted-text>=1 (@2)( (@3)<response-letter>=2 (@4))
(hits 273/643) (matched: '"[current item from the multiple object list]: [run paragraph on]" ( a )') constraint DS = {6} extremes [4, 4]
(hits 273/620) (matched: '"[current item from the multiple object list]: [run paragraph on]" ( a )') constraint DS = {6} extremes [4, 4]
(@1)<quoted-text>=1
(hits 1564/5548) (matched: 'Represents geographical locations, both indoor
and outdoor, which are not necessarily areas in a building. A player in one
@ -14,12 +14,12 @@
<s-literal-real-number>=1
(hits 11/9909) (matched: 'plus infinity') constraint (none) extremes [1, infinity)
(@1)<s-literal-truth-state>=1
(hits 78/155) (matched: 'false') constraint CS = {26} extremes [1, 1]
(hits 78/379) (matched: 'false') constraint CS = {26} extremes [1, 1]
<s-literal-list>=1
(hits 0/3205) constraint DS = {28} extremes [2, infinity)
(hits 0/3663) constraint DS = {28} extremes [2, infinity)
(@1)unicode <s-unicode-character>=1
(hits 0/2294) constraint DS = {6} extremes [2, infinity)
(hits 0/1924) constraint DS = {6} extremes [2, infinity)
<s-literal-time>=1
(hits 0/3376) constraint DW = {29, 30, 31} extremes [2, 5]
(hits 0/3211) constraint DW = {29, 30, 31} extremes [2, 5]
<s-literal-unit-notation>=1
(hits 0/9820) constraint (none) extremes [1, infinity)

View file

@ -1,11 +1,11 @@
100.0% in inform7 run
66.9% in compilation to Inter
25.9% in //Phrases::Manager::compile_first_block//
9.6% in //Phrases::Manager::compile_as_needed//
7.0% in //Strings::compile_responses//
67.4% in compilation to Inter
26.7% in //Phrases::Manager::compile_first_block//
9.2% in //Phrases::Manager::compile_as_needed//
6.8% in //Strings::compile_responses//
5.8% in //World::Compile::compile//
3.0% in //Assertions::Traverse::traverse1//
3.0% in //Classifying::traverse//
3.1% in //Assertions::Traverse::traverse1//
3.1% in //Classifying::traverse//
2.0% in //Phrases::Manager::RulePrintingRule_routine//
2.0% in //Phrases::Manager::rulebooks_array//
1.1% in //NewVerbs::ConjugateVerb//
@ -13,17 +13,17 @@
0.5% in //Phrases::Manager::parse_rule_parameters//
0.3% in //Phrases::Manager::compile_rulebooks//
0.3% in //Phrases::Manager::traverse_for_names//
0.3% in //Relations::compile_defined_relations//
0.1% in //Assertions::Traverse::traverse2//
0.1% in //PL::Parsing::Verbs::compile_all//
0.1% in //Relations::compile_defined_relations//
0.1% in //Sentences::RuleSubtrees::register_recently_lexed_phrases//
0.1% in //Task::load_types//
0.1% in //World::complete//
3.8% not specifically accounted for
30.9% in running Inter pipeline
10.0% in inter step 2/12: link
10.0% in step preparation
7.2% in inter step 12/12: generate inform6 -> auto.inf
4.1% not specifically accounted for
30.3% in running Inter pipeline
9.9% in step preparation
9.5% in inter step 2/12: link
7.1% in inter step 12/12: generate inform6 -> auto.inf
0.3% in inter step 9/12: make-identifiers-unique
0.1% in inter step 10/12: reconcile-verbs
0.1% in inter step 11/12: eliminate-redundant-labels
@ -31,5 +31,6 @@
0.1% in inter step 6/12: assimilate
0.1% in inter step 7/12: resolve-external-symbols
0.1% in inter step 8/12: inspect-plugs
2.1% not specifically accounted for
2.2% not specifically accounted for
2.0% in supervisor
0.2% not specifically accounted for

View file

@ -1,8 +1,4 @@
The current S-grammar has the following verb and preposition usages:
{verb '' 3p s act IS_TENSE +ve}
{verb '' 3p s act IS_TENSE +ve}
{verb '' 3p s act IS_TENSE +ve}
{verb '' 3p s act IS_TENSE +ve}
{verb 'be' 3p s act HASBEEN_TENSE -ve}
{verb 'be' 3p p act HASBEEN_TENSE -ve}
{verb 'be' s/p 3p act HADBEEN_TENSE -ve}
@ -181,6 +177,54 @@ The current S-grammar has the following verb and preposition usages:
{verb 'omit' 3p s act IS_TENSE +ve}
{verb 'omit' 3p p act IS_TENSE +ve}
{verb 'omit' s/p 3p act WAS_TENSE +ve}
{verb '>' 3p s act HASBEEN_TENSE -ve}
{verb '>' 3p p act HASBEEN_TENSE -ve}
{verb '>' s/p 3p act HADBEEN_TENSE -ve}
{verb '>' 3p s act HASBEEN_TENSE +ve}
{verb '>' 3p p act HASBEEN_TENSE +ve}
{verb '>' s/p 3p act HADBEEN_TENSE +ve}
{verb '>' 3p s act IS_TENSE -ve}
{verb '>' 3p p act IS_TENSE -ve}
{verb '>' s/p 3p act WAS_TENSE -ve}
{verb '>' 3p s act IS_TENSE +ve}
{verb '>' 3p p act IS_TENSE +ve}
{verb '>' s/p 3p act WAS_TENSE +ve}
{verb '<' 3p s act HASBEEN_TENSE -ve}
{verb '<' 3p p act HASBEEN_TENSE -ve}
{verb '<' s/p 3p act HADBEEN_TENSE -ve}
{verb '<' 3p s act HASBEEN_TENSE +ve}
{verb '<' 3p p act HASBEEN_TENSE +ve}
{verb '<' s/p 3p act HADBEEN_TENSE +ve}
{verb '<' 3p s act IS_TENSE -ve}
{verb '<' 3p p act IS_TENSE -ve}
{verb '<' s/p 3p act WAS_TENSE -ve}
{verb '<' 3p s act IS_TENSE +ve}
{verb '<' 3p p act IS_TENSE +ve}
{verb '<' s/p 3p act WAS_TENSE +ve}
{verb '>=' 3p s act HASBEEN_TENSE -ve}
{verb '>=' 3p p act HASBEEN_TENSE -ve}
{verb '>=' s/p 3p act HADBEEN_TENSE -ve}
{verb '>=' 3p s act HASBEEN_TENSE +ve}
{verb '>=' 3p p act HASBEEN_TENSE +ve}
{verb '>=' s/p 3p act HADBEEN_TENSE +ve}
{verb '>=' 3p s act IS_TENSE -ve}
{verb '>=' 3p p act IS_TENSE -ve}
{verb '>=' s/p 3p act WAS_TENSE -ve}
{verb '>=' 3p s act IS_TENSE +ve}
{verb '>=' 3p p act IS_TENSE +ve}
{verb '>=' s/p 3p act WAS_TENSE +ve}
{verb '<=' 3p s act HASBEEN_TENSE -ve}
{verb '<=' 3p p act HASBEEN_TENSE -ve}
{verb '<=' s/p 3p act HADBEEN_TENSE -ve}
{verb '<=' 3p s act HASBEEN_TENSE +ve}
{verb '<=' 3p p act HASBEEN_TENSE +ve}
{verb '<=' s/p 3p act HADBEEN_TENSE +ve}
{verb '<=' 3p s act IS_TENSE -ve}
{verb '<=' 3p p act IS_TENSE -ve}
{verb '<=' s/p 3p act WAS_TENSE -ve}
{verb '<=' 3p s act IS_TENSE +ve}
{verb '<=' 3p p act IS_TENSE +ve}
{verb '<=' s/p 3p act WAS_TENSE +ve}
{verb 'be able to' 3p s act HASBEEN_TENSE -ve}
{verb 'be able to' 3p p act HASBEEN_TENSE -ve}
{verb 'be able to' s/p 3p act HADBEEN_TENSE -ve}
@ -1164,6 +1208,14 @@ greater than
less than
at least
at most
>ed by
>ing
<ed by
<ing
>=ed by
>=ing
<=ed by
<=ing
being able to
coulding
maying

View file

@ -57,6 +57,11 @@ The verb to be less than means the numerically-less-than relation.
The verb to be at least means the numerically-greater-than-or-equal-to relation.
The verb to be at most means the numerically-less-than-or-equal-to relation.
The operator > means the numerically-greater-than relation.
The operator < means the numerically-less-than relation.
The operator >= means the numerically-greater-than-or-equal-to relation.
The operator <= means the numerically-less-than-or-equal-to relation.
Use ineffectual translates as (- ! Use ineffectual does nothing. -).
Use American dialect translates as (- Constant DIALECT_US; -).

View file

@ -126,7 +126,6 @@ most of these worker functions are in the |core| module, some are not.
BENCH(Task::load_types);
BENCH(BinaryPredicates::make_built_in)
BENCH(Kinds::Knowledge::include_templates_for_kinds)
BENCH(NewVerbs::add_inequalities)
Task::advance_stage_to(SEMANTIC_I_CSEQ, I"Semantic analysis Ib", -1);
BENCH(BootVerbs::bootstrap)

View file

@ -319,8 +319,12 @@ void Calculus::Schemas::sch_emit_parameter(pcalc_term *pt,
if (give_kind_id) {
if (pt) Kinds::RunTime::emit_weak_id_as_val(pt->term_checked_as_kind);
} else if (give_comparison_routine) {
inter_name *cr = (pt)?(Kinds::Behaviour::get_comparison_routine_as_iname(pt->term_checked_as_kind)):NULL;
if (cr == NULL) cr = Hierarchy::find(SIGNEDCOMPARE_HL);
inter_name *cr = Hierarchy::find(SIGNEDCOMPARE_HL);
if ((pt) && (pt->term_checked_as_kind)) {
inter_name *specialised_cr =
Kinds::Behaviour::get_comparison_routine_as_iname(pt->term_checked_as_kind);
if (specialised_cr) cr = specialised_cr;
}
Produce::val_iname(Emit::tree(), K_value, cr);
} else {
if (by_reference) {

View file

@ -70,35 +70,19 @@ notation rather than words. (This is why the variable |current_main_verb| is
cleared.)
=
<inequality-conjugations> ::=
< | /* implies the numerically-less-than relation */
> | /* implies the numerically-greater-than relation */
<= | /* implies the numerically-less-than-or-equal-to relation */
>= /* implies the numerically-greater-than-or-equal-to relation */
=
void NewVerbs::add_inequalities(void) {
void NewVerbs::add_operator(wording W, verb_meaning vm) {
current_main_verb = NULL;
for (int i=0; i<=3; i++) {
verb *v = NULL;
switch (i) {
case 0: v = Verbs::new_operator_verb(VerbMeanings::regular(R_numerically_less_than)); break;
case 1: v = Verbs::new_operator_verb(VerbMeanings::regular(R_numerically_greater_than)); break;
case 2: v = Verbs::new_operator_verb(VerbMeanings::regular(R_numerically_less_than_or_equal_to)); break;
case 3: v = Verbs::new_operator_verb(VerbMeanings::regular(R_numerically_greater_than_or_equal_to)); break;
}
grammatical_usage *gu = Stock::new_usage(v->in_stock, Task::language_of_syntax());
lcon_ti l = Verbs::to_lcon(v);
l = Lcon::set_voice(l, ACTIVE_VOICE);
l = Lcon::set_tense(l, IS_TENSE);
l = Lcon::set_sense(l, POSITIVE_SENSE);
l = Lcon::set_person(l, THIRD_PERSON);
l = Lcon::set_number(l, SINGULAR_NUMBER);
Stock::add_form_to_usage(gu, l);
VerbUsages::new(
PreformUtilities::wording(<inequality-conjugations>, i), FALSE, gu, NULL);
}
verb *v = Verbs::new_operator_verb(vm);
grammatical_usage *gu = Stock::new_usage(v->in_stock, Task::language_of_syntax());
lcon_ti l = Verbs::to_lcon(v);
l = Lcon::set_voice(l, ACTIVE_VOICE);
l = Lcon::set_tense(l, IS_TENSE);
l = Lcon::set_sense(l, POSITIVE_SENSE);
l = Lcon::set_person(l, THIRD_PERSON);
l = Lcon::set_number(l, SINGULAR_NUMBER);
Stock::add_form_to_usage(gu, l);
LOG("So W is %W\n", W);
VerbUsages::new(WordAssemblages::from_wording(W), FALSE, gu, NULL);
}
@h Parsing new verb declarations.
@ -123,8 +107,8 @@ as the object.
=
<verb-implies-sentence-subject> ::=
in <natural-language> <infinitive-declaration> | ==> { R[2], -, <<inform_language:nl>> = RP[1] }
<infinitive-declaration> ==> { R[1], -, <<inform_language:nl>> = DefaultLanguage::get(NULL) }
in <natural-language> <infinitive-declaration> | ==> { R[2], RP[1] }
<infinitive-declaration> ==> { R[1], DefaultLanguage::get(NULL) }
<infinitive-declaration> ::=
to <infinitive-usage> ( ... ) | ==> { R[1], -, <<giving-parts>> = TRUE }
@ -238,7 +222,7 @@ int NewVerbs::new_verb_SMF(int task, parse_node *V, wording *NPs) {
<np-unparsed>(SW);
V->next = <<rp>>;
V->next->next = O;
NewVerbs::parse_new(V, FALSE);
NewVerbs::parse_new(V, FALSE, FALSE);
return TRUE;
}
break;
@ -256,7 +240,8 @@ int NewVerbs::new_verb_SMF(int task, parse_node *V, wording *NPs) {
<verb-means-sentence-subject-unarticled> ::=
verb to | ==> { fail }
verb <np-unparsed> in the imperative | ==> { TRUE, RP[1] }
verb <np-unparsed> ==> { FALSE, RP[1] }
verb <np-unparsed> | ==> { FALSE, RP[1] }
operator <np-unparsed> ==> { NOT_APPLICABLE, RP[1] }
@ =
int NewVerbs::verb_means_SMF(int task, parse_node *V, wording *NPs) {
@ -265,11 +250,13 @@ int NewVerbs::verb_means_SMF(int task, parse_node *V, wording *NPs) {
switch (task) { /* "The verb to grow means the growing relation." */
case ACCEPT_SMFT:
if (<verb-means-sentence-subject>(SW)) {
int imperative_flag = <<r>>;
int imperative_flag = FALSE, operator_flag = FALSE;
if (<<r>> == TRUE) imperative_flag = TRUE;
if (<<r>> == NOT_APPLICABLE) operator_flag = TRUE;
V->next = <<rp>>;
<np-articled>(OW);
V->next->next = <<rp>>;
NewVerbs::parse_new(V, imperative_flag);
NewVerbs::parse_new(V, imperative_flag, operator_flag);
return TRUE;
}
break;
@ -278,8 +265,7 @@ int NewVerbs::verb_means_SMF(int task, parse_node *V, wording *NPs) {
}
@ =
int new_verb_sequence_count = 0;
void NewVerbs::parse_new(parse_node *PN, int imperative) {
void NewVerbs::parse_new(parse_node *PN, int imperative, int operator) {
wording PW = EMPTY_WORDING; /* wording of the parts of speech */
verb_meaning vm = VerbMeanings::meaninglessness(); int meaning_given = FALSE;
int priority = -1;
@ -287,8 +273,13 @@ void NewVerbs::parse_new(parse_node *PN, int imperative) {
if (PN->next->next)
@<Find the underlying relation of the new verb or preposition@>;
if ((operator) && (<verb-means-sentence-subject>(Node::get_text(PN->next)))) {
NewVerbs::add_operator(Node::get_text(<<rp>>), vm);
return;
}
if (<verb-implies-sentence-subject>(Node::get_text(PN->next))) {
inform_language *nl = <<inform_language:nl>>;
inform_language *nl = <<rp>>;
int r = <<r>>;
wording W = GET_RW(<infinitive-usage>, 1);
if (<<giving-parts>>) PW = GET_RW(<infinitive-declaration>, 1);
@ -589,7 +580,6 @@ foreign verbs (4).
if (bp == a_has_b_predicate) p = 1;
if (bp == R_equality) p = 2;
if ((nl) && (nl != DefaultLanguage::get(NULL))) p = 5;
++new_verb_sequence_count;
vi = Verbs::new_verb(vc, FALSE);
vc->vc_conjugates = vi;
if (priority >= 1) p = priority;

View file

@ -84,10 +84,7 @@ The verb to include + in in the imperative means the built-in include-in meaning
The verb to omit + from in the imperative means the built-in omit-from meaning.
@ We might as well declare these numerical comparisons now, too, though
they're not needed for any of the world-building work. (The verbal usages |<|,
|>|, |<=| and |>=| are built into Inform; those would be the same in any
language, and are unlike other verbs since they have no inflected forms for
non-present tenses.)
they're not needed for any of the world-building work.
=
The verb to be greater than means the numerically-greater-than relation.
@ -95,6 +92,16 @@ The verb to be less than means the numerically-less-than relation.
The verb to be at least means the numerically-greater-than-or-equal-to relation.
The verb to be at most means the numerically-less-than-or-equal-to relation.
@ And these have symbolic equivalents as operators, declared using the
following syntax. Operators are unlike other verbs in that they have no
inflected forms and exist only in the present tense.
=
The operator > means the numerically-greater-than relation.
The operator < means the numerically-less-than relation.
The operator >= means the numerically-greater-than-or-equal-to relation.
The operator <= means the numerically-less-than-or-equal-to relation.
@h Use Options.
The following has no effect, and exists only to be a default non-value for
"use option" variables, should anyone ever create them:

View file

@ -408,10 +408,10 @@ To describe locale for (O - object):
To set the/-- locale priority of (O - an object) to (N - a number):
if O is a thing:
if N <= 0, now O is mentioned;
if N is at most 0, now O is mentioned;
if there is a notable-object of O in the Table of Locale Priorities:
choose row with a notable-object of O in the Table of Locale Priorities;
if N <= 0, blank out the whole row;
if N is at most 0, blank out the whole row;
otherwise now the locale description priority entry is N;
otherwise:
if N is greater than 0:

View file

@ -6,7 +6,7 @@ We rely here on the understanding-by-relations rules we've already learned, but
{*}"Originals"
A model is a kind of thing. 100 models are in the model-repository.
A model is a kind of thing. 10 models are in the model-repository.
Appearance relates one thing to various models. The verb to be shown by means the appearance relation.

View file

@ -1,5 +1,5 @@
Size of lexicon: 3102 excerpt meanings
Stored among 841 words out of total vocabulary of 10554
Stored among 841 words out of total vocabulary of 10566
711 words have a start list: longest belongs to report (with 293 meanings)
15 words have an end list: longest belongs to case (with 6 meanings)
29 words have a middle list: longest belongs to to (with 4 meanings)
@ -9,7 +9,7 @@ Number of attempts to retrieve: 104689
of which unsuccessful: 87188
of which successful: 17501
Total attempts to match against excerpt meanings: 249405
of which, total with incorrect hash codes: 227420
of which, total with correct hash codes: 21985
of which, total which matched: 19265
Total attempts to match against excerpt meanings: 249425
of which, total with incorrect hash codes: 227436
of which, total with correct hash codes: 21989
of which, total which matched: 19267

View file

@ -2,11 +2,11 @@ adjective: 137 items
article: 2 items
noun: 2381 items
pronoun: 8 items
preposition: 273 items
preposition: 281 items
determiner: 22 items
verb: 108 items
verb_form: 386 items
total in all categories: 3317
verb_form: 394 items
total in all categories: 3333
adjective: A0'even'
adjective: A1'odd'
@ -2577,6 +2577,14 @@ preposition: greater than
preposition: less than
preposition: at least
preposition: at most
preposition: >ed by
preposition: >ing
preposition: <ed by
preposition: <ing
preposition: >=ed by
preposition: >=ing
preposition: <=ed by
preposition: <=ing
preposition: being able to
preposition: coulding
preposition: maying
@ -2837,24 +2845,24 @@ determiner: 'greater than' --> Card>%d
determiner: 'other than' --> Card~=%d
determiner: '' --> Card>=%d
verb: (unconjugated)(0)
verb: (unconjugated)(1)
verb: (unconjugated)(2)
verb: (unconjugated)(3)
verb: be(4)
verb: mean(5)
verb: imply(6)
verb: be able to be(7)
verb: have(8)
verb: specify(9)
verb: relate(10)
verb: substitute(11)
verb: do(12)
verb: translate(13)
verb: provide(14)
verb: use(15)
verb: include(16)
verb: omit(17)
verb: be(0)
verb: mean(1)
verb: imply(2)
verb: be able to be(3)
verb: have(4)
verb: specify(5)
verb: relate(6)
verb: substitute(7)
verb: do(8)
verb: translate(9)
verb: provide(10)
verb: use(11)
verb: include(12)
verb: omit(13)
verb: >(14)
verb: <(15)
verb: >=(16)
verb: <=(17)
verb: be able to(18)
verb: could(19)
verb: may(20)
@ -2946,390 +2954,398 @@ verb: own(105)
verb: fit(106)
verb: unbolt(107)
verb_form: (unconjugated)(0) + ___ + ___ SVO
verb_form: (unconjugated)(1) + ___ + ___ SVO
verb_form: (unconjugated)(2) + ___ + ___ SVO
verb_form: (unconjugated)(3) + ___ + ___ SVO
verb_form: be(4) + ___ + ___ SVO
verb_form: mean(5) + ___ + ___ SVO
verb_form: be(4) + meant by + ___ SVO
verb_form: be(4) + meaning + ___ SVO
verb_form: imply(6) + ___ + ___ SVO
verb_form: be(4) + implied by + ___ SVO
verb_form: be(4) + implying + ___ SVO
verb_form: be able to be(7) + ___ + ___ SVO
verb_form: be(4) + being able to be + ___ SVO
verb_form: have(8) + ___ + ___ SVO
verb_form: be(4) + had by + ___ SVO
verb_form: be(4) + having + ___ SVO
verb_form: specify(9) + ___ + ___ SVO
verb_form: be(4) + specified by + ___ SVO
verb_form: be(4) + specifying + ___ SVO
verb_form: relate(10) + ___ + ___ SVO
verb_form: be(4) + related by + ___ SVO
verb_form: be(4) + relating + ___ SVO
verb_form: substitute(11) + ___ + ___ SVO
verb_form: be(4) + substituted by + ___ SVO
verb_form: be(4) + substituting + ___ SVO
verb_form: substitute(11) + for + ___ SVO
verb_form: do(12) + ___ + ___ SVO
verb_form: be(4) + done by + ___ SVO
verb_form: be(4) + doing + ___ SVO
verb_form: do(12) + ___ + if SVOO
verb_form: do(12) + ___ + when SVOO
verb_form: do(12) + ___ + unless SVOO
verb_form: translate(13) + ___ + ___ SVO
verb_form: be(4) + translated by + ___ SVO
verb_form: be(4) + translating + ___ SVO
verb_form: translate(13) + into + as SVOO
verb_form: translate(13) + as + ___ SVO
verb_form: provide(14) + ___ + ___ SVO
verb_form: be(4) + provided by + ___ SVO
verb_form: be(4) + providing + ___ SVO
verb_form: use(15) + ___ + ___ SVO VO
verb_form: be(4) + used by + ___ SVO
verb_form: be(4) + using + ___ SVO
verb_form: include(16) + ___ + ___ SVO
verb_form: be(4) + included by + ___ SVO
verb_form: be(4) + including + ___ SVO
verb_form: include(16) + ___ + in VO
verb_form: omit(17) + ___ + ___ SVO
verb_form: be(4) + omitted by + ___ SVO
verb_form: be(4) + omitting + ___ SVO
verb_form: omit(17) + ___ + from VO
verb_form: be(4) + greater than + ___ SVO
verb_form: be(4) + less than + ___ SVO
verb_form: be(4) + at least + ___ SVO
verb_form: be(4) + at most + ___ SVO
verb_form: be(0) + ___ + ___ SVO
verb_form: mean(1) + ___ + ___ SVO
verb_form: be(0) + meant by + ___ SVO
verb_form: be(0) + meaning + ___ SVO
verb_form: imply(2) + ___ + ___ SVO
verb_form: be(0) + implied by + ___ SVO
verb_form: be(0) + implying + ___ SVO
verb_form: be able to be(3) + ___ + ___ SVO
verb_form: be(0) + being able to be + ___ SVO
verb_form: have(4) + ___ + ___ SVO
verb_form: be(0) + had by + ___ SVO
verb_form: be(0) + having + ___ SVO
verb_form: specify(5) + ___ + ___ SVO
verb_form: be(0) + specified by + ___ SVO
verb_form: be(0) + specifying + ___ SVO
verb_form: relate(6) + ___ + ___ SVO
verb_form: be(0) + related by + ___ SVO
verb_form: be(0) + relating + ___ SVO
verb_form: substitute(7) + ___ + ___ SVO
verb_form: be(0) + substituted by + ___ SVO
verb_form: be(0) + substituting + ___ SVO
verb_form: substitute(7) + for + ___ SVO
verb_form: do(8) + ___ + ___ SVO
verb_form: be(0) + done by + ___ SVO
verb_form: be(0) + doing + ___ SVO
verb_form: do(8) + ___ + if SVOO
verb_form: do(8) + ___ + when SVOO
verb_form: do(8) + ___ + unless SVOO
verb_form: translate(9) + ___ + ___ SVO
verb_form: be(0) + translated by + ___ SVO
verb_form: be(0) + translating + ___ SVO
verb_form: translate(9) + into + as SVOO
verb_form: translate(9) + as + ___ SVO
verb_form: provide(10) + ___ + ___ SVO
verb_form: be(0) + provided by + ___ SVO
verb_form: be(0) + providing + ___ SVO
verb_form: use(11) + ___ + ___ SVO VO
verb_form: be(0) + used by + ___ SVO
verb_form: be(0) + using + ___ SVO
verb_form: include(12) + ___ + ___ SVO
verb_form: be(0) + included by + ___ SVO
verb_form: be(0) + including + ___ SVO
verb_form: include(12) + ___ + in VO
verb_form: omit(13) + ___ + ___ SVO
verb_form: be(0) + omitted by + ___ SVO
verb_form: be(0) + omitting + ___ SVO
verb_form: omit(13) + ___ + from VO
verb_form: be(0) + greater than + ___ SVO
verb_form: be(0) + less than + ___ SVO
verb_form: be(0) + at least + ___ SVO
verb_form: be(0) + at most + ___ SVO
verb_form: >(14) + ___ + ___ SVO
verb_form: be(0) + >ed by + ___ SVO
verb_form: be(0) + >ing + ___ SVO
verb_form: <(15) + ___ + ___ SVO
verb_form: be(0) + <ed by + ___ SVO
verb_form: be(0) + <ing + ___ SVO
verb_form: >=(16) + ___ + ___ SVO
verb_form: be(0) + >=ed by + ___ SVO
verb_form: be(0) + >=ing + ___ SVO
verb_form: <=(17) + ___ + ___ SVO
verb_form: be(0) + <=ed by + ___ SVO
verb_form: be(0) + <=ing + ___ SVO
verb_form: be able to(18) + ___ + ___ SVO
verb_form: be(4) + being able to + ___ SVO
verb_form: be(0) + being able to + ___ SVO
verb_form: could(19) + ___ + ___ SVO
verb_form: be(4) + coulding + ___ SVO
verb_form: be(0) + coulding + ___ SVO
verb_form: may(20) + ___ + ___ SVO
verb_form: be(4) + maying + ___ SVO
verb_form: be(0) + maying + ___ SVO
verb_form: might(21) + ___ + ___ SVO
verb_form: be(4) + mighting + ___ SVO
verb_form: be(0) + mighting + ___ SVO
verb_form: must(22) + ___ + ___ SVO
verb_form: be(4) + musting + ___ SVO
verb_form: be(0) + musting + ___ SVO
verb_form: should(23) + ___ + ___ SVO
verb_form: be(4) + shoulding + ___ SVO
verb_form: be(0) + shoulding + ___ SVO
verb_form: would(24) + ___ + ___ SVO
verb_form: be(4) + woulding + ___ SVO
verb_form: be(0) + woulding + ___ SVO
verb_form: 're(25) + ___ + ___ SVO
verb_form: be(4) + being + ___ SVO
verb_form: be(0) + being + ___ SVO
verb_form: 've(26) + ___ + ___ SVO
verb_form: aren't(27) + ___ + ___ SVO
verb_form: be(4) + aren'ting + ___ SVO
verb_form: be(0) + aren'ting + ___ SVO
verb_form: can't(28) + ___ + ___ SVO
verb_form: be(4) + can'ting + ___ SVO
verb_form: be(0) + can'ting + ___ SVO
verb_form: don't(29) + ___ + ___ SVO
verb_form: be(4) + don'ting + ___ SVO
verb_form: be(0) + don'ting + ___ SVO
verb_form: haven't(30) + ___ + ___ SVO
verb_form: be(4) + haven'ting + ___ SVO
verb_form: be(0) + haven'ting + ___ SVO
verb_form: mustn't(31) + ___ + ___ SVO
verb_form: be(4) + mustn'ting + ___ SVO
verb_form: be(0) + mustn'ting + ___ SVO
verb_form: mightn't(32) + ___ + ___ SVO
verb_form: be(4) + mightn'ting + ___ SVO
verb_form: be(0) + mightn'ting + ___ SVO
verb_form: mayn't(33) + ___ + ___ SVO
verb_form: be(4) + mayn'ting + ___ SVO
verb_form: be(0) + mayn'ting + ___ SVO
verb_form: wouldn't(34) + ___ + ___ SVO
verb_form: be(4) + wouldn'ting + ___ SVO
verb_form: be(0) + wouldn'ting + ___ SVO
verb_form: couldn't(35) + ___ + ___ SVO
verb_form: be(4) + couldn'ting + ___ SVO
verb_form: be(0) + couldn'ting + ___ SVO
verb_form: shouldn't(36) + ___ + ___ SVO
verb_form: be(4) + shouldn'ting + ___ SVO
verb_form: be(0) + shouldn'ting + ___ SVO
verb_form: won't(37) + ___ + ___ SVO
verb_form: be(4) + won'ting + ___ SVO
verb_form: be(0) + won'ting + ___ SVO
verb_form: begin(38) + ___ + ___ SVO
verb_form: be(4) + begun by + ___ SVO
verb_form: be(4) + beginning + ___ SVO
verb_form: be(0) + begun by + ___ SVO
verb_form: be(0) + beginning + ___ SVO
verb_form: begin(38) + when + ___ SVO
verb_form: end(39) + ___ + ___ SVO
verb_form: be(4) + ended by + ___ SVO
verb_form: be(4) + ending + ___ SVO
verb_form: be(0) + ended by + ___ SVO
verb_form: be(0) + ending + ___ SVO
verb_form: end(39) + when + ___ SVO
verb_form: end(39) + ___ + when SVOO
verb_form: test(40) + ___ + ___ SVO
verb_form: be(4) + tested by + ___ SVO
verb_form: be(4) + testing + ___ SVO
verb_form: be(0) + tested by + ___ SVO
verb_form: be(0) + testing + ___ SVO
verb_form: test(40) + ___ + with VO
verb_form: understand(41) + ___ + ___ SVO
verb_form: be(4) + understood by + ___ SVO
verb_form: be(4) + understanding + ___ SVO
verb_form: be(0) + understood by + ___ SVO
verb_form: be(0) + understanding + ___ SVO
verb_form: understand(41) + ___ + as VO
verb_form: release(42) + ___ + ___ SVO
verb_form: be(4) + released by + ___ SVO
verb_form: be(4) + releasing + ___ SVO
verb_form: be(0) + released by + ___ SVO
verb_form: be(0) + releasing + ___ SVO
verb_form: release(42) + along with + ___ VO
verb_form: index(43) + ___ + ___ SVO
verb_form: be(4) + indexed by + ___ SVO
verb_form: be(4) + indexing + ___ SVO
verb_form: be(0) + indexed by + ___ SVO
verb_form: be(0) + indexing + ___ SVO
verb_form: index(43) + map with + ___ VO
verb_form: be(4) + in + ___ SVO
verb_form: be(4) + inside + ___ SVO
verb_form: be(4) + within + ___ SVO
verb_form: be(4) + held in + ___ SVO
verb_form: be(4) + held inside + ___ SVO
verb_form: be(0) + in + ___ SVO
verb_form: be(0) + inside + ___ SVO
verb_form: be(0) + within + ___ SVO
verb_form: be(0) + held in + ___ SVO
verb_form: be(0) + held inside + ___ SVO
verb_form: contain(44) + ___ + ___ SVO
verb_form: be(4) + contained by + ___ SVO
verb_form: be(4) + containing + ___ SVO
verb_form: be(4) + contained in + ___ SVO
verb_form: be(4) + on top of + ___ SVO
verb_form: be(4) + on + ___ SVO
verb_form: be(0) + contained by + ___ SVO
verb_form: be(0) + containing + ___ SVO
verb_form: be(0) + contained in + ___ SVO
verb_form: be(0) + on top of + ___ SVO
verb_form: be(0) + on + ___ SVO
verb_form: support(45) + ___ + ___ SVO
verb_form: be(4) + supported by + ___ SVO
verb_form: be(4) + supporting + ___ SVO
verb_form: be(4) + supported on + ___ SVO
verb_form: be(0) + supported by + ___ SVO
verb_form: be(0) + supporting + ___ SVO
verb_form: be(0) + supported on + ___ SVO
verb_form: incorporate(46) + ___ + ___ SVO
verb_form: be(4) + incorporated by + ___ SVO
verb_form: be(4) + incorporating + ___ SVO
verb_form: be(4) + part of + ___ SVO
verb_form: be(4) + a part of + ___ SVO
verb_form: be(4) + parts of + ___ SVO
verb_form: be(0) + incorporated by + ___ SVO
verb_form: be(0) + incorporating + ___ SVO
verb_form: be(0) + part of + ___ SVO
verb_form: be(0) + a part of + ___ SVO
verb_form: be(0) + parts of + ___ SVO
verb_form: enclose(47) + ___ + ___ SVO
verb_form: be(4) + enclosed by + ___ SVO
verb_form: be(4) + enclosing + ___ SVO
verb_form: be(0) + enclosed by + ___ SVO
verb_form: be(0) + enclosing + ___ SVO
verb_form: carry(48) + ___ + ___ SVO
verb_form: be(4) + carried by + ___ SVO
verb_form: be(4) + carrying + ___ SVO
verb_form: be(0) + carried by + ___ SVO
verb_form: be(0) + carrying + ___ SVO
verb_form: hold(49) + ___ + ___ SVO
verb_form: be(4) + held by + ___ SVO
verb_form: be(4) + holding + ___ SVO
verb_form: be(0) + held by + ___ SVO
verb_form: be(0) + holding + ___ SVO
verb_form: wear(50) + ___ + ___ SVO
verb_form: be(4) + worn by + ___ SVO
verb_form: be(4) + wearing + ___ SVO
verb_form: be(0) + worn by + ___ SVO
verb_form: be(0) + wearing + ___ SVO
verb_form: be able to see(51) + ___ + ___ SVO
verb_form: be(4) + being able to see + ___ SVO
verb_form: be(0) + being able to see + ___ SVO
verb_form: be able to touch(52) + ___ + ___ SVO
verb_form: be(4) + being able to touch + ___ SVO
verb_form: be(0) + being able to touch + ___ SVO
verb_form: conceal(53) + ___ + ___ SVO
verb_form: be(4) + concealed by + ___ SVO
verb_form: be(4) + concealing + ___ SVO
verb_form: be(4) + adjacent to + ___ SVO
verb_form: be(4) + regionally in + ___ SVO
verb_form: be(4) + mapped north of + ___ SVO
verb_form: be(4) + north of + ___ SVO
verb_form: be(4) + north from + ___ SVO
verb_form: be(4) + mapped northeast of + ___ SVO
verb_form: be(4) + northeast of + ___ SVO
verb_form: be(4) + northeast from + ___ SVO
verb_form: be(4) + mapped northwest of + ___ SVO
verb_form: be(4) + northwest of + ___ SVO
verb_form: be(4) + northwest from + ___ SVO
verb_form: be(4) + mapped south of + ___ SVO
verb_form: be(4) + south of + ___ SVO
verb_form: be(4) + south from + ___ SVO
verb_form: be(4) + mapped southeast of + ___ SVO
verb_form: be(4) + southeast of + ___ SVO
verb_form: be(4) + southeast from + ___ SVO
verb_form: be(4) + mapped southwest of + ___ SVO
verb_form: be(4) + southwest of + ___ SVO
verb_form: be(4) + southwest from + ___ SVO
verb_form: be(4) + mapped east of + ___ SVO
verb_form: be(4) + east of + ___ SVO
verb_form: be(4) + east from + ___ SVO
verb_form: be(4) + mapped west of + ___ SVO
verb_form: be(4) + west of + ___ SVO
verb_form: be(4) + west from + ___ SVO
verb_form: be(4) + mapped up of + ___ SVO
verb_form: be(4) + up of + ___ SVO
verb_form: be(4) + up from + ___ SVO
verb_form: be(4) + mapped down of + ___ SVO
verb_form: be(4) + down of + ___ SVO
verb_form: be(4) + down from + ___ SVO
verb_form: be(4) + mapped inside + ___ SVO
verb_form: be(4) + inside of + ___ SVO
verb_form: be(4) + inside from + ___ SVO
verb_form: be(4) + mapped outside + ___ SVO
verb_form: be(4) + outside of + ___ SVO
verb_form: be(4) + outside from + ___ SVO
verb_form: be(4) + above + ___ SVO
verb_form: be(4) + mapped above + ___ SVO
verb_form: be(4) + below + ___ SVO
verb_form: be(4) + mapped below + ___ SVO
verb_form: be(4) + through + ___ SVO
verb_form: be(0) + concealed by + ___ SVO
verb_form: be(0) + concealing + ___ SVO
verb_form: be(0) + adjacent to + ___ SVO
verb_form: be(0) + regionally in + ___ SVO
verb_form: be(0) + mapped north of + ___ SVO
verb_form: be(0) + north of + ___ SVO
verb_form: be(0) + north from + ___ SVO
verb_form: be(0) + mapped northeast of + ___ SVO
verb_form: be(0) + northeast of + ___ SVO
verb_form: be(0) + northeast from + ___ SVO
verb_form: be(0) + mapped northwest of + ___ SVO
verb_form: be(0) + northwest of + ___ SVO
verb_form: be(0) + northwest from + ___ SVO
verb_form: be(0) + mapped south of + ___ SVO
verb_form: be(0) + south of + ___ SVO
verb_form: be(0) + south from + ___ SVO
verb_form: be(0) + mapped southeast of + ___ SVO
verb_form: be(0) + southeast of + ___ SVO
verb_form: be(0) + southeast from + ___ SVO
verb_form: be(0) + mapped southwest of + ___ SVO
verb_form: be(0) + southwest of + ___ SVO
verb_form: be(0) + southwest from + ___ SVO
verb_form: be(0) + mapped east of + ___ SVO
verb_form: be(0) + east of + ___ SVO
verb_form: be(0) + east from + ___ SVO
verb_form: be(0) + mapped west of + ___ SVO
verb_form: be(0) + west of + ___ SVO
verb_form: be(0) + west from + ___ SVO
verb_form: be(0) + mapped up of + ___ SVO
verb_form: be(0) + up of + ___ SVO
verb_form: be(0) + up from + ___ SVO
verb_form: be(0) + mapped down of + ___ SVO
verb_form: be(0) + down of + ___ SVO
verb_form: be(0) + down from + ___ SVO
verb_form: be(0) + mapped inside + ___ SVO
verb_form: be(0) + inside of + ___ SVO
verb_form: be(0) + inside from + ___ SVO
verb_form: be(0) + mapped outside + ___ SVO
verb_form: be(0) + outside of + ___ SVO
verb_form: be(0) + outside from + ___ SVO
verb_form: be(0) + above + ___ SVO
verb_form: be(0) + mapped above + ___ SVO
verb_form: be(0) + below + ___ SVO
verb_form: be(0) + mapped below + ___ SVO
verb_form: be(0) + through + ___ SVO
verb_form: unlock(54) + ___ + ___ SVO
verb_form: be(4) + unlocked by + ___ SVO
verb_form: be(4) + unlocking + ___ SVO
verb_form: be(0) + unlocked by + ___ SVO
verb_form: be(0) + unlocking + ___ SVO
verb_form: achieve(55) + ___ + ___ SVO
verb_form: be(4) + achieved by + ___ SVO
verb_form: be(4) + achieving + ___ SVO
verb_form: be(0) + achieved by + ___ SVO
verb_form: be(0) + achieving + ___ SVO
verb_form: appreciate(56) + ___ + ___ SVO
verb_form: be(4) + appreciated by + ___ SVO
verb_form: be(4) + appreciating + ___ SVO
verb_form: be(0) + appreciated by + ___ SVO
verb_form: be(0) + appreciating + ___ SVO
verb_form: arrive(57) + ___ + ___ SVO
verb_form: be(4) + arrived by + ___ SVO
verb_form: be(4) + arriving + ___ SVO
verb_form: be(0) + arrived by + ___ SVO
verb_form: be(0) + arriving + ___ SVO
verb_form: care(58) + ___ + ___ SVO
verb_form: be(4) + cared by + ___ SVO
verb_form: be(4) + caring + ___ SVO
verb_form: be(0) + cared by + ___ SVO
verb_form: be(0) + caring + ___ SVO
verb_form: close(59) + ___ + ___ SVO
verb_form: be(4) + closed by + ___ SVO
verb_form: be(4) + closing + ___ SVO
verb_form: be(0) + closed by + ___ SVO
verb_form: be(0) + closing + ___ SVO
verb_form: die(60) + ___ + ___ SVO
verb_form: be(4) + died by + ___ SVO
verb_form: be(4) + dying + ___ SVO
verb_form: be(0) + died by + ___ SVO
verb_form: be(0) + dying + ___ SVO
verb_form: discover(61) + ___ + ___ SVO
verb_form: be(4) + discovered by + ___ SVO
verb_form: be(4) + discovering + ___ SVO
verb_form: be(0) + discovered by + ___ SVO
verb_form: be(0) + discovering + ___ SVO
verb_form: drop(62) + ___ + ___ SVO
verb_form: be(4) + dropped by + ___ SVO
verb_form: be(4) + dropping + ___ SVO
verb_form: be(0) + dropped by + ___ SVO
verb_form: be(0) + dropping + ___ SVO
verb_form: eat(63) + ___ + ___ SVO
verb_form: be(4) + eaten by + ___ SVO
verb_form: be(4) + eating + ___ SVO
verb_form: be(0) + eaten by + ___ SVO
verb_form: be(0) + eating + ___ SVO
verb_form: feel(64) + ___ + ___ SVO
verb_form: be(4) + felt by + ___ SVO
verb_form: be(4) + feeling + ___ SVO
verb_form: be(0) + felt by + ___ SVO
verb_form: be(0) + feeling + ___ SVO
verb_form: find(65) + ___ + ___ SVO
verb_form: be(4) + found by + ___ SVO
verb_form: be(4) + finding + ___ SVO
verb_form: be(0) + found by + ___ SVO
verb_form: be(0) + finding + ___ SVO
verb_form: get(66) + ___ + ___ SVO
verb_form: be(4) + got by + ___ SVO
verb_form: be(4) + getting + ___ SVO
verb_form: be(0) + got by + ___ SVO
verb_form: be(0) + getting + ___ SVO
verb_form: give(67) + ___ + ___ SVO
verb_form: be(4) + given by + ___ SVO
verb_form: be(4) + giving + ___ SVO
verb_form: be(0) + given by + ___ SVO
verb_form: be(0) + giving + ___ SVO
verb_form: go(68) + ___ + ___ SVO
verb_form: be(4) + gone by + ___ SVO
verb_form: be(4) + going + ___ SVO
verb_form: be(0) + gone by + ___ SVO
verb_form: be(0) + going + ___ SVO
verb_form: happen(69) + ___ + ___ SVO
verb_form: be(4) + happened by + ___ SVO
verb_form: be(4) + happening + ___ SVO
verb_form: be(0) + happened by + ___ SVO
verb_form: be(0) + happening + ___ SVO
verb_form: hear(70) + ___ + ___ SVO
verb_form: be(4) + heard by + ___ SVO
verb_form: be(4) + hearing + ___ SVO
verb_form: be(0) + heard by + ___ SVO
verb_form: be(0) + hearing + ___ SVO
verb_form: jump(71) + ___ + ___ SVO
verb_form: be(4) + jumped by + ___ SVO
verb_form: be(4) + jumping + ___ SVO
verb_form: be(0) + jumped by + ___ SVO
verb_form: be(0) + jumping + ___ SVO
verb_form: lack(72) + ___ + ___ SVO
verb_form: be(4) + lacked by + ___ SVO
verb_form: be(4) + lacking + ___ SVO
verb_form: be(0) + lacked by + ___ SVO
verb_form: be(0) + lacking + ___ SVO
verb_form: lead(73) + ___ + ___ SVO
verb_form: be(4) + led by + ___ SVO
verb_form: be(4) + leading + ___ SVO
verb_form: be(0) + led by + ___ SVO
verb_form: be(0) + leading + ___ SVO
verb_form: like(74) + ___ + ___ SVO
verb_form: be(4) + liked by + ___ SVO
verb_form: be(4) + liking + ___ SVO
verb_form: be(0) + liked by + ___ SVO
verb_form: be(0) + liking + ___ SVO
verb_form: listen(75) + ___ + ___ SVO
verb_form: be(4) + listened by + ___ SVO
verb_form: be(4) + listening + ___ SVO
verb_form: be(0) + listened by + ___ SVO
verb_form: be(0) + listening + ___ SVO
verb_form: lock(76) + ___ + ___ SVO
verb_form: be(4) + locked by + ___ SVO
verb_form: be(4) + locking + ___ SVO
verb_form: be(0) + locked by + ___ SVO
verb_form: be(0) + locking + ___ SVO
verb_form: look(77) + ___ + ___ SVO
verb_form: be(4) + looked by + ___ SVO
verb_form: be(4) + looking + ___ SVO
verb_form: be(0) + looked by + ___ SVO
verb_form: be(0) + looking + ___ SVO
verb_form: need(78) + ___ + ___ SVO
verb_form: be(4) + needed by + ___ SVO
verb_form: be(4) + needing + ___ SVO
verb_form: be(0) + needed by + ___ SVO
verb_form: be(0) + needing + ___ SVO
verb_form: open(79) + ___ + ___ SVO
verb_form: be(4) + opened by + ___ SVO
verb_form: be(4) + opening + ___ SVO
verb_form: be(0) + opened by + ___ SVO
verb_form: be(0) + opening + ___ SVO
verb_form: pass(80) + ___ + ___ SVO
verb_form: be(4) + passed by + ___ SVO
verb_form: be(4) + passing + ___ SVO
verb_form: be(0) + passed by + ___ SVO
verb_form: be(0) + passing + ___ SVO
verb_form: pick(81) + ___ + ___ SVO
verb_form: be(4) + picked by + ___ SVO
verb_form: be(4) + picking + ___ SVO
verb_form: be(0) + picked by + ___ SVO
verb_form: be(0) + picking + ___ SVO
verb_form: provoke(82) + ___ + ___ SVO
verb_form: be(4) + provoked by + ___ SVO
verb_form: be(4) + provoking + ___ SVO
verb_form: be(0) + provoked by + ___ SVO
verb_form: be(0) + provoking + ___ SVO
verb_form: pull(83) + ___ + ___ SVO
verb_form: be(4) + pulled by + ___ SVO
verb_form: be(4) + pulling + ___ SVO
verb_form: be(0) + pulled by + ___ SVO
verb_form: be(0) + pulling + ___ SVO
verb_form: push(84) + ___ + ___ SVO
verb_form: be(4) + pushed by + ___ SVO
verb_form: be(4) + pushing + ___ SVO
verb_form: be(0) + pushed by + ___ SVO
verb_form: be(0) + pushing + ___ SVO
verb_form: put(85) + ___ + ___ SVO
verb_form: be(4) + put by + ___ SVO
verb_form: be(4) + putting + ___ SVO
verb_form: be(0) + put by + ___ SVO
verb_form: be(0) + putting + ___ SVO
verb_form: rub(86) + ___ + ___ SVO
verb_form: be(4) + rubbed by + ___ SVO
verb_form: be(4) + rubbing + ___ SVO
verb_form: be(0) + rubbed by + ___ SVO
verb_form: be(0) + rubbing + ___ SVO
verb_form: say(87) + ___ + ___ SVO
verb_form: be(4) + said by + ___ SVO
verb_form: be(4) + saying + ___ SVO
verb_form: be(0) + said by + ___ SVO
verb_form: be(0) + saying + ___ SVO
verb_form: search(88) + ___ + ___ SVO
verb_form: be(4) + searched by + ___ SVO
verb_form: be(4) + searching + ___ SVO
verb_form: be(0) + searched by + ___ SVO
verb_form: be(0) + searching + ___ SVO
verb_form: see(89) + ___ + ___ SVO
verb_form: be(4) + seen by + ___ SVO
verb_form: be(4) + seeing + ___ SVO
verb_form: be(0) + seen by + ___ SVO
verb_form: be(0) + seeing + ___ SVO
verb_form: seem(90) + ___ + ___ SVO
verb_form: be(4) + seemed by + ___ SVO
verb_form: be(4) + seeming + ___ SVO
verb_form: be(0) + seemed by + ___ SVO
verb_form: be(0) + seeming + ___ SVO
verb_form: set(91) + ___ + ___ SVO
verb_form: be(4) + set by + ___ SVO
verb_form: be(4) + setting + ___ SVO
verb_form: be(0) + set by + ___ SVO
verb_form: be(0) + setting + ___ SVO
verb_form: smell(92) + ___ + ___ SVO
verb_form: be(4) + smelled by + ___ SVO
verb_form: be(4) + smelling + ___ SVO
verb_form: be(0) + smelled by + ___ SVO
verb_form: be(0) + smelling + ___ SVO
verb_form: sniff(93) + ___ + ___ SVO
verb_form: be(4) + sniffed by + ___ SVO
verb_form: be(4) + sniffing + ___ SVO
verb_form: be(0) + sniffed by + ___ SVO
verb_form: be(0) + sniffing + ___ SVO
verb_form: squeeze(94) + ___ + ___ SVO
verb_form: be(4) + squeezed by + ___ SVO
verb_form: be(4) + squeezing + ___ SVO
verb_form: be(0) + squeezed by + ___ SVO
verb_form: be(0) + squeezing + ___ SVO
verb_form: switch(95) + ___ + ___ SVO
verb_form: be(4) + switched by + ___ SVO
verb_form: be(4) + switching + ___ SVO
verb_form: be(0) + switched by + ___ SVO
verb_form: be(0) + switching + ___ SVO
verb_form: take(96) + ___ + ___ SVO
verb_form: be(4) + taken by + ___ SVO
verb_form: be(4) + taking + ___ SVO
verb_form: be(0) + taken by + ___ SVO
verb_form: be(0) + taking + ___ SVO
verb_form: talk(97) + ___ + ___ SVO
verb_form: be(4) + talked by + ___ SVO
verb_form: be(4) + talking + ___ SVO
verb_form: be(0) + talked by + ___ SVO
verb_form: be(0) + talking + ___ SVO
verb_form: taste(98) + ___ + ___ SVO
verb_form: be(4) + tasted by + ___ SVO
verb_form: be(4) + tasting + ___ SVO
verb_form: be(0) + tasted by + ___ SVO
verb_form: be(0) + tasting + ___ SVO
verb_form: touch(99) + ___ + ___ SVO
verb_form: be(4) + touched by + ___ SVO
verb_form: be(4) + touching + ___ SVO
verb_form: be(0) + touched by + ___ SVO
verb_form: be(0) + touching + ___ SVO
verb_form: turn(100) + ___ + ___ SVO
verb_form: be(4) + turned by + ___ SVO
verb_form: be(4) + turning + ___ SVO
verb_form: be(0) + turned by + ___ SVO
verb_form: be(0) + turning + ___ SVO
verb_form: wait(101) + ___ + ___ SVO
verb_form: be(4) + waited by + ___ SVO
verb_form: be(4) + waiting + ___ SVO
verb_form: be(0) + waited by + ___ SVO
verb_form: be(0) + waiting + ___ SVO
verb_form: wave(102) + ___ + ___ SVO
verb_form: be(4) + waved by + ___ SVO
verb_form: be(4) + waving + ___ SVO
verb_form: be(0) + waved by + ___ SVO
verb_form: be(0) + waving + ___ SVO
verb_form: win(103) + ___ + ___ SVO
verb_form: be(4) + won by + ___ SVO
verb_form: be(4) + winning + ___ SVO
verb_form: be(0) + won by + ___ SVO
verb_form: be(0) + winning + ___ SVO
verb_form: protect(104) + ___ + ___ SVO
verb_form: be(4) + protected by + ___ SVO
verb_form: be(4) + protecting + ___ SVO
verb_form: be(0) + protected by + ___ SVO
verb_form: be(0) + protecting + ___ SVO
verb_form: own(105) + ___ + ___ SVO
verb_form: be(4) + owned by + ___ SVO
verb_form: be(4) + owning + ___ SVO
verb_form: be(0) + owned by + ___ SVO
verb_form: be(0) + owning + ___ SVO
verb_form: fit(106) + ___ + ___ SVO
verb_form: be(4) + fitted by + ___ SVO
verb_form: be(4) + fitting + ___ SVO
verb_form: be(0) + fitted by + ___ SVO
verb_form: be(0) + fitting + ___ SVO
verb_form: unbolt(107) + ___ + ___ SVO
verb_form: be(4) + unbolted by + ___ SVO
verb_form: be(4) + unbolting + ___ SVO
verb_form: be(4) + the same variable initial value as + ___ SVO
verb_form: be(4) + the same specification as + ___ SVO
verb_form: be(4) + the same indefinite appearance text as + ___ SVO
verb_form: be(4) + the same printed name as + ___ SVO
verb_form: be(4) + the same printed plural name as + ___ SVO
verb_form: be(4) + the same indefinite article as + ___ SVO
verb_form: be(4) + the same adaptive text viewpoint as + ___ SVO
verb_form: be(4) + the same description as + ___ SVO
verb_form: be(4) + the same map region as + ___ SVO
verb_form: be(4) + the same initial appearance as + ___ SVO
verb_form: be(4) + the same opposite as + ___ SVO
verb_form: be(4) + the same other side as + ___ SVO
verb_form: be(4) + the same carrying capacity as + ___ SVO
verb_form: be(4) + the same matching key as + ___ SVO
verb_form: be(4) + the same list grouping key as + ___ SVO
verb_form: be(4) + the same destination as + ___ SVO
verb_form: be(4) + the same conversation as + ___ SVO
verb_form: be(4) + the same walk style as + ___ SVO
verb_form: be(4) + the same last opener as + ___ SVO
verb_form: be(4) + the same ownership relation storage as + ___ SVO
verb_form: be(4) + the same infection color as + ___ SVO
verb_form: be(4) + the same unbolting relation storage as + ___ SVO
verb_form: be(0) + unbolted by + ___ SVO
verb_form: be(0) + unbolting + ___ SVO
verb_form: be(0) + the same variable initial value as + ___ SVO
verb_form: be(0) + the same specification as + ___ SVO
verb_form: be(0) + the same indefinite appearance text as + ___ SVO
verb_form: be(0) + the same printed name as + ___ SVO
verb_form: be(0) + the same printed plural name as + ___ SVO
verb_form: be(0) + the same indefinite article as + ___ SVO
verb_form: be(0) + the same adaptive text viewpoint as + ___ SVO
verb_form: be(0) + the same description as + ___ SVO
verb_form: be(0) + the same map region as + ___ SVO
verb_form: be(0) + the same initial appearance as + ___ SVO
verb_form: be(0) + the same opposite as + ___ SVO
verb_form: be(0) + the same other side as + ___ SVO
verb_form: be(0) + the same carrying capacity as + ___ SVO
verb_form: be(0) + the same matching key as + ___ SVO
verb_form: be(0) + the same list grouping key as + ___ SVO
verb_form: be(0) + the same destination as + ___ SVO
verb_form: be(0) + the same conversation as + ___ SVO
verb_form: be(0) + the same walk style as + ___ SVO
verb_form: be(0) + the same last opener as + ___ SVO
verb_form: be(0) + the same ownership relation storage as + ___ SVO
verb_form: be(0) + the same infection color as + ___ SVO
verb_form: be(0) + the same unbolting relation storage as + ___ SVO